7. 데이터 종속성과 정규화(4-1)
1. 수정 이상
정규화의 의미
정규화(normalization)
- 자료 저장 공간을 최소화하고 데이터베이스 내의 데이터가
불일치 되는 위험을 최소화하여 좋은 데이터베이스 스키마를 설계하는 것을 목적
데이터베이스 스키마가 잘못 설계된 경우
- 100번 학생이 전자계산기구조와 운영체제라는 두 과목을 신청하였기에 이 학생의 이름은 두 번 저장되는
문제점 발생
- 중복된 데이터의 저장으로 인해 저장 공간이 낭비된다는 문제점 이외에도 중복되어 저장된 데이터 때문에
릴레이션의 수정, 삽입, 삭제와 같은 조작을 할 때 여러 가지 곤란한 이상(anomaly) 현상이 생김
수정 이상
- 중복 데이터 중에서 일부만 갱신되어 정보의 모순이 발생하는 것
2. 삽입 이상, 삭제 이상
삽입 이상
- 불필요한 정보를 함께 저장하지 않음
- 어떤 정보를 저장하는 것이 불가능하기에 원하지 않는 정보를 강제로 삽입해야 하는 것
삭제 이상
- 유용한 정보를 함께 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능한 것
정규화(normalization)
- 갱신 이상이 생기지 않도록 불필요한 데이터가 중복되어 저장되지
않게 방지하여 바람직한 릴레이션 스키마로 만들어 가는 과정
정규화의 목적
- 반복적인 자료를 제거하여 다음과 같은 상태를 만들기 위한 것
1. 어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것
2. 관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 함
3. 새로운 형태의 데이터가 삽입될 때 관계를 재구성할 필요성을 줄일 수 있음
4. 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 할 수 있음
3. 함수 종속
함수적 종속 정의
- X → Y
결정자(determinant)
- 주어진 릴레이션에서 다른 속성(또는 속성들의 집합)을 고유하게 결정하는 하나 이상의 속성
함수적 종속의 성질
- 완전 함수 종속(FFD: Full Functional Dependency)
- 부분 함수 종속(PFD: Partial Functional Dependency)
함수 종속 다이어그램
- 릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서는
이를 도식적으로 표현