티스토리 뷰

2013-spring/Database

정규화

수겸 2013. 6. 22. 23:23

DB 7장 정규화


이상(anomaly)

학번,과목번호,성적,학년 (기본키 : 학번,과목번호)릴레이션에서

삭제이상 : 과목번호를 삭제하면,  기본키가 없어지므로, 전체 튜플을 지워야 하는데, 이렇게 되면, 3학년 이라는 정보까지 함께 사라진다. 이 튜플이 3학년이라는 정보를 가진 유일한 튜플이기 때문에안된다. 삭제시 튜플을 삭제함으로서 유지해야할 정보도 삭제되는 현상을 연쇄삭제 라 하고, 이 현상으로 정보손실이 발생하는데 이를 삭제이상 이라고 한다.


삽입이상 : 삽입시에 전입한 학번600, 3학년 이라는 정보만을 삽입하려 하는데, 과목번호가 기본키 이므로, 과목번호가 없이는 추가가 불가능 하다. 데이터를 삽입할때 불필요한 데이터를 함께 삽입해야만 삽입이 되는 현상을 삽입 이상이라고 한다.

갱신이상 : 학번이 400인 학생의 튜플이 4개가 있다. 이 학생의 학년을 4에서 3으로 변경하려 하는데, 튜플 4개를모두 갱신해야 한다. 그러나, 모두 갱신하지 않고 일부 튜플만 갱신하게 되는 경우 3,4학년 두개 값이 되므로 일관성이 없어진다. 일부 애튜리뷰트 값만 갱신하여 모순성이 생기는 현상을 갱신 이상.

정규화 : 애튜리뷰트들간의 종속성을 분석해 하나의 릴레이션엔 하나의 종속성이 표현되도록 분해하는 과정을 정규화 라고 한다.

함수종속(Funtional Dependency)
X -> Y  : Y는 X에 함수종속 이라 한다. 
예 : (학번,과목) -> 성적
모든 애트리뷰트는 기본키 후보키에 대해 함수종속이어야 한다.
X는 결정자, Y는 종속자

완전함수종속(FULL FD)
X1 -> Y, (X1,X2)->Z
부분함수종속은 
(X1,X2) -> Y

제1정규형 : 릴레이션의 모든 도메인은 원자값 이어야 한다.
삽입이상, 삭제이상, 갱신이상 발생가능.
1정규형이 anomaly인 이유 : 부분함수종속때문에.
해결을 위해 부분함수종속을 제거해 릴레이션을 나눠야 한다.

제2정규형 : 기본키가 아닌 애트리뷰트들이 모두 기본키에 완전함수종속일 것.
이행적함수종속관계 로 anomaly문제 발생가능.
A->B B->C 가 성립하면 C는 A에대해 이행적 함수종속 관계
1정규형 ->프로젝션 -> 2정규형
2정규형 -> 조인 -> 1정규형
해결을 위해 이행적 함수종속관계를 제거해야한다.

제3정규형 : 모든 애트리뷰트들이 기본키에 대해 이행적함수종속관계가 아니어야 한다. 
X->Y, Y->Z 의 관계를 볼때, Y는 후보키가 아니다.
만약 이러한 관계에서 Y가 후보키라면, 이는 이행적함수종속관계가 아니다.


정규화는 검색할때, 릴레이션을 조인 해야 해서 좋진 않지만, 갱신이 자주 발생한다면 쪼개 놓는게 좋다.
anomaly 현상은 검색이 아니라, 삽입,삭제,갱신시 발생한다.

3정규형은 후보키가 많을 경우 적용불가
후보키가 여러 애트리뷰트 일 경우 적용불가
후보키의 애트리뷰트들이 오버랩 되면 적용불가

*3정규형에서  take course{(sno,cno),professor}
에서, sno->pro->cno 
pro가 cno에 대해 결정자 이지만, 후보키가 아니기 때문에 이러한 이상이 발생함(삽입,갱신,삭제)

BCNF : BCNF에 속하는 릴레이션은 모두 3정규형에 속함. 
X->A 종속관계일 때, 결정자(X)가 모두 후보키 이다.

enrollprof(sno, professor) 기본키 :sno,professor
cprof(professor,cname) 기본키 : professor
professor는 후보키이며, cprof의 기본키이며, 결정자이다.

'2013-spring > Database' 카테고리의 다른 글

질의 최적화  (0) 2013.06.22
DB Internat Operation (2)  (0) 2013.06.22
DB Internal Operation (1)  (0) 2013.06.22
데이터모델링  (0) 2013.06.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함