데이터베이스 정규화 : 첫 번째 정규 형식

이 두 가지 간단한 규칙은 데이터베이스 정규화에 도움이됩니다.

First Normal Form (1NF)은 체계적인 데이터베이스의 기본 규칙을 설정합니다.

이 규칙은 데이터베이스의 실제 설계를 고려할 때 무엇을 의미합니까? 사실 아주 간단합니다.

1. 중복 제거

첫 번째 규칙은 테이블의 같은 행에 데이터를 복제해서는 안된다는 것을 나타냅니다. 데이터베이스 공동체 내에서이 개념을 테이블의 원 자성이라고합니다. 이 규칙을 따르는 테이블은 원자 적이라고합니다. 고전적인 예를 들어이 원칙을 살펴 보겠습니다. 매니저 - 종속 관계를 저장하는 인적 자원 데이터베이스 내의 테이블. 예를 들어, 각 관리자는 하나 이상의 부하 직원을 보유하고 각 부하 직원은 단 하나의 관리자 만 가질 수 있다는 비즈니스 규칙을 적용합니다.

직관적으로이 정보를 추적하기 위해 목록이나 스프레드 시트를 만들 때 다음 입력란이있는 표를 만들 수 있습니다.

그러나 1NF에 의해 부과 된 첫 번째 규칙을 상기하십시오 : 동일한 테이블에서 중복 열을 제거하십시오. 분명히 Subordinate1-Subordinate4 열은 중복됩니다. 잠시 시간을내어이 시나리오에서 제기 된 문제에 대해 생각해보십시오. 관리자가 한 명의 부하 직원 만 가지고있는 경우, Subordinate2-Subordinate4 열은 단순히 낭비되는 저장 공간 (귀중한 데이터베이스 필수품) 일뿐입니다. 또한 관리자가 이미 4 명의 부하 직원을두고있는 경우를 상상해보십시오. 직원이 다른 직원을 고용하면 어떻게됩니까? 전체 테이블 구조는 수정이 필요합니다.

이 시점에서 데이터베이스 초심자에게는 두 번째 밝은 아이디어가 일반적으로 발생합니다. 우리는 하나 이상의 열을 가지기를 원하지 않으며 유연한 데이터 저장 용량을 허용하고자합니다. 다음과 같이 해보 죠.

하위 필드에는 "Mary, Bill, Joe"형식의 여러 항목이 포함됩니다.

이 해결책은 더 가깝지만 표식에 미치지 못합니다. 부하 직원 열은 여전히 ​​중복적이고 비 원자력입니다. 부하 직원을 추가하거나 제거해야 할 때 어떻게됩니까? 우리는 표의 전체 내용을 읽고 쓸 필요가 있습니다. 이 상황에서 큰 문제는 아니지만, 한 명의 관리자가 100 명이 있으면 어떻게됩니까? 또한 향후 쿼리에서 데이터베이스의 데이터를 선택하는 과정이 복잡해집니다.

다음은 1NF의 첫 번째 규칙을 충족시키는 테이블입니다.

이 경우 각 하위 항목에는 단일 항목이 있지만 관리자는 여러 항목을 가질 수 있습니다.

2. 기본 키 식별

이제 두 번째 규칙은 무엇입니까? 고유 한 열 또는 열 집합 ( 기본 키 )을 사용하여 각 행을 식별 할 수 있습니까? 위의 표를 살펴보고 하위 열을 기본 키로 사용하는 것이 좋습니다. 사실 비즈니스 규칙에 따라 각 하위 직원마다 하나의 관리자 만있을 수 있기 때문에 하위 항목은 기본 키를위한 좋은 후보입니다. 그러나 우리가 테이블에 저장하기로 선택한 데이터는 이상적인 솔루션이 아닙니다. Jim이라는 직원을 고용하면 어떻게됩니까? 그의 매니저 - 종속 관계를 어떻게 데이터베이스에 저장합니까?

진정한 고유 식별자 (예 : 직원 ID)를 기본 키로 사용하는 것이 가장 좋습니다. 최종 테이블은 다음과 같습니다.

자, 우리 테이블은 첫 번째 정규 형식입니다! 정규화에 대해 계속 학습하려면이 시리즈의 다른 기사를 읽어보십시오.