воскресенье, 11 апреля 2010 г.

Первичные и уникальные ключи таблицы

В статье описывается смысл первичных и уникальных ключей, а также, даны рекомендацию по выбору полей кандидатов на эти ограничения.


Выбор первичного ключа

Каждая таблица может иметь один первичный ключ, который однозначно идентифицирует каждую строку в таблице и гарантирует отсутствие строк с одним и тем же значением ключа. Ниже приведены рекомендации, которым нужно следовать при выборе первичного ключа.
  1. Для первичного ключа по возможности используйте столбец, содержащий значение последовательности (в этом случае автоматически выполняются остальные рекомендации).
  2. Избегайте использования составных первичных ключей. Хотя их использование не запрещено, составные первичные ключи удовлетворяют не всем остальным рекомендациям. Например, значения составных первичных ключей имеют большую длину и их нельзя сгенерировать с помощью последовательностей.
  3. Значения столбца первичного ключа должны быть уникальны, так как первичный ключ должен однозначно идентифицировать каждую строку таблицы.
  4. Желательно, чтобы значения первичного ключа никогда не менялись. Значения первичного ключа используются только для идентификации строки в таблице, поэтому их не следует изменять.
  5. Столбец первичного ключа не должен содержать значений NULL. Ограничение PRIMARY KEY определяет, что ни одна строка не может содержать неопределенное значение в каком-либо столбце, входящем в первичный ключ.
  6. Желательно, чтобы столбец первичного ключа имел небольшой размер и числовой тип данных. Небольшие значения первичного ключа легко вводить, а для генерирования значений первичного ключа, имеющего числовой тип данных, удобно использовать последовательности.


Использование ограничение целостности UNIQUE

Выбирать столбец для уникального ключа следует аккуратно. Назначение ограничений уникального ключа отличается от назначения ограничений первичного ключа. Ограничения UNIQUE (ограничения уникального ключа) определяются на столбцах, которые не должны содержать повторяющихся значений, тогда как первичные ключи предназначены только для однозначной идентификации строк в таблице, и обычно их значения не несут смысловой нагрузки.

Примеры "хороших" уникальных ключей:
  • номер социальной страховки сотрудника (значением первичного ключа является номер сотрудника);
  • номерной знак автомобиля (значением первичного ключа является номер автомобиля);
  • телефон клиента, состоящий из двух столбцов: AREA и PHONE (значением первичного ключа является номер клиента);
  • название отдела и его местоположение (первичным ключом является номер отдела);

Комментариев нет:

Отправить комментарий