Jump to content

Ассоциативная сущность

Ассоциативная сущность — это термин, используемый в реляционной теории и теории сущности-связи . Реляционная база данных требует реализации базового отношения (или базовой таблицы ) для разрешения отношений «многие ко многим» . Базовое отношение, представляющее такой тип сущности, неофициально называется ассоциативной таблицей .

Ассоциативная сущность (используя обозначение Чена )

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

Понятие таблицы сопоставления
Concept of a mapping table

Ассоциативная (или соединительная) таблица сопоставляет две или более таблиц вместе, ссылаясь на первичные ключи (PK) каждой таблицы данных. По сути, он содержит несколько внешних ключей (FK), каждый из которых находится в отношении «многие к одному» от соединительной таблицы к отдельным таблицам данных. PK ассоциативной таблицы обычно состоит из самих столбцов FK.

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

Использование ассоциативных таблиц

[ редактировать ]

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

CREATE   TABLE   Users   (      UserLogin   varchar  (  50  )   PRIMARY   KEY  ,      UserPassword   varchar  (  50  )   NOT   NULL  ,      UserName   varchar  (  50  )   NOT   NULL  );  CREATE   TABLE   Разрешения   (      PermissionKey   varchar  (  50  )   PRIMARY   KEY  ,      PermissionDescription   varchar  (  500  )   NOT   NULL  );  -- Это соединительная таблица.  CREATE   TABLE   UserPermissions   (      UserLogin   varchar  (  50  )   ССЫЛКИ   Пользователи   (  UserLogin  ),      PermissionKey   varchar  (  50  )   ССЫЛКИ   Permissions   (  PermissionKey  ),      ПЕРВИЧНЫЙ   КЛЮЧ   (  UserLogin  ,   PermissionKey  )  ); 
Визуальное изображение описанной схемы таблицы с указанием связей.
A visual depiction of the table schema described, with relationships indicated

Оператор SELECT в соединительной таблице обычно включает в себя соединение основной таблицы с соединительной таблицей:

ВЫБЕРИТЕ   *   ИЗ   Пользователей  ПРИСОЕДИНЯЙТЕСЬ к   UserPermissions   USING   (  UserLogin  ); 

Это вернет список всех пользователей и их разрешений.

Вставка в соединительную таблицу включает в себя несколько шагов: сначала вставка в основную(ые) таблицу(и), затем обновление соединительной таблицы.

-- Создание нового пользователя  INSERT   INTO   Users   (  UserLogin  ,   UserPassword  ,   UserName  )  VALUES   (  'SomeUser'  ,   'SecretPassword'  ,   'UserName'  );  -- Создание нового разрешения  INSERT   INTO   Permissions   (  PermissionKey  ,   PermissionDescription  )  VALUES   (  'TheKey'  ,   'Ключ, используемый для нескольких разрешений'  );  -- Наконец, обновляем соединение  INSERT   INTO   UserPermissions   (  UserLogin  ,   PermissionKey  )  VALUES   (  'SomeUser'  ,   'TheKey'  ); 

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

См. также

[ редактировать ]
  • Хоффер, Джеффри А.; Прескотт, Мэри Б.; Макфадден, Фред Р. (2004). Современное управление базами данных (7-е изд.). Прентис Холл. ISBN  978-0131453203 .
  • Кодд, Э.Ф. (1970). «Реляционная модель данных для больших общих банков данных» . Коммуникации АКМ . 13 (6). АКМ: 377–387. дои : 10.1145/362384.362685 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1de6a3c791462ec122c69e88bdc2ab62__1721759040
URL1:https://arc.ask3.ru/arc/aa/1d/62/1de6a3c791462ec122c69e88bdc2ab62.html
Заголовок, (Title) документа по адресу, URL1:
Associative entity - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)