Цель состоит в проверке наличия первичного ключа в каждой таблице, однако результатом непонимания природы первичного ключа может быть анти паттерн.
Всем, кто знаком с проектированием баз данных, известно, что первичный ключ — это важная, более того, обязательная часть таблицы. Это действительно так. Наличие первичных ключей характерно для хорошей структуры базы данных. Первичный ключ является гарантированно уникальным для всех строк в таблице, так что он представляет собой логичный механизм адресации отдельных строк и предотвращения хранения дублированных строк. На первичный ключ ссылаются также с помощью внешних ключей для создания табличных связей.
Выбор столбца, который будет служить первичным ключом, является хитроумной задачей. Значение любого атрибута в большинстве таблиц может принадлежать более чем одной строке. Даже фамилия и имя человека с очевидностью подвержены дублированию, о чем говорится в учебниках. Кстати, адрес электронной почты или административные идентификационные номера, такие как номер социального страхования в США или идентификационный номер налогоплательщика, не являются, строго говоря, уникальными.
В таких таблицах необходим новый столбец для хранения искусственного значения, у которого нет значения в домене, моделируемом таблицей. Этот столбец используется в качестве первичного ключа, так что можно обращаться к столбцам уникальным способом, при этом допуская наличие дубликатов в столбце любого другого атрибута, если это уместно. Данный тип столбца первичного ключа иногда называется псевдоключом (pseudokey) или свернутым ключом (surrogate key).
Чтобы обеспечить возможность присвоения строкам уникальных значений псевдоключей, даже когда одновременно действующие клиенты вставляют новые строки, в большинстве баз данных предоставляется механизм серийного генерирования уникальных целочисленных значений вне области локализации транзакции.
Опубликовал vovan666
June 18 2013 12:25:20 ·
0 Комментариев ·
4220 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.