Лекція 10.
Нотація IDEF1Х
1. Компоненти синтаксису
IDEF1Х
2. Діаграма IDEF1Х
1.
Компоненти синтаксису IDEF1Х
IDEF1X є методом для
розробки реляційних баз даних і використовує умовний синтаксис, спеціально
розроблений для зручного побудови концептуальної схеми.
Сутність представляє безліч реальних або абстрактних предметів (людей,
об'єктів, місць, подій, станів, ідей, пар предметів тощо), що володіють
загальними атрибутами або характеристиками.
Окремий елемент цієї множини
називається екземпляром сутності. Реально існуючий об'єкт або предмет може бути
представлений в декількох сутностях моделі даних.
Сутність є незалежною від
ідентифікаторів або просто незалежною, якщо кожен екземпляр сутності може
бути однозначно ідентифікований без визначення його відносин з іншими
сутностями.
Сутність називається залежною
від ідентифікаторів або просто залежною, якщо однозначна ідентифікація
екземпляра сутності залежить від його ставлення до іншої сутності.
2.
Діаграма IDEF1Х
Сутність зображується
прямокутником. Якщо сутність залежна від ідентифікаторів, то кути блоку
закругляються. Кожній сутності присвоюється унікальне ім'я і номер,
розділяються косою рисою і поміщаються над блоком. Номер суті – позитивне ціле
число.
Іменем суті є граматичний
оборот іменника (іменник, у якого можуть бути прикметники і прийменники), що
описує сутністю. Іменник має вживатися в єдиному, а не в множині. На діаграмі
сутність повинна бути представлена тільки один раз. Наприклад:
Правила, пов'язані з
сутностями :
– Кожна сутність повинна
мати унікальне ім'я, і до одного і того ж імені повинна завжди застосовуватися
одна й та ж інтерпретація. Одна і та ж інтерпретація не може застосовуватися до
різних іменах, якщо тільки вони не є псевдонімами.
– Сутність володіє одним або
декількома атрибутами, які або належать сутності, або успадковуються через
ставлення.
– Сутність володіє одним або
декількома атрибутами, які однозначно ідентифікують кожен екземпляр сутності.
– Кожна сутність може мати
будь-яку кількість відносин з іншими сутностями моделі.
– Якщо зовнішній ключ цілком використовується
в якості первинного ключа сутності або його частини, то сутність є залежною від
ідентифікатора.
– Якщо використовується
тільки частина зовнішнього ключа або взагалі не використовуються зовнішні
ключі, то сутність є незалежною від ідентифікатора.
Атрибут представляє тип характеристик або властивостей, асоційованих з
безліччю реальних або абстрактних об'єктів (людей, об'єктів, місць, подій,
станів, ідей, пар предметів тощо).
Екземпляр
атрибута – це певна характеристика окремого елемента
множини. Екземпляр атрибута визначається типом характеристики і її значенням,
званим значенням атрибута.
У IDEF1X – моделі атрибути
асоціюються зі специфічними сутностями. Таким чином, екземпляр сутності повинен
володіти єдиним певним значенням для асоційованого атрибута.
Наприклад, асоційованими з
сутністю СЛУЖБОВЕЦЬ можуть бути атрибути ФАМІЛІЯ_СЛУЖБОВЦЯ та ДАТА_НАРОДЖЕННЯ.
Екземпляр сутності СЛУЖБОВЕЦЬ може мати як значення атрибутів "Дженні
Лінн" і "27 лютого, 1973".
Сутність повинна мати,
атрибутом або комбінацією атрибутів, чиї значення однозначно визначають кожен
екземпляр сутності. Ці атрибути утворюють первинний ключ сутності.
Кожен атрибут
ідентифікується унікальним ім'ям, що виражається граматичним оборотом іменника.
Іменник має бути в однині. Кожен атрибут всередині блоку сутності займає один
рядок. Атрибути, що визначають первинний ключ, розміщуються нагорі списку і
відділяються горизонтальною лінією.
Наприклад:
Розрізняють :
– власні,
– успадковані атрибути.
Власні атрибути є унікальними в рамках моделі.
Успадковані передаються від сутності – батька при визначенні зв'язку.
Можливий ключ сутності – це один або декілька атрибутів, чиї значення
однозначно визначають кожен екземпляр сутності.
Кожна сутність повинна мати
хоча б один можливий ключ. У деяких випадках сутність може мати більше одного
атрибута, що однозначно ідентифікує екземпляри сутності. При існуванні
декількох можливих ключів один з них вибирається в якості первинного ключа, а
решта – як альтернативні ключі.
Кожному альтернативному
ключу привласнюється унікальний цілий номер. Цей ключ вказується за допомогою
розміщення праворуч від кожного атрибута ключа укладених в дужки букв АК з
номером альтернативного ключа.
Наприклад:
Якщо між двома сутностями є
специфічне ставлення зв'язку або категоризації, то атрибути, що входять в
первинний ключ батьківської або загальної суті, успадковуються як атрибути
сутністю-нащадком. Ці успадковані атрибути називаються зовнішніми ключами.
Наслідуваний атрибут може
використовуватися по суті в якості частини або цілого первинного ключа,
альтернативного ключа або неключових атрибута.
Якщо всі атрибути первинного
ключа сутності-батька успадковуються в якості частини первинного ключа
сутності-нащадка, то відношення називається що ідентифікує. Якщо який-небудь з
успадкованих атрибутів не є частиною первинного ключа, то відношення
називається що не ідентифікує.
Зовнішній ключ зображується
за допомогою приміщення всередину блоку сутностінащадка імен успадкованих
атрибутів, після яких слідують букви FK в дужках.
Наприклад:
Якщо атрибут, що
успадковується, не належить первинному ключу сутностінащадка, то він зображується
нижче горизонтальної лінії.
Якщо атрибут, що
успадковується, належить первинному ключу сутності-нащадка, то він поміщається
вище лінії, а сутність зображується блоком із закругленими кутами.
Розглянемо приклад:
Розглянуті поняття ключів
можна звести у наступну схему:
Типи залежних сутностей :
– Характеристична – це
залежна дочірня сутність, яка пов'язана тільки з однієї батьківської сутністю і
за змістом зберігає інформацію про характеристики батьківської сутності.
– Категоріальна – це дочірня
сутність в ієрархії успадкування
– Асоціативна – сутність,
пов'язана з декількома батьківськими сутностями. Така сутність містить
інформацію про зв'язки сутності.
– Що іменує – окремий
випадок асоціативної суті, не має власних атрибутів, тільки атрибути
батьківського сутності.
Специфічне
ставлення зв'язку або просто відношення зв'язку,
зване також ставлення батько-нащадок, це асоціація або зв'язок між сутностями,
при якій кожен екземпляр однієї сутності, званої батьківської сутністю,
асоційований з довільною (в тому числі нульовим) кількістю примірників другої
сутності, званої сутністю – нащадком.
Кожен екземпляр
сутності-нащадка асоційований в точності з одним екземпляром сутності-батька.
Таким чином, примірник сутності-нащадка може існувати тільки при існуванні
сутності-предка.
Якщо екземпляр сутності –
нащадка однозначно визначається своїм зв'язком з сутністю-батьком, то
відношення називається відношенням, що ідентифікує.
Наприклад, якщо з кожним
проектом пов'язано одне або більше завдань і завдання однозначно
ідентифікуються тільки в межах свого проекту, то між сутностями ПРОЕКТ і
ЗАВДАННЯ буде існувати відношення що ідентифікує.
Якщо кожен екземпляр
сутності – нащадка може бути однозначно ідентифікований без знання пов'язаного
з ним екземпляра сутності-батька, то відношення називається відношенням, що
не ідентифікує.
Наприклад, хоча між
сутностями ПОКУПЕЦЬ і ЗАМОВЛЕННЯ_НА_ ПОКУПКУ може існувати відношення залежного
існування, замовлення на покупку можуть однозначно ідентифікуватися номером
замовлення на покупку без ідентифікації асоційованого покупця.
Приклад позначення:
Cпеціфіческое відношення
зв'язку зображується лінією, що проводиться між сутністю-батьком і
сутністю-нащадком з точкою на кінці лінії у сутності-нащадка. Потужність за
замовчуванням – «нуль, один або багато».
Буква Р (positive) означає
потужність «один або багато» і поміщається близько точки.
Буква Z (zero), вміщена
близько точки, означає потужність «нуль або один».
Якщо потужність в точності
дорівнює деякому числу N, це число (ціле, позитивне) поміщається близько точки.
Приклад позначення:
Відношенню дається ім'я,
виражене граматичним оборотом дієслова і поміщається біля лінії відносини. Ім'я
кожної відносини між двома сутностями повинно бути унікальним, але імена
відносин в моделі не обов'язково повинні бути унікальними. Ім'я відносини в
більшості випадків формується з точки зору батьків.
Наприклад, твердження
«Проект складається з одного або більше завдань» може бути виведено з
відносини, що зображує ПРОЕКТ, як сутності – батька, ЗАВДАННЯ – в якості
сутності – нащадка з символом потужності P, СКЛАДАЄТЬСЯ_З – як ім'я відносини.
Приклад асоціативного
відношення:
Деякі існуючі об'єкти є
категоріями інших реально існуючих об'єктів, тому сутності можуть бути
категоріями інших сутностей. Наприклад, для загальної суті службовець можна
вказати дві сутності-категорії: ШТАТНИЙ_СЛУЖБОВЕЦЬ і СЛУЖБОВЕЦЬ_ПОГОДИННИК
Розрізняють повну і неповну
категоризацію.
Відношення
повної категоризації – відношення між двома або
більше сутностями, в якому кожен екземпляр однієї сутності, званої загальної
сутністю, пов'язаний в точності з одним екземпляром однієї і тільки однієї з
інших сутностей, званих сутностямикатегоріями.
Якщо існує екземпляр
загальної суті, не пов'язаний ні з яким примірником з сутностей-категорій то
таке ставлення називається відношенням неповної категоризації.
Відношення категоризації
зображується лінією, що веде з загальної суті до підкресленому колу. Окремі
лінії ведуть від підкресленого кола до кожної з сутностейкатегорій.
Якщо коло підкреслено двічі ,
це вказує на повноту безлічі сутностейкатегорій.
Якщо коло підкреслено один
раз ,
це вказує на неповноту безлічі категорій. Ім'я атрибута загальної суті,
використовується в якості дискриминатора, записується поряд з колом.
Наприклад:
Неспецифічне
відношення, зване також ставленням багато-до-багатого,
це зв'язок між двома сутностями, при якій кожен екземпляр першої суті
пов'язаний з довільним (в тому числі і нульовим) кількістю екземплярів другої
сутності, а кожен екземпляр другої сутності пов'язаний з довільною (в тому
числі і нульовим) кількістю екземплярів першої сутності
Наприклад:
Розглянемо приклад. Побудова
інформаційної моделі процесу спорудження будиночка. Нехай маємо список потенційних
сутностей: Будинок, Дах, Матеріали, Проект будинку, Стіни, Фундамент,
Будівельники, Каменярі, Теслі, Покрівельники, Майстри по обробці. Тоді маємо
наступний опис цього прикладу:
Розглянемо приклад. Клієнти
деякої фірми замовляють товари. На товари, що замовляються співробітник фірми
оформляє замовлення. У замовленні в загальному випадку міститься кілька рядків
(позицій), в яких зазначаються відомості про товари, що замовляються та їх
кількості. Інший співробітник фірми комплектує замовлення і виконує операцію
упаковки. Ще один співробітник фірми виконує операцію навантаження і доставки
товарів клієнту. Кожен із співробітників фірми займає певну посаду. Тоді маємо
наступний опис цього прикладу:
Запитання для
самоперевірки
1. З яких елементів
складаються діаграми IDEF1X?
2. Що таке ключові атрибути?
3. Які види ключових
атрибутів ви знаєте?
4. Які типи залежних
сутностей ви знаєте?