0

Я делаю курс теории базы данных как часть моей степени CS, и мы должны подтвердить, что база данных, которую мы создали, находится в нормальной форме BCNF. В настоящее время я пытаюсь создать функциональные зависимости, но я не уверен, что делать, когда отношение является простым (все атрибуты являются первичными ключами, например, когда у вас есть отношение M: N)Функциональные зависимости для отношения со всеми основными атрибутами?

Например, considder это соотношение:

Prod_Cat [имя, cATEGORY_ID, EPC]

Где имя, category_id и EPC все первичные ключи.

Как я могу определить функциональные зависимости для этого?

Любая помощь мне очень понравилась.

Спасибо Corey

ответ

1

Я не уверен, о значении столбцов в таблице, но если ваш первичный ключ состоит из всех столбцов, вы будете иметь только тривиальные функциональные зависимости вида A-> B, где B - подмножество A. (Если у вас были какие-либо другие функциональные зависимости формы A-> B, где B не является подмножеством A, тогда B не будет в ключе.) Кроме того, таблица должна быть в BCNF (но может не быть в 4NF).

0

Обычно мы рассматриваем нормализацию, применяемую к таблицам сущностей, а не к таблицам пересечений. Это связано с тем, что в таблице открытого пересечения содержатся только независимые ключи, а не атрибуты. В общем, ключи создаются во время процесса нормализации, поэтому все зависимости уже разрешены (при условии правильного проектирования).

Однако таблица пересечений определяет отношения, а отношения могут иметь дополнительные атрибуты.

create table DeptMgrs(
    DeptID int not null references Departments(ID), 
    MgrID int not null references Employees(ID), 
    Assigned date not null, 
    constraint PK_DeptMgrs primary key(DeptID, MgrID) 
); 

Как правило, нет никаких функциональных зависимостей между полями FK из таблицы пересечений, при этом ни между DeptID и MgrID - они импортированные ключевыми полями, и вместе они образуют естественный ключ отношений. Тем не менее, поле Assigned указывает дату сотрудник стал , что отдел. Это атрибут не отдела или сотрудника, а отношения между ними. Конечно, этот пример тривиально в 3nf и даже BCNF, но с дополнительными атрибутами может потребоваться нормализация таблицы пересечений.

А разве это не должно быть весело?

Поскольку в вашей таблице пересечений есть только поля FK, между ними не должно быть зависимостей.