CS
[CS / TOPCIT] 정규화와 이상현상
따봉치치
2023. 5. 8. 17:29
이상현상
- 삽입 이상 : 어떤 정보를 삽입하고자 할 때, 원하지 않는 정보까지 함께 삽입해야만 하는 현상
- 삭제 이상 : 어떤 정보를 삭제하고자 할 때, 필요한 정보까지 함께 삭제되어야 하는 현상
- 수정 이상 : 어떤 정보를 수정하고자 할 때, 동일한 내용을 여러 건의 데이터에서 반복 수정해야 하는 현상
함수 종속성
테이블 R에서 정의된 필드들의 부분집합 X, Y가 있다. 이 때 임의의 레코드 쌍 t1, t2의 X의 값이 동일하면 항상 이 두 레코드의 Y 값도 동일할 때, Y는 X에 함수적으로 종속된다, X-> Y
1. 완전 함수 종속
2. 부분 함수 종속(2FN) : X' ⊂ X이고 X' -> Y를 만족하는 속성 X'가 존재함, 릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키를 구성하는 여러 속성들의 부분집합 중 일부분에만 종속되어 있음
3. 이행함수적 종속성(3FN) : 릴레이션 R에서 속성 A -> X, X -> Y이면 A -> Y임
4. 결정자함수적 종속성(BCNF)
정규화
정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정, 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성
비정규 릴레이션 -> 원자값이 아닌 도메인 분해 -> 1NF -> 부분 함수종속 제거 -> 2NF -> 이행 함수종속 제거 -> 3NF -> 결정자가 후보키가 아닌 함수종속 제거 -> BCNF -> 함수종속이 아닌 다치종속 제거 -> 4NF -> 후보키를 통하지 않은 조인종속 제거 -> 5NF
1차 정규화
- 각 컬럼이 하나의 속성만을 가져야 함
- 하나의 컬럼은 같은 종류나 타입의 값을 가져야 함
- 각 컬럼이 유일한 이름을 가져야 함
- 컬럼의 순서는 상관없음
2차 정규화
- 제 1 정규형을 만족해야함
- 모든 칼럼이 완전 함수 종속을 만족해야함
3차 정규화
- 제 2 정규형을 만족해야함
- 기본키를 제외한 속성들 간의 이행 종속성이 없어야 함
BCNF
- 제 3 정규형을 만족해야함
- 모든 결정자가 후보키 집합에 속해야함
반정규화
정규화된 엔티티, 속성, 관계에 대해 시스템 성능 향상 및 개발과 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스
- 테이블 반정규화
- 테이블 병합
- 테이블 추가
- 테이블 분할
- 칼럼 반정규화
- 중복칼럼 추가
- 파생칼럼 추가
- 이력 테이블 칼럼 추가
- PK에 의한 컬럼 추가
- 응용시스템 오동작을 위한 컬럼추가
- 관계 반정규화
- 중복관계 추가