반응형

 

 

 

 

 

 

1. 정규화 란?

: 불필요한 데이터 중복을 피하기 위해 스키마를 분해하는 과정

: 함수적 종속이 중요한 역할을 함

 

정규화의 효과

: 이상현상 방지 , 데이터 중복으로 인한 문제 해결

단, 함수적 종속이 유지되도록 데이터베이스를 설계해야 함

 

 

 

2. 정규형

: 각 단계별 정규화 과정을 통해 분해된 테이블들의 구조

 

 

 

 

 

 

 

< 테이블의 분해 조건 >

1) 종속성 보존 분해

: 분해되기 전의 함수적 종속들이 분해 후에도 유지되어야 함

 

테이블 R이 R1, R2 로 분해되었을 경우,

{FD(R1) U FD(R2)} = FD(R) 을 만족할 때 종속성이 보존된다 고 한다.

 

 

 

2) 무손실 조인 분해

 

테이블 R이 R1, R2 로 분해되었을 경우, 

 

 

 

ex) 무손실 조인 분해의 예

 

 

ex) 손실 조인 분해의 예

 

 

 

 

 

 

 

 

 

3. 1차 정규형

 

 

1) 정의

: 모든 도메인이 원자값으로만 구성되어 있을 때  

( 관계형 데이터 모델의 정의를 따르는 모든 테이블은 1차 정규형이다. )

 

 

 

2) 1차 정규형의 문제점

: 삽입, 삭제, 수정 이상

 

3) 문제의 원인

부분 종속 : 키가 아닌 필드(A)가 피의 일부인 필드(X) 에 함수적으로 종속되는 경우

 

ex) 

 

 

 

 

 

4. 2차 정규형

: 부분 종속의 제거

 

 

 

 

BUT ! 부분 종속의 제거하였다고 하더라도, 추가적인 부분 종속이 남아있는지 확인해야 한다.

 

+ 테이블을 정규화하더라도 함수적 종속이 그대로 유지된다.

즉, 2차 정규형은 종속성 보존 분해가 지켜진다.

 

 

 

 

 

 

1) 2차 정규형 정의

: 테이블 R에서 키가 아닌 모든 필드가 키에 함수적으로 종속되며, 부분 종속이 존재하지 않으면 2차 정규형이다.

- 하나의 필드가 키가 되는 경우는 모두 2차 정규형이다.

- 부분 종속에 의한 (삽입/삭제/수정) 이상현상이 발생하지 않는다.

 

 

 

2) 2차 정규형의 문제

: 아직도 삽입 / 삭제 / 수정 이상현상이 존재(부분 종속으로 인한 문제 제외)

 

삽입 이상

: '물리학과'의 사무실이 '930호'라는 정보를 삽입할 경우, '물리학과'에 소속된 학생이 없으면 삽입 불가능

삭제 이상

: 학번이 '1292301'인 학생 정볼를 삭제할 경우, 산업공학과의 정보도 함께 삭제됨

수정 이상

: 컴퓨터공학과의 사무실을 변경할 경우 3개의 레코드에 대해 모두 변경해야 함

 

 

 

 

3) 문제의 원인

: 기본키의 이행 종속

 

 

stu_id -> dept_name

dept_name -> office

 

stu_id -> office

즉, office 필드가 stu_id에 이행 종속된다.(다른 필드를 거쳐 종속됨)

 

 

 

 

 

 

 

5. 3차 정규형

: 이행 종속 분해

 

 

 

 

 

1) 정의

: 테이블 R이 2차 정규형이면서, 키에 속하지 않은 모든 필드가 기본 키에 이행 종속되지 않는다면 3차 정규형이다.

 

 

 

2) 3차 정규형의 문제점

 

부분 종속과 이행 종속이 존재하지 않음  

BUT

삽입 이상

: '홍길동' 교수가 '자료구조'를 강의한다는 사실을 저장할 경우, 수강생이 없으면 저장할 수 없음

삭제 이상

: 학번이 '1292001'인 학생이 '운영체제'를 수강한다는 사실을 삭제할 경우, '장민석' 교수가 '운영체제'를 강의한다는 사실도 함께 삭제됨

수정 이상

: '박철재' 교수가 강의하는 과목이 '운영체제'로 변경되는 경우, 2개의 레코드를 변경해야 함

 

 

 

 

3) 문제 발생의 원인

: 키에 포함되는 필드 집합 A와 키에 포함되지 않는 필드 집합 X에 대하여

X->A 라는 함수적 종속이 존재할 경우, 데이터 중복이 발생

 

-> 부분 종속과 반대 !

 

 

 

 

 

 

 

6. 보이스 코드 정규형

: 분해

 

 

1) 정의

: 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키인 정규형

 

 

2) 보이스 코드 정규형의 문제점

: 함수적 종속이 보존되지 않을 수 있음

 

 

 

 

 

 

 

 

 

 

7. 관계형 데이터베이스 설계 원칙

 

 

 

이상 현상 방지 vs 종속성 보존

: 이상 현상 방지보다는 종속성 보존이 더 중요하기 때문에,

보이스-코드 정규화할 시에 종속성 보존이 안된다면 3차 정규형을 택한다.

 

 

 

< 정규형을 감안한 논리적 설계 과정 >

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts