Модель сущность-связь — различия между версиями
(→Связи) |
(→Ассоциации) |
||
| Строка 85: | Строка 85: | ||
== Ассоциации == | == Ассоциации == | ||
| + | {{Определение | ||
| + | |definition = | ||
| + | '''Ассоциацией''' (англ. ''association'') называется многосторонняя связь, нагруженная произвольными не ключевыми атрибутами.}} | ||
| + | |||
| + | [[Файл:Association contract.png|400px|thumb|right|Графическое обозначение ассоциации]] | ||
| + | '''Замечания:''' | ||
| + | * Ассоциация обозначается овалом | ||
| + | * Может содержать не ключевые атрибуты | ||
| + | * Имеет произвольное количество концов с произвольными ролями и типами | ||
| + | |||
| + | [[Файл:Db erm contract.png|400px|thumb|left|Пример с ассоциацией]] | ||
| + | Проанализируем пример. Контракт заключается со обязательным и единственным студентом на одну специальность, которая может быть не указана на момент заключения контракта. У контракта должен быть один или более поручителей. Контракт нагружен информацией о датах, когда котракт был подготовлен (обязательный атрибут) и подписан (опциональный атрибут). | ||
| + | |||
| + | '''Как понять, что использовать: ассоциацию, связь или сущность?''' | ||
| + | * Если нужно два конца и нет нагруженности, используем связь | ||
| + | * Если нужно идентифицировать, используем сущность, поскольку связь не идентифицируется из-за отсутствия ключевых элементов | ||
| + | * Иначе используется ассоциация | ||
== Слабые сущности == | == Слабые сущности == | ||
== Альтернативные нотации == | == Альтернативные нотации == | ||
Версия 01:56, 22 декабря 2020
Сущности
| Определение: |
| Сущностью (англ. entity) называют некоторый объект, обладающий именем и атрибутами. |
| Определение: |
| Атрибутом (англ. attribute) называют некоторую характеристику объекта, содержащую имя атрибута и домен и обладающую некоторыми свойствами. |
Домен не указывает конкретный физический тип, однако позволяет указать, какие атрибуты будут иметь одинаковый тип в физической модели. Так, например, атрибуты $FirstName$ и $LastName$ сущности $Student$ будут обладать одним физическим типом.
Типы доменов:
- Простой — атомарное значение, например, $id$
- Составной — состоящий из нескольких значений, например,
passport { series: char(4), number: char(6) }
Свойства атрибутов:
| Обозначение | Свойство |
|---|---|
| M | Обязательное (англ. mandatory) |
| O | Необязательное (англ. optional) |
| PK | Основной ключ (англ. primary key) |
| Kn | Дополнительный ключ $n$ (англ. key) |
Связи
Связь обозначается линией с двумя концами и обладает следующими характеристиками:
- Имя
- Связываемые сущности и их роли
- Тип связи (задается типами концов)
На примере показано, что студен принадлежит одной группе, а в группе может быть несколько студентов (в том числе нуль).
Типы концов:
| Тип | Обозначение |
|---|---|
| Один |
|
| Много |
|
| Обязательный |
|
| Необязательный |
|
Можно выбрать значение по умолчанию, которое будет обозначаться сплошной линией без символов.
Примеры:
| Связь | Значение | По умолчанию |
|---|---|---|
|
Многие ко многим | Единственность, необязательность |
|
Один ко многим | Единственность, обязательность |
|
Один к одному | Единственность, обязательность |
Ассоциации
| Определение: |
| Ассоциацией (англ. association) называется многосторонняя связь, нагруженная произвольными не ключевыми атрибутами. |
Замечания:
- Ассоциация обозначается овалом
- Может содержать не ключевые атрибуты
- Имеет произвольное количество концов с произвольными ролями и типами
Проанализируем пример. Контракт заключается со обязательным и единственным студентом на одну специальность, которая может быть не указана на момент заключения контракта. У контракта должен быть один или более поручителей. Контракт нагружен информацией о датах, когда котракт был подготовлен (обязательный атрибут) и подписан (опциональный атрибут).
Как понять, что использовать: ассоциацию, связь или сущность?
- Если нужно два конца и нет нагруженности, используем связь
- Если нужно идентифицировать, используем сущность, поскольку связь не идентифицируется из-за отсутствия ключевых элементов
- Иначе используется ассоциация






