본문 바로가기
Database

DataBase 정규화

by oncerun 2021. 2. 27.
반응형

직관에 의해서만 데이터베이스 모델링이 이루어지면 잠재적으로 이상현상이 발생할 수 있는 가능성이 높아지기 때문에 이러한 문제를 방지하기 위해 정규화 기법이 제안되었다.

 

 정규화란 관계형 모델에서 논리 스키마를 효과적으로 모델링하는데 이용되는 기법이며, 릴레이션의 정규형을 분석함으로써 얼마나 효율적으로 스키마가 실세계를 반영하는지를 평가할 수 있다.

 

정규형을 하면 다음과 같은 효과를 얻을 수 있다

 

1. 한 릴레이션 내의 칼럼들 간의 관계 표현

2. 불필요한 데이터의 종속과 중복제거

3. 새로운 칼럼 추가 시 기존 칼럼과의 관계

 

이렇게 생성된 릴레이션 스키마는 update anomaly의 발생 가능성을 차단시킬 수 있다.

update anomaly란 정보 삽입, 삭제, 갱신 시의 불일치로 데이터 변동 상황에 따른 이상 현상을 말한다.

 

함수적 종속성이라는 개념을 사용해 갱신 이상이 발생하는 원인을 알아보자.

함수적 종속성은 데이터베이스 모델링 시 잘못 설계된 릴레이션을 구성하는 속성들 간의 연관관계를 검사하고, 이를 기반으로 릴레이션이 특정 정규형을 만족하도록 정규화하는 데 매우 중요한 역할을 한다. 속성들 간의 값의 연관관계를 표현한 것을 함수적 종속성이라고 한다.

 

형식적 정의

 - 임기의 릴레이션 스키마 R의 인스턴스에 포함되는 서로 다른 두레 코드 r1, r2와 칼럼 집합 X와 Y에 대해 

r1 [X]=r2 [X] 일 때 r1 [Y]=r2 [Y]이라면 함수적 종속성 X->Y가 성립한다.

 

함수적 종속성의 해당되는 해당 규칙은 암스트롱의 추록 규칙이나, 캐노니컬 커버 등 검색해서 공부하자.

 

정규화의 목적을 정리하면 다음과 같다.

 

1. 어떠한 릴레이션이라도 데이터베이스 내에서 표현할 수 있도록 만든다.

2. 좀 더 간단한 관계 연산에 기초하여 검색 알고리즘을 효과적으로 만든다.

3. 릴레이션에서 바람직하지 않은 삽임, 갱신, 삭제 등의 이상을 제거한다.

4. 새로운 형태의 데이터가 삽입될 때 릴레이션을 재구성할 필요성을 줄인다.

 

 

 

1. 제1정규형

 

 릴레이션의 모든 속성은 단일 값으로 구성되는 단순 도메인에서 정의되어야 하는 정규형

 - 모든 레코드는 각 속성에 대해서 해당 속성의 타입에 맞는 단일 값을 가진다.

 

2. 제2 정규형

  

릴레이션이 제1 정규형을 만 족거 하고 기본키가 아닌 속성들이 기본키에 완전 함수 종속되면 제2 정규형이다.

 - 완전 함수 종속: 속성 집합 Y가 속성 집합 X 전체에 함수적으로 종속되는 상태

 

3. 제3 정규형

 

기본키가 아닌 속성이 이행적으로 종속되어 발생하는 중복을 제거하기 위한 구조이며 제2 정규형을 만족해야 한다.

 - 이행적 종속 : A->B, B->C 일 때 A->C인 함수적 종속성을 말한다.

즉 모든 속성들이 기본키에 의해서만 결정되어야 한다는 의미이다.

 

 

반응형

'Database' 카테고리의 다른 글

ER 모델  (0) 2021.04.12
데이터베이스 관리자 DBA  (0) 2021.04.12
Indexing  (0) 2021.03.01
비식별관계와 식별관계  (0) 2021.01.28
데이터베이스 개념  (0) 2020.10.26

댓글