Обсуждение:Первичный ключ


Я не согласен с системой Дьюи в качестве примера первичного ключа, несколько книг могут иметь одинаковые классификационные номера.

Конечно, лучшим списком здесь был бы ISBN? -- Grand Edgemaster 22:00, 12 сентября 2005 г. (UTC)Отвечать[ ответить ]

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

Хм? Есть ли какая-то ссылка, подтверждающая это? Если нет, то я его удалю. Ни в стандарте SQL, ни в работах Э.Ф. Кодда или Си-Джея Дейта ничего не говорится о неизменяемости ключей. Я думаю, что автор этого абзаца неправильно применяет объектно-ориентированную теорию к реляционным базам данных. -- Джош Беркус, проект PostgreSQL, 23 января 2006 г.

Использование имени для поиска номера телефона? Это вряд ли уникально. Должно быть, тысячи людей носят одно и то же имя. Слова в словаре? Одно слово может иметь несколько записей!

Кроме того, пример национального идентификационного номера для суррогатного ключа, IMO. Это работает как аналогия , но приведенный пример не является аналогией, и с точки зрения самой базы данных _оба_ примера являются естественными ключами с теми же потенциальными ловушками (отсутствие гарантированной уникальности, атомарность и т. д.). семантика не имеет значения. Например, количество сотрудников можно предположить или задокументировать.быть автоматически увеличивающимися, уникальными и неизменяемыми целыми числами, но если они назначены вне базы данных и имеют внешнюю семантику, то они являются естественным ключом. Что сделало бы его суррогатным ключом, если бы он существовал исключительно для использования в качестве ключа в базе данных, генерировался и гарантировался на его условиях и никак иначе. С другой стороны, абсолютный порядок рождения — если бы его можно было узнать — был бы естественным ключом, хотя по определению он должен быть автоматически увеличивающимся, уникальным и неизменным целым числом. Мир и база данных — разные вещи. -- 2601:140:8000:A739:75A6:1F5D:86A4:E9D9 ( разговор ) 13:05, 10 апреля 2019 г. (UTC)Отвечать[ ответить ]