제1항 관계 데이터베이스의 정규화

(1) 정규화

1) 개요

① 데이터베이스의 릴레이션이나 튜플을 불필요한 중복없이수정할 때 의도하지 않았던 불필요한 사실이 추가삭제갱신되는 일이 없도록 DB를 재구성하는 과정을 공식화한 과정

 

2) 필요성

① 중복에 따른 갱신이상 현상의 제거로 일관성 유지

ü (갱신이상삽입이상삭제이상 현상제거)

② 효율적인 검색이 가능

③ 중복의 제거로 인한 저장 공간의 최소화

④ 데이터 신규 발생시 DB 재구성의 필요성을 감소(유연한 구조)

 

3) 목적

① 정보의 중복을 피하기(최소화하기 위해

② 삽입삭제갱신 이상의 발생을 방지

③ 효율적인 데이터 조작

 

4) 기본 개념

① 하나 이상의 릴레이션을 두개 이상의 릴레이션으로 분해(decomposition) 시키는 과정을 포함

② 무손실 분해(lossless decomposition)

ü 분해한 릴레이션을 조인하여 저장 정보의 손실없이 원래의 릴레이션을 생성할 수 있는 것

 

5) 정규화 단계

 


 

(2) 함수적 종속성 (Functional Dependency)

1) 정의

① 정규화 과정에서 중요하게 이용되는 개념으로서 관계형 데이터베이스의 릴레이션에서 애트리뷰트간의 관계를 정의할 때 사용되는데 좋은 릴레이션을 판단하는 기준을 정하는 요소로 사용된다.

② 어떤 릴레이션 R에서 애트리뷰트 X의 값 각각에 대해 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적으로 종속된다.

③ 함수적 종속성은 애트리뷰트들 사이의 관계에 대한 제약조건으로 애트리뷰트 X가 Y의 결정자이면 Y는 X에 함수적으로 종속된다.

 

2) 함수적 종속성 표기

①  Y

ü X는 Y의 결정자(determinant), Y는 X의 종속자(dependent)이다.

 

② 결정자(determinant)

ü 결정자는 주어진 릴레이션에서 다른 애트리뷰트를 고유하게 결정하는 하나 이상의 애트리뷰트이다.

ü 기본적으로 기본키는 결정자이다.

학번

이름

학년

700100

김아무개

1

700200

류아무개

1

700200

박아무개

2

700300

최아무개

3

700400

한아무개

3

 

        학번 → 이름학번 → 학년 함수 종속성 성립.  이름 → 학번은 성립하지 않는다.

 

3) 종류

① 완전 함수적 종속성

ü 어떤 릴레이션 R에서 속성 X가 속성 집합일 때속성 Y가 속성 A에 함수적으로 종속하면서속성 X의 어떤 진부분 집합에도 함수적으로도 종속하지 않으면속성 Y가 속성 X에 완전하게 함수적으로 종속한다.

진부분 집합

 

집합 A={1,3}의 진부분집합은 공집합, {1}, {3}으로 모두 3개다

 

ü 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우 기본키 전체가 있어야지만 어떤 속성이 결정될 때 완전 함수적 종속이다.

 

② 부분 함수적 종속성

ü 완전하게 함수적으로 종속하지 않으면 부분 함수적 종속성을 갖는다.

ü 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우기본키를 구성하는 부분 속성만으로도 결정되어지면 부분 함수적 종속이다.

 

 

 

③ 이행 함수적 종속성

ü  Y 이고, Y  Z 일 때 X → Z를 만족하는관계를 이행적 함수 종속이라 한다.

학번’  ‘지도교수’ 이고, ‘지도교수’  ‘학과’ 일 때 학번’  ‘학과를 만족

 

(3) 이상현상

1) 개념

① 데이터의 중복으로 인해 릴레이션을처리할 때 발생한느 곤란한 현상

② 데이터베이스 사용자의 의도와는 다르게 다른 데이터가 삽입삭제갱신되는 현상

 

학번

과목

수강료

700100

데이터베이스

10,200

700200

데이터통신

10,150

700200

운영체제

10,250

700300

전자계산기구조

10,100

700400

데이터베이스

10,200

 

2) 갱신이상(update anomaly)

① 릴레이션 R에서 특정 속성값 갱신시에 중복 저장되어 있는 속성중 하나만 갱신하고 나머지는 갱신하지 않아서 발생하는 데이터의 불일치 현상

② 예제

ü 데이터베이스의 수강료를 200원 인상할 경우 ‘700100’번 학생의 수강료만 갱신하고, ‘700400’번 학생의 수강료는 200원 인상하지 않은 경우

 

3) 삭제이상(delete anomaly)

