전체 기능 종속성은 2 차 정규형 (2NF)의 표준화 표준과 동일한 데이터베이스 정규화 상태입니다. 간단히 말해서, 이것은 First Normal Form (1NF)의 요구 사항을 충족시키고 모든 비 핵심 속성은 기본 기능 키에 완전히 기능적으로 종속됨을 의미합니다.
이것은 소리가 날 정도로 복잡하지는 않습니다. 좀 더 자세히 살펴 보겠습니다.
첫 번째 정규 서식 요약
데이터베이스가 기능에 완전히 의존하기 전에 먼저 First Normal Form을 준수해야합니다.
즉, 각 속성은 하나의 원자 값을 보유해야합니다.
예를 들어 다음 표에서는 아니 직원 Tina가 두 곳의 위치에 연결되어 있기 때문에 1NF를 준수합니다. 둘 다 단일 셀에 있습니다.
종업원 | 위치 |
---|---|
남자 | 로스 앤젤레스 |
티나 | 로스 앤젤레스, 시카고 |
이 설계를 허용하면 데이터 업데이트 또는 항목에 부정적인 영향을 미칠 수 있습니다. 1NF 규격을 준수하려면 모든 특성 (또는 열 셀)이 단일 값을 갖도록 표를 재정렬하십시오.
첫 번째 표준 양식 준수
그러나 1NF는 여전히 데이터 문제를 피하기에 충분하지 않습니다.
전체 종속성을 보장하는 2NF 작동 방식
완전히 종속되기 위해서는 후보 키가 아닌 모든 속성이 기본 키에 의존해야합니다. (후보 키 속성은 데이터베이스 레코드를 고유하게 식별하는 데 사용되는 키 (예 : 기본 키 또는 외부 키)입니다.
데이터베이스 설계자는 표기법을 사용하여 속성 간의 종속 관계를 설명합니다.
속성 A가 B의 값을 결정하면, 다음과 같이 쓴다.A -> B- B가 기능적으로 A에 종속됨을 의미합니다.이 관계에서 A는 B의 값을 결정하고 B는 A에 의존합니다.
예를 들어, 다음에서 직원 부서 테이블, 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 |
우리는 DeptName 속성을 직원 테이블을 만들고 새 테이블을 만듭니다. 학과 :
DeptID | 부서 이름 |
---|---|
Dept001 | 재원 |
Dept002 | 인적 자원 |
Dept003 | 매상 |
이제 테이블 간의 관계는 완전히 종속적이거나 2NF에 있습니다.
전체 종속성이 중요한 이유
데이터베이스 속성 간의 완전한 종속성은 데이터 무결성을 보장하고 데이터 변형을 방지하는 데 도움이됩니다.
예를 들어, 1NF 만 준수하는 위의 표를 고려하십시오. 여기있다.
종업원 | 위치 |
---|---|
남자 | 로스 앤젤레스 |
티나 | 로스 앤젤레스 |
티나 | 시카고 |
티나는 두 기록이 있습니다. 두 개가 있다는 것을 알지 못하고 하나를 업데이트하면 결과가 일치하지 않게됩니다.
또는이 테이블에 직원을 추가하려고하지만 위치를 아직 모르는 경우에는 어떻게해야합니까? Location 속성이 NULL 값을 허용하지 않으면 새 직원을 추가 할 수 없게 될 수도 있습니다.
전체 종속성은 정규화와 관련하여 전체 그림은 아닙니다. 데이터베이스가 3 차 표준 형식 (3NF)인지 확인해야합니다.