본문 바로가기
My Image
프로그래밍/DataBase

[DataBase] 정규화(Normalization)_제2정규형(2NF: Second Normal Form)

by Lim-Ky 2018. 10. 31.
반응형




이전 글 : 2018/10/31 - [프로그래밍/DataBase] - [DataBase] 정규화(Normalization)_제1정규형


2) 제2정규형(2NF: Second Normal Form)


제 2정규형은 제 1정규형을 만족하면서, 모든 컬럼이 완전종속관계를 가지는 것을 말한다. 

즉 후보키 k와 K에 속하지 않는 속성 A가 있을 때, A를 결정하기 위해 K의 일부가 아닌 K전체를 참조해야만 하는 경우를 말한다. 결국, 부분함수종속관계를 전부 완전함수종속 관계로 만드는 것이다!




위 그림을 보자 왼쪽에 종업원의 기술 테이블에서 후보키는 종업원, 기술이다. 즉 종업원,기술은 복합키이다. 2개가 함께 있을때 유일성이 보장된다. 종업원은 여러개의 중복된 값이 있기 때문에 단독으로 존재할 수 없는 기본키이다. 기술 또한 마찬가지다. 하지만 종업원과 기술을 함께 보면 중복되는 행은 없다!. 즉 이는 종업원과 기술이 복합키라는 뜻이다. 자 다시 돌아와서 기본키를 제외한 컬럼은 근무지이다.


*후보키, 복합키, 기본키에 대해서 잘 모른다면...아래글을 참고하세요.

2017/10/23 - [전공지식/DataBase] - [DataBase] 키(Key)의 개념 및 종류



근무지는 종업원과 기술에 의해서 값이 정해지는 것이 아니라, 종업원에 의해서도 충분히 값이 정해진다. 즉 부분적함수종속관계를 형성하고 있는 것이다. 이는 제2 정규형에 위반된다. 만약 이런경우 갱신이상 문제점을 발생시킬 여지가 있다. 예를 들어 Jones의 Typing , shorthand 에 속해있는 근무지를 갱신하고 Whittiling 에 있는 근무지를 갱신하지 않으면, Jone의 주소는 2개가 된다. 어떤 것이 원장 데이터인지 알 수 없다. 


따라서 갱신이상의 문제점을 방지하기 위해 제 2정규형으로 정규화시켜주자.

제 2정규형은 완전함수종속관계를 이뤄야한다. 따라서 이를 수정해주면 오른쪽에 있는 종업원과 종업원의 기술인 2개의 테이블로 분해할 수 있다. 종업원 테이블에 근무지는 기본키인 종업원에 의해서 결정된다. 완전함수종속관계이다. 


다음은 제 3정규형에 대해서 알아보겠다.



반응형

댓글