데이터베이스 정규화 : 두 번째 정규 형식 (2NF)으로 전환

두 번째 정규 형식으로 데이터베이스 배치

지난 한 달 동안 데이터베이스 테이블을 정규화하는 몇 가지 측면을 살펴 보았습니다. 먼저 데이터베이스 정규화의 기본 원칙에 대해 논의했습니다. 지난 번, 우리는 첫 번째 표준 형식 (1NF)에 의해 정의 된 기본 요구 사항을 탐구했습니다. 자, 우리의 여정을 계속하고 두 번째 정규형 (2NF)의 원칙을 다루도록합시다.

2NF의 일반적인 요구 사항을 상기하십시오 :

이러한 규칙은 간단한 문으로 요약 할 수 있습니다. 2NF는 테이블에서 중복 데이터의 양을 추출하여 새 테이블에 배치하고 해당 테이블 간의 관계생성 하려고 시도합니다.

예를 살펴 보겠습니다. 고객 정보를 데이터베이스에 유지 관리하는 온라인 상점을 상상해보십시오. Customers에는 다음 요소가있는 단일 테이블이있을 수 있습니다.

이 표를 간략하게 살펴보면 소량의 중복 데이터가 있음을 알 수 있습니다. 우리는 "Sea Cliff, NY 11579"및 "Miami, FL 33157"항목을 각각 두 번 저장하고 있습니다. 이제는 간단한 예제에서 너무 많이 추가 된 스토리지가 아닌 테이블에 수천 개의 행이 있으면 낭비되는 공간을 상상해보십시오. 또한 Sea Cliff의 ZIP 코드를 변경하려면 데이터베이스 전체의 여러 위치에서 변경해야합니다.

2NF 호환 데이터베이스 구조에서이 중복 정보는 추출되어 별도의 테이블에 저장됩니다. 우리의 새로운 테이블 (ZIP이라고 부르 자)은 다음과 같은 필드를 가질 수있다 :

우리가 매우 효율적 이길 원한다면 우 리는 모든 유효한 우편 번호와 도시 / 주 관계의 디렉토리를 제공합니다. 물론, 이러한 유형의 데이터베이스가 활용 된 상황에 직면했습니다. 누군가 당신의 우편 번호를 먼저 물어 본 다음 당신이 전화 한 도시와 주를 알고있을 것입니다. 이러한 유형의 배열은 작업자 오류를 줄이고 효율성을 높입니다.

Customers 테이블에서 중복 데이터를 제거 했으므로 두 번째 정규 형식의 첫 번째 규칙을 만족합니다. 우리는 여전히 외래 키 를 사용하여 두 테이블을 묶어야합니다. ZIP 코드 (ZIP 테이블의 기본 키)를 사용하여 해당 관계를 만듭니다. 다음은 새로운 Customers 테이블입니다.

우리는 이제 데이터베이스에 저장된 중복 정보의 양을 최소화했으며 구조는 두 번째 정규 형식입니다!

데이터베이스가 표준화되었는지 확인하려면이 시리즈의 다른 기사를 참조하십시오.