💡 핵심 인사이트
암스트롱의 공리는 테이블 내의 컬럼(속성)들이 서로 눈치를 보는 권력 관계(함수적 종속성)를 분석할 때, **"눈에 보이는 몇 개의 기본 종속성만 던져주면, 숨겨진 나머지 모든 종속성을 수학의 정리처럼 기계적으로 유추해 낼 수 있는 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% 확실하게 대답할 수 있습니다. 너무 당연한 수학적 동어 반복입니다.
- X 안에 이미 Y가 쏙 들어가 있으므로,
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가지가 파생됩니다.
- 연합(합성)의 규칙 (Union): $X \rightarrow Y$ 이고 $X \rightarrow Z$ 이면, $X \rightarrow YZ$ 이다.
- 사번이 이름을 결정하고, 사번이 주소도 결정하면 ➔ 사번 하나로 이름과 주소를 세트로 다 알아낼 수 있습니다.
- 분해의 규칙 (Decomposition): $X \rightarrow YZ$ 이면, $X \rightarrow Y$ 이고 $X \rightarrow Z$ 이다.
- 위의 연합 규칙을 정확히 반대로 쪼갠 것입니다.
- 가이행의 규칙 (Pseudo-transitivity): $X \rightarrow Y$ 이고 $WY \rightarrow Z$ 이면, $WX \rightarrow Z$ 이다.
📢 섹션 요약 비유: 암스트롱의 공리는 범인을 찾는 탐정의 **'절대 논리 3원칙'**입니다.
- 내 지갑 안에 든 천 원은 당연히 내 돈이다 (반사의 공리).
- 내가 너보다 쎈데(X>Y), 똑같이 몽둥이(Z)를 하나씩 쥐여줘도 여전히 내가 너를 이긴다 (첨가의 공리).
- 내가 A를 이기는데, A가 B를 이기면, 나는 무조건 B를 이긴다 (이행의 공리). 이 3가지 팩트만 있으면 숨겨진 서열 구조(종속성)를 완벽하게 그려낼 수 있습니다.