У меня есть следующее отношение. В компании есть несколько сотрудников. Каждый сотрудник определяется его номером сотрудника 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
. Может ли кто-нибудь подтвердить, что это правильно?
Не уверен насчет 3NF, но нормализуется, я не могу найти лучшего отношения – Mustafa
Какую форму подтверждения вы хотите? Я имею в виду, достаточно ли сказать «Да, это так»? :) – dezso
Ну, я попытался поместить это в 3NF. Если это не ты можешь сказать мне, почему бы и нет;) – Razer