[sql] 함수 종속성 규칙과 정규화

데이터베이스 설계에서 함수 종속성(functional dependency)은 특정한 속성 또는 속성 집합이 다른 속성 또는 속성 집합에 종속되는 일종의 규칙을 의미합니다. 함수 종속성은 데이터 정규화(normalization)를 이해하고 데이터를 구조화하는 데 중요한 개념입니다. 데이터 정규화는 데이터의 중복을 최소화하고 데이터베이스 구조를 효율적으로 유지하기 위한 과정으로, 이를 통해 데이터베이스의 성능, 유지보수 및 관리가 용이해집니다.

함수 종속성 규칙

함수 종속성은 주어진 릴레이션(relation)에서 속성 간의 의존 관계를 나타내는 데 사용됩니다. 릴레이션 R의 속성 X와 Y에 대하여 “X 함수적으로 종속(Y is functionally dependent on X)”이라는 표현은 동일한 값의 X에 대해 항상 동일한 Y가 존재한다는 의미입니다.

함수 종속성은 다음과 같은 형식으로 나타낼 수 있습니다: X → Y (X determines Y)

정규화

데이터베이스 설계에서 정규화는 데이터 구조를 최적화하여 중복을 제거하고 이상(anomalies)을 방지하기 위한 프로세스입니다. 함수 종속성 규칙을 기반으로 릴레이션을 적절히 분해하여 정규화를 수행할 수 있습니다.

제1정규형 (1NF)

모든 속성 값이 원자값(atomic value)으로 구성되어야 합니다. 즉, 다중 값 속성이 없어야 합니다.

제2정규형 (2NF)

모든 속성이 기본키에 대해 완전 함수 종속이어야 합니다.

제3정규형 (3NF)

이행적 함수 종속이 없는 것을 보장합니다. 즉, 모든 속성이 후보키에 대해 이행적 함수 종속이 없어야 합니다.

예시

다음은 주문 데이터를 좀 더 효율적으로 정규화하는 과정의 예시입니다.

초기 상태:

1NF로 정규화:

2NF로 정규화:

3NF로 정규화:

함수 종속성 규칙을 기반으로 정규화를 수행하여 주문 데이터를 효율적으로 구조화할 수 있습니다.

이러한 정규화 과정을 통해 중복을 최소화하고 데이터베이스의 유지보수가 쉬워지며, 데이터 무결성이 유지됩니다.

참고 자료