본문 바로가기

데이터베이스

[Database] 정규화

 

관련이 없는 속성을 하나의 릴레이션에 모아두면 문제가 발생할 수 있다.

데이터베이스가 싫어하는 데이터 중복이 많이 나타나고, 예기치 못한 이상한 일들이 발생할 수 있다.

이러한 이상현상으로 인해 정규화가 필요한 것이며,

속성들의 친밀도를 판단하여 친한 속성끼리 릴레이션(함수적 종속성)을 구성


이상 현상의 종류

삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제

갱신 이상 : 중복된 투플 중 일부 투플만 변경하여 데이터가 불일치하게 되는 모순의 문제

삭제 이상 : 투플 삭제 시 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제


함수 종속

어느 시점에서든 릴레이션 내의 모든 투플에서 속성 집합 X 값 각각에 대한 속성 집합 Y 값이 항상 하나면 "Y가 X

에 함수적으로 종속되어 있다"라고 한다.

X->Y로 표현(X는 결정자, Y는 종속자) 속성 집합 전체에 종속; 완전 함수 종속되었다.

속성 집합 부분에 종속; 부분 함수 종속되었다.

함수 종속 관계를 판단할 때 유의할 점

현재 시점에 릴레이션에 포함된 속성 값만으로 판단하면 안 된다는 것

Note) 함수 종속 다이어그램; 릴레이션 하나를 구성하는 속성들 간의 함수 종속 관계를 도식화하여 표현한 것


정규화

함수 종속성을 이용하여, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해해 이상 현상이 발생하지 않는 바

람직한 릴레이션으로 만들어나가는 과정

정규형

릴레이션이 정규화된 정도를 나타내는 기준 = 각 정규화마다 만족시켜야 하는 제약조건이 존재.

주로 제1 정규형, 제2 정규형, 제3 정규형이 사용된다.

[ 비정규형 릴레이션 ]

속성의 도메인이 원자 값으로만 구성되도록 분해

(이상현상 발생) [제1 정규형 릴레이션] : 모든 속성의 도메인이 원자 값으로만 구성

부분 함수 종속 제거

(이상현상 발생) [제2 정규형 릴레이션] : 모든 속성이 기본키에 완전 함수 종속

이행적 함수 종속 제거

[제3 정규형 릴레이션] : 모든 속성이 기본키에 이행적 함수 종속이 아님

'데이터베이스' 카테고리의 다른 글

[SQL] 뷰 view  (0) 2021.01.17
[Database] 데이버베이스 설계  (6) 2021.01.17
[참관기] 2019 대한민국 ICT융합 엑스포  (0) 2021.01.17
[Database] 데이터베이스(DB)  (0) 2021.01.17
[Oracle] ORA-01950 오류  (0) 2020.11.03