함수적 종속은 제 2 정규화(부분 함수적 종속 제거), 제 3 정규화(이행 함수적 종속 제거)에 언급되는 부분으로
정규화를 이해하기 위해서는 함수적 종속의 개념이 필요합니다.
1. 함수적 종속의 개념
어떤 릴레이션(테이블) R의 속성 집합의 부분집합을 X와 Y라고 가정하자.
속성 X의 값 각각에 대해 시간과 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때,
Y는 X에 함수적 종속 또는 X가 함수적으로 결정 ( 표기 : X -> Y )한다.
즉, X는 결정자, Y는 종속자다.
2. 함수적 종속의 필요성
함수적 종속은 데이터의 의미를 표현하는 것으로,
현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건이다.
3. 함수적 종속의 종류
- 완전 함수적 종속 : 어떤 속성이 기본키에 대해 완전히 종속적일 때
- 부분 함수적 종속 : 어떤 속성이 기본키에 대해 부분적으로 종속적일 때
- 이행 함수적 종속 : 기본키의 속성이 아닌 다른 속성에도 종속적일 때
예시를 들자면,
학번 | 이름 | 학년 | 학과 |
190901 | 누구게 | 3 | 컴퓨터공학과 |
190902 | 홍길동 | 3 | 사회복지학과 |
200102 | 복덩이 | 2 | 수학과 |
200103 | 귀요미 | 2 | 체육과 |
211025 | 멋쟁이 | 2 | 컴퓨터공학과 |
212036 | 요정 | 2 | 수학과 |
190923 | 금덩이 | 1 | 물리학과 |
190967 | 지니 | 1 | 컴퓨터공학과 |
190999 | 해리포터 | 1 | 영어과 |
위에 학생 테이블에서 함수적 종속을 살펴보자.
- 학생 테이블에서 이름, 학년, 학과는 각각 학번 속성에 함수적 종속이다.
학번 -> 이름
학번 -> 학년
학번 -> 학과
- 간단하게 표현하면,
학번 -> 이름, 학년, 학과
학번이 결정자이고, 이름, 학년, 학과는 종속자이다.
학생 테이블에서 학번이 결정되면 이름, 학년, 학과는 항상 학번에 의존적이다.
즉, 이름, 학년, 학과가 각각 학번 속성에 함수적 종속적이다.
학번이 190999인 튜플의 이름, 학년, 학과 속성의 값은 항상 '해리포터', '1', '영어과' 이지 다른 값이 올 수 없다.
만약, 복수전공으로 190999 학번인 튜플의 이름, 학년, 학과 속성의 값이 '해리포터', '1', '항공과'인 튜플이 있다면,
학과는 학번에 종속적이지 않은 것입니다.
2. 함수적 종속 다이어그램
함수적 종속 다이어그램이란? 한 릴레이션(테이블) 속성들 간의 복잡한 함수적 종속 관계를 그림으로 표현한 것이다.
예시를 들자면,
학번 | 과목번호 | 성적 | 학년 |
201901 | 001 | A | 3 |
202103 | 001 | B | 1 |
201803 | 002 | A | 4 |
202106 | 003 | B | 1 |
202106 | 002 | B | 1 |
수강 테이블에서 함수적 종속 관계는
학번, 과목번호 -> 성적
학번 -> 학년
다이어그램으로 표현하자면,
수강 테이블 속성 중 성적은 (학번, 과목번호)에 완전 함수적 종속, 학년은 (학번, 과목번호)에 부분 함수적 종속이다.
'정보처리산업기사_실기_기록용' 카테고리의 다른 글
[데이터베이스] 트랜잭션(Transaction) (0) | 2021.10.15 |
---|---|
[데이터베이스] 정규화 (0) | 2021.10.09 |
[데이터베이스] SQL - DCL (0) | 2021.10.05 |
[데이터베이스] 정규화 - 이상(Anomaly) (0) | 2021.10.04 |
[데이터베이스] SQL - DML(DELETE & UPDATE) (0) | 2021.10.04 |