Два определения «CK (ключ-кандидат) данной таблицы»:
- Набор столбцов в таблице, функционально определяющий каждый столбец и содержащий не меньший такой набор.
- Набор столбцов в таблице, значения подстроки которого уникальны и который не содержит меньшего такого набора.
Мы не можем определить CK таблицы без информации, необходимой для определения, которое мы используем. Например, все FD (функциональные зависимости), или каноническое покрытие FD, или все наборы столбцов, значения подстрок которых уникальны, и т. д. Эта информация всегда может быть выражена без участия другой таблицы.
Мы можем выбрать один CK таблицы, чтобы назвать его PK (первичный ключ). ПК не имеют отношения к реляционной теории. (Если вы используете метод ER и в нем есть правила о PK и CK, вам следует указать ссылку и пометить его.)
Отдел не может быть частью ключа-кандидата (например: отдел, имя, фамилия, дата рождения) в таблице сотрудников, поскольку отдел не установлен в качестве первичного ключа в таблице отдела
Отдел не является внутри Employee, поэтому он не может быть частью его CK. Но если вы его добавили, то был ли это CK от него не зависят другие таблицы.
Если вы спрашиваете, можете ли вы что-то сделать, основываясь на различии между Dept как CK и PK в Department: PK всегда не имеют значения.
Если "Dept" является опечаткой для "Dept#": Тот факт, что Dept# является или не является ПК таблицы отдела, не имеет отношения к CK другой таблицы. Будь то PK против CK, всегда не имеет значения.
Но могу ли я по-прежнему называть Dept ключом-кандидатом, просто зная, что Dept является ключом-кандидатом в таблице Department?
Это ЦК отдела. Так что по-английски мы можем сказать, что это CK. Но быть CK означает быть CK конкретной таблицы.
Возможно, вы имеете в виду «могу ли я по-прежнему называть Dept CK» сотрудника, просто зная...». Только если вы покажете, что это один. И является ли он одним, не зависит от какой-либо другой таблицы.
(Может быть, в этом вопросе вам следует назвать некоторые вещи FK?)
PS Столбец может появиться в нескольких таблицах без FK между ними. («Ссылка» полезна только тогда, когда вы говорите о FK.) Между разными столбцами могут быть FK. Существует FK тогда и только тогда, когда все значения подстроки в одном наборе столбцов появляются в другом ("ссылочном"). SQL FK должен идти только к суперключу (надмножеству CK), а не к CK. FK может быть из любого набора столбцов: FK — это только (супер)ключ в ссылочной таблице. Изучите определения FD, суперключа, CK, PK, FK (до CK или суперключа).
person
philipxy
schedule
16.10.2015