Проектування баз даних
14


рівні. Тому потрібно виконати дообстеження ПО з точки зору поповнення таких об'єктів атрибу­тами, яких бракує.

Отримані об'єкти необхідно ідентифікувати унікальними іменами. Іменувати об'єкт краще одним словом і бажано, щоб це був іменник, нап­риклад «ДЕТАЛЬ», «МАТЕРІАЛ», «ПОСТАЧАЛЬНИК». Але не завжди можна ідентифікувати об'єкт одним словом, тому іменами об'єктів можуть бути також словосполучення, які складаються з дієслова або іменників (наприклад, «ПРИБУТОК МАТЕРІАЛУ», «ВИДАТОК МАТЕРІАЛУ»).

3. Наступним кроком інфологічного проектування є перевірка відповідності отриманих об'єктів умовам нормалізації. Але спочатку для кожного інформаційного об'єкта потрібно визначити первинні ключі. Пер­винний ключ — це атрибут або їх сукупність, що дають змогу однозначно ідентифікувати запис під час його пошуку. Первинним ключем може бути атрибут, який не дублюється і обов'язково присутній в кожному запису. Якщо серед атрибутів нема такого, який би міг бути первинним ключем, необхідно домовитися із замовником щодо визначення первинного ключа.

Якщо процедуру агрегації об'єктів виконано бездоганно, то вони авто­матично будуть розміщуватися в ЗНФ чи 4НФ. Але якщо предметна об­ласть досить складна і велика, налічує багато атрибутів та інформаційних об'єктів, то краще, аби переконатися, що не допущено помилок на поперед­ньому етапі, ще раз перевірити об'єкти на відповідність умовам нормалізації.

Теорію нормалізації викладено в розд. 4.

4. Зовнішнє кодування. На цьому кроці необхідно вивчити атрибути з неунікальними значеннями. Якщо ці атрибути представлені досить довгими текстами, то необхідно вирішити питання про доцільність заміни їх на короткі кодові позначення. У цьому разі в інфологічну модель вноситься новий інформаційний об'єкт, який доречно назвати «ДОВІДНИК». Він буде складатись з коду атрибута та його текстового значення. При цьому в усіх раніше виділених об'єктах текстові значення замінюються на код.

5. Виділення запитів до БД і словесний їх опис. Для того щоб описати запити, необхідно дослідити процеси обробки інформації по кожній функціональній задачі модельованої предметної області. Цей аналіз та формалізація процесу обробки інформації потрібні для визначення струк­турних зв'язків між інформаційними об'єктами, тобто вже на етапі інфологічного моделювання БД проектувальник має чітко уявляти алго­ритм та логічну схему розв'язання кожної задачі.

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

Зауваження. Не завжди під час формування словесного опису запиту є можливість описати його так, щоб у тексті були наведені всі імена інформаційних об'єктів, які беруть участь в його реалізації. У таких випад­ках опис запиту повинен вміщувати ключові слова, які вказують на ті об'єкти, що їх семантичне складно було відобразити в тексті інформа­ційного запиту.

Описуючи запит, також потрібно враховувати режим його виконання. Режими бувають одиночними і множинними. Одиночний режим — це та­кий, коли запит виконується для одного екземпляра початкового об'єкта:

- наприклад, «Для заданого ПОСТАЧАЛЬНИКА ... ». Множинний режим оз­начає багаторазове виконання запиту для всіх екземплярів початкового об'єкта чи їх підмножини; наприклад, «Для всіх ПОСТАЧАЛЬНИКІВ ... ». Отож, коли в запиті вказано «для всіх» чи «для кожного», то передбачаєть­ся виконання запиту для багатьох екземплярів початкового об'єкта. Це свідчить про те, що при реалізації алгоритму екземпляри даного об'єкта вибирають і обробляють послідовно. Якщо в запиті вказано слова «для за­даного», «для певного», це означає, що запит виконується для конкретного єдиного екземпляра початкового об'єкта, пошук якого при реалізації запиту можна виконувати за ключем.

6. Кожний запит необхідно подати в структурованому вигляді відпо­відним запитувальним зв'язком. Узагальнена форма запитувального зв'язку така:

де Х12, ..., Хn початкові об'єкти, які потрібно розмістити в порядку інформаційного пошуку чи в порядку зменшення групувальної ознаки об'єктів;

У— кінцевий об'єкт, який уособлює мету реалізації запиту (він має бу­ти завжди один).

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

Запити бувають одновимірні й багатовимірні. Запит, у якого на вході є один початковий об'єкт, називається одновимірним. Запит, у якого на вході кілька початкових об'єктів, є багатовимірним.

Наприклад, запит «Видати список студентів певної ГРУПИ заданого ФАКУЛЬТЕТУ, вказаного КУРСУ» є багатовимірним, оскільки йому відповідає такий запитувальний зв'язок:

Запит «Видати список СПІВРОБІТНИКІВ указаного ВІДДІЛУ» буде одновимірним: