💡 핵심 인사이트
암스트롱의 공리는 테이블 내의 컬럼(속성)들이 서로 눈치를 보는 권력 관계(함수적 종속성)를 분석할 때, **"눈에 보이는 몇 개의 기본 종속성만 던져주면, 숨겨진 나머지 모든 종속성을 수학의 정리처럼 기계적으로 유추해 낼 수 있는 3가지 절대 논리 법칙"**입니다.
이 3가지 기본 공리(반사, 첨가, 이행)를 바탕으로 데이터베이스 정규화 이론이 완성됩니다.


Ⅰ. 암스트롱의 3대 기본 공리 (기본 원칙)

어떤 릴레이션에 속성 집합 X, Y, Z가 존재할 때, 다음의 세 가지 명제는 증명할 필요조차 없이 무조건 '참(True)'이 됩니다.

1. 반사의 공리 (Reflexivity Rule) - "부분은 전체에 종속된다"

  • 논리: 만약 Y 집합이 X 집합 안에 완전히 포함되어 있다면($Y \subseteq X$), X는 당연히 Y를 결정할 수 있다 ($X \rightarrow Y$).
  • 예시: 집합 X가 {주민번호, 이름}이고, Y가 {이름}이라고 합시다.
    • X 안에 이미 Y가 쏙 들어가 있으므로, {주민번호, 이름} 두 개의 정보를 알면 당연히 {이름}을 100% 확실하게 대답할 수 있습니다. 너무 당연한 수학적 동어 반복입니다.

2. 첨가의 공리 (Augmentation Rule / 증대율) - "양쪽에 돌맹이 얹기"

  • 논리: 만약 $X \rightarrow Y$ 가 참이라면, 양쪽 뺨에 똑같은 속성(Z)을 덧붙인 $XZ \rightarrow YZ$ 도 무조건 참이다.
  • 예시: 학번 $\rightarrow$ 이름이 성립하는 상황입니다.
    • 여기에 양쪽에 생뚱맞은 혈액형을 하나씩 던져줍니다.
    • {학번, 혈액형}{이름, 혈액형}: 학번이 이름을 부르고, 혈액형은 자기 자신이므로(반사), 이 수식은 절대 깨지지 않고 무조건 성립합니다.

3. 이행의 공리 (Transitivity Rule) - "꼬리물기 삼각관계"

  • 논리: 만약 $X \rightarrow Y$ 가 참이고, $Y \rightarrow Z$ 가 참이라면, 그 결과로 $X \rightarrow Z$ 도 무조건 참이다.
  • 예시: (앞 장에서 배운 제3정규형 위반의 근원입니다).
    • 사번 $\rightarrow$ 부서코드 (참)
    • 부서코드 $\rightarrow$ 부서_전화번호 (참)
    • 결론적으로 사번을 알면 부서_전화번호가 유일하게 결정되는 **이행적 종속 ($X \rightarrow Z$)**이 숨겨져 있다는 것을 수학적으로 도출해 냅니다.

Ⅱ. 암스트롱의 부가적 공리 (파생 법칙)

위의 3가지 기본 뼈대(공리)를 요리조리 조합하면 아래의 유용한 부가 법칙 3가지가 파생됩니다.

  1. 연합(합성)의 규칙 (Union): $X \rightarrow Y$ 이고 $X \rightarrow Z$ 이면, $X \rightarrow YZ$ 이다.
    • 사번이 이름을 결정하고, 사번이 주소도 결정하면 ➔ 사번 하나로 이름과 주소를 세트로 다 알아낼 수 있습니다.
  2. 분해의 규칙 (Decomposition): $X \rightarrow YZ$ 이면, $X \rightarrow Y$ 이고 $X \rightarrow Z$ 이다.
    • 위의 연합 규칙을 정확히 반대로 쪼갠 것입니다.
  3. 가이행의 규칙 (Pseudo-transitivity): $X \rightarrow Y$ 이고 $WY \rightarrow Z$ 이면, $WX \rightarrow Z$ 이다.

📢 섹션 요약 비유: 암스트롱의 공리는 범인을 찾는 탐정의 **'절대 논리 3원칙'**입니다.

  1. 내 지갑 안에 든 천 원은 당연히 내 돈이다 (반사의 공리).
  2. 내가 너보다 쎈데(X>Y), 똑같이 몽둥이(Z)를 하나씩 쥐여줘도 여전히 내가 너를 이긴다 (첨가의 공리).
  3. 내가 A를 이기는데, A가 B를 이기면, 나는 무조건 B를 이긴다 (이행의 공리). 이 3가지 팩트만 있으면 숨겨진 서열 구조(종속성)를 완벽하게 그려낼 수 있습니다.