2012-08-22 5 views
0

OK 대다수의 사람들에게는 이것이 매우 기본적인 것 같지만,이 과제를 수행하는 데 어려움을 겪고 있습니다 (예, 숙제입니다). 나는 이것을 지금 두 번 시도해 왔으며 지금까지 두 번 실패했다.Boyce Codd Normal로 정규화 관계형 데이터 모델

Boyce Codd Normal Form에서 관계형 데이터 모델을 만들어야합니다. 작은 나라의 공항 당국은 항공사, 조종사와 비행기에 대한 정보를 저장하는 데이터베이스가 필요

: 다음은 세부 사항입니다.

공항이 하나 있지만 여러 항공사에서 사용합니다. 각 항공사의 식별 코드와 성명은 전화 번호와 함께 필요합니다. 공항의 종류에 따라 여러 유형이 있으며 각 유형에 , 연료 용량 및 최대 범위가 기록됩니다.

각 파일럿은 오직 하나의 항공사에서만 작동합니다. 각 조종사의 경우, 그들의 이름, 생년월일, 주소, 그들이 날 수있는 비행기의 종류 및 그들의 조종사의 면허 번호가 기록되어야합니다. 공항을 사용하는 각 항공기에 대해 세부 정보가 표시된 보고서를 작성할 수 있도록 추가 정보는 입니다. 비행기 식별 코드, 비행기 유형, 제조일, 소유 항공사.

은 (재 설계 후) 내가 지금 무엇을 가지고 :

는 테이블 항공은 다음을 포함한다 :

ID, 
Name, 
Phone # 

의 표면에는 다음 사항이 포함되어야

ID, 
Date of Manufacture 
Airline ID 
FOREIGN KEY (Airline ID) references table AIRLINES 
Plane Type ID 
FOREIGN KEY (Plane Type ID) references table PLANE TYPE 

을 테이블 평면 유형은 다음을 포함해야합니다 :

,210

테이블 조종사가 포함되어야

ID, 
Name, 
Date of Birth, 
Address, 
License #, 
Airline ID, 
FOREIGN KEY (Airline ID) references table AIRLINES 
PilotPlaneID 
FOREIGN KEY (PilotPlaneID) references table PILOTPLANETYPE 

테이블 PILOTPLANETYPE이 포함되어야

PilotID 
    PlaneTypeID 
    FOREIGN KEY (PilotID) references table PILOT 
    FOREIGN KEY (PlaneTypeID) references table PLANE TYPE 

을 내 마커에 따르면, 나는 조종사와 비행기 종류와 많은 관계로 많은 떠난했다. 일부 데이터베이스 설계 지식을 가진 사람이 도움의 손길을 보여줄 수 있습니까?

(EDIT : 테이블이 PILOTPLANETYPE으로 업데이트되었으므로 요구 사항을 충족해야한다고 생각하십니까?)

+0

비행기 유형은 광범위한 날짜 범위 (20 년, 아마도)에 걸쳐 제조됩니다. 단일 평면에 대한 제조일은 아마도 평면의 유형과 관련이 없지만 특정 평면과 연관되어있을 것입니다. 마찬가지로, 주어진 유형의 비행기를 비행하는 많은 항공사가 있지만, 주어진 비행기는 한 번에 하나의 항공사에 의해서만 비행됩니다. 따라서 일부 속성이 잘못 배치 된 것입니다. –

+0

좋아, 테이블과 속성을 변경했습니다. 이게 지금 효과가 있다고 생각하니? –

+0

꽤 닫습니다; PilotID와 PlaneTypeID의 조합이 PilotPlaneType 테이블의 기본 키임을 문서화 할 수 있습니다. PlaneType 테이블에 필요한 최소한의 정보가 있습니다. PlaneType 테이블에서 제조업체 ID (및 제조사 표를 사용하여 다른 제조업체를 식별하고 PK-FK 관계를 PlaneType으로) 및 모델 이름을 원할 것으로 판단됩니다. 단순히 비행기 타입 번호를 인쇄하는 것만으로 충분할 수도 있지만 아마도 그렇지는 않습니다. –

답변

1

설계시 파일럿마다 하나의 비행기 유형이 있습니다.

설명에는 "날아 다니는 비행기 종류"가 포함되어 있습니다. 이 복수형은 각 조종사가 여러 비행기를 조종 할 수 있음을 나타냅니다.

숙제이므로이 정보를 디자인에 적용하는 방법을 알아 보겠습니다.

+1

좋아, 다음과 같은 테이블을 만들면 어떨까요? Pilot_plane_type : 기본 키 : PilotID, PlanetypeID : 파일럿 및 평면 유형? –

+0

나는 그것이 합리성을위한 조건을 만족시킬 것이라고 생각한다. "Boyce Codd"의 정규 형식이 무엇을 의미하는지 정확히 알지 못하기 때문에 학문적 정의에 대해 말할 수 없습니다. –

+0

BCNF (Boyce Codd Normal Form)는 기본적으로 '합리적인'것을 의미합니다. 공식적인 정의가 있습니다 (그리고 비공식적 인 비공식적 인 정의가 있습니다. 표의 각 속성은 키, 전체 키 및 키에 대한 사실을 나타내므로 Codd! _) 기본적으로 상식입니다. –

관련 문제