본문 바로가기
Database/DB

데이터베이스 정규화

by 빈스터디 2023. 2. 10.

정규화

정규화란 이상 문제를 해결하기 위해 속성 간 종속 관계를 분석하고 

릴레이션을 분해하는 과정을 말한다. 릴레이션의 속성, 개체, 관계를 파악하여 데이터의 중복성을 최소화한다.

정규화를 통해 릴레이션을 분해하면 일반적으로 연산 시간은 증가한다.

 

 

이상이란?

이상 문제에서 이상(Anomaly)이란 속성 간에 존재하는 여러 종속 관계를

하나의 릴레이션에 표현함으로인해 발생하는 현상을 말한다. 이상에는 삽입 이상, 삭제 이상, 갱신 이상이 있다.

삽입 이상은 데이터를 저장할 때 원하지 않는 정보가 함께 삽입되는 경우이다.

삭제 이상은 튜플을 삭제함으로써 유지되어야 하는 정보까지도 연쇄적으로 삭제되는 경우이다.

갱신 이상은 중복된 튜플 중 일부의 속성만 갱신시킴으로써 정보의 모순성이 발생하는 경우이다.

 

 

정규화 과정

함수적 종속을 알아야 한다.

어떤 릴레이션에서 속성들의 부분 집합을 x, y로 표현한다.

특정 튜플에서 x의 값이 y의 값을 함수적으로 결정한다면 y가 x에 함수적 종속 되었다고 한다.

 

ex) 전화번호가 같지 않다고 할 때, x가 전화번호, y가 이름이면

전화번호로 어떤 이름의 사람인지 파악할 수 있기 때문에

이런 경우, y가 x에(이름이 전화번호에) 함수적 종속 되었다고 한다.

 

 

추가적으로, 함수 종속의 추론 규칙은 아래와 같다.

 

 

제1 정규형 : 도메인이 모두 원자 값이어야 한다.

제2 정규형 : 부분 함수 종속제거되어야 한다.

제3 정규형 : 이행 함수 종속제거되어야 한다.

제4 정규형 : 다치 종속제거되어야 한다.

제5 정규형 : 조인 종속성제거되어야 한다.

 

'Database > DB' 카테고리의 다른 글

SQL의 종류와 내장 함수, JOIN  (0) 2023.02.10
ERD를 릴레이션으로 바꾸기(사상)  (0) 2023.02.10
관계 데이터 모델 및 관련 용어  (0) 2023.02.10
ERD  (0) 2023.02.10
리눅스 MySQL설치 및 외부 접속  (0) 2023.02.10