1

이것은 내가하고있는 데이터베이스 프로젝트를위한 것이며 3NF와 BCNF와 관련하여 혼란 스럽습니다. 어떻게 든 이해할 수는 있지만 내 자신의 관계에 적용 할 수는 없습니다. 나 그리고 나 자신의 나머지 관계를 계속할 수있다.이 관계가 3NF와 BCNF에 있는지 그리고 왜 필요합니까?

직원 : (SID,하고 Fname, MI, LNAME, 위치, 시프트, PHONE_NUMBER, 생년월일, 미상, 성별, Apt_Number,시, ZIP_CODE)

FD1 : (SID) -> (을 Fname, MI, Lname, Position, Shift, Phone_number, DoB, DoE, Gender, Apt_Number, City, Zip_code);

FD2 : (을 Fname, MI, LNAME, DOB) -> (SID, 위치, 시프트, PHONE_NUMBER, 미상, 성별, Apt_Number,시, ZIP_CODE)

FD3 : (ZIP_CODE) -> (도시)

고맙습니다.

+0

의 SID의 당연히이 기본 키입니다, 많이 도움이 ... –

답변

0

확인은 간단하고 충분히 이해합니다. FD3에서 Zip_code는 기본 키가 아니며 도시에 둘 이상의 Zip_code가있을 수 있으므로 3NF에 없으므로 분해해야합니다. {Zip_code (Primary Key), City}라는 다른 테이블을 만듭니다 .Zip_Locations는 후보 또는 기본 키에 따라 하나의 FD 및 기본 키가 없으므로 자동으로 3NF를 만족합니다. 직원은이 직원처럼 보일 것입니다 : (SID, Fname, MI, Lname, Position, Shift, Phone_number, DoB, DoE, Gender, Apt_Number, Zip_code) 그리고 비 관계 후보 키에 엄격히 의존해야합니다. 더하기 관계에 하나의 기본 키가 있고 이미 3NF를 만족하면 BCNF를 자동으로 만족시킵니다.

이 웹 사이트

http://www.tomjewett.com/dbdesign/dbdesign.php?page=subkeys.php