이상(Anomaly)
데이터의 중복 때문에 삽입, 삭제, 갱신 시 데이터 불일치나 손실이 발생하는 현상
- 테이블에서 일부 속성 간의 함수적 종속 관계로 인해
데이터의 중복이 발생하고,
그 결과 데이터 조작 시 비정상적인 현상(불일치, 손실)이 발생
- 비정규화된 테이블(정규화 이전)에서 자주 발생하는 문제
이상의 종류
- 삽입 이상(Insertion Anomaly)
- 새로운 데이터를 삽입할 때 불필요한 데이터까지 입력해야 하는 현상
- ex) 새 학생 등록 시 수강 과목이 없으면 데이터를 삽입할 수 없음
- 삭제 이상(Deletion Anomaly)
- 데이터를 삭제할 때 원하지 않는 정보까지 함께 삭제되는 현상
- ex) 특정 과목 삭제 시 학생 정보까지 함께 삭제됨
- 갱신 이상(Update Anomaly)
- 데이터를 수정할 때 일부 데이터만 갱신되어 불일치가 발생하는 현상
- ex) 학생의 학과 이름이 변경되었을 때 일부 튜플만 수정되어 불일치 발생
함수적 종속(Functional Dependency)
속성 간의 논리적 종속 관계를 의미하며,
데이터베이스 정규화의 핵심 개념임
- 릴레이션 R에서 속성 집합 X와 Y가 있을 때,
X의 값이 Y의 값을 유일하게 결정하면
'Y는 X에 함수적으로 종속한다' 라고 하며 X → Y로 표기
- X : 결정자(Determinant)
- Y : 종속자(Dependent)
함수적 종속의 종류
- 완전 함수적 종속(Full Functional Dependency)
- 속성 Y가 X 전체에 종속되고, X의 진부분집합에는 종속되지 않음
- ex) (학번, 과목명) → 성적
- 부분 함수적 종속(Partial Functional Dependency)
- 속성 Y가 X 전체에 종속되지만, X의 일부분에도 종속됨
- ex) (학번, 과목명) → 교수
단, 학번 → 교수도 성립
- 이행적 함수적 종속(Transitive Functional Dependency)
- X → Y, Y → Z 일 때 X → Z도 성립하는 관계
- ex) 학번 → 학과, 학과 → 건물 → 학번 → 건물