параметрах близькі до семантичних моделей (хоч в деяких аспектах вони більш могутні, а в деяких - більш слабі).
6.2.2. Основні поняття моделі Entity-Relationship (Суть-Зв’язки)
Далі ми стисло розглянемо деякі межі однієї з найбільш популярних семантичних моделей даних - модель "Суті-Зв'язку" (часто її називають стисло ER-моделлю).
На використанні різновидів ER-моделі заснована більшість сучасних підходів до проектування баз даних (головним чином, реляційних). Модель була запропонована Ченом (Chen) в 1976 р. Моделювання предметної області базується на використанні графічних діаграм, що включають невелике число різнорідних компонентів. У зв'язку з наглядністю представлення концептуальних схем баз даних ER-моделі набули широкого поширення в системах CASE, підтримуючих автоматизоване проектування реляційних баз даних. Серед безлічі різновидів ER-моделей одна з найбільш розвинених застосовується в системі CASE фірми ORACLE. Її ми і розглянемо. Більш точно, ми зосередимося на структурній частині цієї моделі.
Основними поняттями ER-моделі є суть, зв'язок і атрибут.
Суть - це реальний або об'єкт, що представляється, інформація про яке повинна зберігатися і бути доступна. У діаграмах ER-моделі суть представляється у вигляді прямокутника, що містить ім'я суті. При цьому ім'я суті - це ім'я типу, а не деякого конкретного примірника цього типу. Для більшої виразності і кращого розуміння ім'я суті може супроводитися прикладами конкретних об'єктів цього типу.
Нижче зображена суть АЕРОПОРТ із зразковими об'єктами Шереметьево і Хитроу:
Кожний примірник суті повинен бути відмітний від будь-якого іншого примірника тієї ж суті (ця вимога в деякому роді аналогічна вимозі відсутності кортежів-дублікатів в реляційних таблицях).
Зв'язок - це асоціація, що графічно зображається, що встановлюється між двома сутностями. Ця асоціація завжди є бінарною і може існувати між двома різними сутностями або між суттю і їй же самій (рекурсивний зв'язок). У будь-якому зв'язку виділяються два кінці (відповідно до існуючої пари сутностей, що зв'язуються ), на кожному з яких вказується ім'я кінця зв'язку, міра кінця зв'язку (скільки примірників даної суті зв'язується), обов'язковість зв'язку (тобто чи будь-який примірник даної суті повинен брати участь в даному зв'язку).
Зв'язок представляється у вигляді лінії, що зв'язує дві суті або ведучої від суті до неї ж самої. При це в місці "стиковки" зв'язку з суттю використовуються триточковий вхід в прямокутник суті, якщо для цієї суті в зв'язку можуть використовуватися багато (many) примірників суті, і одноточковий вхід, якщо в зв'язку може брати участь тільки один примірник суті. Обов'язковий кінець зв'язку зображається суцільною лінією, а необов'язковий - переривистою лінією.
Як і суть, зв'язок - це типове поняття, всі примірники обох пар сутностей, що зв'язуються підкоряються правилам скріплення.
У зображеному нижче прикладі зв'язок між сутностями КВИТОК і ПАСАЖИР зв'язує квитки і пасажирів. При тому кінець суті з ім'ям "для" дозволяє зв'язувати з одним пасажиром більше за один квиток, причому кожний квиток повинен бути пов'язаний з яким-небудь пасажиром. Кінець суті з ім'ям "має" означає, що кожний квиток може належати тільки одному пасажиру, причому пасажир не зобов'язаний мати хоч би один квиток.
Лаконічним усним трактуванням зображеної діаграми є наступна:
Кожний КВИТОК призначений для одного і тільки одного ПАСАЖИРА;
Кожний ПАСАЖИР може мати один або більше КВИТКІВ.
На наступному прикладі зображений рекурсивний зв'язок, що зв'язує суть ЛЮДИНА з нею ж самою. Кінець зв'язку з ім'ям "син" визначає той факт, що у одного батька може бути більш ніж один син. Кінець зв'язку з ім'ям "батько" означає, що не у кожної людини можуть бути сини.
Лаконічним усним трактуванням зображеної діаграми є наступна:
Кожна ЛЮДИНА є сином однієї і тільки однієї ЛЮДИНИ;
Кожна ЛЮДИНА може бути батьком для одної або більше ЛЮДЕЙ.
Атрибутом суті є будь-яка деталь, яка служить для уточнення, ідентифікації, класифікації, числової характеристики або вираження стану суті. Імена атрибутів заносяться в прямокутник, що зображає суть, під ім'ям суті і зображаються малими буквами, можливо, з прикладами.
Приклад:
Унікальним ідентифікатором суті є атрибут, комбінація атрибутів, комбінація зв'язків або комбінація зв'язків і атрибутів, що унікально відрізняє будь-який примірник суті від інших примірників суті того ж типу.
6.2.3. Нормальні форми ER-схем
Як і в реляційних схемах баз даних, в ER-схемах вводиться поняття нормальних форм, причому їх значення дуже близько відповідає значенню реляційних нормальних форм. Помітимо, що формулювання нормальних форм ER-схем роблять більш зрозумілими значення нормалізації реляційних схем. Ми приведемо тільки дуже короткі і неформальні визначення трьох перших нормальних форм.
У першій нормальній формі ER-схеми усуваються атрибути, що повторюються або групи атрибутів, тобто проводиться виявлення неявних сутностей, "замаскованих" під атрибути.
У другій нормальній формі усуваються атрибути, що залежать тільки від частини унікального ідентифікатора. Ця частина унікального ідентифікатора визначає окрему суть.
У третій нормальній формі усуваються атрибути, що залежать від атрибутів, що не входять в унікальний ідентифікатор. Ці атрибути є основою окремої суті.
6.2.4. Більш складні елементи ER-моделі
Ми зупинилися тільки на самих основних і найбільш очевидних поняттях ER-моделі даних. До числа більш складних елементів моделі відносяться наступні:
Підтипи і супертипи сутностей. Як в мовах програмування з розвиненими типовими системами (наприклад, в мовах об'єктно-орієнтованого програмування), вводиться можливість успадкування типу суті, виходячи з одного або декількох супертипів. Цікавий нюанс пов'язаний з необхідністю графічного зображення цього механізму.
Зв'язки "many-to-many". Іноді буває необхідно зв'язувати сутності таким чином, що з обох кінців зв'язку можуть бути присутнім декілька примірників суті (наприклад, всі члени кооперативу спільно володіють майном кооперативу). Для цього вводиться різновид зв'язку "багато-до-багатьох".
Міри зв'язку, що уточнюються. Іноді буває корисно визначити можливу кількість примірників суті, що беруть участь в