함수적 종속의 개념
- 어떤 테이블 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 |