728x90
반응형
함수 종속성 (Functional Dependency)은 데이터베이스에서 두 속성(컬럼) 간의 관계를 설명하는 개념입니다. 하나의 속성 값이 고유하게 다른 속성 값을 결정하는 경우에 함수 종속성이 존재한다고 말합니다. 이는 관계형 데이터베이스에서 정규화를 통해 데이터 무결성을 유지하고 중복을 최소화하는 데 중요한 역할을 합니다.
함수 종속성의 정의
- 속성 A의 값에 따라 속성 B의 값이 유일하게 결정될 때, 속성 B는 A에 함수 종속적이라고 합니다.
- A → B라고 표현하며, 이는 A가 B를 결정한다는 의미입니다.
예를 들어, 학생 테이블에서:
- 학번 → 이름: 학번이 같으면 이름도 동일해야 하므로, 학번이 이름을 결정합니다.
- 주민등록번호 → 이름: 주민등록번호가 같으면 이름도 동일해야 하므로, 주민등록번호가 이름을 결정합니다.
종류
- 완전 함수 종속 (Full Functional Dependency):
- 기본키 전체가 다른 속성을 결정할 때 발생하는 종속성입니다.
- 예: 학번, 과목코드 → 성적 (학번과 과목코드가 성적을 결정함)
- 부분 함수 종속 (Partial Dependency):
- 기본키의 일부 속성만으로 다른 속성이 결정되는 경우입니다. 제 2정규형에서 이를 제거해야 합니다.
- 예: 학번, 과목코드 → 학생이름 (학생이름은 과목코드와 상관없이 학번만으로 결정됨)
- 이행적 함수 종속 (Transitive Dependency):
- 속성 A가 속성 B를 결정하고, 속성 B가 속성 C를 결정할 때, 속성 A는 속성 C를 간접적으로 결정하게 되는 종속성입니다. 제 3정규형에서 이를 제거해야 합니다.
- 예: 학번 → 학과, 학과 → 교수라면, 학번 → 교수도 성립하게 됩니다.
함수 종속성의 중요성
- 데이터 무결성을 유지하고 데이터 중복을 줄이기 위해 사용됩니다.
- 정규화 과정에서 중요한 역할을 하며, 함수 종속성을 잘 정의해야 데이터베이스에서 중복과 이상 현상을 방지할 수 있습니다.
예시
학번이름학과| 101 | 홍길동 | 컴퓨터공학 |
| 102 | 김철수 | 전자공학 |
- 이 테이블에서, 학번이 이름과 학과를 결정합니다. 즉, 학번이 같으면 이름과 학과도 반드시 같아야 합니다. 이를 함수 종속성으로 표현하면:
- 학번 → 이름
- 학번 → 학과
함수 종속성을 사용한 정규화 과정
- 1NF (제 1 정규형): 모든 속성이 원자값(단일 값)만을 가짐.
- 2NF (제 2 정규형): 부분 함수 종속성을 제거.
- 3NF (제 3 정규형): 이행적 함수 종속성을 제거.
이와 같은 방식으로 함수 종속성은 데이터베이스의 설계에서 중복을 최소화하고, 효율적이고 무결성을 유지하는 설계를 도와줍니다.
'Category > 정보처리기사' 카테고리의 다른 글
| append()와 extend() 차이 (0) | 2024.10.12 |
|---|---|
| OSPF와 RIP 비교 (3) | 2024.10.11 |
| HTTP, Hypertext, HTML 의미 (0) | 2024.10.11 |
| 주요 테스트 용어 정리 (2) | 2024.10.11 |
| 알파 테스트(Alpha Testing), 베타 테스트(Beta Testing)란? (0) | 2024.10.11 |