정규화의 개요
- 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.
- 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있으며, 차수가 높아질 수록 만족시켜야 할 제약 조건이 늘어난다.
- 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.
- 정규화는 논리적 처리 및 품질에 큰 영향을 미친다.
정규화의 목적
- 데이터 구조의 안정성을 최대화한다.
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
- 효과적인 검색 알고리즘을 생성할 수 있다.
- 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
31.Anomaly(이상)의 개념 및 종류
이상(Anomaly)의 개념
- 정규화(Normalization)를 거치지 않은 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 예기치 못한 곤란한 현상이다.
- 애트리뷰트들 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현하기 때문에 이상이 발생한다.
이상의 종류
1. 삽입 이상(Insertion Anomaly) :
릴레이션에 데이터를 삽입할 때 의도와는 관계없이 원하지 않는 값들도 함께 삽입되는 현상
2. 삭제 이상(Deletion Anomaly) :
릴레이션에서 한 튜플을 삭제할 때 의도와는 관계없는 값들도 함께 삭제되는 연쇄 삭제 현상
3. 갱신 이상(Update Anomaly) :
릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
32. 정규화 과정
비정규 릴레이션 |
↓ 도메인이 원자값
1NF |
↓ 부분적 함수 종속 제거
2NF |
↓ 이행적 함수 종속 제거 / 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.
3NF |
↓ 결정자이면서 후보키가 아닌 것 제거
BCNF |
↓ 다치 종속 제거
4NF |
↓ 조인 종속성 이용
5NF |
* 정규화 단계 암기 요령
정규화라는 출소자가 말했다.
두부이겨다줘 = 도부이결다조
도메인이 원자값
부분적 함수 종속 제거
이행적 함수 종속제거 / 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.
결정자이면서 후보키가 아닌 것 제거
다치 종속 제거
조인 종속성 이용
함수적 종속 관계 :
어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우, 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속적이라고 하며, X→Y 와 같이 표현한다.
예) <수강> 릴레이션이 (학번, 이름, 과목명)으로 되어 있을 때, '학번'이 결정되면 '과목명'에 상관없이 '학번'에는 항상 같은 이름이 대응된다. '학번'에 따라 '이름'이 결정될 때 '이름'을 '학번'에 함수 종속적이라고 하며 '학번 →이름' 과 같이 표기한다.
이행적 종속 관계 :
A→B 이고 B→C일때
A→C를 만족하는 관계이다.
Q. 정규화 과정 중 1NF에서 2NF가 되기 위한 조건은?
답 : 1NF를 만족하고 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.
'전공공부 > 데이터베이스' 카테고리의 다른 글
트리 전위, 중위, 후위 순회 (0) | 2020.02.15 |
---|---|
54. 트리(Tree) (0) | 2020.02.13 |
51. 스택의 삽입(Push)과 삭제(Pop) (0) | 2020.02.12 |
50. 스택(Stack) (0) | 2020.02.12 |
39. 트랜잭션의 정의 ~ 44. 병행 제어(Concurrency Control) (0) | 2020.02.12 |
댓글