Класифікація сутностей
Настав момент розібратися в термінології. К.Дейт [3] визначає три основні класу сутностей: стрижневі. асоціативні і характеристичні. а також підклас асоціативних сутностей - позначення.
У розглянутих раніше прикладах стрижні - це "Студент", "Квартира", "Чоловіки", "Лікар", "Шлюб" (з прикладу 2.2) та інші, назви яких поміщені в прямокутники.
Асоціативна сутність (асоціація) - це зв'язок виду "багато-до-багатьох" ( "ко-многим" і т.д.) між двома або більше сутностями або екземплярами сутності (як в прикладі 2.4). Асоціації розглядаються як повноправні суті:
вони можуть брати участь в інших асоціаціях і позначеннях точно так же, як стрижневі сутності;
можуть мати властивості, тобто мати не тільки набір ключових атрибутів, необхідних для вказівки зв'язків, а й будь-яке число інших атрибутів, що характеризують зв'язок. Наприклад, асоціації "Шлюб" із прикладів 2.1 і 2.4 містять ключові атрибути "Код_М", "Код_Ж" і "Табельний номер чоловіка", "Табельний номер дружини", а також уточнюючі атрибути "Номер свідоцтва", "Дата реєстрації", "Место_регістраціі "," Номер запису в книгу ЗАГС "і т.д.
Характеристична сутність (характеристика) - це зв'язок виду "багато-до-одного" або "одна-до-одного" між двома сутностями (окремий випадок асоціації). Єдина мета характеристики в рамках розглянутої предметної області полягає в описі чи уточнення деякої іншої сутності. Необхідність в них виникає в зв'язку з тим, що сутності реального світу мають іноді багатозначні властивості. Чоловік може мати кілька дружин (приклад 2.3), книга - кілька характеристик перевидання (виправлене, доповнене, перероблене.) І т.д.
Існування характеристики повністю залежить від характеризується сутності: жінки позбавляються статусу жінок, якщо вмирає їх чоловік.
Для опису характеристики використовується нова пропозиція ЯІМ, що має в загальному випадку вид:
Розширимо також мову ER-діаграм, ввівши для зображення характеристики трапецію (рис. 2.2).
Мал. 2.2. Елементи розширеного мови ER-діаграм
Позначає сутність або позначення - це зв'язок виду "багато-до-одного" або "одна-до-одного" між двома сутностями і відрізняється від характеристики тим, що не залежить від позначається сутності.
Розглянемо приклад, пов'язаний із зарахуванням співробітників в різні відділи організації.
При відсутності жорстких правил (співробітник може одночасно зараховуватися в кілька відділів або НЕ зараховуватися ні в один відділ) необхідно створити опис з асоціацією Зарахування:
Однак, за умови, що кожен із співробітників повинен бути обов'язково зарахований в один з відділів, можна створити опис з позначенням Службовці:
В даному прикладі службовці мають незалежне існування (якщо видаляється відділ, то з цього не випливає, що також повинні бути видалені службовці такого відділу). Тому вони не можуть бути характеристиками відділів і названі позначеннями.
Позначення використовують для зберігання значень, що повторюються великих текстових атрибутів: "кодифікатори" вивчаються студентами дисциплін, найменувань організацій і їх відділів, переліків товарів і т.п.
Опис позначення зовні відрізняється від опису характеристики тільки тим, що позначаються суті полягає не в фігурні дужки, а в квадратні:
Як правило, позначення не розглядаються як повноправні суті, хоча це не привело б до будь-якої помилку.
Позначення і характеристики не є повністю незалежними сутностями, оскільки вони припускають наявність деякої іншої сутності, яка буде "позначатися" або "характеризуватися". Однак вони все ж є окремі випадки сутності і можуть, звичайно, мати властивості, можуть брати участь в асоціаціях, позначеннях і мати свої власні (нижчого рівня) характеристики. Підкреслимо також, що всі екземпляри характеристики повинні бути обов'язково пов'язані з будь-яким екземпляром характеризується сутності. Однак допускається, щоб деякі екземпляри характеризується суті не мали зв'язків. Правда, якщо це стосується шлюбів, то сутність "Чоловіки" повинна бути замінена на сутність "Чоловіки" (немає чоловіка без дружини).
Перевизначити тепер стрижневу сутність як сутність, яка не є ні асоціацією, ні позначенням, ні характеристикою. Такі суті мають незалежне існування, хоча вони і можуть позначати інші сутності, як, наприклад, співробітники позначають відділи.
На закінчення розглянемо приклад побудови інфологічної моделі бази даних "Харчування", де повинна зберігатися інформація про страви (рис. 2.3), їх щоденному споживанні, продуктах, з яких готуються ці страви, і постачальників цих продуктів. Інформація буде використовуватися кухарем і керівником невеликого підприємства громадського харчування, а також його відвідувачами.
1. Лобио по грузинськи
Ламану очищену квасолю, нашатковану цибулю посолити, посипати перцем і припустити в маслі з невеликою кількістю бульйону; додати кінзу, зелень петрушки, Рейган (базилік) і довести до готовності. Потім запекти в духовці.
Квасоля стручкова (свіжа або консервована) 200,
Цибуля зелена 40, Масло вершкове 30, Зелень 10.
Вихід 210. Калорій 725.
Мал. 2.3. Приклад кулінарного рецепта
За допомогою зазначених користувачів виділені наступні об'єкти і характеристики проектованої бази:
Аналіз об'єктів дозволяє виділити:
- стрижні Страви, Продукти та Міста;
- асоціації Склад (пов'язує Страви з Продуктами) і
Поставки (пов'язує Постачальників з Продуктами);
- позначення Постачальники;
- характеристики Рецепти і Витрата.
ER-діаграма моделі показана на рис. 2.4. а модель на мові ЯІМ має наступний вигляд:
У цих моделях Страва, Продукт і Постачальник - найменування, а БЛ, ПР і ПОС - цифрові коди страв, продуктів і організацій, що постачають ці продукти.
Мал. 2.4. Инфологическая модель бази даних "Харчування"