함수 종속(FD: Functional dependency)
어떤 릴레이션 R에서 X와 Y를 각각 E의 어트리뷰트 집합의 부분 집합이라 하자. 어트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 어트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라 하고, X -> Y로 표기한다.
함수 종속(Functional Dependency)은 데이터베이스 시스템에서 특정한 조건을 만족하는 데이터 간의 관계를 정의하는 개념입니다.
데이터베이스에서는 주로 속성(Attribute)과 테이블(Table) 간의 함수 종속을 다룹니다. 이때, 속성은 데이터베이스의 열(Column)을 나타내고, 테이블은 데이터베이스의 표(Table)를 나타냅니다.
예를 들어, 학생 정보 데이터베이스를 가정해 봅시다. 여기에는 학생의 학번, 이름, 학과, 학점 등의 속성이 있을 수 있습니다. 이때, 학번이나 학과가 주어지면 학생의 이름과 학점을 예측할 수 있다고 가정합시다. 이 경우, 학번과 학과는 이름과 학점에 함수 종속됩니다. 그러나 학생의 이름과 학점을 가지고 학번이나 학과를 예측하는 것은 불가능합니다. 이런 경우에는 함수 종속이 성립하지 않습니다.
주의할 점은 함수 종속은 그 릴레이션 자체의 성질을 나타내는 것이지, 특정한 페어링만을 뜻하는 것은 아닙니다.
만약 X가 어떤 릴레이션 R의 후보 키, 특히 기본 키라면, 이것은 X가 R 내의 각 행을 고유하게 식별할 수 있는 중요한 속성임을 의미합니다. 그런데 여기서 중요한 점은, 이러한 X가 있을 때 릴레이션 R의 모든 다른 속성 Y는 X에 함수 종속이어야 한다는 것입니다. 함수 종속이라 함은 X 값이 주어졌을 때, Y의 값을 예측할 수 있다는 의미입니다.
즉, X가 기본 키인 경우, X의 값을 통해 릴레이션 R의 다른 모든 속성 Y를 고유하게 식별하고 예측할 수 있어야 합니다.
함수 종속의 이해는 데이터베이스의 정규화(Normalization) 작업에 도움이 됩니다. 정규화는 데이터 중복을 최소화하고 데이터의 일관성을 유지하기 위해 데이터를 적절하게 구조화하는 작업인데, 함수 종속을 기반으로 어떤 속성이 다른 속성에 종속적인지 파악하여 데이터베이스 설계를 개선하는 데 활용됩니다.
함수 종속은 데이터베이스 시스템의 중요한 개념 중 하나이며, 데이터의 일관성과 효율성을 유지하는 데 필수적인 역할을 합니다.
📌 참고한 자료
- 데이터베이스 시스템 / 이석호 저