본문 바로가기

Programming

정규화

이상현상 ( 異狀 )

* 삭제이상 - 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상이다.
* 삽입이상 - 투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 현상이다.
* 수정이상 - 투플 수정시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상이다.

정규화 ( Normalization )

이상현상을 해결하기 위해 잘못 설계된 테이블을 수정하여 정상으로 만드는 과정이다.


함수 종속성

릴레이션의 각 속성 사이에는 의존성이 존재한다. 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계를 '속성 B는 속성 A에 종속한다' 혹은 ' 속성 A는 속성 B를 결정한다'라고 한다. 
이는 A -> B 로 표기하며, 이때 A는 B의 결정자이다.

※ 기본키는 릴레이션의 모든 속성에 대해 결정자다.


제 1 정규형(1NF)

 릴레이션의 모든 속성 값이 원자값을 가지면 제 1 정규형이라고 한다. 

모든 속성이 원자 값이 되게하고, 반복되는 그룹을 제거하면 된다.


제 2 정규형(2NF)

릴레이션이 제 1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때 제 2 정규형이라 한다. 

기본키가 복합키일 경우, 부분 함수 종속이 존재 시 이를 분리한다. 

부분 함수 종속 -   A -> B 종속성에서 A의 속성 일부를 제거해도 종속성이 여전히 성립하는 경우이다.
완전 함수 종속 -   A -> B 종속성에서 B가 A의 속성 전체에 함수 종속하고, 부분 집합 속성에 함수
                     종속을 하지 않을 경우


제 3 정규형(3NF)

  릴레이션이 제 2정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할 때(직접 종속)
제 3 정규형이라 한다. 이행적 종속은 A -> B , B -> C가 성립할 때 A->C가 성립되는 함수 종속성이다.

이행 함수 종속을 제거한다. ( 기본키가 아닌 것에 종속하는지 여부를 확인한다. )


BCNF 

 릴레이션에서 함수 종속성 X -> Y가 성립할 때 모든 결정자 X가 후보키이면 BCNF 정규형이라고 한다.

대부분의 릴레이션은 BCNF까지 정규화를 진행하면 이상현상이 없어진다. 따라서 보통은 BCNF까지만
정규화를 진행한다.


제 4 정규형

다치종속성을 가진 릴레이션에 관한 내용이다.


제 5 정규형

조인 종속성을 가진 릴레이션에 관한 내용이다.


'Programming' 카테고리의 다른 글

트랜잭션  (0) 2015.02.15
Unity 용어정리  (0) 2015.02.10
데이터 모델링  (0) 2015.02.07
프로시저, 트리거, 사용자 정의 함수  (0) 2015.02.07
뷰(View)  (0) 2015.02.05