Інфологічне проектування
Розглянемо деякі риси однієї з найбільш популярних моделей даних для представлення концептуального інфологічного рівня - модель "Сутність-Зв'язок" (часто її називають коротко ER-моделлю).
Інфологічна модель – СУБД- незалежна логічна модель даних проблемної сфери.
На використанні різновидів ER-моделі заснована більшість сучасних підходів до проектування баз даних (головним чином, реляційних). Модель була запропонована Ченом (Chen) у 1976 р. Моделювання предметної області базується на використанні графічних діаграм, що включають невелике число різнорідних компонентів.
Основними поняттями ER-моделі є сутність, зв'язок і атрибут.
Сутність - будь-який об'єкт (об'єкт, що ми можемо відрізнити від іншого), інформацію про який необхідно зберігати в базі даних. Сутностями можуть бути люди, місця, літаки, рейси, смак, колір і т.д. Необхідно розрізняти такі поняття, як тип сутності й екземпляр сутності. Поняття тип сутності відноситься до набору однорідних особистостей, предметів чи подій, що виступають як ціле. Екземпляр сутності відноситься до конкретної речі в наборі. Наприклад, типом сутності може бути МІСТО, а екземпляром Москва, Київ і т.д.
У діаграмах ER-моделі сутність представляється у виді прямокутника, що містить ім'я сутності. При цьому ім'я сутності - це ім'я типу, а не деякого конкретного екземпляра цього типу. Для більшої виразності і кращого розуміння ім'я сутності може супроводжуватися прикладами конкретних об'єктів цього типу.
Сутності іменуються звичайно іменниками в однині, такими як "покупець", "комп'ютер", "службовець", "продаж".
Атрибутом сутності є будь-як деталь, що служить для уточнення, ідентифікації, класифікації, числової чи характеристики вираження стану сутності.
Атрибут - пойменована характеристика сутності. Його найменування повинне бути унікальним для конкретного типу сутності, але може бути однаковим для різного типу сутностей (наприклад, КОЛІР може бути визначений для багатьох сутностей: СОБАКА, АВТОМОБІЛЬ, ДИМ і т.д.). Атрибути використовуються для визначення того, яка інформація повинна бути зібрана про сутність. Прикладами атрибутів для сутності АВТОМОБІЛЬ є ТИП, МАРКА, НОМЕРНИЙ ЗНАК, КОЛІР і т.д. Абсолютне розходження між типами сутностей і атрибутами відсутній. Атрибут є таким тільки в зв'язку з типом сутності. В іншому контексті атрибут може виступати як самостійна сутність. Наприклад, для автомобільного заводу колір - це тільки атрибут продукту виробництва, а для лакофарбової фабрики колір - тип сутності.
Первинний ключ - це атрибут чи набір атрибутів, унікально ідентифікуючий екземпляр сутності. Якщо кілька наборів атрибутів можуть унікально ідентифікувати сутність, то вибір одного з них здійснюється розроблювачем на підставі аналізу предметної області.
На рис. 2 відображено сутність „Виріб” з атрибутами Код виробу, Назва виробу, Ціна, Кількість. Атрибут Код виробу є ключовим.
Рис. 2. Відображення сутності „Виріб” на ЕR-діаграмі
Якщо між деякими сутностями існує зв'язок, то факти з однієї сутності посилаються чи деяким чином зв'язані з фактами з іншої сутності. Зв'язок - це функціональна залежність між сутностями, він відбиває фактичну або можливу взаємодію. Підтримка несуперечності функціональних залежностей між сутностями називається посилальною цілісністю.
Зв'язок може існувати між двома різними сутностями чи між самою сутністю (рекурсивний зв'язок).
Між двома сутностям, наприклад, А и В можливі три основних типів зв'язків.
Перший тип - зв'язок ОДИН-ДО-ОДНОГО (1:1): у кожен момент часу кожному представнику (екземпляру) сутності А відповідає 1 чи 0 представників сутності В:
На рис. 3. показано зображений поіменованим ромбом зв’язок 1:1 сутностей „Виріб” та „Склад”. Такий тип зв’язку передбачає, що кожен з виробів може зберігатися тільки на конкретному складі і кожен склад може зберігати конкретний тип виробу. Вибір сутності яка залежить від другої (є породженою) для цього типу зв’язку проводиться після уточнення (в даному випадку „Виріб”).
Рис. 3. Зв’язок типу 1:1
Другий тип - зв'язок ОДИН-ДО-БАГАТЬОХ (1:М): одному представнику сутності А відповідають 0, 1 чи більше представників сутності В.
На рис. 4. показано зображений поіменованим ромбом зв’язок 1:M(один до багатьох) сутностей „Склад” та „Виріб”. Такий тип зв’язку передбачає, що декілька різних типів виробів зберігається на конкретному складі , тобто кожен склад визначає типи виробів, які на ньому зберігаються . Сутність „Склад” є породжувальною, „Виріб” – породженою.
Рис. 4. Зв’язок типу 1:N
Третій тип БАГАТО-ДО-БАГАТЬОХ (М:N).
На рис. 5. показано зображений поіменованим ромбом зв’язок M:N (багато до багатьох) сутностей „Склад” та „Виріб”. Такий тип зв’язку передбачає, що декілька різних типів виробів зберігається на конкретному складі , причому один тип виробів може зберігатися на різних складах . В цьому випадку зв’язок має атрибути, якими є дані які одночасно належать з’єднувальним сутностям. Сутності для цього зв’язку є незалежними.
Рис. 5. Зв’язок типу M:N
Характер зв'язків між сутностями не обмежується перерахованими. Існують і більш складні зв'язки:
безліч зв'язків між тими самими сутностями
Рис. 6. Приклад двох зв’язків M:N
рекурсивні зв'язки
Наприклад, між сутностями "відділ" і "співробітник" існує зв’язок "складається з" (відділ складається із співробітників).
На наступному прикладі зображений рекурсивний зв'язок, що зв'язує сутність „Виріб” з нею ж самої. Кінець зв'язку відображає той факт, що великий виріб може складатися з декількох малих.
Рис. 7. Приклад рекурсивного зв’язку
