Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

DBMS 조인 종속성(Join Dependency) 완벽 정리 – 개념부터 5NF 예제까지

조인 종속성(Join Dependency)이란?

조인 종속성(Join Dependency)은 하나의 테이블을 여러 개의 테이블로 분해한 뒤, 각 분해된 테이블이 원래 테이블 속성의 부분집합을 가지며, 이들을 다시 조인(join)했을 때 원래의 테이블과 동일하게 복원될 수 있는 경우를 말합니다. 즉, 분해된 테이블들을 조인하는 과정에서 원본 관계가 손실 없이 그대로 재현되는 종속성입니다.

조인 종속성은 다치 종속성(Multivalued Dependency, MVD)을 일반화한 개념입니다. 다치 종속성이 두 개의 테이블로의 분해와 관련이 있다면, 조인 종속성은 세 개 이상의 테이블로의 분해까지 포괄하는 더 넓은 개념입니다.

조인 종속성은 제5정규형(5NF, Fifth Normal Form)과 밀접한 관련이 있습니다. 어떤 릴레이션이 5NF에 속하려면 먼저 4NF를 만족해야 하며, 더 이상 손실 없는 분해(lossless decomposition)가 불가능해야 합니다. 만약 릴레이션이 조인 종속성을 가지고 있다면, 해당 릴레이션은 아직 5NF가 아니라고 볼 수 있습니다.

조인 종속성 예제

다음은 직원 정보를 담고 있는 <Employee> 테이블입니다.

EmpName (직원명)EmpSkills (기술)EmpJob (배정 업무)
TomNetworkingEJ001
HarryWeb DevelopmentEJ002
KatieProgrammingEJ002

위 테이블은 아래와 같이 세 개의 테이블로 분해할 수 있습니다. 따라서 이 테이블은 5NF를 만족하지 않습니다.

1. <EmployeeSkills> 테이블

EmpNameEmpSkills
TomNetworking
HarryWeb Development
KatieProgramming

2. <EmployeeJob> 테이블

EmpNameEmpJob
TomEJ001
HarryEJ002
KatieEJ002

3. <JobSkills> 테이블

EmpSkillsEmpJob
NetworkingEJ001
Web DevelopmentEJ002
ProgrammingEJ002

조인 종속성 표현

위 관계들의 조인 종속성은 다음과 같이 표현할 수 있습니다.

{(EmpName, EmpSkills), (EmpName, EmpJob), (EmpSkills, EmpJob)}

위 세 개의 릴레이션은 조인 종속성을 가지므로 5NF에 속하지 않습니다. 이것이 의미하는 바는, 위 세 개의 릴레이션을 조인한 결과가 원래의 <Employee> 릴레이션과 정확히 일치한다는 것입니다. 즉, 원본 테이블이 여러 테이블로 손실 없이 분해 가능하기 때문에 조인 종속성이 존재하며, 이 경우 데이터 중복과 이상(anomaly)을 줄이기 위해 추가적인 정규화 작업을 고려할 수 있습니다.