데이터베이스

데이터베이스의 정규화(normalization)에 대해 알아보겠습니다.

forward error correction Circle 2022. 12. 3. 20:57
반응형

데이터베이스의 정규화(normalization)에 대해 알아보겠습니다.

1. 정규화 (normalization)

- 정규화를 하는 목적은 데이터의 중복을 방지하고 보다 효율적으로 데이터를 저장하기 위함.

- 릴레이션 분리, 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것

- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함

- 데이터 삽입 시 릴레이션을 재구성할 필요성 감소

1) 제1정규화(1NF)

: 반복 되는 속성을 제거한 뒤 모든 속성이 원자 도메인 만으로 되어 있는 정규형

 

1NF를 만족하지 않는 릴레이션

교육과정
수강생1
수강생2
수강생3
웹 해킹
고길동
또치
둘리
웹 보안
둘리
마이클
또치
웹 프로그래밍
도우너
둘리
마이클

* 제1정규형에 위배되는 테이블 (중복 발생→공간 낭비, 이상 발생→무결성 위배 가능)

* 유사한 속성이 중복, 반복되는 경우도 정규화의 대상이 됩니다.

1NF를 만족하는 릴레이션

수강번호
교육과정
수강생
1
웹 해킹
고길동
2
웹 보안
둘리
3
웹 프로그래밍
도우너
4
웹 해킹
또치
5
웹 보안
마이클

가장 간단한 것은 원자값으로 분해해 튜플로 구분하고 다른 키를 추가하는 것입니다.

실제로 복잡한 테이블은 이렇게 단순하게 분해해버리면 다른 중복 문제들이 많이 생겨 테이블 구조를 고려해야함.

2) 제2정규화(2NF)

: 제1정규형이 된 상태에서 부분함수적 종속을 제거하여 완전(충분 한) 함수적 종속을 만족하는 정규형.

수강번호
교육과정
수강생
담당교수
1
웹 해킹
고길동
김교수
2
웹 보안
둘리
이교수
3
웹 프로그래밍
도우너
박교수
4
웹 해킹
또치
이교수
5
웹 보안
마이클
김교수

3) 제3정규화(3NF)

: 제2정규형이 된 상태에서 이행적 함수적 종속 관계 제거하여 비 이행적 함수적 종속 관계를 만족하는 정규형

 

4) BCNF (Boyce/Codd Normal Form)

: 제3정규형이고, 결정자가 후보키가 아닌 함수 종속 제 거 모든 결정자가 후보키이어야 한다는 것

5)제4정규화(4NF)

: 다치 종속 제거

- 함수적 종속 : 임직원 -> 사번

(1:1 로 대응해야 하므로 하나의 아이디 값이 2개이상의 주민번호 속성을 결정하면 안됨)

-다치 종속 : 교육생 ID -> 수강과목

(1:다 대응으로 생각. 릴레이션에서 아이디 속성이 있고, 수강과목 속성이 있다면 하나의 아이디는 여러개 과목을 수강할 수 있으므로 아이디와 수강과목 속성은 함수적 종 속에서 다치 종속. 이런 다치 종속은 이상이 발생할 수 있으므로 무손실 분해(정규화)되어야 합니다. 이것을 4정 규형이라고 합니다.)

6) 제5정규형 (5NF). : 후보키를 통하지 않은 조인종속(JD) 제거

- 조인 종속 : 릴레이션이 그의 어떤 프로젝션들을 조인 한 결과와 똑같아야 한다

※정규화 특징

1) 현재 테이블이 제3정규화 상태라면 제 1,2 정규화는 자동으로 만족한다.

2) 정규형들은 차수가 높아질수록(제1정규형→제5정규형) 만족시켜야 할 제약조건이 증가된다.

3) 정규화는 논리적 처리 및 품질에 큰 영향을 미친다.

4) 정규화의 목적은 논리적 데이터베이스 구조상에 있어 삽입, 수정, 그리고 삭제 결과 생기는

    이상현상(anomaly) 을 제거하는데 있다.

5) 레코드들의 관련 속성들 간의 종속성을 최소화하기 위 한 구성 기법이다 -정규화가 잘못되면 데이터의 불필요한

     중복을 야기하여 릴레이션 조작시 문제를 일으킨다.

6) 정규화되지 못한 릴레이션의 조작시 발생하는 이상 (anomaly) 현상의 근본적인 원인은 여러 가지 종류의 원소들이

    하나의 릴레이션에 표현되기 때문이다.


 

반응형