본문 바로가기

데이터베이스

정규화

정규화란 이상현상을 제거하면서 데이터베이스를 올바르게 설계하는 과정을 말한다.

 

이상현상은 데이터베이스를 잘못 설계하여 데이터의 삽입, 삭제, 수정 연산을 할 때 문제가 발생하는 현상을 의미합니다.

이상현상의 종류에는 삽입이상갱신이상, 삭제이상이 있습니다.

 

삽입이상

  • 새 데이터를 삽입하기 위해서 원해지 않는 데이터(정해지지 않은 데이터)를 같이 삽입해야 하는 현상

갱신이상

  • 중복 튜플 중 일부만 변경하여 데이터의 모순이 발생하는 현상

삭제이상

  • 듀플을 삭제할 경우 삭제하지 말아야 할 데이터까지 같이 삭제되는 현상

 

정규화의 목적은 이러한 이상현상을 최소화하게 데이터베이스를 설계하는 것에 의의를 둔다.

이러한 이상현상을 최소화하기 위해서 이상현상을 일으키는 칼럼들을 분리해 서로 다른 릴레이션을 만들어 주는 것이 정규화이다. 

 

 

 

 

그렇다면 분리해야 하는 칼럼들이 무엇인지를 어떻게 알까? 바로 함수적 종속성을 고려해 판단한다.

함수적 종속성은 X → Y로 X가 Y를 결정하면 함수적으로 종속되어 있다고 말할 수 있다.

 

출처 : 함수적 종속성 (Functional Dependency) (goodgid.github.io)

위의 그림은 학번과 과목번호가 기본키이고 이 기본키가 성적이라는 속성을 결정한다. 그리고 학년이라는 속성은 학번이라는 속성에 종속되지만 과목번호라는 속성에는 종속되지 않는다. 따라서 학년은 기본키에 부분 함수 종속되어 있으며, 성적은 기본키에 완전 함수 종속되어 있다고 할 수 있다.

 

 

 

 

 

Reference

  • 데이터베이스 개론(김연희지음, 한빛아카데미출판)

'데이터베이스' 카테고리의 다른 글

DML  (0) 2023.05.31
SQL) DDL  (0) 2023.05.19
보이스/코드 정규화  (0) 2023.05.10
E-R 모델  (0) 2023.04.10
데이터 베이스  (0) 2023.04.06