본문 바로가기

Programming/DataBase

[DataBase] 함수적 종속 (Functional Dependency)

함수적 종속의 개념

- 어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 하자. 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고, X -> Y로 표기한다.


- 함수적 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약조건이 되는 동시에 데이터 베이스에서 항상 유지되어야 할 조건이다.


다음의 <학생> 테이블에서 함수적 종속을 살펴보자

학번

이름

학년

학과

400

이순신

4

컴공

422

유관순

4

물리과

301

강감찬

3

수학과

320

홍길동

3

체육과

205

장보고

2

컴공과

240

윤봉길

2

수학과

104

김구

1

체육과


<학생> 테이블에서 이름, 학년, 학과는 각각 학번 속성에 함수적 종속이다. 이 것을 기호로 표시하면 다음과 같다.


학번 -> 이름

학번 -> 학년

학번 -> 학과


또한 간단히 다음과 같이 표현한다.


학번 -> 이름, 학년, 학과


X -> Y의 관계를 갖는 속성 X와 Y 에서 X를 결정자(Determinant)라 하고, Y를 종속자(Dependent)라고 한다.

 

함수적 종속 다이어 그램

- 한 테이블에 존재하는 속성들 간의 복잡한 함수적 종속 관계를 그림으로 쉽게 표현할 수 있는데, 이것을 함수적 종속 다이어 그램이라고 한다.


다음 <수강>테이블에서 함수적 종속 관계를 함수적 종속 다이어 그램으로 표현해 보자.


학번

과목번호

성적

학년

100

C213

A

4

100

E432

A

4

200

C123

B

3

300

C312

A

1

300

C324

C

1

400

C413

A

4

400

C312

A

4

400

C345

A

4

400

C123

B

4

400

E132

C

4

500

C312

B

2


먼저, <수강>테이블에서 존재하는 함수적 종속을 표현하면 다음과 같고,


학번, 과목번호 -> 성적    

  학번 -> 학년


이것을 함수적 종속 다이어그램으로 표현하면 다음과 같다.

___________

학년 <--------학번      ㅣ------>

                 ㅣ 과목번호ㅣ------>        성적

-----------


- <수강> 테이블의 속성 중 성적은 (학번,과목번호)에  완전 함수적 종속(Full Functional Dependency)라고 하고 학년 속성은 (학번, 과목번호)에 완전 함수적 종속이 아니므로 부분 함수적 종속(Partial Functional Dependency)이라고 한다.

'Programming > DataBase' 카테고리의 다른 글

[DataBase] 정규화 (Normalization)  (0) 2013.06.28
[DataBase] 이상 (Anomaly)  (0) 2013.06.28
[DataBase] 스토어드 프로시저 (Stored Procedure)  (0) 2013.06.28
내장 SQL  (0) 2013.06.26
SQL - DCL  (0) 2013.06.26