직관에 의해서만 데이터베이스 모델링이 이루어지면 잠재적으로 이상현상이 발생할 수 있는 가능성이 높아지기 때문에 이러한 문제를 방지하기 위해 정규화 기법이 제안되었다.
정규화란 관계형 모델에서 논리 스키마를 효과적으로 모델링하는데 이용되는 기법이며, 릴레이션의 정규형을 분석함으로써 얼마나 효율적으로 스키마가 실세계를 반영하는지를 평가할 수 있다.
정규형을 하면 다음과 같은 효과를 얻을 수 있다
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 |
댓글