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

제5정규형(5NF) 완벽 이해하기 – 프로젝트-조인 정규형의 개념과 예제

제5정규형(5NF)이란?

제5정규형(Fifth Normal Form, 5NF)은 프로젝트-조인 정규형(Project-Join Normal Form)이라고도 불립니다. 하나의 릴레이션이 제5정규형을 만족하려면 다음 두 가지 조건을 충족해야 합니다.

  • 먼저 제4정규형(4NF)을 만족해야 합니다.
  • 더 작은 테이블로 나누더라도 원래의 정보를 잃지 않는 무손실 분해(lossless decomposition)가 불가능해야 합니다.

다른 관점에서 설명하면, 릴레이션 내부의 모든 조인 의존성(join dependency)이 후보 키(candidate key)에 의해 함축될 때 해당 릴레이션은 5NF를 만족한다고 볼 수 있습니다.

예제로 살펴보는 5NF 위반 사례

아래의 <Employee> 릴레이션은 정규화 과정에서 제5정규형(5NF)을 위반하고 있습니다.

<Employee>

EmpNameEmpSkillsEmpJob(배정된 업무)
DavidJavaE145
JohnJavaScriptE146
JamiejQueryE146
EmmaJavaE147

위 릴레이션은 다음의 세 개 테이블로 분해할 수 있기 때문에 5NF를 만족하지 않습니다.

1. 직원–기술 관계 (<EmployeeSkills>)

EmpNameEmpSkills
DavidJava
JohnJavaScript
JamiejQuery
EmmaJava

2. 직원–업무 관계 (<EmployeeJob>)

다음은 각 직원에게 배정된 업무를 보여주는 <EmployeeJob> 릴레이션입니다.

EmpNameEmpJob
DavidE145
JohnE146
JamieE146
EmmaE147

3. 기술–업무 관계 (<JobSkills>)

다음은 배정된 업무와 관련된 기술을 나타내는 릴레이션입니다.

EmpSkillsEmpJob
JavaE145
JavaScriptE146
jQueryE146
JavaE147

조인 의존성 확인

위 릴레이션들의 조인 의존성은 다음과 같습니다.

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

위 릴레이션들이 조인 의존성을 가지고 있으므로 5NF를 만족하지 않습니다. 이는 위의 세 개 릴레이션을 조인한 결과가 원래의 <Employee> 릴레이션과 동일하게 복원된다는 것을 의미합니다. 즉, 세 개의 테이블로 분해해도 데이터 손실 없이 원본을 재구성할 수 있기 때문에, 이러한 분해 가능성이 존재하는 릴레이션은 아직 제5정규형에 도달하지 못한 것입니다.