함수 종속성으로 설계하는 정규화와 데이터 무결성

함수 종속성의 유형과 Armstrong 공리, 정규화 단계에서 종속 관계를 분석하는 방법을 정리한다.

2026-08-14 · 최초 발행 2025-08-10

속성 간 결정 관계가 정규화의 출발점이다

함수 종속성은 한 릴레이션에서 특정 속성의 값이 다른 속성의 값을 항상 결정하는 성질이다. X → Y로 표기하며, X 값이 같으면 Y 값도 같다는 뜻이다.

예를 들어 학번 → 학생이름이라면, 같은 학번을 가진 레코드는 모두 같은 학생이름을 가져야 한다. 이 관계를 정확히 파악해야 중복 저장을 줄이고 데이터 일관성을 유지할 수 있다.

함수 종속성은 정규형을 판별하는 기준이기도 하다. 종속 관계를 바탕으로 데이터를 적절한 테이블에 배치하면 이상현상을 줄일 수 있다.

정규화 판단에 쓰이는 종속 관계

완전 함수 종속성

복합 속성 X가 Y를 결정하지만, X의 어느 부분집합만으로는 Y를 결정할 수 없는 관계다. XY → Z일 때 X → Z, Y → Z가 모두 성립하지 않는 경우에 해당한다.

(학과, 과목번호) → 강의실에서 학과만으로도, 과목번호만으로도 강의실을 결정할 수 없다면 완전 함수 종속성이다.

완전 함수 종속학과 + 과목번호강의실학과강의실과목번호강의실

부분 함수 종속성

복합 속성이 다른 속성을 결정하면서, 복합 속성의 일부만으로도 그 속성을 결정할 수 있는 관계다. XY → Z에서 X → Z 또는 Y → Z 가운데 하나가 성립하는 경우다.

(학번, 과목번호) → 학생이름이라는 관계에서 학번만으로 학생이름이 결정된다면 부분 함수 종속성이 존재한다.

부분 함수 종속가능학번 + 과목번호학생이름학번학생이름과목번호학생이름

이행 함수 종속성

X → YY → Z가 성립해 X → Z까지 성립하는 간접 종속 관계다. 학번이 학과코드를 결정하고 학과코드가 학과명을 결정한다면, 학번은 학과명에도 이행 함수 종속성을 갖는다.

이행 함수 종속학번학과코드학과명

후보키가 아닌 결정자

함수 종속성 X → Y에서 X가 릴레이션의 후보키가 아닌 경우를 결정자 함수 종속성으로 본다. 예를 들어 학과코드 → 학과명에서 학과코드는 해당 릴레이션의 후보키가 아닐 수 있다.

함수 종속성과 다중값 종속성은 다르다

함수 종속성은 한 속성 값이 다른 하나의 속성 값을 결정하는 관계다. 반면 다중값 종속성은 하나의 속성 값이 다른 속성의 여러 값과 연관될 수 있는 관계이며 X →→ Y로 표기한다.

두 관계는 모두 릴레이션 설계에 영향을 주지만, 의미와 분석 기준은 구분해야 한다.

정규형에서 제거하는 종속성

정규화는 릴레이션의 속성 사이에 존재하는 함수 종속성을 분석하는 과정이다.

  • 1NF에서는 모든 속성이 원자적 값만 가져야 하며, 함수 종속성 분석의 전제가 된다.
  • 2NF에서는 부분 함수 종속성을 제거하고, 모든 비주요 속성이 기본키에 완전 함수 종속되도록 한다.
  • 3NF에서는 이행 함수 종속성을 제거해 비주요 속성이 다른 비주요 속성에 종속되지 않게 한다.
  • BCNF에서는 결정자 함수 종속성을 제거하며, 모든 결정자가 후보키여야 한다.

대학 수강 릴레이션을 분해하는 방식

다음 릴레이션을 가정한다.

ENROLLMENT(학번, 학생이름, 학과코드, 학과명, 과목번호, 과목명, 성적)

이 릴레이션에서는 다음 함수 종속성을 확인할 수 있다.

  • 학번 → 학생이름, 학과코드
  • 학과코드 → 학과명
  • 과목번호 → 과목명
  • (학번, 과목번호) → 성적

이 관계를 기준으로 분해하면 학생, 학과, 과목, 성적 정보를 각각 관리하는 구조가 된다.

ENROLLMENT(학번, 학생이름,학과코드, 학과명, 과목번호,과목명, 성적)STUDENT(학번, 학생이름,학과코드)DEPARTMENT(학과코드,학과명)COURSE(과목번호, 과목명)GRADE(학번, 과목번호, 성적)

종속 관계를 확인하는 근거

함수 종속성은 스키마만 보고 단정하기보다 업무 규칙과 데이터를 함께 검토해 파악한다. 현업 담당자 인터뷰와 요구사항 명세서는 업무 규칙을 확인하는 근거가 된다. 실제 데이터 샘플에서는 반복되는 값과 데이터 패턴을 살필 수 있다.

도메인에 이미 존재하는 일반 규칙이나 유사 시스템의 구조도 판단에 활용할 수 있다.

Armstrong 공리로 종속성을 추론한다

Armstrong 공리는 알려진 함수 종속성으로부터 다른 종속 관계를 도출하는 규칙이다.

  • 반사 규칙: Y가 X의 부분집합이면 X → Y
  • 증가 규칙: X → Y이면 모든 Z에 대해 XZ → YZ
  • 이행 규칙: X → Y이고 Y → Z이면 X → Z

여기서 결합 규칙, 분해 규칙, 가법 규칙도 파생된다.

  • 결합 규칙: X → Y이고 X → Z이면 X → YZ
  • 분해 규칙: X → YZ이면 X → YX → Z
  • 가법 규칙: X → Y이고 Z → W이면 XZ → YW

종속 관계를 한눈에 보는 표현

속성 사이의 결정 관계를 다이어그램으로 남기면 설계 의도와 제약조건을 공유하기 쉽다.

학번학생이름학과코드학과명과목번호과목명학번 + 과목번호성적

설계 단계에서 함께 검토할 점

정규화를 과도하게 적용하면 조인 연산이 늘어 성능 저하로 이어질 수 있다. 운영 환경에서는 일부 비정규화를 통해 성능을 최적화해야 할 수 있다.

비즈니스 규칙이 바뀌면 함수 종속성도 다시 평가해야 하며, 그에 따른 데이터베이스 스키마 변경을 관리해야 한다. 종속 관계와 설계 의도, 제약조건을 문서화해 두는 일도 변경 시점의 판단 근거가 된다.

함수 종속성데이터베이스 정규화관계형 데이터베이스데이터 모델링