Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для Белаш / Лекции / 4 - Разработка структуры БД.doc
Скачиваний:
1
Добавлен:
07.08.2024
Размер:
249.34 Кб
Скачать

Суррогатные ключи

В отношении (таблице) может быть определен суррогатный ключ.

Суррогатный ключ – уникальный идентификатор, используемый в качестве первичного ключа отношения, не имеющий смысла для пользователей.

Пример: СТУДЕНТ (НомерСтудента, ИмяСтудента, Курс)

НомерСтудента – сквозной уникальный идентификатор, не несущий никакой смысловой нагрузки.

Основная причины использования суррогатных ключей - индексы на основе атрибутов (полей), которые определены на текстовом домене, слишком велики.

1). Ключ, созданный на основе текстового атрибута (поля), требует построения уникального индекса.

ОБЩЕЖИТИЕ

Название

Адрес

КоличествоМест

…….

Целесообразно ввести суррогатный ключ – НомерОбщежития.

ОБЩЕЖИТИЕ

НомерОбщежития

Название

Адрес

КоличествоМест

…….

2). Ключ отношения пересечения (связь M:N), состоящий из ключей связываемых отношений, созданных на основе текстовых атрибутов.

ОБЩЕЖИТИЕ

НазваниеОбщежития

Адрес

ВУЗ

НазваниеВуза

Адрес

…….

Отношение пересечения ОБЩЕЖИТИЕ_ВУЗ:

ОБЩЕЖИТИЕ_ВУЗ

НазваниеОбщежития

НазваниеВуза

КоличествоМест

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

ОБЩЕЖИТИЕ

НомерОбщежития

НазваниеОбщежития

Адрес

…….

ВУЗ

НомерВуза

НазваниеВуза

Адрес

…….

ОБЩЕЖИТИЕ_ВУЗ

НомерОбщежития

НомерВуза

КоличествоМест

Достоинства суррогатных ключей:

  • постоянная идентификация;

  • компактность значений;

  • легкость индексирования;

  • снижение занимаемого объема памяти;

  • повышение быстродействия.

Замечания:

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

2). Желательно, чтобы идентификатор строки был неизменен на протяжении всего времени существования строки. Если это не так, то целесообразно ввести суррогатный ключ.

Способы генерации значений суррогатного ключа:

  • генерация системой (тип Счетчик, AutoNumber);

  • генерация пользователем или программой (вручную или программно).

Совет:

  • Не следует вводить суррогатные ключи в отношения (таблицы), имеющие в качестве естественного ключа легко индексируемые данные.