데이터베이스 정규화의 전체 기능 종속성

전체 기능 종속성은 2 차 정규형 (2NF) 의 표준화 표준과 동일한 데이터베이스 정규화 상태입니다. 간단히 말해서, 이것은 First Normal Form (1NF)의 요구 사항을 충족시키고 모든 비 핵심 속성은 기본 기능 키에 완전히 기능적으로 종속됨을 의미합니다.

이것은 소리가 날 정도로 복잡하지는 않습니다. 좀 더 자세히 살펴 보겠습니다.

첫 번째 정규 서식 요약

데이터베이스가 기능에 완전히 의존하기 전에 먼저 First Normal Form을 준수해야합니다.

즉, 각 속성은 하나의 원자 값을 보유해야합니다.

예를 들어, 직원 Tina가 두 곳의 위치에 연결되어 있기 때문에 다음 표는 1NF를 준수하지 않습니다 . 둘 다 단일 셀에 있습니다.

첫 번째 정규 양식 미준수
종업원 위치
남자 로스 앤젤레스
티나 로스 앤젤레스, 시카고

이 설계를 허용하면 데이터 업데이트 또는 항목에 부정적인 영향을 미칠 수 있습니다. 1NF 규격을 준수하려면 모든 특성 (또는 열 셀)이 단일 값을 갖도록 표를 재정렬하십시오.

첫 번째 표준 양식 준수
종업원 위치
남자 로스 앤젤레스
티나 로스 앤젤레스
티나 시카고

그러나 1NF는 여전히 데이터 문제를 피하기에 충분하지 않습니다.

전체 종속성을 보장하는 2NF 작동 방식

완전히 종속되기 위해서는 후보 키가 아닌 모든 속성이 기본 키에 의존해야합니다. ( 후보 키 속성은 데이터베이스 레코드를 고유하게 식별하는 데 사용되는 키 (예 : 기본 키 또는 외부 키)입니다.

데이터베이스 설계자는 표기법을 사용하여 속성 간의 종속 관계를 설명합니다.

속성 A가 B의 값을 결정하면 A -> B -이 함수는 B가 기능적으로 A에 종속됨을 의미합니다.이 관계에서 A는 B의 값을 결정하고 B는 A에 의존합니다.

예를 들어, 다음 Employee Departments 테이블에서 EmployeeID와 DeptID는 모두 후보 키입니다. EmployeeID는 테이블의 기본 키이며 DeptID는 외래 키입니다.

다른 모든 속성 (이 경우, EmployeeName W DeptName)은 기본 값에 따라 값을 가져야합니다.

직원 부서
EmployeeID EmployeeName DeptID 부서 이름
Emp1 남자 Dept001 재원
Emp2 티나 Dept003 매상
Emp3 카를로스 Dept001 재원

이 경우 EmployeeName은 기본 키 EmployeeID에 종속되지만 DeptName은 DeptID에 의존하기 때문에 테이블은 완전히 종속되지 않습니다. 이를 부분 종속성 이라고합니다.

이 테이블을 2NF와 일치 시키려면 데이터를 두 개의 테이블로 분리해야합니다.

직원
EmployeeID EmployeeName DeptID
Emp1 남자 Dept001
Emp2 티나 Dept003
Emp3 카를로스 Dept001

Employees 테이블에서 DeptName 특성을 제거하고 새 테이블을 만듭니다. 부서 :

학과
DeptID 부서 이름
Dept001 재원
Dept002 인적 자원
Dept003 매상

이제 테이블 간의 관계는 완전히 종속적이거나 2NF에 있습니다.

전체 종속성이 중요한 이유

데이터베이스 속성 간의 완전한 종속성은 데이터 무결성을 보장하고 데이터 변형을 방지하는 데 도움이됩니다.

예를 들어, 1NF 만 준수하는 위의 표를 고려하십시오. 여기있다.

첫 번째 표준 양식 준수
종업원 위치
남자 로스 앤젤레스
티나 로스 앤젤레스
티나 시카고

티나는 두 기록이 있습니다. 두 개가 있다는 것을 알지 못하고 하나를 업데이트하면 결과가 일치하지 않게됩니다.

또는이 테이블에 직원을 추가하려고하지만 위치를 아직 모르는 경우에는 어떻게해야합니까? Location 속성이 NULL 값을 허용하지 않으면 새 직원을 추가 할 수 없게 될 수도 있습니다.

전체 종속성은 정규화와 관련하여 전체 그림은 아닙니다. 데이터베이스가 3 차 표준 형식 (3NF)인지 확인해야합니다.