본문 바로가기

데이터베이스

데이터베이스 정규형

  정규형 (Normal Form)

릴레이션이 정규화된 정도로, 정규화 과정을 거친 결과물이다.

각 정규형마다 제약조건이 존재한다. 정규형의 차수가 높아질수록 요구되는 제약조건이 많아지고 엄격해진다

릴레이션 특성을 고려 적합한 정규형 선택하여야 한다.


  정규형 과정

▶ 제 1 정규형 ( 1NF - First Normal Form )

반복 그룹 속성을 제거한다. 개체에 존재하는 속성들 중에서 반복되는 속성들을 하위 개체로 도출한다.

릴레이션의 모든 속성이 더는 분해되지 않는 원자값만 가지면 제 1 정규형을 만족한다.

과목명과 성적에 두가지 이상의 정보가 들어갔다. 이러한 정보를 데이터베이스에서 다루기 좋지 않다.

기본키로 식별이 가능하여야 하는데 기본키(학번, 과목명 중 과목명) 안에 식별 가능한 정보가 따로 있기 때문이다.

 

☞ 1NF이상 현상의 발생 이유
기본키에 완전 함수 종속되지 못하고 기본키의 일부분에 종속되는 경우.
문제 해결 방법 -> 부분 함수 종속이 되도록 릴레이션 분해를 거친다. 분해 된 후는 제 2 정규형에 속하게 된다.

 

 

▶ 제 2 정규형 ( 2NF - Second Normal Form )

주 식별자 전체에 완전 기능 종속되지 않는 속성을 제거한다. 주 식별자 속성 일부에만 함수적 종속되는 소겅들을 상위 개체로 도출한다. 즉, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이 되면 제 2 정규형을 만족한다.

 

위 수강 테이블에서 기본키는 학번과 과목명 이다. 학번과 이름은 완전 종속 관계라고 볼 수 있지만, 학번과 과목명은 이름에이라는 속성에 완전 종속되지 않는다. 그렇기 때문에 테이블을 분해하는 과정이 필요하다.

 

 

▶ 제 3 정규형 ( 3NF - Third Normar Form )

주 식별자에 이행 종속되는 속성을 제거한다. 주 식별자를 제외한 일반 속성들 중에서 함수적 종속 속성들을 상위 개체로 도출한다. 즉, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않으면 제 3 정규형을 만족한다.

 

함수의 종속성에서 보았을 때 X→Y X→Z 형태로 분리가 가능하다.

 

일반적으로 제 3 정규형이나 보이스/코드 정규형에 속하도록 릴레이션을 분해하여 데이터 중복을 줄이고 이상 현상을 해결하는 경우가 많다.

 

▶ 보이스/코드 정규형 ( BCNF ) - 강한 제 3 정규형

하나의 릴레이션에 여러 개의 후보키가 존재하는 경우, 제 3 정규형까지 모두 만족해도 이상 현상이 발생할 수 있음.

교수명이 다르지만 같은 과목명이 존재 할 수 있다. 강승범, 전혜영의 운영체제 과목. 이런경우 과목명을 식별자로 하기엔 부적절하다. 

교수명이 과목명을 가르킬 수 있다. X→Y→Z 교수명은 후보키가 아닌 결정자가 된다.

 

 

제 4 정규형 ( 4NF  )

릴레이션이 보이스/코드 정규형을 만족하면서, 함수 종속이 아닌 다치 종속을 제거하면 제 4 정규형

 

 

제 5 정규형 ( 5NF  )

릴레이션이 제 4 정규형을 만족하면서, 후보키를 통하지 않는 조인 종속을 제거하면 제 5 정규형에 속함.

모든 릴레이션이 제 5 정규형에 속해야만 바람직한 것은 아님

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

Stored Program  (0) 2020.04.13
View(뷰)  (0) 2020.04.06
데이터베이스 정규화  (0) 2020.04.06
데이터베이스 설계  (0) 2020.04.06
키(key), 무결성 제약조건  (0) 2020.04.06