Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 2-1 Застосув ER-моделі.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
134.66 Кб
Скачать

Екземпляри er- діаграми

Базу даних, яка відповідає конкретній ER- діаграмі і містить конкретний набір даних, прийнято називати екземпляром бази даних. Екземпляр бази даних включає також визначені екземпляри зв’язків, що описуються діаграмою. Корисно представити множину даних зв’язку у вигляді таблиці. Стовпці цієї таблиці озаглавлюються найменуваннями множин сутностей, охоплених зв’язком, а дані зв’язку – це рядки таблиці.

Приклад 2. Створити таблицю, що описує екземпляр зв’язку Stars-in стосовно конкретного екземпляра бази даних. Таблиця може мати наступний вид:

Movies

Stars

Basic Instinct

Sharon Stone

Total Recall

Arnold Scharzenegger

3. Типи сутностей і зв’язків

Множинність бінарних зв’язків. Бінарний зв’язок у загальному випадку здатний з’єднувати любий член однієї множини сутностей із любим членом другої множини сутностей. Але поширені ситуації, коли властивість "множинності" деяким чином обмежується. Припустимо, що R зв’язок, який з’єднує E і F. Тоді можливі такі випадки:

  • Якщо кожний член множини E за допомогою зв’язку R може бути з’єднаний не більш ніж з одним членом F виникає зв’язок типу “багато до одного”, направлений від E до F. Такий же зв’язок типу “багато до одного”, направлений від F до E виникає, коли кожний член множини F за допомогою зв’язку R може бути з’єднаний не більш ніж з одним членом E.

  • Якщо зв’язок R в обох напрямках (від E до F і від F до E ) відноситься до типу “багато до одного ”, то можна стверджувати, що у цілому зв’язок R стає зв’язком типу "один до одного ”. Цей зв’язок, таким чином, допускає з’єднання кожного елемента однієї множини сутностей не більш ніж з одним елементом другої множини сутностей.

  • Якщо зв’язок R в обох напрямках (від E до F і від F до E ) не відноситься до типу “багато до одного ”, то можна стверджувати, що у цілому зв’язок R стає зв’язком типу "багато до багатьох ”. Цей зв’язок, таким чином, допускає з’єднання кожного елемента однієї множини сутностей більш ніж з одним елементом другої множини сутностей.

На діаграмах зв’язок “багато до одного ” відображується стрілкою, що направлена до сутності, елемент якої має не більше одного зв’язку з елементом другої сутності. Зв’язок "один до одного ” позначається стрілками, що направлені до кожної сутності, що є учасником зв’язку. Зв’язок "багато до багатьох ” на ER-діаграмах стрілками не позначається.

Багатосторонні зв’язки.

ER-діаграми здатні відображувати зв’язки, що охоплюють більш ніж дві множини сутностей.

Приклад 3. Відобразити зв’язок Contracts (“контракти ”), який з’єднує між собою сутності Movies, Stars і Studios. Зв’язок відображує факт заключення контракту між кіностудією і обраним кіноактором, який зобов’язується прийняти участь у зйомках конкретного фільму. ER-діаграма приведена на рис.5.

На рис.4. стрілка направлена до множини сутностей Studios, що є свідченням того, що для кожної пари актор – кінофільм існує тільки одна студія, з якою актор може заключити контракт на участь у зйомках певного фільму. Таким чином зв’язок Contracts може бути описаний набором кортежів виду

(studio, star, movie).

Зв’язки і ролі

Зустрічається ситуація, коли одні і ті ж множини сутностей стосовно якогось зв’язку використовуються багаторазово. Тоді на діаграмі слід задавати стільки ліній, скільки потрібно. Кожна лінія, яка з’єднує множину сутностей, представляє окрему роль, що позначають текстовою приміткою.

