제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>
| EmpName | EmpSkills | EmpJob(배정된 업무) |
| David | Java | E145 |
| John | JavaScript | E146 |
| Jamie | jQuery | E146 |
| Emma | Java | E147 |
위 릴레이션은 다음의 세 개 테이블로 분해할 수 있기 때문에 5NF를 만족하지 않습니다.
1. 직원–기술 관계 (<EmployeeSkills>)
| EmpName | EmpSkills |
| David | Java |
| John | JavaScript |
| Jamie | jQuery |
| Emma | Java |
2. 직원–업무 관계 (<EmployeeJob>)
다음은 각 직원에게 배정된 업무를 보여주는 <EmployeeJob> 릴레이션입니다.
| EmpName | EmpJob |
| David | E145 |
| John | E146 |
| Jamie | E146 |
| Emma | E147 |
3. 기술–업무 관계 (<JobSkills>)
다음은 배정된 업무와 관련된 기술을 나타내는 릴레이션입니다.
| EmpSkills | EmpJob |
| Java | E145 |
| JavaScript | E146 |
| jQuery | E146 |
| Java | E147 |
조인 의존성 확인
위 릴레이션들의 조인 의존성은 다음과 같습니다.
| {(EmpName, EmpSkills), (EmpName, EmpJob), (EmpSkills, EmpJob)} |
위 릴레이션들이 조인 의존성을 가지고 있으므로 5NF를 만족하지 않습니다. 이는 위의 세 개 릴레이션을 조인한 결과가 원래의 <Employee> 릴레이션과 동일하게 복원된다는 것을 의미합니다. 즉, 세 개의 테이블로 분해해도 데이터 손실 없이 원본을 재구성할 수 있기 때문에, 이러한 분해 가능성이 존재하는 릴레이션은 아직 제5정규형에 도달하지 못한 것입니다.