- 정규화
6.1 좋은 릴레이션과 나쁜 릴레이션
- 잘못된 데이터베이스 모델링
- 데이터중복
- 갱신 이상
- 삽입 이상: 레코드 추가 시 불필요한 컬럼의 값 없이는 추가하지 못하는 경우
- 삭제 이상: 삭제 시 의도하지 않았던 다른 데이터가 삭제 되는 경우
- 수정 이상: 중복 저장된 레코드를 수정 시 모두 반영이 안되어 데이터베이스의 일관성이 깨지는 경우
6.2 함수적 종속성
- 함수적 종속성
릴레이션 인스턴스를 분석하여 속성들 간의 연관 관계를 표현한 것
- 정의
임의의 릴레이션 스키마 R의 인스턴스 r(R )에 포함되는 서로 다른 두 레코드 t1, t2와 속성 집합 X와 Y에 대해
t1[X] = t2[X]일 때, t1[y] = t2[y] 이면 함수적 종속성 X → Y가 성립한다.
- 함수적 종속성 추론 규칙
- 함수적 종속성은 정규화 실행 여부에 중요한 판단기준이 되지만 릴레이션의 인스턴스만으로는 숨어 있는 함수적 종속성을 찾아내기 어려움
- 숨어 있는 함수적 종속성을 찾기 위해 추론 규칙을 사용함
- F의 클로저
- F: 릴레이션 스키마를 분석하여 찾아낸 함수적 종속성 집합
- F+: F로 유추할 수 있는 모든 함수적 종속성 집합
- 함수적 종속성
- 함수적 종속성 추론 규칙
- 재귀성 규칙 : X ⊇ Y이면, X → Y 이다
- 부가성 규칙 : X→Y이면, XZ→YZ 이다
- 이행성 규칙 : X→Y이고, Y→Z이면, X→Z이다
- 분해 규칙 : X→YZ이면, X→Y이다
- 합집합 규칙 : X→Y이고, X→Z이면, X→YZ이다
- 의사 이행성 규칙 : X→Y이고, WY→Z이면 WX→이다
- 커버
- 정의
함수적 종속성들의 집합 E가 있을 때, E가 F+에 포함되면 E의 모든 함수적 종속성이 F로부터 추론될 수 있다. 이 때 F가 E를 커버한다고 한다
- 카노니컬 커버
- F의 카노니컬 커버 Fc는 F+에 존재하는 모든 함수적 종속성을 커버할 수 있는 최소한의 함수적 종속성들로만 이루어진 집합임
- 함수적 종속성 추론 규칙으로 확장한 클로저에는 자명한 종속성과 중복된 종속성이 포함됨, 따라서 불필요한 함수적 종속성을 제거하여 정규화함
- 표준형 조건
- F의 모든 함수적 종속성의 오른편 속성은 하나임
- F에서 X → A를 X의 진부분집합 Y에 대하여 Y → A로 교체했을 때, 그 집합이 F와 동등한 집합일 수 없음
- F에서 어떤 함수적 종속성을 제거했을 때, 그 집합이 F와 동등한 집합일 수 없음
- 카노니컬 커버의 예
- 릴레이션 R의 스키마(X, Y, Z)
6.3 기본 정규형
- 정규형
- 정규화 과정에서 사용되는 중복을 최소화하는 릴레이션의 형식
- 정규형의 분류
- 정규화의 목적
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현할 수 있도록 함
- 보다 간단한 관계 연산에 기초하여 검색 알고리즘을 효과적으로 작성
- 릴레이션에 바람직하지 않은 삽입, 수정, 삭제 등의 이상이 발생하지 않도록 함
- 새로운 형태의 데이터가 삽입될 때 릴레이션을 재구성할 필요성을 줄임
'데이터베이스' 카테고리의 다른 글
08 데이터 저장과 파일 (0) | 2016.03.11 |
---|---|
07 정규화 II (0) | 2016.03.10 |
05 SQL (0) | 2016.03.09 |
04 관계형 모델 (0) | 2016.03.09 |
03 데이터베이스 모델링 (0) | 2016.03.08 |