Поделиться через


Типы связей между таблицами (визуальные инструменты для баз данных)

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

Существует три типа связей между таблицами. Тип создаваемой связи зависит от того, как определены связанные столбцы.

  • Связи «один ко многи»
  • Связи «многие ко многим»
  • Связи «один к одному»

Связи «один ко многим»

Связь «один ко многим» самая распространенная. В этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Например между таблицами publishers и titles установлена связь «один ко многим»: каждый издатель публикует много книг, но каждая книга публикуется только у одного издателя.

Используйте связь «один ко многим», если только у одного из связанных столбцов есть ограничение первичного ключа или уникальности.

Столбец, являющийся первичным ключом в связи «один ко многим», отмечается символом ключа. Столбец, являющийся внешним ключом в связи «один ко многим», отмечается символом бесконечности.

Связи «многие ко многим»

В связи «многие ко многим» строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Такие связи создаются определением третьей таблицы, которая называется таблицей соединения, чей первичный ключ состоит из внешних ключей А и Б. Например между таблицами authors и titles связь «многие ко многим» определена через связи «один ко многим» каждой из этих таблиц с таблицей titleauthors. Первичный ключ таблицы titleauthors представляет собой комбинацию столбца au_id (первичный ключ таблицы authors) и столбца title_id (первичный ключ таблицы titles).

Связи «один к одному»

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

Этот тип связи обычно не используется, так как большую часть связанных таким образом данных можно хранить в одной таблице. Связь «один к одному» можно использовать для:

  • Разделения таблицы со многими столбцами.
  • Изоляции части таблицы из соображений безопасности.
  • Хранения кратковременных данных, которые можно легко удалить вместе со всей таблицей.
  • Хранения данных, которые относятся только к части основной таблицы.

Столбец, являющийся первичным ключом в связи «один к одному», отмечается символом ключа. Столбец, являющийся внешним ключом, также отмечается символом ключа.

См. также

Основные понятия

Обзор ссылочной целостности (визуальные инструменты для баз данных)

Другие ресурсы

Работа со связями (визуальные инструменты для баз данных)
Работа с ключами (визуальные инструменты для баз данных)

Справка и поддержка

Получение помощи по SQL Server 2005