1. 정규화(Normalization) 개념
- 이상현상을 발생시키는 속성간의 종속성, 중복성을 제거하고 무결성을 보장하기 위해 릴레이션(Relation)을 분해하는 과정이다.
- 이상현상을 야기하는 Attribute간의 종속 관계를 제거하기 위해 릴레이션을 더 작은 릴레이션으로 무손실 분해하는 과정이다.
2. 이상현상(Anomaly) 개념
- 데이터 중복으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상을 말한다.
- 하나의 릴레이션에 두 개 이상의 속성들을 혼합하여, 즉 정규화 되지 않은 경우에 데이터 중복이 원인이 되어 발생한다.
3. 이상현상 종류
종류 | 설명 |
Update Anomaly (갱신 이상) |
• 릴레이션 R에서 특정 속성값 갱신 : 중복・저장되어 있는 속성값 중 하나만 갱신하고, 나머지는 갱신하지 않아 발생하는 데이터 불일치(data inconsistency) 현상 |
Delete Anomaly (삭제 이상) |
• 릴레이션 R에서 특정 튜플 삭제 : 원하지 않는 필요한 정보까지도 함께 삭제되는 현상 |
Insertion Anomaly (삽입 이상) |
• 릴레이션 R에서 특정 튜플 삽입 : 원하지 않는 불필요한 정보까지도 함께 삽입되는 현상 |
4. 정규화 종류
종류 | 함수 종속성 | 내용 |
1차 정규화 | 완전함수 종속성 | • 속성의 원자화 • 다중값 또는 반복되는 속성을 제거 |
2차 정규화 | 부분함수 종속성 제거 | • 1차 정규화를 만족하고 릴레이션의 기본키가 아닌 속성들이 완전함수적으로 종속할 경우 • 복합키에서 발생, 개별키에 의한 종속 발생 시 |
3차 정규화 | 이행함수 종속성 제거 | • 2NF를 만족하고 기본키 외에 속성들 간에 함수적 종속성을 가지지 않는 경우 • 일반 속성들에서 종속성이 발생 시 |
BCNF | 결정자 함수 종속성 제거 | • 릴레이션의 모든 결정자가 후보키일 경우 • 일반 속성에 의해 기본키가 종속성 발생 시 |
(4차, 5차 정규화까지 있긴 하지만, 실무적으로도 크게 중요하지 않음)
5. 함수 종속성
- 부분함수 종속성: 복합키에서만 발생할 수 있음. 과목코드를 알면 과목명도 결정된다(과목코드 → 과목명). 즉, 한 컬럼이 다른 컬럼을 결정 지을 수 있는 함수적 종속성을 말한다. → 테이블을 쪼갠다. (학번/과목)
- 이행함수 종속성: 학번에 의해서 학생이름, 학과, 학과사무실 모두 결정되는 상황(학번 → 학생이름, 학과, 학과사무실)인 가운데, 학과를 알면 학과 사무실도 결정된다. 즉, 학번→학과, 학과→학과사무실 구조로 이어지는 함수적 종속성을 말한다. → 테이블을 쪼갠다. (학생/학과)
- 결정함수 종속성: 학번과 과목에 의해서 학점과 교수가 결정되는 가운데, 교수에 의해서 과목이 결정되기도 하는 함수적 종속성을 말한다.
'Computer Science > Database' 카테고리의 다른 글
[데이터베이스 핵심 요약] 10. 인덱스(index) (0) | 2022.11.13 |
---|---|
[데이터베이스 핵심 요약] 9. 반정규화(Denormalization) (0) | 2022.11.13 |
[데이터베이스 핵심 요약] 7. 데이터 무결성 (Data Integrity) (0) | 2022.11.12 |
[데이터베이스 핵심 요약] 6. NoSQL (0) | 2022.11.12 |
[데이터베이스 핵심 요약] 5. JOIN 문 (0) | 2022.11.12 |