СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Основные элементы: • Сущности –Атрибуты –Ключи • Связи СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Сущность любой различимый объект (объект, который мы можем отличить от другого) (люди, места, предметы, события, вкус, цвет). Пример: автомобиль СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Тип сущности- автомобиль. Экземпляр сущности - автомобиль BMW 730d р061уо СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) К.Дейт определяет три основные класса сущностей: – Стержневая сущность (стержень) – Характеристическая сущность (характеристика) – Обозначающая сущность или обозначение (кодовая сущность) – Ассоциативная сущность (ассоциация) СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Стержневая сущность (стержень) Человек СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Характеристическая сущность (характеристика) Паспорт СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Обозначающая сущность или обозначение (кодовая сущность) Пол СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Ассоциативная сущность (ассоциация) Регистрация брака СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Атрибут поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей Пример: Цвет, марка и т.д. Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Здесь также существует различие между типом и экземпляром. Вопрос внести атрибут в состав сущности или выделить в отдельную характеристическую сущность - очень творческий. СУЩНОСТЬ-СВЯЗЬ (ER МОДЕЛЬ) Ключ минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности Пример: регистрационный номер Суррогатный или эрзац-ключ Один – к – одному Один – ко – многим Многие – ко – многим 12 Между сущностями может быть несколько связей В одной связи может участвовать несколько сущностей 13 СУЩНОСТЬ - СВЯЗЬ Стержневая сущность независимая сущность. (стержень) – это СУЩНОСТЬ - СВЯЗЬ Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" между двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как полноправные сущности: они могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности; могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. СУЩНОСТЬ - СВЯЗЬ Характеристическая сущность (характеристика) – это связь вида "многие- к-одной" или "одна-к-одной" между двумя сущностями (частный случай ассоциации). СУЩНОСТЬ - СВЯЗЬ Обозначающая сущность (обозначение) – это связь вида "многие-к-одной" или "однак-одной" между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности. СУЩНОСТЬ - СВЯЗЬ Атрибут 1 Атрибут 2 Отношение X Атрибут 3 Атрибут 4 Отношение Y Атрибут 5 Атрибут 6 Атрибут 7 Прямые связи Отношение X Атрибут 4 Отношение Y СУЩНОСТЬ - СВЯЗЬ Прямые связи Отношение X Атрибут Отношение Y Косвенные связи Отношение X Атрибут A Общий Отношение Y Атрибут B объект Связи по месту и времени Отношение X Общее место действия Отношение Y Общий интервал дат Первичный ключ – внешний ключ ОСНОВНЫЕ СТРАТЕГИИ ПОДДЕРЖАНИЯ ССЫЛОЧНОЙ ЦЕЛОСТНОСТИ RESTRICT (ОГРАНИЧИТЬ) - не разрешать выполнение операции, приводящей к нарушению ссылочной целостности. CASCADE (КАСКАДНОЕ ИЗМЕНЕНИЕ) - разрешить выполнение требуемой операции, но внести при этом необходимые изменения в связанных таблицах так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительской таблице и каскадно выполняется в дочерних таблицах. В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что дочерние таблицы сами могут быть родительскими для некоторых третьих таблиц. При этом может дополнительно потребоваться выполнение какой-либо стратегии и для этой связи и т.д. Если при этом какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу данных в исходное состояние. Это сложная стратегия, но она не нарушает связей между родительскими и дочерними таблицами. Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности. ДОПОЛНИТЕЛЬНЫЕ СТРАТЕГИИ ПОДДЕРЖАНИЯ ССЫЛОЧНОЙ ЦЕЛОСТНОСТИ IGNORE (ИГНОРИРОВАТЬ) - разрешить выполнять операцию без проверки ссылочной целостности. В этом случае в дочерней таблице могут появляться некорректные значения внешних ключей, вся ответственность за целостность базы данных ложится на программиста или пользователя. SET NULL (ЗАДАТЬ ЗНАЧЕНИЕ NULL) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на nullзначения. Эта стратегия имеет два недостатка. Во-первых, для нее требуется разрешение на использование null-значений. Во-вторых, записи дочерней таблицы теряют связь с записями родительской таблицы. Установить, с какой записью родительской таблицы были связаны измененные записи дочерней таблицы, после выполнения операции уже нельзя. SET DEFAULT (ЗАДАТЬ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Достоинство этой стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться null-значениями. Установить, с какими записями родительской таблицы были связаны измененные записи дочерней таблицы, после выполнения такой операции тоже нельзя. Нотации. Сущности. 23 Нотации. Связи. 24 25