Database
DB 정규화
캥거루 남편
2014. 12. 10. 11:01
- 정규화란?
- 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
- 제 1, 2, 3, BCNF, 4, 5 정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약조건이 늘어남.
- 데이터베이스의 논리적 설계 단계에서 수행
- 논리적 처리 및 품질에 큰 영향을 미침
- 목적
- 데이터 구조의 안정성을 최대화.
- 어떠한 릴레이션이라도 데이터 베이스 내에서 표현 가능하게 만듬.
- 효과적인 검색 알고리즘을 생성 할 수 있음.
- 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지
- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
- Anomaly(이상)의 개념 및 종류
- 개념 : 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조직 시 예기치 못한 곤란한 현상이 발생
- 종류 :
- 삽입 이상(Insertion Anomaly) : 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상(Deletion Anomaly) : 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상
- 갱신 이상(Update Anomaly) : 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)이 생기는 현상
- 정규화 과정
- 제 1정규형 (1NF) : 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 릴레이션
- 제 2정규형 (2NF) : 릴레이션 R이 1NF이고, 키가 아닌 모든 속성이 키본키에 대하여 완전 합수적 종속 관계를 만족함
- 제 3정규형 (3NF) : 릴레이션 R이 2NF이고, 키가 아닌 모든 애트리뷰트가 기본키에 대해 이행적 종속 관계를 이루지 않도록 제한한 관계형
- Boyce-Codd 정규형 (BCNF) :
- 릴레이션 R에서 결정자가 모두 후보키인 관계형
- 3NF에서 후보키가 많고 서로 중첩되는 경우에 적용하는, 강한 제 3규형이라고도 함
- 키가 아닌 모든 속성은 각 키에 대하여 완전 종속해야 하고, 키가 아닌 모든 속성은 그 자신이 부분적으로 들어가 있지 않은 모든 키에 대하여 완전 종속해야 함
- 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없음
- 제 4정규형 (4NF) : 릴레이션 A -> B가 성립하는 경우 R의 모든 속성이 A에 함수적 종속이면 이 릴레이션 R은 제 4정규형에 속함
- 제 5정규현(5NF / PJ / NF) : 릴레이션 ㄲ의 모든 조인 종속성(JD)의 만속이 R의 후보키를 통해서만 만족 될 때 그 릴레이션은 R은 제 5정규형 또는 PJ / NF에 속함
※ 완전 함수적 종속성 (완전 종속) : 복합키 모두가 함수적 종속성을 가지는 것
부분 함수적 중속성 (부분 종속) : 복합키 중 하나가 함수적 종속성을 가지는 것
이행적 함수적 종속성 : A->B 이고 B->C 이면 A->C
※ 정규형 과정 정리
- 출처 : http://blog.naver.com/seong1731/220166773381