정규화
정규화
- 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 과정
- 종속성의 유형에따라 등급을 구분 가능하다
- 릴레이션은 정규형 개념으로 구분하며 정규형이 높을수록 이상현상이 줄어든다
제1정규형
- 릴레이션의 R의 모든 속성 값(도메인원자값)이 원자값을 가지면 제 1 정규형
- 취미들의 속성값을 모두 원자값으로 바꿈
- 비정규형 → 1정규형
제2정규형
- R이 제 1정규형이고 기본키가 아닌 속성이 기본키에 완전함수 종속일때 2정규형이라고함
- 후보키가 복합키(다중칼럼)로 설정되어 있을 때 복합키의 일부칼럼에 다른칼럼들이 결정되어서는 안된다는 뜻
완전함수종속
- A와 B가 릴레이션R의 속성이고 A→B 종속성이 성립할 때 B가 A의 속성 전체에 함수종속하고 부분집합 속성에 함수종속하지 않을경우 완전함수종속이라고함
- 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우를 완전함수 종속이라고 한다.
기본키 전체에 대해 성적이 결정 → 완전함수종속
기본키 하나값에 의해 강의실 결정 → 부분함수종속
삽입이상 - 강좌 넣었는데 학생번호는 없음
삭제이상 - 402번 자퇴시 스포츠경영학 DATA 사라짐
수정이상(갱신이상) - 501번 강의실 바뀌면 밑에정보랑 다름
특정값이 기본키에 의해서만 값이정해지는게 아니면 2정규화 안지킨거
제 3 정규형
- R이 제 2 정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할때 제 3정규형 이라고 한다.
- 기본키 이외의 속성이 그 외 다른 속성을 결정할 수 없는 것
- 모든 속성이 기본 키에만 의존하며 , 다른 후보 키에 의존하지 않는다.
이행적 종속
- A→B B→C 성립할때 A→C 성립되는 함수 종속성
BCNF
- 릴레이션 R에서 함수 종속성 X→Y가 성립할 때 모든 결정자 X가 후보키이면 BCNF 정규형 이라고 한다.
- 일반컬럼이 후보키를 결정하는 부분
담당교수는 결정자에 속하지만 후보키가 아니다. 후보키는 (학번, 과목명),(학번,담당교수)가 된다.
모든 결정자를 항상 후보키가 되도록 릴레이션을 분해해주면 강한 제3정규형 BCNF를 만족시킨다.
릴레이션 R을 R1과 R2로 분해할 때, R1 조인 R2 = R이면 무손실 분해, 아니면 손실 분해
공통속성이 KEY 이면 된다.
분해2의 방식으로 하면 부정튜플이 생긴다. (원래 존재하지 않던 것)
정규화 - 릴레이션이 분할
질의시 조인연산 → 성능저하 → 역정규화(정규화 통해 분리되었던 릴레이션 에서 발생하는 성능저하를 해결하기 위해 릴레이션을 통합)
비정규 릴레이션 → 속성 원자값 → 완전 함수 종속 → 이행함수종속제거 → 모든 결정자는 후보키
'Database' 카테고리의 다른 글
[Database] 동시성 제어 (1) | 2023.02.17 |
---|---|
[Database] 회복 (0) | 2023.02.16 |
[Database] 함수 종속성 (0) | 2023.02.12 |
[Database] 이상현상 (0) | 2023.02.11 |
[Database] 관계와 관계타입 (0) | 2023.02.10 |