① 릴레이션 R에서 튜플을 삭제할 경우원하지 않는 정보까지도 삭제되는 현상

② 예제

ü 학번이 ‘700200’인 학생을 삭제할 경우 데이터통신의 수강료가 10,150이라는 정보까지 잃게 되는 경우

 

4) 삽입이상(insertion anomaly)

① 릴레이션 R에 특정 튜플을 삽입시원하지 않는 불필요한 정보까지도 삽입해야 하는 현상그렇지 않으면 삽입이 되지 않는 현상

② 예제

ü 암호학’ 과목을 삽입하기 위해서는 학번’ 이 기본키이므로 아무 학번이라도 함께 넣어야 하는 경우

 

→ 정규화 과정을 거쳐서 이러한 이상 현상을 줄여 나갈 수 있음

 

(4) 데이터 종속성과 정규화

1) 1정규형 (1NF, first normal form)

① 모든 도메인의 값이 원자값 (atomic value) 를 가지고 있을 때 1차 정규형에 속한다.

② 반복/복수의 속성값 갖는 속성제거

 

 

반복집합이 있는 비정규 릴레이션

 

반복 집합을 제거하여 모든 속성값이 원자값으로 구성된 1NF로 만듬.

 

2) 2정규형 (2NF, second normal form)

① 어떤 릴레이션 R이 제1정규형을 만족하면서키가 아닌 모든 속성이 기본키에 완전 함수적 종속인 릴레이션

② 부분 함수 종속성 제거

 

 

1정규형 릴레이션에서 부분함수 종석성을 제거함.

 

모든 속성이 키에 대해서 완전 함수적 종속인 제2정규형 릴레이션을 만듬.

 

3) 3정규형 (3NF, third normal form)

① 어떤 릴레이션 R이 2NF이고키에 속하지 않은 애트리뷰트들이 기본키에 이행적 함수 종속이 아닐 경우 제3정규형(3NF)에 속한다.

② 이행적 종속성 제거

 

 

2정구형 릴레이션에서 이행적 함수 종속을 제거함.

 

이행적 함수 종속을 없앤 제3정규형 릴레이션을 만듬.

 

 

4) BCNF (boyce-codd normal form)

① 정의

ü 모든 결정자가 후보키(candidate key)인 관계

ü 결정자이면서 후보키가 아닌 것 제거

 

 

 

 

5) 4정규형

① 다치종속성(multivalued dependency)

ü 릴레이션 R의 속성 X, Y, Z가 있을 때 (X, Y)에 대응하는 Z의 집합이 X값에만 종속되고, Y값에 무관하면 Z는 X에 다치종속이라 하고, X  Y로 표기한다.

ü 다치종속성이란 속성들이 집합 값을 가지지 못하게 하는 제1정규형의 함수 종속성에 기인한다.

ü 다치종속의 예

이름

거래처

부양자

김사원

SAMSUNG

김부양

김사원

SAMSUNG

김부군

김사원

LGU+

김부양

김사원

LGU+

김부군

 

• 사원테이블에는 사원이 담당하는 거래처와 가족인 부양자가 각각 여러 개씩 존재한다.

• 거래처는 사원의 업무에 관련된 사항이며부양자는 사원의 급여에 관련된 사항이다거래처와 부양자 간에는 아무 관련성이 없다.

• 테이블의 일관성을 유지하기 위해서 사원마다 거래처와 부양 가족의 모든 가능한 조합들을 모두 포함해야 하며이로 인해서 거래처와 부양자가 여러 개 중복될 수 밖에 없다.

• 이런 제약 조건은 사원 테이블에 대한 다치 종속으로 표현된다두개의 독립적인 1:N 관계인 사원:거래처와 사원:부양자가 동일한 테이블에 존재할 때 다치 종속성이 발생한다.

• 자료의 성격에 따라서 사원:거래처 테이블과 사원:부양자 테이블로 분해한다면 중복은 사라진다.

이름

거래처

 

이름

부양자

김사원

SAMSUNG

 

김사원

김부양

김사원

LGU+

 

김사원

김부군

 

 

 

6) 5정규형

① 모든 조인 종속은 후보키를 통해서만 성립된다.

② 조인종속

ü 한 테이블을 분해했다가 분해된 결과들을 다시 조인하면 당연히 원래의 테이블로 복원된다고 기대하지만 그렇지 못한 경우가 있다다시 조인하면 예상하지 못했던 튜플들이 생성되는 경우가 발생한다.

 

ü 조인 종속(JD, join dependency)은 테이블을 분해한 결과를 다시 조인했을 때 원래의 테이블과 동일하게 복원되는 제약조건이다조인 종속성은 다치 종속의 개념을 더 일반화한 것이다.


+ Recent posts