본문 바로가기
데이터베이스 DB/서버 디비

정규화 디테일

by tovantablack 2020. 8. 17.
728x90
728x90

1정규형

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

방법) 한 튜플의 한 속성에서 여러 값을 가지지 않도록 만들어주면 된다.

ex)  밑처럼 바꾸면 제 1정규형 만족

원래 릴레이션

이름

취미들

코몽

인터넷, 운동

 정규화 후

이름

취미

코몽

인터넷

코몽

취미

 

 

 

2정규형

정의) 1정규형을 만족하고, 기본키가 아닌 속성이 기본키에 완전 함수 종속.

종속: A값만으로도 B값을 알 수 있음. 완전 종속 : A->B일 때, B A 속성 전체에만 함수 종속

(일부(부분집합)만으로도 종속관계 성립하면 불완전: (A1, A2)->B이면서 A1->B도 성립하면 불완전)

방법) 함수종속이 만족되는 부분집합을 없애버린다.

ex) (주민번호, 주소) ->이름 : 불완전       =>   2정규화   =>      주민번호->이름 : 완전

 

3정규형

정의) 2만족하고, 기본키가 아닌 속성이 기본키에 비이행적(non-transitive)으로 종속할 때(직접종속)

이행적 종속: A->B->C 일 때, A->C 성립되는 함수 종속

방법) 한 릴레이션에 묶여있는 속성들을 두 개의 릴레이션으로 나눠준다.

EX) 학생번호 -> 강좌이름 -> 수강료 (하나의 표로 묶여 있음)  = 학생번호 -> 수강료

이걸 학생번호 -> 강좌이름, 강좌이름 -> 수강료 두 개로 나눠주면 3정규화 한 거

 

BCNF 보이스코드형 정규형

정의) X->Y(함수종속)가 성립할 때, 모든 결정자 X가 후보키

방법) 기본키가 아닌 애가 기본키처럼 다른 애와 종속관계를 맺는 것을 못하게 끊어버리면 됨

EX) 특강 릴레이션의 속성은 (교수번호, 특강이름, 교수이름)이고 후보키가 (교수번호, 특강이름)일 때, 교수번호는 교수이름과, 교수이름은 특강이름과  함수종속관계가 되어버림.

=> 특강릴레이션을 R1 (교수번호, 특강이름), R2 (특강이름, 교수이름)으로 분해

 

728x90
728x90

'데이터베이스 DB > 서버 디비' 카테고리의 다른 글

쿠키 Cookie 뜻, 특징  (0) 2021.05.24
XML, HTML, JSON 차이  (0) 2021.05.24
데이터 비식별화  (0) 2020.08.16
ORM, JPA  (0) 2020.06.04
H2 connection  (0) 2020.06.04

댓글