“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”- Jef Raskin
맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도
실무데이터베이스 네번째 |
관계형 데이터베이스 "설계" - 정규화(NORMALIZATION)
설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스
정규형 7가지 |
1NF |
2NF |
3NF |
BCNF |
4NF |
5NF |
6NF |
제 1 정규형 ( 1NF : First Normal Form )
릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성되어 있으면 "제 1 정규형"에 속한다.
제 2 정규형 ( 2NF : Second Normal Form )
"제 1 정규형"에 속하면서, '기본키'가 아닌 모든 속성이 '기본키'에 '완전 함수 종속'되는 것
제 3 정규형 ( 3NF : Third Normal Form )
"제 2 정규형"에 속하면서, '기본키'가 아닌 모든 속성이 '기본키'에 '이행적 함수 종속'이 되지 않는 것
데이터베이스를 잘못 설계하면, 불필요한 데이터 중복으로 인한 공간낭비을 넘어 부작용[이상(ANOMALY)]을 초래 할 수 있다.
삽입이상 (Insertion Anomaly)
- 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
갱신이상 (Update Anomaly)
- 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
삭제이상 (Deletion Anomaly)
- 투플을 삭제하면 꼭 필요한 데이터까지
함수적 종속성 (FD : Functional Dependency)
X -> Y [ 정규화 이론 '핵심' ]
X : 결정자, Y : 종속자
" X가 Y를 함수적으로 결정한다.
부분 함수적 종속 (PFD : Partial Functional Dependency)
'속성집합 Y'가 '속성집합 X'의 전체가 아닌 일부분에도 함수적으로 "종속됨"
완전 함수적 종속 (FFD : Full Functional Dependency)
'속성집합 Y'가 '속성집합 X' 전체에 대해서만 함수적으로 "종속"
참고 한 블로그 : YABOONG