У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


даному зв'язку (наприклад, службовцеві дозволяється брати участь не більш, ніж в трьох проектах одночасно). Для вираження цього семантичного обмеження дозволяється вказувати на кінці зв'язку її максимальну або обов'язкову міру. Каскадні видалення примірників сутностей. Деякі зв'язки бувають настільки сильними (звичайно, у разі зв'язку "один-до-багатьох"), що при видаленні опорного примірника суті (відповідного кінцю зв'язку "один") треба видалити і всі примірники суті, відповідні кінцю зв'язки "багато". Відповідну вимогу "каскадного видалення" можна сформулювати при визначенні суті. Домени. Як і у разі реляційної моделі даних буває корисна можливість визначення потенційно допустимої безлічі значень атрибута суті (домену).

Ці і інші більш складні елементи моделі даних "Суті-Зв'язку" роблять її істотно більш могутньої, але одночасно дещо ускладнюють її використання. Звичайно, при реальному використанні ER-діаграм для проектування баз даних необхідно ознайомитися з всіма можливостями.

У нашій лекції ми трохи детальніше розберемо тільки один із згаданих елементів - підтип суті.

Суть може бути розщепленням на два або більш взаємно що виключають підтипу, кожний з яких включає загальні атрибути і/або зв'язки. Ці загальні атрибути і/або зв'язки явно визначаються один раз на більш високому рівні. У підтипах можуть визначатися власні атрибути і/або зв'язки. У принципі підтипізації може продовжуватися на більш низьких рівнях, але досвід показує, що в більшості випадків виявляється досить двох-трьох рівнів.

Суть, на основі якої визначаються підтипи, називається супертипом. Підтипи повинні утворювати повну безліч, тобто будь-який примірник супертипа повинен відноситися до деякого підтипу. Іноді для повноти доводиться визначати додаткову підтип ІНШІ.

Приклад: Супертип ЛІТАЛЬНИЙ АПАРАТ

Як належить це читати? Від супертипа: ЛІТАЛЬНИЙ АПАРАТ, який повинен бути АЕРОПЛАНОМ, ВЕРТОЛЬОТОМ, ПТАХОЛЬОТОМ або ІНШИМ ЛІТАЛЬНИМ АПАРАТОМ. Від підтипу: ВЕРТОЛІТ, який відноситься до типу ЛІТАЛЬНОГО АПАРАТУ. Від підтипу, який є одночасно супертипа: АЕРОПЛАН, який відноситься до типу ЛІТАЛЬНОГО АПАРАТУ і повинен бути ПЛАНЕРОМ або МОТОРНИМ ЛІТАКОМ.

Іноді зручно мати два або більш різних розбиття суті на підтипи. Наприклад, суть ЛЮДИНА може бути розбита на підтипи по професійній ознаці (ПРОГРАМІСТ, ДОЯРКА і т.д.), а може - по статевій ознаці (ЧОЛОВІК, ЖІНКА).

6.2.5. Отримання реляційної схеми з ER-схеми

Крок 1. Кожна проста суть перетворюється в таблицю. Проста суть - суть, що не є підтипом і що не має підтипів. Ім'я суті стає ім'ям таблиці.

Крок 2. Кожний атрибут стає можливим стовпцем з тим же ім'ям; може вибиратися більш точний формат. Стовпці, відповідні необов'язковим атрибутам, можуть містити невизначені значення; стовпці, відповідні обов'язковим атрибутам, - не можуть.

Крок 3. Компоненти унікального ідентифікатора суті перетворюються в первинний ключ таблиці. Якщо є декілька можливих унікальних ідентифікатора, вибирається той, що найбільш використовується. Якщо до складу унікального ідентифікатора входять зв'язки, до числа стовпців первинного ключа додається копія унікального ідентифікатора суті, що знаходиться на далекому кінці зв'язку (цей процес може продовжуватися рекурсивно). Для іменування цих стовпців використовуються імена кінців зв'язків і/або імена сутностей.

Крок 4. Зв'язки багато-до-одного (і один-до-одного) стають зовнішніми ключами. Тобто робиться копія унікального ідентифікатора з кінця зв'язку "один", і відповідні стовпці складають зовнішній ключ. Необов'язкові зв'язки відповідають стовпцям, що допускають невизначені значення; обов'язкові зв'язки - стовпцям, що не допускають невизначені значення.

Крок 5. Індекси створюються для первинного ключа (унікальний індекс), зовнішніх ключів і тих атрибутів, на яких мається намір в основному базувати запити.

Крок 6. Якщо в концептуальній схемі були присутні підтипи, то можливі два способи:

всі підтипи в одній таблиці (а) для кожного підтипу - окрема таблиця (б)

При застосуванні способу (а) таблиця створюється для найбільш зовнішнього супертипа, а для підтипів можуть створюватися уявлення. У таблицю додається принаймні один стовпець, що містить код ТИПУ; він стає частиною первинного ключа.

При використанні методу (б) для кожного підтипу першого рівня (для більш нижніх - уявлення) супертип відтворюється за допомогою уявлення UNION (з всіх таблиць підтипів вибираються загальні стовпці - стовпці супертипа).

Все в одній таблиці | Таблиця —на підтип

Переваги

Все зберігається разом

Легкий доступ до супертип і підтипу

Потрібно менше таблиць | Більш ясні правила підтипів

Програми працюють тільки з потрібними таблицями

Недоліки

Дуже загальне рішення

Потрібна додаткова логіка роботи з різними наборами стовпців і різними обмеженнями

Потенційне вузьке місце (в зв’язку з блокуванням)

Стовпці підтипів повинні бути необов’язковими

В деякій СУБД для зберігання невизначених значень потрібна додаткова пам’ять | Дуже багато таблиць

Збентежуючи стовпці в уявленні UNION

Потенційна втрата продуктивності при роботі через UNION

Над супертипом неможливі модифікації

Крок 7. Є два способи роботи при наявності виключаючих зв'язків:

загальний домен (а) явні зовнішні ключі (б)

Якщо зовнішні ключі, що залишаються всі в одному домені, тобто мають загальний формат (спосіб (а)), то створюються два стовпці: ідентифікатор зв'язку і ідентифікатор суті. Стовпець ідентифікатора зв'язку використовується для розрізнення зв'язків, що покриваються дугою виключення. Стовпець ідентифікатора суті використовується для зберігання значень унікального ідентифікатора суті на далекому кінці відповідного зв'язку.

Якщо результуючі зовнішні ключі не відносяться до одного домену, то для кожного зв'язку, що покривається дугою виключення, створюються явні стовпці зовнішніх ключів; всі ці стовпці можуть містити невизначені значення.

Загальний домен | Явні зовнішні ключі

Переваги

Потрібно тільки два стовпці | Умови з’єднання — явні

Недоліки

Обидва додаткових атрибута повинні використовуватися в з’єднаннях | Дуже багато стовпців

Альтернативні моделі сутностей:

Варіант 1 (поганий)

Варіант 2 (істотно краще, якщо підтипи дійсно існують)

Варіант 3 (годиться при наявності осмисленого супертипа D).


Сторінки: 1 2 3 4 5