Модель сущность-связь — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Связи)
(Ассоциации)
Строка 85: Строка 85:
  
 
== Ассоциации ==
 
== Ассоциации ==
 +
{{Определение
 +
|definition =
 +
'''Ассоциацией''' (англ. ''association'') называется многосторонняя связь, нагруженная произвольными не ключевыми атрибутами.}}
 +
 +
[[Файл:Association contract.png|400px|thumb|right|Графическое обозначение ассоциации]]
 +
'''Замечания:'''
 +
* Ассоциация обозначается овалом
 +
* Может содержать не ключевые атрибуты
 +
* Имеет произвольное количество концов с произвольными ролями и типами
 +
 +
[[Файл:Db erm contract.png|400px|thumb|left|Пример с ассоциацией]]
 +
Проанализируем пример. Контракт заключается со обязательным и единственным студентом на одну специальность, которая может быть не указана на момент заключения контракта. У контракта должен быть один или более поручителей. Контракт нагружен информацией о датах, когда котракт был подготовлен (обязательный атрибут) и подписан (опциональный атрибут).
 +
 +
'''Как понять, что использовать: ассоциацию, связь или сущность?'''
 +
* Если нужно два конца и нет нагруженности, используем связь
 +
* Если нужно идентифицировать, используем сущность, поскольку связь не идентифицируется из-за отсутствия ключевых элементов
 +
* Иначе используется ассоциация
  
 
== Слабые сущности ==
 
== Слабые сущности ==
  
 
== Альтернативные нотации ==
 
== Альтернативные нотации ==

Версия 01:56, 22 декабря 2020

Сущности

Определение:
Сущностью (англ. entity) называют некоторый объект, обладающий именем и атрибутами.


Определение:
Атрибутом (англ. attribute) называют некоторую характеристику объекта, содержащую имя атрибута и домен и обладающую некоторыми свойствами.


Пример сущности $Student$

Домен не указывает конкретный физический тип, однако позволяет указать, какие атрибуты будут иметь одинаковый тип в физической модели. Так, например, атрибуты $FirstName$ и $LastName$ сущности $Student$ будут обладать одним физическим типом.

Типы доменов:

  • Простой — атомарное значение, например, $id$
  • Составной — состоящий из нескольких значений, например, passport { series: char(4), number: char(6) }

Свойства атрибутов:

Обозначение Свойство
M Обязательное (англ. mandatory)
O Необязательное (англ. optional)
PK Основной ключ (англ. primary key)
Kn Дополнительный ключ $n$ (англ. key)

Связи

Пример связи

Связь обозначается линией с двумя концами и обладает следующими характеристиками:

  • Имя
  • Связываемые сущности и их роли
  • Тип связи (задается типами концов)

На примере показано, что студен принадлежит одной группе, а в группе может быть несколько студентов (в том числе нуль).

Типы концов:

Тип Обозначение
Один Db one.png
Много Db many.png
Обязательный Db mandatory.png
Необязательный Db optional.png

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

Примеры:

Связь Значение По умолчанию
Many to many.png Многие ко многим Единственность, необязательность
One to many.png Один ко многим Единственность, обязательность
One to one.png Один к одному Единственность, обязательность

Ассоциации

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


Графическое обозначение ассоциации

Замечания:

  • Ассоциация обозначается овалом
  • Может содержать не ключевые атрибуты
  • Имеет произвольное количество концов с произвольными ролями и типами
Пример с ассоциацией

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

Как понять, что использовать: ассоциацию, связь или сущность?

  • Если нужно два конца и нет нагруженности, используем связь
  • Если нужно идентифицировать, используем сущность, поскольку связь не идентифицируется из-за отсутствия ключевых элементов
  • Иначе используется ассоциация

Слабые сущности

Альтернативные нотации