IT/Database

정규화

또닝 2017. 5. 23. 11:04

정규화

데이터베이스의 중복을 최소화하고 효율적으로 데이터를 저장하여 이상현상을 해결할 수 있는 작은 논리적 구조로 바꾸는 과정

* 정규화가 되지 않은 논리적 구조로 구축된 데이터베이스의 연산 시에 발생하는 문제점

삭제이상 : 한 개의 튜플을 삭제할 경우, 유지해야 하는 정보의 손실이 일어나는 현상

삽입이상 : 정보를 테이블에 삽입할 때 불필요한 정보까지 삽입해야 하는 경우

갱신이상 : 중복된 튜플들 중 일부만 갱신하여 정보의 불일치가 발생하는 현상


정규화의 목적

1. 중복을 배제하여 삽입, 삭제, 갱인 이상의 발생을 방지한다.

2. 간단한 관계 연산에 기초하여 검색을 효율적으로 할 수 있다.

3. 데이터가 삽입될 때 릴레이션을 재구성할 필요성을 줄일 수 있다.

4. 어떠한 릴레이션이라도 데이터베이스 내에서 표현이 가능하게 만든다.

5. 데이터 구조의 안정성을 최대화한다.


제 1 정규형 (1NF)

어떤 릴레이션 R에 속한 모든 도메인이 원자값으로만 되어 있다면 제 1 정규형에 속한다.


제 2 정규형 (2NF)

어떤 릴레이션 R이 1NF이고 기본키에 속하지 않은 애트리뷰트 모두가 기본 키에 완전 함수 종속이면 제 2 정규형에 속한다. 

부분함수 종속을 제거하기 위한 정규화 과정이다.


제 3 정규형 (3NF)

어떤 릴레이션 R이 2NF이고 기본키에 속하지 않은 애트리뷰트들이 기본키에 이행적 함수 종속이 아닐때 제 3 정규형에 속한다.


BCNF(보이스/코드 정규형)

릴레이션 R의 결정자가 모두 후보키이면 릴레이션 R은 BCNF에 속한다.

모든 결정자가 후보키가 되도록 한다.

* 결정자 : 주어진 릴레이션에서 다른 애트리뷰트를 고유하게 결정하는 하나 이상의 애트리뷰트


제 4 정규형 (4NF)

릴레이션 R에 다치종속(MVD)을 만족하는 애트리뷰트 부분집합이 존재할 때


제 5 정규형 (5NF)

릴레이션 R에 존재하는 모든 조인 종속이 릴레이션 R의 후보키를 통해서만 만족되면 릴레이션 R은 제 5 정규형에 속한다.


* 함수적 종속성

어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우, 애트리뷰트 X의 값 각각에 대해서 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속적이라고 하며, X->Y로 표현한다.


1. 이행적 함수 종속 : A->B 이고 B->C 일 때 A->C를 만족하는 관계

2. 완전 함수적 종속 : 임의의 릴레이션 R에서 속성 또는 속성들의 집합 X에 대해 Y가 함수적으로 종속되면서, X의 부분 집합에 대하여서는 함수적으로 종속하지 않은 경우, Y는 X에 대하여 완전 함수적 종속성을 갖는다고 한다.

3. 다치 종속 : A, B, C 3개의 속성을 가진 릴레이션 R에서 복합 속성 (A, C)에 대응되는 B의 집합이 A에만 종속되고 C에는 독립적이면 B는 A에 다치 종속이라고 하고 A->>B로 표현한다.