1NF(First Normal Form)는 중복성을 제거하는 것이 아니라 반복되는 그룹을 제거한다는 것입니다. 한 레코드에 동일한 종류의 데이터 열이 여러 개 있는 대신(0NF 또는 비정규화 형식) 반복되는 정보를 별도의 관계로 제거하고 행으로 표시합니다. 이것이 1NF를 구성하는 것입니다.
두 번째 정규형
두 번째 정규형(2NF)은 완전한 기능적 종속성의 개념을 기반으로 합니다. 두 번째 정규형은 복합 키와의 관계, 즉 두 개 이상의 속성으로 구성된 기본 키와의 관계에 적용됩니다. 단일 속성 기본 키와의 관계는 자동으로 최소 2NF가 됩니다. 2NF에 속하지 않는 관계는 업데이트 이상으로 인해 어려움을 겪을 수 있습니다. 두 번째 정규형이 되려면 관계가 첫 번째 정규형이어야 하며 관계에 부분 종속성이 포함되어서는 안 됩니다. 부분 종속성이 없는 경우 관계는 2NF에 속합니다. 즉, 비프라임 속성(후보 키의 일부가 아닌 속성)이 테이블의 후보 키의 적절한 하위 집합에 종속되지 않는 경우입니다. 다시 말해서,
제1정규형에 있고 기본 키가 아닌 모든 속성이 기본 키에 완전히 기능적으로 종속된 관계는 2NF(제2정규형)에 있습니다.
메모 - 후보 키의 적절한 부분 집합이 소수가 아닌 속성을 결정하는 경우 이를 호출합니다. 부분 의존성 . 그만큼 표준화 1NF와 2NF의 관계에는 다음이 포함됩니다. 부분 종속성 제거 . 부분 종속성이 존재하는 경우 해당 결정자의 복사본과 함께 새 관계에 배치하여 부분 종속 속성을 관계에서 제거합니다. 아래에 주어진 예를 고려하십시오.
예-1: 아래 표를 고려하십시오.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
{동일한 수강료를 받는 강좌가 많이 있으니 참고하세요. } 여기서 COURSE_FEE만으로는 COURSE_NO 또는 STUD_NO의 값을 결정할 수 없습니다. COURSE_FEE는 STUD_NO와 함께 COURSE_NO의 값을 결정할 수 없습니다. COURSE_FEE는 COURSE_NO와 함께 STUD_NO의 값을 결정할 수 없습니다. 따라서 COURSE_FEE는 유일한 후보 키 {STUD_NO, COURSE_NO}에 속하지 않으므로 비프라임 속성이 됩니다. 그러나 COURSE_NO -> COURSE_FEE, 즉 COURSE_FEE는 후보키의 진부분집합인 COURSE_NO에 종속된다. 비프라임 속성 COURSE_FEE는 부분 종속성인 후보 키의 적절한 하위 집합에 종속되므로 이 관계는 2NF가 아닙니다. 위의 관계를 2NF로 변환하려면 테이블을 다음과 같은 두 개의 테이블로 분할해야 합니다. 테이블 1: STUD_NO, COURSE_NO 테이블 2: COURSE_NO, COURSE_FEE
마지막 커밋 git 삭제
Table 1 Table 2 STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000 2 C5>
메모 - 2NF는 메모리에 저장되는 중복 데이터를 줄이려고 노력합니다. 예를 들어 C1 과정을 수강하는 학생이 100명인 경우 모든 100개 레코드에 대해 수수료를 1000으로 저장할 필요가 없으며 대신 C1의 과정 비용이 1000이므로 두 번째 테이블에 저장할 수 있습니다.
예-2: 관계 R(A, B, C, D)에서 다음과 같은 기능적 종속성을 고려하십시오.
AB ->C [A와 B가 함께 C를 결정] BC -> D [B와 C가 함께 D를 결정]>
답변:
먼저 부분 종속성이 있는지 확인할 수 있습니다. 부분 종속성은 프라임이 아닌 속성(후보 키의 일부가 아님)이 후보 키의 일부에만 의존하는 경우 발생합니다.
관계 R의 후보 키는 각 속성의 클로저를 찾아 결정될 수 있습니다.
AB는 모든 키를 결정합니다.
자바 문자열을 int로 변환
이제 부분 종속성을 확인해 보겠습니다.
각 비프라임 속성(C 및 D)은 해당 속성이 속한 전체 후보 키(각각 AB 및 BC)에 의존하기 때문에 이 관계에는 부분 종속성이 없습니다.
따라서 관계 R은 1차 정규형(1NF)과 2차 정규형(2NF)의 조건을 만족하고 추이적 종속성을 가지지 않으므로 이미 3차 정규형(3NF)에 있습니다.
결론
결론적으로 2NF는 관계형 데이터베이스에서 부분 종속성을 제거하는 데 도움이 되는 데이터베이스 정규화의 기본 개념입니다. 2NF 규칙을 따르면 데이터베이스를 구성하여 변칙을 방지하고 데이터 무결성을 보장하여 데이터를 더 쉽게 저장하고 검색할 수 있습니다.