DevGang
[DB-09] 정규화(Normalization) 본문
1. 이상 (anomaly)
- 이상의 정의
- 관계 모델에서는 속성들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 발생
- 데이터의 중복으로 인하여 관계 연산을 처리하기 곤란한 현상
- 이상의 종류
- 삽입 이상 - 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
- 삭제 이상 - 한 튜플을 삭제함으로써 연쇄 삭제 현상으로 인한 정보의 손실
- 갱신 이상 - 튜플에 있는 속성 값을 경신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 발생
2. 정규화
- 현실 세계를 정확하게 표현하는 관계 스키마를 설계하는 작업으로 개체, 속성, 관계성들로 릴레이션을 만드는 과정에 관한 것
- 정규화되지 못한 릴레이션의 조작 시 발생하는 이상 현상의 근본적인 원인은 여러 가지 종류의 사실들이 하나의 릴레이션에 표현되기 때문
- 정규화가 잘못되면 데이터의 불필요한 중복을 야기하여 릴레이션 조작 시 문제를 일으킴
- 함수적 종속성 등의 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
- 좋은 데이터베이스 스키마를 생성해 내고 불필요한 데이터의 중복을 방지하여 정보 검색을 용이하게 할 수 있도록 허용
- 레코드들의 관련 속성들 간의 종속성을 최소화하기 위한 구성 기법
- 정규화는 논리적 처리 및 품질에 큰 영향을 미침
- 정규형에는 제1 정규형, 제2 정규형, 제3 정규형, BCNF형, 제4 정규형, 제5 정규형 등이 있음
3. 정규화의 목적
- 가능하다면 모든 개체 간의 관계를 표현하기 위해
- 정보의 중복을 피하기(최소화) 위해
- 정보의 검색을 보다 용이하게 하기 위해
- 삽입, 삭제, 갱신 이상의 발생을 방지
- 효율적인 데이터를 조작
- 데이터 구조의 안정성 최대화
- 수정, 삭제 시 이상현상의 최소화
- 데이터 불일치 위험의 최소화
4. 정규화 과정
- 제1 정규형 - 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 릴레이션
- 제2 정규형 - 제1 정규형을 만족하면서, 키가 아닌 모든 속성이 기본 키에 완전 함수 종속인 릴레이션
- 제3 정규형 - 제2 정규형을 만족하면서, 키가 아닌 모든 속성들이 기본 키에 이행적으로 함수 종속되지 않는 릴레이션, 무손실 조인 또는 종속성 보존을 저해하지 않고도 항상 3NF 설계를 얻을 수 있음
- BCNF 정규형 - 릴레이션의 모든 결정자가 후보키인 릴레이션
- 제4 정규형 - 릴레이션에 다중치 종속(MVD, Multi Value Dependency) A->>B가 존재할 때 릴레이션의 모든 속성도 A에 함수 종속인 릴레이션
- 제5 정규형 - 릴레이션에 존재하는 모든 조인 종속이 릴레이션의 후보키를 통해서만 성립되는 릴레이션
- 함수적 종속성
- X -> Y
- X는 결정자, Y는 종속자라고 한다.
- X가 Y를 함수적으로 결정한다.
- Y가 X에 함수적으로 종속되어 있다.
- Ex) 학번(X) -> 학생 이름(Y)
- 부분 함수 종속
- 이행적 함수 종속 : A->B이고 B->C일 때 A->C를 만족하는 관계
'정보처리 > DB' 카테고리의 다른 글
[DB-11] 물리적 데이터베이스 설계 (0) | 2021.01.30 |
---|---|
[DB-10] 정보의 표현 단위 (0) | 2021.01.30 |
[DB-08] 논리적 데이터 모델 (0) | 2021.01.29 |
[DB-07] 개체-관계(E-R) 모델 (0) | 2021.01.29 |
[DB-06] 데이터 모델링 (0) | 2021.01.29 |
Comments