Приклад 5. Побудувати ER-діаграму, що відображує зв’язок Sequel-of (“продовження кінофільму ”), який з’єднує множину сутностей Movies ("кінофільми") самих з собою. Кожний конкретний екземпляр зв’язку з’єднує два кінофільми, один з яких є продовженням другого. Щоб розрізняти обидва фільми, що участують у зв’язку, одну із ліній помічають роллю Original ("початковий"), а другу – Sequel (“продовження ”). Таким чином зв’язок Sequel-of , що з’єднує фільми Sequel з фільмами Original , відноситься до типу “багато до одного ”. Цей факт на діаграмі рис.6. помічений стрілкою.

Зв’язки і атрибути

Можливі ситуації, коли зв’язок доповнюється атрибутом.

Приклад 6. Побудувати ER-діаграму, яка відображує розмір заробітної платні у контрактах між кіноакторами і кіностудіями. Розмір заробітної платні (Salary ) не може бути атрибутом ні множини сутностей Stars (“кіноактор”), ні множини сутностей Studios (“кіностудія”), ні множини сутностей Movies (“кінофільми ”), тому що він залежить (зв’язаний) від усіх ціх сутностей. Таким чином атрибут Salary належить до зв’язку Contracts (“контракти ”). Діаграма приведена на рис.7.

Хоча зловживати можливістю розміщення атрибутів на зв’язках не слід. Кращою альтернативою може стати уведення у діаграму нової множини сутностей з тим же атрибутом, зв’язавши цю множину із зв’язком.

Перетворення багатосторонніх зв’язків у бінарні.

У деяких випадках застосування ER-діаграм необхідна наявність тільки бінарних зв’язків. Тоді виконується процедура перетворення багатосторонніх зв’язків у бінарні. Процедура передбачає створення нової множини сутностей, елементи якої являються кортежами множини даних розглянутого зв’язку. Цю множину сутностей називають з’єднуючою множиною сутностей. Вона включається у діаграму замість багатостороннього зв’язку. Потім включаються зв’язки типу “багато до одного ”, які з’єднують єднаючи множину сутностей з кожною із множин сутностей, елементи яких утворювали багатосторонній зв’язок. Якщо якась множина сутностей в контексті зв’язку володіє декількома ролями, кожна роль перетворюється окремо

Приклад 7. Замінити чотирьохсторонній зв’язок Contracts (“контракти ”) на рис.8. на модель з бінарними зв’язками (рис.9).

Підкласи у ER-моделі.

Нерідко виникають ситуації, коли множини сутностей містять визначені сутності, якім притамані спеціальні властивості, які відсутні у інших членів множини. У подібних випадках рекомендується створювати спеціальні множини сутностей – або підкласи, кожний з яких володіє власним набором атрибутів та /або зв’язками. Для з’єднання множини сутностей – (базового класу) – з його підкласами використовуються зв’язки, названі isa (від “is a” – є). Наприклад твердження “А є В вказує на наявність зв’язку isa , направлених від множини сутностей А до множини сутностей В. Зв’язок isa на ER-діаграмі представляється трикутником. Одна із сторін трикутника з’єднується з підкласом, а протилежна вершина – з базовим класом. Кожний зв’язок isa відноситься до типу “один до одного ”, але на відміну від інших зв’язків типу "один до одного", стрілки на її лініях не ставляться.

Приклад 8. У "кінематографічній " базі даних може зберігатися інформація про фільми, що відносяться до різних жанрів. Для кожного жанру можна виділити відповідний підклас множини сутностей Movies. Розглянемо два підкласи – Cartoons (“мультиплікація ”) та Murder-Mysteries (“бойовики ”). Множина сутностей “мультиплікація ” має зв’язок Voices ("голоси"), який визначає підмножину акторів, що озвучують фільм, але на екрані не з’являються. Для кінофільмів – бойовиків характерна наявність атрибуту weapon (“зброя ”). На рис.10. приведена ER-модель даних. стосовно прикладу.

На основі isa- структур можна створювати деревоподібні структури.