2NF란 무엇입니까?
정규화의 두 번째 단계는 2NF입니다.
테이블은 관계가 1NF에 있고 모든 규칙을 충족하고 키가 아닌 모든 속성이 기본 키에 완전히 종속되는 경우에만 2NF에 있습니다.
두 번째 정규형은 기본 키에 대한 부분 종속성을 제거합니다.
예를 들어 보겠습니다 -
예(테이블이 2NF를 위반함)
<학생 프로젝트>
StudentID | 프로젝트 ID | 학생 이름 | 프로젝트 이름 |
S89 | P09 | 올리비아 | 지리적 위치 |
S76 | P07 | 야곱 | 클러스터 탐색 |
S56 | P03 | 아바 | IoT 기기 |
S92 | P05 | 알렉산드라 | 클라우드 배포 |
위의 표에는 부분 종속성이 있습니다. 방법을 알아보겠습니다 -
주요 속성은 StudentID 입니다. 및 프로젝트 ID .
명시된 바와 같이 비 주요 속성, 즉 StudentName 및 프로젝트 이름 부분 종속이 되려면 후보 키의 일부에 기능적으로 종속되어야 합니다.
학생 이름 StudentID로 결정할 수 있음 , 관계를 부분 종속적으로 만듭니다.
프로젝트 이름 ProjectID로 결정할 수 있음 , 관계를 부분 종속적으로 만듭니다.
따라서 <StudentProject> 관계는 정규화에서 2NF를 위반하고 잘못된 데이터베이스 설계로 간주됩니다.
예시(2NF로 변환한 표)
2NF에 대한 부분 종속성과 위반을 제거하려면 위의 표를 분해하십시오 -
<학생 정보>
StudentID | 프로젝트 ID | 학생 이름 |
S89 | P09 | 올리비아 |
S76 | P07 | 야곱 |
S56 | P03 | 아바 |
S92 | P05 | 알렉산드라 |
<프로젝트 정보>
프로젝트 ID | 프로젝트 이름 |
P09 | 지리적 위치 |
P07 | 클러스터 탐색 |
P03 | IoT 기기 |
P05 | 클라우드 배포 |
이제 관계는 Database Normalization의 2nd Normal 형식입니다.