2012-08-22 3 views
0

OK это, вероятно, очень просто для большинства из вас, но я изо всех сил стараюсь выполнить это задание (да, это домашняя работа). Я попытался это дважды сейчас и потерпел неудачу оба раза до сих пор.Нормализовать нормальную форму Boyce Codd в реляционной модели данных

Мне нужно создать реляционную модель данных в нормальной форме Boyce Codd. Вот подробности:

Аэропорт Authority в маленькой стране требует базы данных для хранения информации о авиакомпаний, пилотов и самолетов.

Существует только один аэропорт , но его используют несколько авиакомпаний. Для каждой авиакомпании требуется идентификационный код и полное имя вместе с телефоном номер его местного отделения. Несколько типов самолетов используют аэропорт и для каждого типа, необходимо записать топливную мощность и максимальный диапазон.

Каждый пилот работает только для одной авиакомпании. Для каждого пилота их имя, , дата рождения, адрес, типы самолетов, которые они могут летать, и их номер лицензии . Дополнительная информация должна быть заполнена , чтобы обеспечить составление отчета с указанием следующих деталей для каждого самолета, использующего аэропорт: Идентификация самолета код, Тип самолета, Дата изготовления, Собственная авиакомпания.

Это то, что я теперь (после повторного проектирования):

В AIRLINES таблицы должен включать в себя:

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 

таблица ТИП ПЛАНЫ должен включать:

ID, 
Maximum range, 
Fuel capacity, 

пилоты таблицы должны включать в себя:

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 

По моему маркеру, я бы оставил отношения многих ко многих между пилотом и типом Plane. Может кто-нибудь с некоторыми знаниями в области дизайна базы данных, пожалуйста, помогите мне?

(EDIT: Таблицы теперь обновлены с помощью PILOTPLANETYPE, которые, как я думаю, должны удовлетворять требованиям)?

+0

Тип самолета изготовлен на обширной дистанции (20 лет, возможно); дата изготовления для одной плоскости, вероятно, не связана с типом плоскости, а с конкретной плоскостью. Точно так же есть много авиакомпаний, которые летают на данном типе самолета, но данный самолет летает только одной авиакомпанией за раз. Поэтому у вас есть некоторые атрибуты. –

+0

Хорошо, я изменил таблицы и атрибуты. Считаете ли вы, что это должно работать сейчас? –

+0

Довольно близко; вы можете захотеть записать, что комбинация PilotID и PlaneTypeID является первичным ключом таблицы PilotPlaneType. У вас есть минимальная необходимая информация в таблице PlaneType; Я подозреваю, что вам может потребоваться идентификатор производителя (и таблица производителей для идентификации разных производителей с отношением PK-FK к PlaneType) и именем модели в таблице PlaneType. Просто печатать номер типа самолета может быть достаточно, но, вероятно, это не совсем так. –

ответ

1

Ваш дизайн имеет один тип самолета для каждого пилота.

Описание содержит «типы самолетов, в которые они могут летать». Это множественное число предполагает, что каждый пилот мог летать на многих самолетах.

Поскольку это домашнее задание, я дам вам понять, как поместить эту информацию в ваш дизайн.

+1

Хорошо, если я создаю таблицу с именем: Pilot_plane_type с основным ключом: PilotID, PlanetypeID между Pilot и Plane Type? –

+0

Я думаю, что это удовлетворило бы условие разумности. Я не знаю точно, к чему относится нормальная форма «Boyce Codd», поэтому я не могу говорить об академическом определении. –

+0

Нормальная форма Boyce Codd (BCNF) в основном означает «разумный». Хотя есть формальное определение (и нечеткое неофициальное): каждый атрибут в таблице представляет собой факт о ключе, ключе целиком и ничего, кроме ключа, так что помогите мне, Codd! _), Это в основном здравый смысл. –

Смежные вопросы