Как определить ключи-кандидаты для ненормализованной базы данных? - PullRequest
0 голосов
/ 04 февраля 2020

В моем классе базы данных мы не используем ключи-кандидаты, и это имеет некоторый смысл, пока я не прочитал это о ключах-кандидатах:

A candidate key is a column, or set of columns, in a table that can uniquely identify any database record without referring to any other data. Each table may have one or more candidate keys, but one candidate key is unique, and it is called the primary key.

Если это так, то кандидат ключ должен иметь возможность однозначно идентифицировать все данные в базе данных, тогда почему мой учитель показал нам этот пример: enter image description here

И она утверждает, что NIN и contractNo являются кандидатами ключей. Очевидно, что они наиболее полезны для ключей-кандидатов, но они не уникально идентифицируют все остальные атрибуты в строке. Например, NIN не определяет hotelNo, поэтому я не понимаю истинное определение ключа-кандидата? Это не относится к ненормализованным базам данных? Если нет, то как мы можем быть уверены, что выбрали правильный ключ-кандидат и первичный ключ?

Пожалуйста, уточните это для меня, спасибо заранее. Normalized database

...