Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

2.4. Встановлення типів залежності об’єктів та їєрархія наслідування.

Розрізняють декілька типів залежних сутностей:

Характеристична – залежна дочірня сутність, яка пов’язана тільки з однією батьківською сутністю і за змістом зберігає інформацію про характеристики батьківської сутності.

Ассоціативна - сутність, яка пов’язана з декількома батьківськими сутностями. Така сутність вміщує інформацію про зв’язки сутностей.

Поіменована сутність - та, що має тільки посилання на батьківські сутності і не має власних атрибутів – частковий випадок ассоціативної.

Категоріальна – дочірня сутність в ієрархії наслідування.

Ієрархія наслідування (чи ієрархія категорій) – тип об’єднання сутностей, які мають загальні характеристики. Наприклад, в організації працюють службовці, які зайняті повний робочий день та сумісники. Загальні для них атрибути можна помістити у сутність Співробітник, а індивідуальні до сутностей Постійний співробітник та Сумісник. До батьківської сутності треба внести атрибут Тип, що дозволить відрізнити одну категоріальну сутність від іншої.

Ієрархії категорій діляться на повні та неповні. У повній категорії одному запису батьківської сутності відповідає запис у будь-якій дочірній сутності. Якщо категорія побудована не повністю, то в батьківській сутності можуть існувати значення атрибуту Тип, які не мають відповідних єкземплярів у дочірніх сутностях. Наприклад, співробітник, крім вказаних відносин, ще може бути консультантом, або працювати за трудовою угодою. Якщо створити відповідні до цих категорій сутності Консульнант та Контрактник, то ієрархію можна вважати повною.

Можлива комбінація повної та неповної категорій.

Створення категоріального зв’ язку

Для створення категоріального зв’язку слід:

  • Встановити курсор миші на кнопці В палітрі інструментів і натиснути ліву кнопку миші;

  • Клацнути спочатку по батьківському предку, а потім по потомку;

  • Для встановлення другого зв’язку в ієрархії категорій треба спочатку клацнути по символу категорії, а потім по другому потомку.

Для редагування категорій треба клацнути правою кнопкою миші по символу категорії і вибрати у контекстному меню пункт Subtype Relationship Editor

Стадії побудови ієрархії наслідування:

  1. Виділити сутності зі спільними атрибутами;

  2. Перенести спільні атрибути з дочірніх сутностей до батьківської сутності (якщо не існує батьківської сутності, то треба її створити і перенести до неї спільні для категорії атрибути);

  3. Створення неповної структури категорій: створити категоріальний зв’язок від нової сутності – батьківської до дочірніх; нову сутність доповнити атрибутом дискримінатором категорії (ТИП);

  4. Створення повної структури категорій: провести додатковий пошук сутностей, які мають спільні за змістом атрибути з батьківською сутністю. Спільні атрибути перености до батьківської сутності. Ознаку повної категорії встановити в діалогу Subtype Relationship.

Приклад моделі для відділу постачання м‘ясокомбінату наведено в додатку 3

2.5. Правила збереження цілістності даних

Транзакції – зміни в базі даних (редагування даних, доповнення новими записами, вилучення записів) мають переводити базу даних з одного цілостного стану до іншого, тобто не порушувати логічні зв’язки між даними, не призводити до втрат даних. Для забезпечення цілостності даних в ERwin передбачені спеціальні процедури - referential integrity, генеровані автоматично під час запуску, так званих, RI-тригерів.

RI-тригери – логічні конструкції SQL коду, що відображують умови використання даних, тобто, правила доповнення, оновлення та вилучення .

За наявості ідентифікованого зв’язку існують випадки , коли сдід заборонити вилучення запису з батьківської сутності, якщо є хоча б один зв‘язаний запис у дочірній сутності. В цьому ввипадку, слід вилучити всі зв‘язані записи у дочірній сутності, а тільки потім відповідний запис у батьківській сутності. Таке правило називається “обмеженням” (Parent Delete RESTRICT, або NO ACTION). Обмеження з боку дочірньої сутності встановлюється правилом Сhirld Delete RESTRICT.

Наприклад, існує батьківська сутність Замовник та дочірня сутність Замовлення, до якої заносяться всі виконані замовлення. При припиненні відносин між Замовником та Підприємством природньо виникає необхідність у вилученні даних про замовника з бази даних. Але не можна знищувати дані про замовника, коли існують дані відносно виконаних замовлень. У цьому випадку з боку батьківської сутності можна встановити правило Parent Delete RESTRICT. У версії ERWin 7.0 правило RESTRICT називається NoAction.

Правило, коли при вилученні запису з батьківської сутності вилучають всі, пов’язані з ним, дочірні записи – називається “каскад” (Parent Delete CASCADE). Якщо записи в дочірній сутності за ім’ям ролі пов’язані з підлеглими записами нижчого рівня, то вилучаються і вони. У нашому прикладі про Замовника та Замовлення, якщо це продиктовано бізнес правилами, доцільно використати правило Parent Delete CASCADE. Тоді при вилученні Замовника вилучаються всі пов’язані з ним Замовлення.

За наявності неідентифікованого зв’язку, коли запис в дочірній сутності може приймати значення NULL використовують правило SET NULL . Інший випадок, якщо атрибуту зовнішнього ключа надають значення за замовчуванням - SET DEFAULT.

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

Аналогічно правилам вилучення запису встановлюють правила доповнення або редагування запису.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]