Не согласен, это естественный
Что в нём естественного? Чем отличается (пока не заполнены данные) одна книжечка от другой? Серия — типичный счётчик.
Это суррогатный ключ с точки зрения государства, но естественный - с точки зрения всех остальных. Когда государство взаимодействует с человеком, для государства "естественным ключом" является ФИО, дата рождения, родители и прочая информация. Но это все ведет к проблемам, озвученным выше. Поэтому государство придумывает суррогатный ключ - серию и номер паспорта, которые просто являются счетчиками по сути. А вот когда вы автоматизируете какую-то деятельность, где вы должны взаимодействовать с гражданами государства (например, банки обязаны, согласно требованиям ЦБ, перед каждой операцией установить личность человека, то есть потребовать документы, причем граждан разных государств в некоторых случаях можно обслуживать по-разному), там для вас идентификатором гражданина государства является документ, выданный этим государством, а атрибуты этого документа (серия, номер и пр.) являются для вас естественным ключом.
-- 09.07.2018, 10:43 --Главное неудобство естественных ключей в том, что вы должны ссылаться из другой таблицы на полный ключ (потому что часть ключа ключом не является). Допустим, у вас в таблице PERSON первичный ключ определен как (FIRST_NAME, LAST_NAME, BIRTHDATE). Тогда, делая ссылку на человека из таблицы PHONE_NUMBER, вы должны и в ней создать поля FIRST_NAME, LAST_NAME, BIRTHDATE. Потом вы создадите таблицу для, например, инвентаризации оборудования и будете заполнять, кому какое оборудование выдали. И туда эти три поля добавите.
Одна из главных причин, по которой я пытаюсь вообще не использовать ключи, а работать с данными как с множествами векторов с одинаковыми компонентами, хранящихся как попало в мешках (таблицах). Может быть это неверный подход? Где может оказаться засада?
Первичный ключ гарантирует уникальность (отсутствие дубликатов), внешний ключ - ссылочную целостность (отсутствие записей, ссылающихся "вникуда", корректность существующих ссылок). Соответственно, если вы не пользуетесь ключами, вы можете столкнуться с этими проблемами. А если вы как-то решили эти проблемы - значит, вы фактически написали свои "ключи", с
блекджеком багами и тормозами.