⇒ 정규화를 통한 데이터 중복 최소화, 데이터 이상현상 방지, 무결성 및 일관성 유지
논리적 모델의 주요 고려사항
키(Key)의 종류와 특징
키(Key)의 상호 관계
함수적 종속성이란?
데이터들이 결정자와 종속자의 관계로 상호 종속되는 관계
➜ X → Y: 결정자인 X가 종속자인 Y를 결정
➜ 한 릴레이션(R)의 X → Y인 관계에서 X가 기본키가 아닐 경우 이상현상이 발생할 수 있음
종류 | 설명 |
---|---|
완전함수 종속성 | (X,Y) → Z일때, X→Z가 아니고 Y→Z가 아니면 Z는 완전함수 종속 |
부분함수 종속성 | (X,Y)→Z일때, X→Z이거나 Y→Z인 경우 |
이행함수 종속성 | X→Y, X→Z 인 상황에서 Y→Z를 만족하는 경우 |
이상현상(Anomaly)이란?
데이터의 중복성으로 인해 릴레이션을 조작 시 발생하는 비합리적인 현상
➜ 중복된 속성, 속성 간에 종속하는 다양한 종속관계에 따라 발생하는 문제
종류 | 특징 |
---|---|
갱신 이상 | 릴레이션에서 특정 속성값을 갱신할 경우 중복 저장된 속성값 중 하나만 변경되어, 데이터간 불일치가 발생하는 문제 |
삭제 이상 | 릴레이션에서 특정 튜플을 삭제할 경우 보유하고자 하는 정보까지도 삭제되는 현상 |
삽입 이상 | 릴레이션에 특정 튜플을 삽입하고자 할 경우 원하지 않는 (불필요한) 정보까지도 추가해야 하는 현상 |
이상현상의 사례
정규화(Normalization)란?
- 이상현상(Anomaly)을 해결하기 위해 중복을 최소화 하면서 무손실 분해하는 과정
- 함수적 종속성을 참고하여 기본적으로 하나의 종속성이 하나의 릴레이션으로 표현되도록 분해하는 과정
➜ 정규형: 정규화로 도출된 데이터 모델이 갖추어야 할 특성
정규화의 특징
➜ 정보의 무손실, 데이터 중복 최소화, 분리의 원칙
※ 조인(Join)을 위한 정보 구성 및 활용 시 성능 저하
종류 | 특징 |
---|---|
1차 정규화 | - 속성의 원자값 확보(Atomic Value) - 반복되는 속성 제거, 다중값 속성의 분리 |
2차 정규화 | - 부분함수 종속성 제거 - 릴레이션 R이 1NF이고, 릴레이션의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속 |
3차 정규화 | - 이행함수 종속성 제거 - 릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성의 관계를 가지지 않음 - 기본키 외의 속성들 간에 함수적 종속적을 가지지 않는 경우 |
기타 | - BCNF, 4차 정규화, 5차 정규화 |
1차 정규화의 예: atomic 하게 적용하기
2차 정규화의 예: 부분 종속성 제거하기
3차 정규화의 예: 이행적 종속성 제거하기
반정규화(Denormalization)란?
정규화 이후 조회(질의) 성능 향상을 위하여, 일부 데이터의 중복을 허용하거나 테이블의 구조를 변경하는 작업
반정규화의 절차