정규화 분해 체크

하나의 분해를 두 방향에서 검사한다

무손실 분해는 다시 조인했을 때 원래 릴레이션이 복원되는지 보고, 종속성 보존은 원래 함수 종속을 분해된 각 테이블 안에서 그대로 검사할 수 있는지 봅니다.

출발점
원래 릴레이션: R(A, B, C)
R을 여러 테이블로 분해

1. 무손실 분해: 조인 결과가 원본과 같아야 한다

공통 속성으로 자연 조인했을 때 정보가 더 생기거나 빠지면 안 됩니다. 핵심은 공통 속성이 최소 한쪽의 키인지입니다.

검사 순서
분해 → 공통 속성 확인 → 자연 조인 결과 비교
조인 키가 불충분하면 원래 없던 조합이 만들어져 가짜 튜플이 생깁니다.
R1(A, B), R2(A, C) 무손실
공통 속성: A
A가 R1 또는 R2의 키
A로 다시 조인하면 R(A, B, C)가 그대로 복원됩니다.
R1(A, B), R2(B, C) 가짜 튜플 위험
공통 속성: B
B가 어느 쪽의 키도 아님
B만 맞는 여러 행이 섞여 조인되면서 원래 없던 (A, B, C) 조합이 붙을 수 있습니다.

2. 종속성 보존: 제약을 각 테이블 안에서 확인할 수 있어야 한다

분해 뒤에도 원래 함수 종속을 조인 없이 검증할 수 있어야 운영과 검사가 단순해집니다.

예시 함수 종속
A → B
B → C
분해 결과
R1(A, B), R2(B, C)
로컬 검증
A → B는 R1에서, B → C는 R2에서 바로 검사할 수 있습니다.
의미
원래 제약을 확인하려고 테이블들을 다시 조인할 필요가 없으므로 제약 검증 비용과 복잡도가 줄어듭니다.
정리: 같은 분해라도 왼쪽은 데이터를 다시 합쳤을 때 원본이 유지되는가, 오른쪽은 제약을 분해된 상태에서 그대로 검사할 수 있는가를 본다는 점이 다릅니다.