정규화(Normalization)
정규화: 관계형 모델에서 논리 스키마를 효과적으로 모델링하는 데 이용되는 기법
릴레이션의 정규형을 분석하여, 해당 릴레이션의 스키마가 실세계를 얼마나 효율적으로 반영하는지 평가할 수 있다.
정규화를 통해 생성된 릴레이션 스키마는 갱신 이상의 발생가능성을 최소화할 수 있다.
갱신 이상의 종류
- 삽입 이상: 필수적인 컬럼값만으로 새 레코드를 삽입하지 못하는 경우
- 삭제 이상: 삭제 시 의도하지 않은 데이터가 삭제되는 경우
- 수정 이상: 레코드들이 중복되어 데이터 일관성을 유지할 수 없는 경우
함수적 종속성
함수적 종속성: 속성들 간의 연관관계를 표현한 것
속성 A가 속성 B에 의해 결정될 때, 속성 A를 종속자(dependent)라 하고, 속성B를 결정자(determinant)라 한다.
A → B
속성 집합 Y가 속성 집합 X의 일부분에 의해 함수적으로 종속된 상태를 부분 함수적 종속이라 한다.
속성 집합 Y가 속성 집합 X의 전체에 의해 함수적으로 종속된 상태를 완전 함수적 종속이라 한다.
릴레이션 R의 함수적 종속성 집합을 F라고 할 때,
F로부터 유추 가능한 모든 함수적 종속성 집합을 F의 클로저라 부르고, F+로 표기한다.
어떤 함수적 종속성 집합 E가 F+에 포함되면 F가 E를 커버한다고 한다.
F+에 존재하는 모든 함수적 종속성을 커버할 수 있는 최소한의 함수적 종속성 집합을 캐노니컬 커버라고 한다.
암스트롱 추론 규칙
1. 재귀성 규칙: X⊇Y ⇒ X→Y
2. 부가성 규칙: X→Y ⇒ XZ→YZ
3. 이행성 규칙: X→Y, Y→Z ⇒ X→Z
유도된 규칙
4. 분해 규칙: X→YZ ⇒ X→Y
5. 합집합 규칙: X→Y, X→Z ⇒ X→YZ
6. 의사 이행성 규칙: X→Y, WY→Z ⇒ WX→Z
기본 정규형
제1정규형: 릴레이션 스키마에서 정의된 모든 속성의 도메인이 원자값을 갖는 상태
제2정규형: 릴레이션이 제1정규형을 만족하고, 기본키가 아닌 속성들이 기본키에 완전 함수 종속되는 상태
제3정규형: 릴레이션이 제2정규형을 만족하고, 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속되지 않는 상태
BC(Boyce-Codd)정규형: 릴레이션이 제3정규형을 만족하고, 릴레이션에서 성립하는 모든 X→Y 형태의 함수적 종속성에 대해 X가 수퍼키인 상태
역정규화
역정규화: 정규화를 통해 분리된 릴레이션을 통합하여 데이터의 부분적 중복을 허용하지만, 데이터 접근 성능을 개선하는 기법
역정규화 방법
- 릴레이션 병합
- 릴레이션 수직 분할
- 릴레이션 수평 분할
- 유도 속성 추가