Головна |
Оскільки все в цьому світі пов'язане, то паралельним кроком в ході аналізу предметної області, разом з виявленням класів об'єктів і їх властивостей, є крок виявлення зв'язків, асоціацій, що виникають між класами об'єктів. Зв'язки представляють інформаційні потреби і правила бізнесу на підприємстві, їх визначення можна сформулювати так:
- Іменована, значуща асоціація між двома класами об'єктів.
- Ставлення, яке має одна річ до іншої.
Розглядаючи зв'язок необхідно бачити її як двосторонню, двунаправленную.
Наприклад, клас об'єктів «КАТЕГОРІЯ ПОСАДИ» пов'язаний з класом об'єктів «ПОСАДУ». Клас об'єктів «ПОСАДУ» пов'язаний з класом об'єктів «КАТЕГОРІЯ ПОСАДИ».
Кожна зв'язок має певні характеристики. Одна з характеристик - опціонально зв'язку (мінімальне кардинальне число). Це бізнес-правило, яке вказує чи повинна зв'язок існувати для кожного об'єкта класу об'єктів (обов'язкова зв'язок) або це не потрібно (необов'язкова зв'язок). Наприклад, на підприємстві виявлено наступне правило: «кожної конкретної категорії посади може відповідати посаду». В деякий момент часу на підприємстві з'являється документ про створення нової категорії, але немає ще жодної посади, що посилається на цю категорію. Але з іншого боку є і правило: «кожна посада на підприємстві повинна бути віднесена до однієї і тільки однієї посади». Таким чином, видно, що між двома класами об'єктів («КАТЕГОРІЯ ПОСАДИ» і «ПОСАДУ») виявлено дві різні асоціації.
Ще одна важлива характеристика зв'язку - потужність (максимальна кардинальне число). Це бізнес правило, яке вказує, скільки таких зв'язків існує - одна і тільки одна, або багато. Якщо виявлений зв'язок, яка має потужність «нуль», цей зв'язок необов'язкова.
Крім того, кожна сторона зв'язку має ім'я. Це опис правил бізнесу. Наприклад: «відповідає», «належить до». Імена часто складають пари: «заснований на" - "є основою для"; «Купується у" - "поставляється»; «Відповідає за» - «знаходиться під відповідальністю».
Ім'я має велике значення, воно показує, наскільки добре зрозуміла взаємозв'язок інформації.
Побачивши зв'язок, необхідно переконатися в тому, що вона має сенс. Для цього її необхідно проговорити як звичайне пропозицію в обидві сторони (будь-який зв'язок двостороння), використовуючи правило вимови зв'язку (таблиця 6).
Таблиця 6 - Правило читання зв'язку
Частина 1 | Частина 2 | частина 3 | частина 4 | частина 5 | частина 6 |
Кожен (а, е) | Ім'я першого класу об'єктів | Опціонально зв'язку (д. Б. Або м. Б.) | ім'я зв'язку | Потужність зв'язку (одна або багато) | Ім'я другого класу об'єктів |
Приклад читання зв'язку: «кожне ФІЗИЧНА ОСОБА може мати нуль, один або більше ЗАПИСІВ ТРУДОВОЇ КНИЖКИ»; «Кожна ЗАПИС ТРУДОВОЇ КНИЖКИ повинна стосуватися одного і тільки одного ФІЗИЧНОГО лиця».
Розглянемо більш докладно існуючі типи (потужності) зв'язків.
1 Зв'язок «одін_ко_многім» (1: М). Це найпоширеніший тип зв'язку, що має потужність один і більше в одному напрямку і один і тільки один в іншому. Клас об'єктів, що знаходиться в зв'язку з цим на стороні «один», називають головним або батьківським. Клас об'єктів, що знаходиться на стороні «багато» - підлеглим або нащадком.
У більшості випадків підлеглі класи об'єктів необов'язкові, а головні обов'язкові. Тобто, об'єкт головного класу об'єктів може існувати без підлеглого об'єкта, а підлеглий без головного немає. З точки зору бази даних це означає, що спочатку в БД створюється об'єкт головного класу об'єктів, а потім об'єкти підлеглого. Якщо зв'язок 1: М не обов'язкова по обидва боки, об'єкти можуть створюватися довільно. Зв'язки 1: М обов'язкові з обох сторін дуже рідкісні і означають, що об'єкти двох, різних класів об'єктів не можуть існувати одне без одного.
Приклад зв'язку 1: М: «кожної структурної одиниці ПІДПРИЄМСТВА може відповідати нуль, одна або більше ЗАПИСІВ ТРУДОВОЇ КНИЖКИ». Зі зворотного боку: «Кожна ЗАПИС ТРУДОВОЇ КНИЖКИ повинна стосуватися однієї і тільки однієї структурної одиниці ПІДПРИЄМСТВА».
2 Зв'язок «многіе_ко_многім» (М: М або M: N). Це теж дуже поширений тип зв'язку, особливо на початкових етапах аналізу предметної області. Цей зв'язок має потужність «один або більше» в обох напрямках. Приклад такого зв'язку: «в кожної структурної одиниці ПІДПРИЄМСТВА можуть працювати багато ФІЗИЧНИХ ОСІБ». Зі зворотного боку: «кожне ФІЗИЧНА ОСОБА може працювати в багатьох« структурна одиниця ПІДПРИЄМСТВА ».
Більшість зв'язків М: М необов'язкові в обох напрямках, тобто об'єкт одного класу об'єктів може існувати без прив'язки до об'єкта іншого класу об'єктів, будь-який екземпляр може з'явитися першим. Зв'язки М: М, обов'язкові з обох сторін дуже рідкісні - об'єкти обох класів об'єктів повинні бути створені одночасно.
Необхідно зауважити, що в будь-якій предметній області немає зв'язків «многіе_ко_многім», в кожен момент часу все визначається однозначно. Поява такого зв'язку в проектній документації показує, що предметна область і не дообследоваться. Зв'язок М: М може бути «розірвано» будь-яким документом або позицією документа. Такий клас об'єктів, що розриває зв'язок М: М називають «сутністю перетину». Необхідно тільки побачити, знайти цей клас об'єктів. Для вище наведеного прикладу зв'язку М: М таким класом об'єктів є «ЗАПИС ТРУДОВОЇ КНИЖКИ». Якщо ми його виявили, то зв'язку в предметної області вже звучать так: «кожної структурної одиниці ПІДПРИЄМСТВА може відповідати нуль, одна або більше ЗАПИСІВ ТРУДОВОЇ КНИЖКИ». Зі зворотного боку: «кожна ЗАПИС ТРУДОВОЇ КНИЖКИ повинна стосуватися однієї і тільки однієї структурної одиниці ПІДПРИЄМСТВА». І ще одна зв'язок: «кожному ФІЗИЧНОГО ВІЧ, який працює на підприємстві, може відповідати нуль, одна або більше ЗАПИСІВ ТРУДОВОЇ КНИЖКИ».
3 Зв'язок «одін_к_одному» (1: 1). Рідкісна зв'язок, зазвичай з точки зору бізнесу це означає, що це не два класи об'єктів, а один. Цей зв'язок може мати потужність один і тільки один в обох напрямках. Якщо виявиться такий зв'язок, слід ще раз дослідити інформаційні потоки і може з'ясуватися, що два виявлених класу об'єктів фактично становлять один.
Приклад зв'язку 1: 1: «кожен ВЕЛОСИПЕД може використовуватися тільки одним ЧЛЕНОМ КЛУБУ». Зі зворотного боку: «кожен ЧЛЕН КЛУБУ може їздити тільки на одному ВЕЛОСИПЕДІ»
Зв'язки 1: 1, обов'язкові на обох кінцях, коли обидва об'єкти повинні з'являються одночасно, дуже рідкісні.
Після виявлення будь-якого зв'язку між класами об'єктів необхідно (для кожної її сторони): встановити наявність; вибрати ім'я; визначити потужність; визначити опціонально; перевірити шляхом читання.
Необхідно зауважити, що між двома класами об'єктів може бути виявлено скільки завгодно багато зв'язків. Наприклад, між класами об'єктів «ФІЗИЧНА ОСОБА» і «АДРЕСА» може бути виявлено 2 зв'язку: одна фіксує адресу прописки, інша - адреса проживання. Звести підсумки виявлення зв'язків можна за допомогою такої таблиці (таблиця 7):
Таблиця 7 - Формалізований опис предметної області. Зв'язки між класами об'єктів
зв'язок | Опціонально зв'язку з боку | Назва зв'язку з боку | Тип зв'язку з боку | ||||
гол. КО | подч. КО | гол. КО | подч. КО | гол. КО | подч. КО | гол. КО | подч. КО |
ФІЗИЧНА ОСОБА | АДРЕСА | Д. б. | Д. б. | просоч-сано по | є місцем прописки | ||
ФІЗИЧНА ОСОБА | ЗАПИС праці-ВОЙКНІГІ | М. б. | Д. б. | має | відповідає | М | |
Праця-ВАЯ КНИГА | ЗАПИС праці-ВОЙКНІГІ | Д. б. | Д. б. | має | відповідає | М | |
ДОТ-жності | ЗАПИС праці-ВОЙКНІГІ | М. б. | Д. б. | має | відповідає | М |
У таблиці використані наступні скорочення: гол. - Головний, подч. - Підлеглий, КО - клас об'єктів; Д. б. - Повинна бути, М. б. - може бути.
Виявлені зв'язку перевіряються шляхом читання. Необхідно пам'ятати, що кожна зв'язок двостороння!
Автоматизовані інформаційні системи | Економічні інформаційні системи | Місце БД в автоматизованій інформаційній системі | архітектура БД | моделі даних | Життєвий цикл БД | Методи проектування БД | Формування зовнішнього рівня БД | Структура підприємства. Інформаційні потоки | Функціональна структура АІС |