2012-05-24 3 views
1

У меня есть следующее отношение. В компании есть несколько сотрудников. Каждый сотрудник определяется его номером сотрудника ENr, и он проживает по адресу EAddress с ZipCode ZZipCode. Город с ZipCode является собственной таблицей, поскольку в таблице Employee имеется избыточность. Поэтому ZZipCode является внешним ключом в Employee.Отношение базы данных в 3NF?

Группа определена ее GGroupId, поэтому это первичный ключ. В каждой группе есть один руководитель группы, который может быть любым сотрудником. Поэтому ENr - это внешний ключ.

Каждый сотрудник может работать ни на одной, ни в одной группе. По этой причине существует таблица GroupMember, где кортежи ENr и GGroupID определяют первичный ключ, и оба являются внешними ключами (я не могу сделать то же, жирным и курсивным).

И, наконец, продукт определяется его идентификатором продукта PId и связан с группой GGroupID.

Ну вот и отношения для этого письменного описания.

служащая (ENR, ENAME, EGender, EAddress, ZZipCode, ESocNr, ESalery)
группы (GGroupId, GName, GCostNr, ENR)
GroupMember (ENR, GGroupID) # Оба члена являются иностранными ключами тоже!
продукта (PId, PNAME, PPrice, GGRoupId)
Zip (ZZipCode, ZCityName, SStateID)
State (SStateID, SStateName)

Для уточнения: жирным шрифтом членами являются первичными ключами и italic членами являются иностранные ключи.

Я попытался установить это отношение в 3NF. Может ли кто-нибудь подтвердить, что это правильно?

+0

Не уверен насчет 3NF, но нормализуется, я не могу найти лучшего отношения – Mustafa

+0

Какую форму подтверждения вы хотите? Я имею в виду, достаточно ли сказать «Да, это так»? :) – dezso

+0

Ну, я попытался поместить это в 3NF. Если это не ты можешь сказать мне, почему бы и нет;) – Razer

ответ

1

Это кажется хорошим и нормализованным. Я не вижу дальнейшего разделения таблиц.