Professional Documents
Culture Documents
Н.В.Ситник,Навчальний посібник PDF
Н.В.Ситник,Навчальний посібник PDF
Рекомендовано
Міністерством освіти і науки України
ББК 32.973.26-018.2
С 41
Рецензенти:
Ріппа С. П., д-р екон. наук, проф.
(Науково-дослідний центр з проблем оподаткування
Академії Державної податкової служби України)
Вовк В. М., д-р екон. наук, проф.
(Львівський національний університет ім. Івана Франка)
Ситник Н. В.
С 41 Проектування баз і сховищ даних: Навч. посібник. — К.:
КНЕУ, 2004. — 348 с.
ISBN 966–574–625–1
У навчальному посібнику розкриті теорія проектування баз і сховищ да-
них та практика їх використання в сучасних інформаційних системах.
Тут подано основні теоретичні поняття та терміни, які розкривають сут-
ність бази даних і проблеми її проектування, а також детально висвітлено пи-
тання інфологічного і даталогічного проектування баз даних. Окремо викла-
дено реляційний підхід до проектування баз даних. Описано технологію
створення та ведення клієнтської бази даних засобами СКБД Microsoft Access,
розкриті особливості роботи з розподіленими базами даних.
Крім того, у посібнику розглянуто відмінності сховищ даних від баз да-
них, викладено характеристику побудови моделей сховищ даних та зроблено
акцент на питання проектування, зокрема викладена методика вимірного мо-
делювання сховищ даних. Розкриті питання застосування сховищ даних в
OLAP-системах та системах Data Mining. Викладено підходи до автоматизації
проектування баз і сховищ даних на основі використання CASE-технології.
Навчальний посібник підготовлено відповідно до курсу «Проектування
баз і сховищ даних», має на меті допомогти формуванню фундаментальних
теоретичних знань і практичних навичок з проектування баз і сховищ даних,
їх створення та ведення із застосуванням засобів сучасних СКБД.
ББК 32.973.26-018.2
Розповсюджувати та тиражувати
без офіційного дозволу КНЕУ забороняється
© Н. В. Ситник, 2004
ISBN 966-574-625-1 © КНЕУ, 2004
Навчальне видання
ПРОЕКТУВАННЯ БАЗ
І СХОВИЩ ДАНИХ
Навчальний посібник
Редактор Т. Зарембо
Художник обкладинки Т. Зябліцева
Технічний редактор Т. Піхота
Коректор В. Білаш
Верстка І. Андрієнко
3
шість сучасних СКБД, що представлені сьогодні на ринку про-
грамних засобів, підтримують саме реляційні моделі.
У п’ятому розділі розглянуто використання сучасних CASE-
технологій для автоматизації проектування баз даних. Тут по-
дано класифікацію CASE-засобів, основні методології інформа-
ційного моделювання і розглянуто автоматизацію проектування
баз даних у середовищі S-Designor та ERwin.
Шостий розділ висвітлює питання створення і ведення баз да-
них у середовищі реляційної СКБД Microsoft Access. Цей розділ
не може претендувати на повноту охоплення всіх питань,
пов’язаних з функціонуванням вказаної СКБД, і відповідно не
може замінити довідкову літературу, присвячену розгляду цієї
системи. В ньому розглянуто лише питання створення та ведення
баз даних, а також деякі особливості адміністрування роботи з
базами даних, які зумовлені специфікою та особливостями СКБД.
У сьомому розділі викладено характеристику мови SQL: наве-
дено загальну характеристику мови запитів реляційних СКБД, її
порівняльну характеристику з мовою Jet SQL та визначені основні
групи операторів. По кожній групі операторів мови Jet SQL наве-
дено синтаксиси операторів та описано їх практичне застосування.
Важливі питання створення розподілених баз даних розгляну-
то у восьмому розділі. Тут розкрито основні стратегії розподі-
лення даних та відмінності технології функціонування розподі-
лених систем. Викладено особливості процесу управління
одночасним доступом до даних у розподіленій базі даних і суть
механізму підтримки трансакцій розподілених СКБД.
Зміст дев’ятого розділу розкриває суть концепції сховищ да-
них і передумови їх створень, розглянуто основні характеристи-
ки сховищ даних, викладено характеристику основних компо-
нент і висвітлено види архітектур побудови сховища даних.
Десятий розділ присвячений моделям сховищ даних та особ-
ливостям їх проектування. Розглянуто основні моделі побудови
сховищ даних та методику вимірного їх моделювання.
В одинадцятому розділі проаналізовані питання практичного
застосування сховищ даних у сучасних інформаційних системах.
Зокрема, коротко викладено основи використання сховищ в
OLAP-системах і технологіях Data Mining.
Пропонований навчальний посібник є основним при вивченні
курсу «Проектування баз і сховищ даних», який має сформувати
у студентів фундаментальні теоретичні знання та практичні на-
вички з проектування баз даних, їх створення та ведення з вико-
ристанням засобів сучасних СКБД.
4
1 Pоздiл
ВВЕДЕННЯ В ПОНЯТТЯ «БАНКИ ДАНИХ».
ОСНОВНI ПОНЯТТЯ
5
дить до значного збiльшення вартостi супроводження програм-
них засобiв. Зазначимо, що інколи вартiсть супроводження про-
грамних засобiв може досягати близько 70 % вартостi їх розро-
бки.
Розвиток засобiв обчислювальної технiки, створення за-
пам’ятовуючих пристроїв прямого доступу забезпечили перед-
умови для розв’язання проблем незалежностi, неузгодженостi
й надлишковостi даних, а також сприяли виникненню нової
концепцiї органiзацiї iнформацiйного забезпечення — кон-
цепцiї iнтеграцiї даних, яка дістала назву «автоматизований
банк даних» (АБД). Головні переваги органiзацiї IЗ у виглядi
АБД такі:
1. Багаторазовiсть використання даних: однi й тi самі данi
можуть використовуватися для розв’язання рiзних задач.
2. Економiя витрат на створення i ведення: для органiзацiї IЗ
у виглядi АБД потрібні менші кошти, а внесення змін до бази да-
них (БД) супроводжується меншими витратами, оскільки змiни
на фiзичному рiвнi не завжди потребують внесення змiн у при-
кладнi програми.
3. Зменшення надлишковостi даних. Розв’язування нових за-
дач забезпечується здебільшого за рахунок iснуючих файлiв в
АБД, а не шляхом створення нових. Дублювання даних, яке спо-
стерігається в АБД, потрiбне лише для забезпечення оператив-
ностi пошуку даних й органiзацiї зв’язку мiж файлами БД. Таке
дублювання не є зайвим, а називається ненадлишковим дублю-
ванням.
4. Швидкiсть обробки непередбачених запитiв до системи.
Для обробки таких запитiв здебільшого не потрібно створюва-
ти нову програму мовами програмування, оскiльки цi процеду-
ри можна виконати за допомогою спецiальних мовних засобiв
(мови запитiв i мови генерацiї звiтiв), якi входять до складу
АБД.
5. Простота i зручнiсть внесення змiн до бази даних. Це дося-
гається за рахунок єдиної системи ведення БД, яка пiдтримується
засобами СКБД.
6. Логiчна i фiзична незалежності даних вiд прикладних про-
грам. Концепцiя автоматизованого банку даних побудована на
iнтеграцiї даних, які зберiгаютья окремо вiд прикладних про-
грам. Тому немає потреби повнiстю описувати логiчну та
фiзичну структури файлiв, якi оброблюються в прикладнiй
програмi.
6
1.2. Поняття банку даних та його структура
Користувач,
прикладна СКБД База даних
програма
9
Робота з СД спрощує процес пiдготовки документацiї про-
грамiстами, забезпечує користувачiв iнформацiєю про наявнi в
системi данi, дозволяє контролювати вiдповiднiсть у назвах і фор-
матах даних та їх кодах.
Усi питання, пов’язанi з веденням СД, ми розглядатимемо в кон-
текстi СКБД i автоматизованої форми її ведення. Але, на жаль, не в
усiх СКБД є цей засiб. В такому разi потрiбно вести СД вручну чи за-
писувати вiдповiднi програми ведення такого словника. Пакет про-
грам ведення СД може iнтегруватися з СКБД чи бути незалежним.
Як приклад СКБД, що має в своєму арсеналi такий засiб, як
словник даних, є розподiлена СКБД Oracle. Словник Oracle — це
один з найважливіших компонентів, який вміщує: iмена користу-
вачiв; права та привiлеї, якi їм надаються; iмена об’єктiв БД (таб-
лиць та їх подання, iндексiв, синонiмiв тощо); перелiк обмежень
на таблицi; журнальну iнформацiю, наприклад вiдомостi про до-
ступ до таблиць і внесення в них змiн.
Iнформацiя словника Oracle розподілена за категорiями: для
кiнцевого користувача, проектувальника та адмiнiстратора. Слов-
ник вiдображає та зберiгає поточний стан бази даних; усi змiни в
структурах БД записуються в словник безпосередньо пiсля вико-
нання процедур щодо їх змiни. Словником даних користуються всi
користувачi в обсязi, який дозволяють їхні привiлеї.
10
дає змогу виконувати операції вставки, вилучення та онов-
лення інформації з бази даних. Ці операції виконуються засобами
мови управління даними (DML — Data Manipulation Lanquaqe);
дозволяє виконувати операції пошуку і вибірки даних з бази
даних та їх відображення в результатних наборах даних. Ці операції
виконуються засобами мови даних (Data Query Language — DQL);
надає контрольований доступ до бази даних за допомогою:
— системи забезпечення безпеки та запобігання несанкціоно-
ваного доступу;
— системи підтримки цілісності та узгодженості даних;
— системи управління паралельною роботою додатків, яка
контролює процеси одночасного доступу до БД;
— системи відновлення, що дозволяє відновити БД при апарат-
них збоях чи помилках у програмному забезпеченні.
СКБД є основою програмних засобiв АБД. У нiй можна виок-
ремити ядро СКБД, яке забезпечує органiзацiю введення, оброб-
ки та зберігання даних, а також компоненти, що відповідають за
налагодження системи, засоби тестування, утилiти, якi забезпе-
чують виконання допомiжних функцiй (наприклад, ведення жур-
налу статистики роботи системи та iн.). Дуже важливою задачею
СКБД є забезпечення незалежностi даних. Практично одна й та
сама СКБД може бути застосована для ведення абсолютно рiзних
файлiв, якi використовуються для розв’язання рiзнопланових, не
пов’язаних мiж собою задач управлiння.
Передача / повернення
файлів БД
База даних
Файл-сервер
Рис. 1.2. Архітектура технології «файл-сервер»
Таким чином, основними недоліками технології «файл-сервер»
є такі:
при збільшенні кількості робочих станцій збільшується на-
вантаження на мережу, що призводить до зростання мережевого
трафіку;
12
кожна робоча станція повинна зберігати повну версію
СКБД;
адміністрування базою даних, тобто забезпечення цілісності,
відновлення даних, управління паралельністю доступу до одних і
тих самих файлів різних користувачів, значно ускладнюється при
збільшенні кількості робочих станцій.
Технологія «клієнт-сервер» з використанням сервера БД пока-
зана на рис. 1.3. При такій архітектурі на клієнтському робочому
місці користувачем чи додатками формуються мовою SQL чи
іншою мовою запити до сервера. Сервер обробляє запити, що на-
дійшли, тобто виконує пошук необхідних даних та передачу їх
клієнту. При виконанні запитів на сервері перевіряються повно-
важення клієнтів, забезпечується підтримка цілісності й узгодже-
ності даних, а також управління паралельністю доступу та відно-
вленням даних.
Клієнт 2
Клієнт 1 Клієнт 3
Локальна
мережа
Запити-вибірки Результати
(SQL-запити) вибірки з
файлів БД
База даних
Сервер
БД
13
підвищення рівня суперечності даних за рахунок того, що
підтримка цілісності виконується централізовано на сервері;
зменшення комунікаційних витрат. На клієнтських робо-
чих місцях виконується переважна більшість операцій обробки
даних. Через мережу посилаються лише запити до бази даних,
що дозволяє значно знизити обсяги даних, що передаються по
мережі.
Наведена на рис. 1.3 архітектура є дворівневим «клієнт-
сервером». Ця архітектура при ускладненні прикладного програм-
ного забезпечення та збільшенні його обсягів призводить іноді до
виникнення проблеми «товстого» клієнта, яка полягає в тому, що
для ефективної роботи клієнта потрібні значні машинні ресурси,
великий дисковий простір, оперативна пам’ять та потужний про-
цесор.
Для вирішення проблеми «товстого» клієнта в 1995 р. була за-
пропонована трирівнева архітектура клієнт-сервера. За цієї архі-
тектури між сервером і клієнтом з’явився проміжний рівень, який
називається сервером прикладного програмного забезпечення, на
якому зосереджено прикладне програмне забезпечення. Архітек-
тура трирівневого клієнт-сервера показана на рис. 1.4.
Перший рівень Функції
Клієнт Інтерфейс користувача
База даних
14
Рис. 1.4. Архітектура трирівневого «клієнт-сервер»
Трирівнева архітектура клієнт-сервера має такі переваги:
вирішена проблема «товстого» клієнта, тобто для обладнан-
ня клієнтського робочого місця не потрібні надто дорогі та потуж-
ні ПЕОМ;
централізація зберігання прикладного програмного забезпе-
чення дозволяє виконувати його централізований супровід, що
спрощує проблему його модифікації;
вирішена проблема функціонального взаємозв’язку між мо-
дулями прикладного програмного забезпечення.
Трирівнева архітектура «клієнт-сервера» може бути розщепле-
на до n-рівневої архітектури. Наприклад, проміжний рівень мож-
на представити двома рівнями, один з яких виконує роль WEB-
сервери, а другий — типові сервери ППЗ.
15
правило, можуть працювати в неоднорідному обчислювальному
середовищі (з різними типами ЕОМ та операційними системами).
Прикладом багатокористувацьких СКБД, які найпоширеніші на
вітчизняному ринку програмних засобів, є такі системи: Oracle,
Informix, Microsoft SQL Server, Sybase, DB2.
Реляційні СКБД найпопулярніші на сьогодні. Вони широко
представлені на ринку програмних засобів і найчастіше викорис-
товуються на практиці. Проте, незважаючи на привабливість і
широке застосування, реляційні СКБД мають ряд обмежень. Во-
ни ідеально підходять для вирішення економічних задач, що ма-
ють в основі дані, які можна без проблем представити у вигляді
нормалізованих таблиць. У принципі плоскі нормалізовані реля-
ційні відношення універсальні і теоретично підходять для пред-
ставлення даних будь-якої предметної області. Але для складних
предметних областей, дані яких необхідно представляти в сотнях,
а іноді й тисячах таблиць, виникає проблема їх об’єднання. Крім
того, суттєвим недоліком реляційних БД є атомарність атрибутів
таблиці, що не дає можливості представлення якихось агрегатів та
складових даних. Тому для усунення недоліків реляційних СКБД
запропонована ідея створення об’єктно орієнтованих систем.
Об’єктно орієнтовані бази даних (ООБД) — це системи тре-
тього покоління. Теорія об’єктно орієнтованих СКБД — віднос-
но нова теорія (перші публікації з’явились у середині 80-х років),
і поки що немає такої математичної основи, як реляційні чи ієрар-
хічні моделі. Інформаційні об’єкти, що зберігаються в ООБД, на-
лежать до певних класів, а зв’язки між класами встановлюються
за допомогою властивостей і методів класу. Основні властивості
об’єктно орієнтованих БД такі:
1. Абстракція. Кожен об’єкт, що зберігається в БД, є членом
якогось класу. Клас визначається як сукупність властивостей, мето-
дів, структур даних, а також програм, що застосовуються до
об’єктів (екземплярів) даного класу. Методи — це процедури, що
залучаються для виконання певних дій з об’єктом. Властивості —
це значення даних, пов’язаних з кожним об’єктом класу, які харак-
теризують його тим чи іншим чином (наприклад, розмір, собівар-
тість).
2. Інкапсуляція. Внутрішнє представлення даних та особли-
востей реалізації загальнодоступних і окремих методів (програм),
що є частиною певного класу і відомо лише всередині цього кла-
су. Доступ до об’єктів класу дозволяється лише через властивості
і методи цього класу або його батьків, а не шляхом використання
подробиць внутрішньої реалізації.
16
3. Успадкування (одиночне чи множинне). Клас визнача-
ється як частина ієрархії класів. Кожен клас більш низького рівня
успадковує властивості та методи вищого за рівнем ієрархії класу
(батька), крім випадків, коли батьківські властивості оголошу-
ються неуспадковуючими чи змінені новим визначенням. Одино-
чне успадкування — це успадкування від одного батьківського
класу, тобто класова ієрархія має деревоподібну структуру. При
множинному успадкуванні клас може успадковувати властивості
та методи від багатьох батьківських класів, тобто ієрархія класів
має структуру нециклічного графа.
4. Поліморфізм. Декілька класів можуть мати імена методів і
властивостей, що збігаються, навіть якщо вони вважаються різ-
ними. Це дозволяє створювати методи доступу, які будуть прави-
льно працювати з об’єктами різних класів, якщо відповідні мето-
ди і властивості цих класів були визначеними.
5. Повідомлення. Взаємодія з об’єктами виконується шляхом
посилання повідомлень з можливістю отримання відповіді.
Модель ООБД перебуває на більш високому рівні абстракції,
ніж реляційні чи мережеві БД. Тому в центрі проектування зна-
ходяться не структури даних, а процедури (методи).
Зараз проводяться експериментальні і виробничі дослідження
в сфері розробки та впровадження об’єктно орієнтованих СКБД.
Переважаюча більшість робіт носить поки що дослідницький ха-
рактер. Проте уже існують комерційні версії об’єктно орієнтова-
них систем, прикладами яких можуть бути такі: О2 (французький
консорціум Aktair), ORION (американська компанія МСС), GemStone
(американська фірма Servio Logic), Iris (Hewlett-Packard).
17
Мовні засоби АБД
18
Мова DDL — це мова описового характеру, яка дозволяє опи-
сати сутності, що зберігаються в БД, та зв’язки між ними. Ре-
зультатом компіляції DDL є набір таблиць, де зберігаються фай-
ли; він має назву системного каталогу. У ньому інтегровані
метадані, тобто дані, що описують об’єкти БД, а також спрощу-
ють спосіб доступу до них і управління ними.
Мова DDL призначена для опису даних на рiзних рiвнях абст-
ракцiї: зовнiшньому, логiчному i внутрiшньому. Виходячи з про-
позицiй CODASYL, мови опису даних на логiчному (концептуаль-
ному) i внутрiшньому рiвнях незалежнi й рiзнi. Однак бiльшість
промислових СКБД не поділяють мови на двi окремi — опису
логiчної та фiзичної органiзацiї даних, а iснує єдина мова, яка ще
називається мовою опису схем. Так, у більшості вiдомих i широ-
ко застосовуваних на практицi реляційних СКБД вживається
єдина мова опису даних для подання їх на логiчному й
фiзичному рiвнях. Ця мова має свiй синтаксис: наприклад, iм’я
файла не повинно перевищувати восьми символiв, а iм’я поля
— десяти; при цьому кожне iм’я має починатися з букви, поля
календарної дати позначаються символом D (DATA), символьнi
поля — С (CHARAСTER), числовi — N (NUMERIС), логiчнi — L
(LOGICAL), примiток — M (MEMO).
Опис усiх iмен, типiв i розмiрiв полiв зберiгається в пам’ятi
разом з даними; цi структури в разі потреби можна переглянути і
виправити.
Якщо логiчний i фiзичний рiвнi відокремленi, то до складу СКБД
має входити мова опису зберігання даних. У деяких СКБД, які
належали до першого покоління, використовується ще мова
опису пiдсхем (МОД — ПС), яка потрiбна для опису частини
БД, що вiдображає iнформацiйнi потреби окремого користува-
ча чи прикладної програми. Теоретично для кожного рівня
представлення даних можна було б виокремити кілька різних
підмножин мови DDL, а саме мову зовнішніх схем, мову концеп-
туальної схеми і мову внутрішньої схеми. Але на практиці існує
єдина мова DDL, яка дозволяє задавати специфікації як мінімум
зовнішньої і концептуальної схем.
Мова DML — це мова, оператори якої виконують основні
операції маніпулювання та управління даними БД. До цих опера-
цій належать такі: вставка в БД нових даних, модифікація да-
них БД, вилучення даних з БД.
Мова ведення діалогу — це мовні засоби, за допомогою
яких реалізовано інтерфейс системи з кінцевим користувачем.
19
Для переважної більшості сучасних СКБД — це підмножина
природної мови.
Мова DQL — це мова запитів до бази даних, яка дозволяє ви-
конувати вибірки необхідних даних.
Мови DML і DQL можуть бути процедурними і непроцедурними.
Процедурна мова дозволяє повідомити системі, які дані необ-
хідні, і точно вказати, як їх необхідно отримати. Для ієрархічних
і мережевих СКБД властивіша процедурна мова, для викорис-
тання якої користувачу потрібен посередник-програміст.
Непроцедурна мова дає змогу вказувати системі лише які дані
потрібні, незнаючи, як їх необхідно отримувати. Непроцедурна
мова називається ще декларативною мовою. Реляційні СКБД
містять непроцедурні мови. Найчастіше це мова структурова-
них запитів SQL або мова запитів за зразком QBE. Непроцеду-
рна мова менш складна з погляду її опанування, тому користу-
вач при відповідній підготовці може сам працювати з опера-
торами цієї мови без допомоги програміста.
Мова може бути базовою чи автономною. В деяких СКБД
передбачено можливість вмонтування операторів підмови в про-
грами, написані на таких мовах програмування високого рівня, як
COBОL, Fortran, Pascal, Ada, C. У такому разі мова високого рів-
ня називається базовою мовою (host language).
Системи, що вживають базову мову, називають вiдкритими.
Використання базових мов звужує коло осiб, котрі можуть без-
посередньо звертатися до БД, оскільки для цього потрiбно знати
мову програмування. У таких випадках для спрощення
спiлкування кiнцевих користувачiв з БД передбачається мова
ведення дiалогу, яка значно простіша для опанування, ніж мова
програмування.
Автономна — це власна мова СКБД, яка дає змогу викону-
вати рiзнi операцiї з даними. Системи з власною мовою нази-
вають закритими.
У сучасних СКБД для спрощення процедур пошуку даних у
БД передбачено мову запитiв. Найпоширенішими мовами запитiв
є SQL і QBE.
Мова запитiв SQL (Structured English Query Language —
структуpована англiйська мова запитiв) була створена фiрмою
IBM у рамках роботи над проектом побудови системи
управлiння реляцiйними базами даних на початку 70-х рокiв.
Американський нацiональний iнститут стандартiв (ANSI) по-
клав цю мову в основу стандарту мов реляцiйних баз даних,
прийнятого Мiжнародною органiзацiєю стандартiв (ISO). Яд-
20
ром iснуючого стандарту SQL-86, який часто називають SQL-2
чи SQL-92, є функцiї, реалiзованi практично в усiх вiдомих
комерцiйних реалiзацiях мови, а повний стандарт вміщує такi
вдосконалення, якi деякі розробники муситимуть ще ре-
алiзувати.
Крiм стандарту SQL-86, iснує комерцiйний стандарт мови
SQL, розроблений консорцiумом виробникiв баз даних SQL
Access Group. Ця група створила такий варiант мови, який вико-
ристовується бiльшiстю систем i дає змогу їм «розумiти» одна
одну. Було розроблено стандартний iнтерфейс мови CLI (Common
Language Interface) для всiх основних варiантiв мови SQL. Цей
інтерфейс, формалізований фiрмою Microsoft, дістав назву ODBC
(Open Database Connectiviti — вiдкритий доступ до даних).
ODBC — це iнтерфейс доступу до даних, якi зберiгаються, під
управлiнням рiзних СКБД. ODBC має цiлий набір драйверiв, за
допомогою яких одна СКБД може працювати з даними iнших си-
стем.
Мова запитiв QBE (Query By Example) — це графічна мова
реалiзацiї запитiв за зразком у виглядi таблиць. Для визначен-
ня запиту до БД користувач повинен заповнити надану систе-
мою таблицю QBE і визначити в нiй критерiї пошуку та вибору
даних.
21
Друга група персоналу, що взаємодiє з АБД, — це адмiнiстрацiя
бази даних. Залежно вiд обсягу бази даних, специфiки та особливос-
тей СКБД служба адмiнiстрацiї може відрізнятись як за чисельністю
складу, так i за рiвнем фахової підготовки. Чисельнiсть групи
адмiнiстрацiї й тi функцiї, що їх вона виконує, залежать вiд масшта-
бу бази даних, специфiки iнформацiї, яка в ній зберiгається, типу
СКБД та особливостей програмних засобiв. Як правило, для вели-
ких розподiлених баз даних створюється спецiальна адмiнiстрацiя.
До складу групи адмiнiстрування можуть входити системнi
аналiтики, проектувальники структур даних i зовнiшнього щодо
банку iнформацiйного забезпечення, проектувальники техно-
логiчних процесiв обробки даних, системнi та прикладнi про-
грамiсти, оператори, спецiалiсти з технiчного обслуговування. У
комерцiйних базах даних до адмiнiстративної групи обов’язково
мають входити спецiалiсти з маркетингу.
Адмiнiстратор — це спецiалiст, який має цілковите уявлен-
ня про iнформацiйнi потреби користувачiв, співпрацює з
ними в тісному контактi й вiдповiдає за завантаження, ве-
дення та пiдтримування БД в актуальному станi, а також за
захист та ефективнiсть функцiонування системи.
22
як можна включити цi данi до баз даних i управляє процесом
внесення змiн.
На етапi експлуатацiї до обов’язків адмiнiстратора входять роз-
робка i контроль дiй, якi гарантують збереження цiлісностi бази
даних, включаючи процедури її копiювання та вiдтворення, а та-
кож визначення засобiв захисту iнформацiї за допомогою ме-
ханiзму управлiння доступом до ресурсiв БД.
Окрiм того, адмiнiстратор увесь час спiлкується з користувача-
ми бази даних, тому вiн визначає стандарти на змiст і використан-
ня даних, супроводжує спецiальне програмне забезпечення роботи
з базою даних (словники даних, статистику роботи з БД тощо),
проводить консультації та здійснює ведення БД.
Адмiнiстратор взаємодiє також із системними програмiстами,
вирiшуючи питання технологiї й доведення її до вiдповiдних екс-
плуатацiйних характеристик, спiлкується i спiвпрацює із систем-
ними програмiстами в разі змiни версiй системи чи операцiйного
середовища.
При супроводженні баз даних, особливо розподiлених,
адмiнiстраторові часто доводиться спiвпрацювати із
спiвробiтниками, котрі вiдповiдають за експлуатацiю технiчних за-
собiв АБД. Така спiвпраця пов’язана з необхiднiстю виявлення при-
чин збоїв обладнання, якi призводять до руйнування баз даних, і
розробки заходiв запобiгання цього в ході подальшої експлуатацiї
системи.
У звiтах ANSI/X3/SPARC видiляється також адмiнiстратор
предметної областi, який вiдповiдає за синтез опису предметної
областi, вiдображеної в базi даних.
23
Проектування баз даних — це iтерацiйний, багатоетапний
процес прийняття аргументованих рiшень у процесi аналiзу
iнформацiйної моделi предметної областi, вимог до даних з
боку прикладних програмістів і користувачiв, синтезу
логiчних і фiзичних структур даних, аналiзу та обґрунтуван-
ня вибору програмних й апаратних засобiв.
Етапнiсть проектування даних пов’язана з багаторiвневою ор-
ганiзацiєю даних. Розглядаючи питання проектування баз даних,
ми дотримуватимося багаторiвневого подання даних:
зовнiшнього, iнфологiчного, логiчного (даталогiчного),
внутрiшнього.
Таке подання рiвнів даних не одне. Є iншi варiанти бага-
торiвневого подання даних. Так, згiдно з пропозицiями до-
слiдницької групи по системах управлiння даними Американсь-
кого нацiонального iнституту стандартiв ANSI/X3/SPARC, а
також CODASYL (Conference on Data Systems Languages), як пра-
вило, виокремлюються три рiвнi подання даних: зовнiшнiй (з по-
гляду кiнцевого користувача i прикладного програмiста), концеп-
туальний (з погляду СКБД), внутрiшнiй (з погляду системного
програмiста). Згiдно з цiєю концепцiєю зовнiшнiй рiвень є частина
(пiдмножина) концептуальної моделi, необхiдна для реалiзацiї яко-
гось запиту чи прикладної програми. Тобто, якщо концептуальна
модель виступає як схема, пiдтримувана конкретною СКБД, то
зовнiшнiй рiвень — це деяка сукупнiсть пiдсхем, необхiдних для
реалiзацiї конкретної прикладної програми чи запиту користувача.
Проте iснує також iнша точка зору, згiдно з якою пiд
зовнiшнiм рiвнем розумiють бiльш загальні поняття, пов’язанi з
вивченням та аналiзом iнформацiйних потокiв предметної об-
ластi та їх структуризацiєю. Деякi автори вводять допомiжний
рiвень (промiжний мiж зовнiшнiм і даталогiчним), який називаєть-
ся iнфологiчним [4, 16]. Вiн може виступати як самостiйний або
бути складовою зовнiшнього рiвня. Така концепцiя доцiльнiша з
погляду розумiння процесу проектування БД. Тому розглядати-
мемо iнфологiчний рiвень як самостiйний рiвень подання даних.
Зовнiшнiй рiвень у такому разі виступає як окремий етап проек-
тування, на якому вивчається все позамашинне iнформацiйне за-
безпечення, тобто форми документування та подання даних, а та-
кож зовнiшнє середовище, в якому функцiонуватиме банк даних
з погляду методiв фiксацiї, збирання та передачі iнформацiї в ба-
зу даних.
При проектуванні БД на зовнiшньому рiвнi необхiдно вивчити
функцiонування об’єкта управлiння, для якого проектується БД,
24
усю первинну та вихiдну документацiю з погляду визначення то-
го, якi саме данi необхiдно зберiгати в базi даних. Зовнiшнiй
рiвень є, як правило, словесним описом вхiдних і вихiдних
повiдомлень, а також даних, якi доцiльно зберiгати в БД. Опис
зовнiшнього рiвня не виключає наявностi елементiв дублювання,
надлишковостi та неузгодженостi даних. Тому для усунення цих
аномалiй і суперечностей зовнiшнього опису даних виконується
iнфологiчне проектування. Iнфологiчна модель є засобом струк-
туризацiї предметної областi і розумiння концепцiї семантики
даних. Цю модель можна розглядати в основному як засiб доку-
ментування та структурованої форми подання iнформацiйних по-
треб, що забезпечує несуперечливе спiлкування користувачiв і
розробникiв системи.
Усi зовнiшнi подання інтегруються на iнфологiчному рiвнi, де
формується iнфологiчна (канонiчна) модель даних, яка не є прос-
тою сумою зовнiшнiх подавань даних.
Iнфологiчний рiвень являє собою iнформацiйно-логiчну мо-
дель (IЛМ) предметної областi, в якiй виключено надлишковiсть
даних i вiдображено iнформацiйнi особливостi об’єкта
управлiння без урахування особливостей i специфiки конкретної
СКБД. Тобто інфологічне подання даних орiєнтоване переважно
на людину, яка проектує чи використовує базу даних.
Логiчний (концептуальний) рiвень побудований з урахуван-
ням специфiки та особливостей конкретної СКБД. Цей рiвень
подання даних орiєнтований бiльше на комп’ютерну обробку i
програмiстiв, якi займаються її розробкою. На цьому рiвнi фор-
мується концептуальна модель даних, тобто спецiальним спосо-
бом структурована модель ПЗ, яка вiдповiдає особливостям та
обмеженням вибраної СКБД. Модель логiчного рiвня,
пiдтримувану засобами конкретної СКБД, називають ще дата-
логiчною.
Iнфологiчна та даталогiчна моделi, якi вiдображають модель
однiєї предметної областi, залежнi мiж собою. Iнфологiчна мо-
дель має легко трансформуватися у даталогiчну модель.
Внутрiшнiй рiвень пов’язаний з фiзичним розмiщенням даних
у пам’ятi ЕОМ. На цьому рiвнi формується фiзична модель БД,
яка вмiщує структури зберiгання даних у пам’ятi ЕОМ, включа-
ючи опис форматiв записiв, порядок їх логiчного або фiзичного
впорядкування, розмiщення за типами пристроїв, а також харак-
теристики i шляхи доступу до даних.
Вiд параметрiв фiзичної моделi залежать такі характеристи-
ки функцiонування БД: обсяг пам’ятi та час реакцiї системи.
25
Фізичнi параметри БД можна змiнювати в процесi її експлуа-
тац iї з метою пiдвищення ефективностi функцiонування сис-
теми. Змiна фiзичних параметрiв не зумовлює необхiдностi
змiни iнфологiчної та даталогiчної моделей.
Зовнішній рівень
даних
Інфологічний рівень
даних
Даталогічний
рівень даних
Вимоги та обмеження
вибраної СКБД
Внутрішній рівень
даних
Словник даних
27
2 Pоздiл
ІНФОЛОГІЧНЕ ПРОЕКТУВАННЯ БАЗ ДАНИХ
27
Перевагами пiдходу «вiд предметної областi» є
об’єктивнiсть, системнiсть при вiдображеннi ПО i стiйкiсть
iнформацiйної моделi, можливiсть реалiзації великої кiлькості
прикладних програм i запитiв, у тому числi незапланованих при
створеннi БД. Недолiком цього пiдходу є значний обсяг робiт,
що його потрібно виконати при визначеннi iнформацiї, яка
пiдлягає фiксацiї в БД, що вiдповiдно ускладнює i збiльшує
термiн розробки проекту.
Функцiональний пiдхiд орiєнтований на реалiзацiю поточних
вимог користувачiв i прикладних програм без урахування перс-
пектив розвитку системи. При його використаннi можуть виник-
нути складнощi в агрегацiї вимог рiзних користувачiв i приклад-
них програм. Проте за такого пiдходу значно зменшується
трудомiсткість проектування, а отже, є можливiсть створити сис-
тему з високими експлуатацiйними характеристиками.
Однак узятий окремо кожний з цих методiв не може дати до-
статньо iнформацiї для проектування рацiональної структури БД.
Тому при проектуваннi БД доцiльно спiльно використовувати ці
два пiдходи.
Детально методи проектування позамашинного
iнформацiйного забезпечення вивчаються в курсi «Основи ство-
рення iнформацiйних систем». Якщо схематично представити
процес проектування БД на зовнiшньому рiвнi, то вiн складається
з таких робiт.
1. Визначення функцiональних задач ПО, що пiдлягають ав-
томатизованому розв’язанню. Оскiльки основною метою ство-
рення БД є забезпечення iнформацiєю функцiй обробки даних, то
насамперед необхiдно вивчити всi функцiї предметної областi
(об’єкта управлiння), для якої розробляється база даних, і про-
аналiзувати їх особливостi. Функцiї та функцiональні особливості
об’єкта управлiння необхiдно вивчати у нерозривному зв’язку з
вивченням функцiональних вимог до даних з боку майбутнiх ко-
ристувачiв iнформацiйної системи. Вивчення та аналiз передба-
чають виявлення iнформацiйних потреб і визначення
iнформацiйних потокiв. Ці роботи можна виконувати обстежен-
ням предметної областi та анкетуванням її спiвробiтникiв. Ре-
зультатом такого вивчення має бути перелiк функцiональних
задач, якi повиннi розв’язуватись автоматизованим способом з
використанням АБД.
2. Вивчення та аналiз оперативних первинних документiв.
З’ясувавши функцiї та визначивши перелiк функцiональних за-
дач, що пiдлягають автоматизованому розв’язанню, переходять
28
до вивчення оперативних документiв, якi використовуються на
входi кожної задачi чи їх комплексу. Проаналiзувавши всi опера-
тивні документи (як зовнiшнi, так i внутрiшнi), що використову-
ються на входi кожної задачi, визначають, якi реквiзити цих до-
кументiв потрiбно зберiгати в БД.
3. Вивчення нормативно-довiдкових документiв. На третьому
кроцi вивчають та аналiзують з цiєю самою метою всю норматив-
но-довiдкову документацiю. До такої документацiї належать рiзнi
класифiкатори, кошториси, договори, нормативи, законодавчi акти
з податкової полiтики, планова документацiя тощо. Розподiл i
окремий аналiз оперативної та нормативно-довiдкової iнформацiї
зумовлені технологiчно. В базi даних рiзняться технологiї створення
i ведення файлiв умовно постiйної iнформацiї, розміщеної в нор-
мативно-довiдковiй документацiї, i файлiв оперативної iнформацiї.
4. Вивчення процесiв перетворення вхiдних повiдомлень на
вихiднi. Передусiм вивчаються всi вихiднi повiдомлення, якi ви-
даються на друк чи на екран і зберiгаються у виглядi вихiдних
масивiв на магнітних дисках (МД). Це необхiдно для того, щоб
визначити, якi з атрибутiв вхiдних повiдомлень потрiбно
зберiгати в БД для отримання вихiдних повiдомлень. Крiм того,
на цьому етапi визначаються тi показники, що їх отримують пiд
час розв’язання задачi в результатi виконання певних обчислень.
За кожним розрахунковим показником слiд визначити алгоритм
його формування та переконатися в тому, що цей показник мож-
на отримати на основi атрибутiв оперативної і нормативно-
довiдкової iнформацiї, якi були визначенi на другому та третьому
кроках. Якщо не вистачає для повного виконання розрахункiв пе-
вних даних, необхiдно повернутися назад, провести дообстежен-
ня i визначитися, де або в який спосіб можна отримати атрибути,
яких не вистачає.
Крiм того, потрібно визначитися, якi з розрахункових показ-
никiв доцiльно зберiгати в БД. Показники, отримані розрахунко-
вим шляхом, як правило, у БД не зберiгаються. Винятком є випад-
ки, коли розрахунковий показник потрiбно використовувати для
розв’язання інших задач чи даної задачi, але в наступнi кален-
дарнi перiоди.
При проведеннi проектних робiт на зовнiшньому рiвнi треба
враховувати те, що для виконання певних функцiй в БД нео-
бхiдно зберiгати додатковi данi, якi не вiдображені в документах
(данi календаря, статистичнi данi тощо).
Узагальнену схему процесу вивчення документiв і даних при
проектуваннi на зовнiшньому рiвнi зображено на рис. 2.1.
29
Документи оператив- Документи оператив- Документи норма-
ної інформації ної інформації тивно-довідкової
(внутрішні) (зовнішні) інформації
Процедури перетворення
вхідних повідомлень
на вихідні
Вихідні Вихідні
машинограми інформаційні Відеограми
масиви
32
атрибута А2 може вiдповiдати не бiльше ніж один екземпляр ат-
рибута А1. Наприклад, мiж атрибутами Т (цех : бригада) = 1 : Б.
Тип спiввiдношення «багато до одного» Т (А1 : А2) = (Б : 1)
iснує, коли одному значенню атрибута А1 вiдповiдає щонайбільше
одне значення атрибута А2, а будь-якому атрибуту А2 може від-
повідати багато значень атрибута А1. Якщо Т (А1 : А2) = Б:1,
тодi Т (А2 : А1) = 1 : Б.
Тип спiввiдношення «багато до багатьох» Т (А1 : А2) = Б : Б
означає, що будь-якому значенню А1 може вiдповiдати кiлька
значень А2 i водночас, навпаки, будь-якому значенню А2 може
вiдповiдати кiлька значень А1. Наприклад, Т (матерiал : постача-
льник) = Б : Б, тобто один i той самий матерiал може постачатися
рiзними постачальниками i, навпаки, один постачальник може
постачати рiзнi матерiали.
33
атрибутів замість групи потрібно залишати лише один атрибут
«обладнання».
Вилучення синонімії, омонімії та узагальнення атрибутів
Зовнішнє кодування
35
Отриманi об’єкти необхiдно iдентифiкувати унiкальними
iменами. Iменувати об’єкт краще одним словом i бажано, щоб це
був iменник, наприклад «ДЕТАЛЬ», «МАТЕРIАЛ»,
«ПОСТАЧАЛЬНИК». Але не завжди можна iдентифiкувати
об’єкт одним словом, тому iменами об’єктiв можуть бути також
словосполучення, якi складаються з дiєслова або iменникiв (на-
приклад, «НАДХОДЖЕННЯ МАТЕРIАЛУ», «ВИДАТОК МА-
ТЕРIАЛУ»).
3.Третім кроком iнфологiчного проектування є перевiрка
вiдповiдностi отриманих об’єктiв умовам нормалiзацiї. Але спо-
чатку для кожного iнформацiйного об’єкта потрібно визначити
первинні ключі. Первинний ключ — це атрибут або їх сукуп-
ність, що дають змогу однозначно ідентифікувати запис під час
його пошуку. Первинним ключем може бути атрибут, який не
дублюється i обов’язково присутнiй у кожному записі. Первинні
ключі мають інформаційні об’єкти, що містять умовно-постійну
інформацію.
Якщо процедуру агрегацiї об’єктiв виконано бездоганно, то
вони автоматично розміщуватимуться в 3НФ чи 4НФ. Але якщо
предметна область досить складна i велика, налiчує багато атри-
бутiв та iнформацiйних об’єктiв, то краще, аби переконатися, що
не припущено помилок на попередньому етапi, ще раз перевiрити
об’єкти на вiдповiднiсть умовам нормалiзацiї.
Теорiю нормалiзацiї викладено в розд. 4 пропонованого на-
вчального посібника.
4.Зовнiшнє кодування. На цьому етапі необхiдно вивчити ат-
рибути з неунiкальними значеннями. Якщо цi атрибути представ-
ленi досить довгими текстами, то необхiдно вирiшити питання
про доцільність замiни їх на короткi кодовi позначення. У цьому
разі в iнфологiчну модель вноситься новий iнформацiйний
об’єкт, який доречно назвати «ДОВIДНИК». Вiн буде складати-
меться з коду атрибута та його текстового значення. При цьому в
усiх ранiше виокремлених об’єктах текстовi значення
замiнюються на код.
5.Виявлення запитiв до БД i словесний їх опис. Для того щоб
описати запити, необхiдно дослiдити процеси обробки
iнформацiї по кожнiй функцiональнiй задачi модельованої пред-
метної областi. Цей аналiз та формалiзацiя процесу обробки
iнформацiї потрібні для визначення структурних зв’язкiв мiж
iнформацiйними об’єктами, тобто вже на етапi iнфологiчного
моделюванння БД проектувальник має чiтко уявляти алгоритм та
логiчну схему розв’язання кожної задачi.
36
Запити виявляють опитуванням користувачiв i з’ясуванням
iнформацiйних потреб прикладних програм. Запити описують
спочатку словесно, по можливостi чiтко видiляючи всi об’єкти,
якi використовуються при виконаннi запиту. Крім того, запит
потрібно описувати так, щоб можна було виявити послiдовнiсть
переходу вiд одного об’єкта до iншого при виконаннi запиту.
Зауваження. Під час формування словесного опису запиту не
! завжди є можливiсть описати його так, щоб у текстi були наведенi
всі iмена iнформацiйних об’єктiв, які беруть участь у його ре-
алiзацiї. У таких випадках опис запиту повинен вмiщувати клю-
човi слова, якi вказують на тi об’єкти, що їх семантично складно
було вiдобразити в текстi iнформацiйного запиту.
37
Запити бувають одновимірні і багатовимірні. Запит, в якого на
вході є один початковий об’єкт, називається одновимірним, в яко-
го на вході кілька початкових об’єктів, — є багатовимірним. На-
приклад, запит «Видати список студентiв певної ГРУПИ заданого
ФАКУЛЬТЕТУ, вказаного КУРСУ» є багатовимiрним, оскільки
йому вiдповiдає такий запитувальний зв’язок:
ФАКУЛЬТЕТ, КУРС
Z ГРУПА
38
Наприклад:
«Видати список РОБIТНИКIВ, зазначивши їхні паспортнi данi,
заданих ЦЕХУ, ДІЛЬНИЦІ, БРИГАДИ».
ЦЕХ, ДІЛЬНИЦЯ, БРИГАДА
Z РОБІТНИК
У цьому запитi спiввiдношення Т (ЦЕХ : ДІЛЬНИЦЯ) = 1 : Б,
тобто необхiдно виконати перетворення 1.
Подамо запит у вигляді запитувального зв’язку і виконаємо
перетворення 1.
ЦЕХ, ДІЛЬНИЦЯ, БРИГАДА ЦЕХ ДІЛЬНИЦЯ, БРИГАДА
Z РОБІТНИК
Z ДІЛЬНИЦЯ Z РОБІТНИК
39
Якщо послiдовнiсть одновимiрних запитувальних зв’язкiв
використовується не лише для вибору екземплярiв об’єкта Хn, а
в алгоритмi вiдповiдного процесу потрiбнi екземпляри об’єктiв
Х1, Х2, ...., Хn–1, то всi запитувальнi зв’язки потрібно залишати i
описати.
Перетворення 2. Нехай iснує багатовимiрний запитувальний
зв’язок, спiввiдношення мiж початковим і кінцевим об’єктами
якого Т (Х1, У) = Б : 1. Тоді потрiбно виконати таке перетворення:
X , X 2 ,..., X n
Z У1 Z xy1 Z xX12,...хn
40
Також змоделюємо алгоритм i проаналiзуємо лiву частину
спiввiдношення. Спочатку для заданого магазину з об’єкті «МА-
ГАЗИН» вибирають всі товари з об’єкта «ТОВАР», що є у мага-
зині. Потім, переглядаючи кожен товар з об’єкта «ТОВАРИ», ви-
бирають ті, на які є замовлення в об’єкті «ЗАМОВЛЕННЯ».
Такий аналiз алгоритму в реалiзацiї обох ланцюжкiв показує,
що для реалiзацiї другого ланцюжка потрiбно виконувати бiльші
вибірки i переглядати бiльшу кiлькiсть записiв, а отже, на це по-
трiбно буде витратити бiльше машинного часу. Тому перевагу
віддають правому ланцюжку, який залишають для наступного
аналiзу, а лiвий вiдкидають.
Зауваження. Описуючи запити запитувальними зв’язками, необ-
! хідно керуватися такими правилами. Спочатку потрібно кла-
сифiкувати запитувальнi зв’язки на двi групи:
а) запитувальнi зв’язки iнформацiйно-пошукового характеру (по-
шук, упорядкування, логiчнi порiвняння, видача довiдок);
б) запитувальнi зв’язки, для реалiзацiї яких необхiдно виконувати
розрахунки, пов’язані з обробкою кiлькох iнформацiйних масивiв.
Якщо запит має лише iнформацiйно-пошуковий характер, то його
описують згiдно з наведеною методикою у виглядi багато-
вимiрного запитувального зв’язку, перевiряють на вiдповiднiсть
канонiчностi i виконують вiдповiднi перетворення.
Другий тип запитiв досить складно описувати за розглянутими
правилами. Тому для другого типу запитiв необхiдно виконати
аналiз i серед об’єктiв, задiяних у запитi, виокремити головнi (про-
відні) та довiдковi.
Головними, або провідними, будуть тi об’єкти, з перегляду яких
починається реалiзацiя запиту і дані яких використовуються в пев-
них розрахунках. Довiдковими є об’єкти, iнформацiя яких викори-
стовується для довiдкових цiлей, наприклад для розшифрування
табельного номера працiвника вiдповiдним прiзвищем, iм’ям і по
батьковi при видачi на друк чи на екран вiдповiдного вихiдного
повiдомлення.
Для запитів, пов’язаних з розрахунками, практично неможливо
подати запитувальні зв’язки згідно з описаною методикою. Тому
при їх формалізованому описі необхідно моделювати алгоритм і
подавати запитувальний зв’язок одразу у вигляді ланцюжка за-
питувальних зв’язків. Розглянемо приклад: «Провести аналіз
розрахунків за відвантажену готову продукцію і виявити борж-
ників серед її споживачів». Головними, або провідними, в реалі-
зації цього запиту будуть об’єкти «відвантаження» та «розрахун-
ки». Порівнюючи екземпляри цих об’єктів, можна визначити, по
яких операціях відвантаження не було виконано відповідних роз-
рахунків. Об’єкти «продукція» та «споживачі» є довідковими і
використовуватимуться лише для розшифрування відповідних
кодів продукції та споживача при друкуванні результату запиту.
Тому формалізовано запитувальний зв’язок можна записати у та-
кому вигляді:
41
ВІДВАНТАЖЕННЯ ВІДВАНТАЖЕННЯ ВІДВАНТАЖЕННЯ
Z РОЗРАХУНКИ Z ПРОДУКТИ Z СПОЖИВАННЯ
Університет
Складається
Факультети Студенти
Складають
Кафедри Вивчають
Працюють
42
не змінюється. Тому не будемо зупинятись на детальному аналiзi
цих вiдмiнностей.
Розглянемо правила побудови структурних зв’язків.
Правило 1. Нехай в одновимірному запитувальному зв’язку
співвідношення Т (Х1, У) = 1 : Б, тодi початковий об’єкт Х1 ого-
лошується як власник структурного зв’язку, а кiнцевий У —
пiдпорядкованим об’єктом.
Ознака «Напрямок руху» набуває значення S1 = ВП (графiчно
це вiдображено на рис. 2.4). Подвоєна стрiлка вказує на те, що
екземплярiв пiдпорядкованого об’єкта може бути багато. За цим
самим правилом будують зв’язок при співвідношенні 1:1, проте в
цьому разі стрілка не подвоюється.
Х
S1
Рис. 2.4
Правило 2. Нехай в одновимiрному запитувальному зв’язку
спiввiдношення Т (Х1, У) = Б : 1, тодi кiнцевий об’єкт У оголошу-
ється власником структурного зв’язку, початковий Х1 — пiдпоряд-
кованим об’єктом, а ознака «Напрямок руху» набув значення S2
= ПВ (графiчно це показано на рис. 2.5).
Х
S2
Рис. 2.5
Правило 3. Нехай в одновимірному запитувальному зв’язку
співвідношення Т (Х1, У) = Б : Б, тодi Х1 i У оголошуються як
власники двох структурних зв’язків. Підпорядкованим об’єктом
оголошується новий об’єкт, який називається об’єктом-зв’язкою
(графічно це відображено на рис. 2.6).
У структурному зв’язку, де власником є об’єкт Х, напрямок
руху ВП, а в структурному зв’язку, де власником є кінцевий
об’єкт У, — напрямок руху ПВ. Для об’єкта-зв’язки клас членст-
ва в обох зв’язках обов’язковий.
43
У Х
S2 S1
OS
Рис. 2.6
Рис. 2.7
усi початковi й кiнцевi об’єкти оголошуються власниками
кiлькох структурних зв’язкiв;
підпорядкованим у всiх структурних зв’язках оголошується
новий об’єкт-зв’язка;
об’єкт-зв’язка оголошується обов’язковим у всiх структур-
них зв’язках;
для одного структурного зв’язку, де власник — початковий
об’єкт, напрямок руху позначається ВП, для всiх iнших — ПВ.
44
2.5. Перевірка повноти і коректності інфологічної
моделі
А А
S1 S1
В S3 В
S2 S2
С С
45
2. Нехай iнфологiчна модель складається з чотирьох об’єктів:
А, В, С і D, два з яких — С i D — є об’єктами-зв’язками (рис.
2.10). У такому разі між об’єктами А і В існує два маршрути і
порушується питання про надлишковість одного з них. Як і в
першому випадку, якщо хоча б один екземпляр об’єкта. А
зв’язаний з різними екземплярами об’єкта В за маршрутами S1,
S2 i S3, S4, то перетворення виконувати не можна.
A B
S1 S2
S3 C S4
Рис. 2.10
A B
S1 S2
CD
Рис. 2.11
46
А В
S1 S2
C
L1
Рис. 2.12
Об’єкти інфологічної моделі можна узагальнювати, виходячи
зі спорідненості їх структур, семантики та ролi в процесах об-
робки. Наприклад, облiк руху матерiальних цiнностей на складi
характеризується двома iнформацiйними об’єктами «ПРИБУТОК»
i «ВИДАТОК», якi iндентичнi за структурою та процедурами
обробки. Тому цi два об’єкти можна об’єднати в один, а для
iдентифiкацiї операцiї руху матерiальних цiнностей ввести в
структуру лише одне допомiжне поле «ознака операцiї», згiдно з
яким у процесi обробки можна розрiзняти прибутковi та видат-
ковi операцiї.
47
. — позначення десяткової крапки в цифрових атрибутах, які
мають дробове значення;
S — позначення знаку «+» чи «—».
У форматі числа в дужках вказують на кількість повторів сим-
волу в форматі. Наприклад, для атрибута «рік народження» —
формат 9(4), а для атрибута «код виробу» — формат А(18), тобто
код виробу можна описати 18 довільними символами. Якщо ат-
рибут має змінну довжину, то описується максимально допусти-
ма довжина.
Ознака «Відсоток наявності», тобто відсоток наявності зна-
чень атрибута в екземплярах об’єкта дає змогу виявити атрибути,
які присутні не в усіх екземплярах об’єкта. Наприклад, такий ат-
рибут як «номер диплома», може бути присутнім не в усіх екземп-
лярах об’єкта «СПІВРОБІТНИК», він може, припустимо, дорів-
нювати 75 %. Це означатиме, що такий відсоток співробітників
мають диплом.
48
ОПИС СКЛАДОВИХ ЕЛЕМЕНТІВ
49
Таблиця 2.1
ОБ’ЄКТА «ЗАЯВКА НА КРЕДИТ»
50
ОПИС ХАРАКТЕ
ОПИС СТРУК
— 2000 —
— 1500 15
Таблиця 2.3
ТУРНИХ ЗВ’ЯЗКІВ
52
кількість екземплярів може не існувати. Якщо кількість фіксова-
на, ознаку задають так: ФІКС (m), де m — кількість екземплярів
підпорядкованого об’єкта в кожному екземплярі структурного
зв’язку. При змінному значенні ця ознака така: ЗМІН (n1, n2), де
n1 — кількість екземплярів, яка найчастіше використовується в
зв’язках; n2 — максимально можлива кількість.
Клас членства підпорядкованого об’єкта. Ця ознака може мати
два значення — обов’язковий і необов’язковий. Це відповідно озна-
чає, що кожний екземпляр підпорядкованого об’єкта в кожний мо-
мент бере участь у деякому екземплярі структурного зв’язку і, на-
впаки, можуть існувати екземпляри підпорядкованого об’єкта, які
не беруть участі в даному структурному зв’язку.
Ознака «Переміщуваність екземплярів підпорядкованого
об’єкта в структурному зв’язку» може мати два значення —
«Так» чи «Ні», що означає відповідно можливість (заборону) пе-
реміщуватись екземплярам підпорядкованого об’єкта з одного
екземпляра структурного зв’язку в інший.
Якщо структурний зв’язок забезпечує рух в обох напрямках,
то ознака «Обмеження на час руху по структурному зв’язку» мо-
же набувати двох значень. Обмеження задають в одиницях, які
вибирає проектувальник системи (наприклад, у хвилинах).
53
3 Pоздiл
ДАТАЛОГІЧНЕ ПРОЕКТУВАННЯ БАЗ ДАНИХ
53
Усе ще не знайдено формалiзованих методiв, якi б давали змо-
гу однозначно виконати даталогiчне проектування. Тому його ре-
зультат багато в чому залежить вiд умiння та рiвня квалiфiкацiї
спецiалiстiв, якi здійснюють проектнi розробки.
У результатi даталогiчного проектування можна отримати
кiлька варiантiв побудови логiчної моделi даних. Тому важливим
моментом є оцiнка отриманих моделей і вибiр найоптимальнішо-
го варiанта.
Отриманий результат передусім потрібно оцiнити з позицій
вiдповiдностi наявним машинним ресурсам. У разі
невiдповiдностi цим обмеженням потрiбно здійснити перепроек-
тування БД. Крiм того, на отриманiй моделi необхiдно пе-
ревiрити умови виконання всіх запитiв користувачiв i вимог при-
кладних програм, тобто умову адекватностi логiчної моделi
iнформацiйнiй моделi предметної областi.
56
лежатиме вiд сегмента першого рiвня, тобто перший рiвень ви-
ступає як вихiдний, а другий –– як породжений; у свою чергу,
другий є вихiдним, а третiй –– породженим вiдносно другого
рiвня i т. д. Тому другим кроком вiдображення на єрархiчну мо-
дель є аналiз iнформацiйних об’єктiв i виявлення з-поміж них
iєрархiчної пiдпорядкованостi за принципом: «рiд – вид», «цiле –
частина», «причина – наслiдок» i т. ін. Аналiз виконують мiж
об’єктами, якi зв’язанi зв’язками ВП чи ВПВ (друга частина ПВ
iгнорується). В результатi цього аналiзу об’єкти розміщуються по
рiвнях iєрархiї.
3. В єрархiчнiй моделi пiдтримуються лише такі типи
спiввiдношень мiж даними: 1 : 1 і 1 : Б. Тому потрiбно перевiрити
типи спiввiдношень мiж даними i обмежитися лише згаданими.
Далі буде розглянуто, як в єрархiчних моделях можна ре-
алiзувати iншi типи спiввiдношень.
4. Кожний вихiдний сегмент може мати кiлька породжених,
але породжений сегмент може мати щонайбільше два вихiдних,
один з яких є фiзично, а інший логiчно вихiдним. Зв’язки в однiй
фiзичнiй базi даних (ФБД) називаються фiзичними, а зв’язки мiж
двома ФБД –– логiчними. На рис. 3.1 зображено двi фiзичнi бази
даних ФБД-1 і ФБД-2, в яких сегмент Х є фiзично вихiдним для
сегмента Z, а Y — логiчно вихiдним для цього самого сегмента; в
цьому разі Z виступає вiдносно Y як логiчно породжений сегмент,
відносно Х –– як фiзично породжений.
За описаним правилом побудови зв’язків необхідно перевіри-
ти всі породжені сегменти на виконання даного обмеження. Над-
лишкові зв’язки потрібно усунути об’єднанням кількох об’єктів в
один, якщо це можливо, або простим абстрагуванням від деяких
зв’язків.
Другий етап вiдображення полягає в модифiкацiї отриманої
моделi з урахуванням обмежень вибраної єрархiчної СКБД.
X Y
N R
57
ФБД-1 ФБД-2
Рис. 3.1. Взаємозв’язки між двома фізичними базами даних
L Y
X
A
Z B
N R
ФБД-1 ФБД-2
Рис. 3.2. Організація логічних зв’язків між фізичними базами даних
58
зв’язки мiж логiчно вихiдними i логiчно породженими сег-
ментами можуть бути одно- чи двостороннiми.
Вiдповiдно до цих вимог i обмежень має бути модифiкована
ієрархiчна БД, яка працюватиме в середовищi СКБД ОКА.
Як зазначалося, в єрархiчних моделях не можна пiдтримувати
багатозначнi зв’язки в явному виглядi. Тому, якщо потрібно ре-
алiзувати спiввiдношення подібного типу, використовують такий
штучний засiб як адресне посилання. Для цього необхiдно, щоб
сегменти, мiж якими необхiдно встановити зв’язок Б : Б, були
розміщенi в рiзних ФБД.
Якщо потрібно, наприклад, реалiзувати зв’язок мiж сегмента-
ми СПIВРОБIТНИК : ПРОЕКТ = Б : Б, який свідчить про те, що
один спiвробiтник може брати участь у виконаннi кiлькох про-
ектiв, а, в свою чергу, у виконаннi одного проекту бере участь ба-
гато спiвробiтникiв, застосовують штучнi сегменти Y1 та Y2 (рис.
3.3), якi вмiщують вiдповiднi фiзичнi адреси спiвробiтникiв і
проектiв.
Відділ Програма
Співробітник Проект
Y1 Y2
59
верстатах, за наявностi спiввiдношення «вихiдний — породже-
ний» мiж сегментами ДЕТАЛЬ : ВЕРСТАТ. Єдиний вихiд –– вне-
сти iнформацiю про якiсь фiктивнi деталi, але про це має
пам’ятати адмiнiстратор БД, i фiктивна iнформацiя повинна з пев-
ним часом бути замiнена на реальну. Тому процедури вилучення
чи поповнення єрархiчної БД необхiдно завжди виконувати дуже
ретельно та уважно, щоб не знищити важливих даних чи, навпа-
ки, не використати штучнi данi.
60
усерединi типу запису: ними можуть бути вектори, групи i по-
вторюючі групи.
На рис. 3.4 зображено внутрiшню структуру, що може підтри-
муватись у мережевих моделях і в якiй агрегат «iноземна мова»
представлений як вектор, а агрегат «адреса» –– як група.
ОСОБА
Адреса
Табельний № ПІБ Посада Іноземна
мова
Індекс Місто Вулиця Квартира
61
власника набору до його члена, являє собою логiчний взаємо-
зв’язок «один до багатьох» мiж власником і членом набору да-
них. Необхiдно розрiзняти такi поняття, як тип набору та екземп-
ляр набору. Наприклад:
КЛІЄНТСЬКИЙ РАХУНОК
62
Сингулярними є тимчасові набори, які створюють тоді, коли
для якогось типу запису на певний період відсутні власники. Тоді
власником виступає сума СКБД.
Так, необхідно внести інформацію про нові верстати, але ще не
внесено інформації про деталі, які оброблятимуться на цьому вер-
статі (рис. 3.7). Тому власником такого набору стає СКБД. Однак
це явище тимчасове, тобто коли буде занесено інформацію про де-
талі, цей сингулярний набір перетвориться на набір першого класу.
СКБД
МАРШРУТ
ВЕРСТАТ
ДЕТАЛЬ
ТЕХНОЛОГІЯ НОРМА
ОПЕРАЦІЯ МАТЕРІАЛ
ДЕТАЛЬ
ОПЕРАЦІЯ МАРШРУТ
ВЕРСТАТ
64
А А
В В
С С
Посилання
на А
А В А В С А В
С Вказівка D CD
на С
65
Рис. 3.10. Зведення до дворівневих структур
66
Вибираючи СКБД, слiд також пам’ятати i враховувати те, що
є двi платформи: системи, орiєнтованi на використання опе-
рацiйної системи ДОС, i системи, орiєнтованi на UNIX. UNIX-
системи, виходячи з аналiзу динамiки росту ринку i доходiв вiд
лiцензування (за матерiалами зарубiжних видань), лiдирують на
ринку програмних продуктiв.
Операцiйну систему вибирають у тому разі, якщо розробки
лише плануються. Коли є вже функціонуючі інформаційні систе-
ми, то звичайно перехід на нову платформу потребує дуже вели-
ких трудовитрат, пов’язаних з прив’язкою існуючих систем та їх
модифікацією для роботи в новому операційному середовищі.
Переваги UNIX-системи: вiдкритiсть і можливiсть легше інте-
груватись з iншими програмними засобами, а також наявнiсть
iнструментiв для захисту iнформацiї, що особливо важливо для
iнформацiйних систем, якi функцiонують у банкiвськiй та
фiнансових сферах.
При виборi СКБД розрізняють два пiдходи до її оцiнки: пер-
ший пов’язаний з вибором з погляду користувача; другий — суто
технiчний, пов’язаний з продуктивнiстю системи. Ураховуючи цi
двi позиції, СКБД можна вибирати на пiдставi їх аналiзу за таки-
ми параметрами:
1. Загальні характеристики. До цих характеристик належать
тип ЕОМ, операцiйне середовище, тип логiчної моделi бази да-
них, кiлькiснi обмеження СКБД (максимальне число записiв у
файлi та його максимальний обсяг, максимальне число iндексiв
на один файл БД, максимальна кількість одночасно відкритих
таблиць тощо), наявнiсть русифiкованої версiї, фiрма-виробник,
обсяг оперативної пам’ятi для системи, необхiднiсть використан-
ня постiйної пам’ятi, тип системи (вiдкрита, закрита), мова сис-
теми (власна, СІ, Паскаль та ін.), кiлькiсть версiй, що свiдчить
про попит на систему i спроби виробника вдосконалити систему,
наявнiсть версiї, що пiдтримує розподiлену базу даних.
2. Управління даними. До цих факторів належать:
можливість підтримувати записи змінної довжини, багато-
значні атрибути і двоспрямовані зв’язки;
наявність засобів автоматизації проектування;
підтримка та автоматизоване ведення словника даних;
автоматизоване протоколювання роботи системи (фіксація
часу, паролів користувачів і стану системи при вході в БД і вихо-
ді з неї, статистика роботи системи тощо);
наявність засобів контролю з боку системи за внесенням
змін з погляду збереження посилкової цілісності;
67
наявність засобів автоматизованого відновлення й захисту
інформації (криптографування, шифрування даних тощо);
резервне копіювання даних і журналів трансакцій;
обслуговування реплікацій, тобто гарантоване копіювання
змін з одної БД в інші і синхронізація даних. Цей фактор важли-
вий для територіально розгалужених організацій, орієнтованих
на децентралізовану обробку даних з використанням декількох
серверів;
забезпечення паралельної обробки даних. Сервери, які під-
тримують паралельну обробку даних, дозволяють кільком проце-
сорам звертатися до однієї БД, що забезпечує високу швидкість
обробки трансакцій.
3. Засоби підтримки прикладного програмного забезпечення.
До цих параметрiв належать:
підтримка OLAP-технологій. Деякі фірми виробники серве-
рних СКБД пропонують окремі OLAP-сервери (ORACLE,
Informix) чи включають їх до складу реляційних баз даних
(Microsoft SQL Server 7.0), або ж надають можливість будувати
багатовимірні сховища на базі даних інших СКБД (Microsoft SQL
Server Extensional, Sybase Adaptive Server IQ). На цей фактор слід
звертати увагу в тому випадку, якщо в подальшому планується
створення сховища даних і систем підтримки прийняття рішень;
підтримка розподілених запитів і трансакцій. Цей фактор
враховується в тому випадку, якщо планується наявність кількох
серверів БД;
наявнiсть мови запитiв на базi SQL чи iншої мови;
наявнiсть генератора програм і генератора звiтiв;
можливiсть захисту програмного продукту;
наявнiсть власного редактора;
можливiсть пiдтримувати вiконний iнтерфейс;
підтримка власних і чужих засобів розробки.
Засоби підтримки роботи в мережі. Параметрами, які ви-
значають можливість роботи в мережі, є такі:
можливiсть роботи в глобальнiй мережi;
можливiсть роботи в локальнiй мережi;
наявнiсть автоматизованих засобiв стеження за узгодженiстю
та цiлiснiстю даних мережi при колективному використаннi даних
(фотографування стану даних чи iншi засоби). Дiю цього ме-
ханiзму можна пояснити так. На початку виконання запиту роб-
лять копiї («фотографiї») всіх файлiв, якi беруть участь в його ре-
алiзацiї. Таким чином можна виконувати запити будь-якої
складностi, оскільки всi коректури, внесенi iншими користувачами
68
в файли БД протягом виконання запиту, не впливають на його ре-
зультат;
наявнiсть механiзму встановлення замкiв чи виконання захоп-
лень при паралельному внесеннi змiн у файли БД. Замок чи захоп-
лення встановлюється на файл БД на перiод внесення змiн одним
користувачем. Замок захищає лише вiд паралельного внесення змiн;
файл доступний для проведення всіх iнших операцiй;
механiзм стеження за часом виконання трансакцiй. Цей ме-
ханiзм необхiдний для попередження зависання системи при ко-
лективному використаннi даних. Якщо лiмiт допустимого часу
для виконання трансакцiї вичерпано, то її вiдмiнюють, i БД пове-
ртається в початковий стан;
підтримка WEB-технологій.
Вартість системи. Вартість системи залежить від фірми ви-
робника і виду СКБД та кількості її інсталяцій. Вартість повно-
функціональної СКБД коливається у межах 500—1000 у.о., вар-
тість сервера — від кількох сот до п’ятисот тисяч у.о.
69
4 Pоздiл
ПРОЕКТУВАННЯ БАЗ ДАНИХ НА ОСНОВІ
НОРМАЛІЗАЦІЇ
70
має вигляд поiменованої двовимiрної плоскої таблицi. Рядки та-
кої таблицi називаються кортежами, а сукупнiсть атрибутiв пев-
ного стовпця — доменом. Схема вiдношення задається iм’ям
вiдношення та iменами вiдповiдних доменiв.
Реляцiйна БД — це набiр взаємозв’язаних вiдношень, які мо-
жна подiлити на два класи: об’єктнi і зв’язковi. Об’єктнi
вiдношення зберiгають данi про iнформацiйнi об’єкти предметної
областi. Наприклад: ДЕТАЛЬ (код деталi, назва деталi, маса де-
талi, собiвартiсть) –– об’єктне вiдношення.
В об’єктному вiдношеннi один з атрибутiв однозначно
iдентифiкує окрему сутнiсть предметної областi. Такий атри-
бут називається первинним ключем вiдношення. У наведеному
вiдношеннi роль ключевого атрибута відіграє атрибут «код де-
талi».
Ключ може вміщувати кiлька атрибутiв, тобто бути складо-
вим. В об’єктному вiдношеннi не повинно бути рядкiв з одна-
ковим первинним ключем, тобто не допускається дублювання
об’єктiв. Це основне обмеження реляцiйної моделi, яке нео-
бхiдно виконувати для забезпечення цiлісностi даних.
Зв’язкове вiдношення зберiгає первинні ключi двох або бiльше
об’єктних вiдношень, за якими встановлюються зв’язки мiж
ними.
Наприклад, розглянемо ще одне об’єктне вiдношення:
ВЕРСТАТ (код верстата, фiрма-виробник, дата введення в екс-
плуатацiю, балансова вартiсть). Тодi вiдношення ТЕХНОЛОГIЯ
(код деталi, код верстата) буде зв’язковим мiж двома об’єктними
вiдношеннями ДЕТАЛЬ i ВЕРСТАТ.
У зв’язковому вiдношеннi можуть дублюватися ключовi ат-
рибути. Крiм ключiв, за якими встановлюється зв’язок у
зв’язковому вiдношеннi, можуть бути ще й iншi атрибути, якi
функцiонально залежать вiд цього зв’язку та розширюють його
семантику. Наприклад, ТЕХНОЛОГIЯ (код верстата, код де-
талi, код технологiчної операцiї, норма часу обробки деталi на
верстаті). Ключi в зв’язкових вiдношеннях називаються
зовнiшнiми, або вторинними, оскільки вони пов’язанi з первин-
ними ключами iнших вiдношень. Реляцiйна модель накладає на
зовнiшнi ключi обмеження для забезпечення цiлісностi даних,
яке називається посилковою цiлiснiстю. Це означає, що кожному
зовнiшньому ключу має вiдповiдати рядок якогось об’єктного
вiдношення. Без такого обмеження може статися, що зовнiшнiй
ключ посилається на об’єкт, про який нiчого невiдомо.
71
У реляцiйнiй БД накладається ще одне обмеження —
вiдношення мають бути нормалiзованi.
72
Узагальнюючи викладене, слiд зазначити, що семантика
функцiональних залежностей мiж атрибутами вiдношення зумо-
влює стороннi ефекти, що виникають при розширеннi та внесеннi
певних змiн до БД. Усунення цих аномалiй досягається декомпо-
зицiєю та зведенням вiдношення до нормалiзованого вигляду.
73
усi атрибути вiдношення повинні бути унiкальними, тобто
не допускається їх дублювання, а також атомарними, тобто не-
подiльними;
усi рядки таблицi повиннi мати однакову структуру, тобто
одну й ту саму кiлькiсть атрибутiв з iменами, що збігаються;
iмена стовпцiв мають бути рiзними, а значення однорідними
(однакового формату);
порядок рядкiв у таблицi не суттєвий.
Розглянемо приклад зведення вiдношення до 1НФ: МАТЕРIАЛ
(код матерiалу, назва матеріалу, одиниця вимiрювання, характе-
ристика: тип, сорт, розмiр). У цьому вiдношеннi атрибут «Харак-
теристика» є неатомарним, тому потрiбно позбутися складового
атрибута і перетворити його на три атомарних атрибути. В ре-
зультатi зведення до 1НФ вiдношення набере вигляду: МАТЕРІАЛ
(код матеріалу, назва матеріалу, одиниця вимірювання, тип, сорт,
розмір).
При приведенні до 1НФ необхідно визначити первинні ключі
відношення. Первинним ключем відношення МАТЕРІАЛ буде
атрибут «код матеріалу».
74
Детермінантом функцiональної залежності називають атри-
бут чи їх групу, які розташовані на діаграмі функціональної за-
лежності зліва від символа стрілки.
Коли вiдношення має складовi ключi, то залежнiсть неключо-
вих атрибутiв вiд такого ключа може бути повною або частко-
вою. Якщо маємо вiдношення R (A*, В*, C, D), ключ якого скла-
дається з двох атрибутiв A i B, тобто є складовим (знаком (*)
позначено ключовi атрибути), то функцiональнi залежностi в та-
кому вiдношеннi можуть мати такий вигляд:
R
A*
B*
75
R1 R2
A* B*
B* D
C
76
писах змiни. При цьому якщо буде пропущено хоча б одну де-
таль, то це призведе до суперечностей у даних.
2НФ повнiстю усуває можливiсть виникнення протирiччя да-
них, а також економить пам’ять при зберіганнi вiдношень у
пам’ятi ЕОМ. Наприклад, у разі зберігання в базi даних ненор-
малiзованого вiдношення НОРМА iнформацiя про один i той са-
мий матерiал буде дублюватись у БД стiльки разів, на скiльки
рiзних деталей вiн витрачається. Отже, буде значне надмірне ду-
блювання даних i великi перевитрати пам’ятi.
R
A*
C
D
77
Транзитивні залежності також вилучають за допомогою деком-
позицiї вiдношення на два чи бiльше iнших вiдношень, якi не мі-
стять транзитивних залежностей i з’єднання яких дасть початко-
ве вiдношення. В результаті декомпозиції відношення R
отримаємо два відношення R1 і R2.
R1
A*
C
R2
C*
D
78
4.4. Нормальні форми більш високих порядків
79
ЗА4 01.03.02 9.30 У банк 14 Друзь А. Р. ПО72-81
ЗА16 22.03.02 13.00 У податкову 14 Друзь А. Р. КО53-39
ЗА16 24.03.02 9.00 У міністерство 37 Крамар І. А. ПО72-81
14 22.03.02 КО53-39
14 31.03.02 ПО72-81
37 01.03.02 КВ23-39
37 11.03.02 ПО72-81
ЗВІТ
80
ЗА16 22.03.02 13.00 У податкову 14
ЗА16 24.03.02 9.00 У міністерство 37
Місто*
Адреса
Індекс
Зведення вiдношення до 3НФ дасть два вiдношення: R1
(мiсто, адреса), R2 (адреса, iндекс). Вони перебувають у 3НФ,
але не є вiдношеннями в НФБК, оскільки у вiдношеннi R існує
залежнiсть iндекс мiсто, тобто вiдношення в 3НФ не завжди
є вiдношенням у НФБК. Якщо ми зведемо це вiдношення до
НФБК, то отримаємо вiдношення R1 (мiсто, адреса), R2 (iндекс,
мiсто), в яких будуть вiдображені не всі залежності початкового
відношення. Так, не буде відображено залежності iндекс ад-
реса, а саме iндекс позначає вiддiлення зв’язку, що обслуговує
адресатiв якоїсь вулицi певного мiста. Отже, зведення до НФБК
може призвести до втрати важливих для початкового вiдношення
залежностей, а з’єднання отриманих у результатi такої декомпо-
зицiї вiдношень не дасть початкового вiдношення. Тому при зве-
деннi до НФБК необхiдно ретельно вивчати всi залежностi i ви-
конувати його лише тодi, коли виконується така вимога:
«з’єднання без втрат».
Вiдношення в НФБК завжди є вiдношенням у 3НФ, але не
завжди вiдношення в 3НФ є вiдношенням у НФБК.
Нормальна форма Бойса-Кодда має такi самі переваги, що й
3НФ, але її виконання потребує особливої уваги з погляду її зво-
ротності.
81
4.4.2. Четверта нормальна форма
82
рибутiв, є лише тривiальнi чи/або такi нетривiальнi багато-
значнi залежностi, що лiва частина будь-якої з них з клю-
чем.
X Y Z
83
1 1 2
1 2 1
2 1 1
1 1 1
Відношення R
X Y
1 1
1 2
2 1
Проекція R1 = R [X, Y]
X Z
1 2
1 1
2 1
Проекція R2 = R [X, Z]
Y Z
1 2
2 1
1 1
Проекція R3 = R [Y, Z]
Легко помітити, що відношення R не відновлюється по жод-
ному з попарних з’єднань відношень, отриманих у результаті
декомпозиції, тобто виконання операцій R1 JOIN R2, R1 JOIN R3
або R2 JOIN R3 не дає початкове відношення.
Дійсно, з’єднання R1 JOIN R2 має вигляд:
84
X Y Z
1 1 2
1 1 1
1 2 2
1 2 1
2 1 1
85
Визначення 5НФ може стати зрозумілішим, якщо сформулю-
вати його в негативній формі.
Означення. Відношення R не знаходиться в 5НФ, якщо у
відношенні знайдеться нетривіальна залежність з’єднання.
Тому п’ята нормальна форма (5НФ) ще називається проекцій-
но-з’єднувальною формою (ПЗНФ), або такою, що не має залеж-
ностей з’єднання.
Розглянемо конкретний приклад, проаналізувавши відношен-
ня УКОМПЛЕКТУВАННЯ МЕБЛЯМИ.
УКОМПЛЕКТУВАННЯ МЕБЛЯМИ
86
R36 Стілець
ПОСТАЧАЛЬНИК_МЕБЛІВ
ПРИМІЩЕННЯ_ПОСТАЧАЛЬНИК
87
5. Дайте визначення неповної функціональної залежності.
6. Що таке транзитивна залежність?
7. Дайте визначення багатозначної залежності.
8. У чому полягає суть зведення реляційного відношення до
1НФ?
9. У чому полягає суть зведення реляційного відношення до
2НФ?
10. У чому полягає суть зведення реляційного відношення
до 3НФ?
11. У чому полягає суть зведення реляційного відношення
до НФБК?
12. У чому полягає суть зведення реляційного відношення
до 4НФ?
13. У чому полягає суть зведення реляційного відношення
до 5НФ?
14. У чому полягає суть зведення реляційного відношення
до НФБК?
15. У чому полягає декомпозиції без втрат?
16. Переваги нормалізованої бази даних.
88
5 Pоздiл
АВТОМАТИЗАЦІЯ ПРОЕКТУВАННЯ БАЗ ДА-
НИХ
89
Сучасний ринок програмних засобів налічує понад 300 різних
CASE-засобів. До CASE-засобів належить будь-який програмний
засіб, що автоматизує ту або іншу сукупність процесів створення
ІС і має такі характерні особливості:
графічні засоби для опису документування ІС, що забезпе-
чують зручний інтерфейс з розробником, розвиваючи його творчі
можливості;
інтеграція окремих компонент CASE-засобів, яка забезпечу-
вала б керованість процесом розробки ІС;
використання спеціальним образом організованого сховища
проектних метаданих (репозиторію).
<Ім’я сутності>
# <атрибут>
* <атрибут>
0 <атрибут>
Позначення:
# — первинний ключ;
* — обов’язковий атрибут;
0 — необов’язковий атрибут.
94
Рис. 5.2. Позначення атрибутів
95
Одяг Супертип
Зимовий Літній Демісезонний
Підтип
Чоловічий Жіночий Дитячий
0
С
96
ються незалежно від її зв’язків з іншими сутностями. Залежна
сутність — це сутність, однозначна ідентифікація екземплярів
якої залежить від її зв’язків з іншими сутностями. Кожній сутності
присвоюється унікальні ім’я і номер, що розміщуються над нею.
Атрибути зображаються у вигляді списку імен усередині бло-
ку сутності. Атрибути, що визначають первинний ключ, розмі-
щуються вгорі списку і відділяються від інших атрибутів горизо-
нтальною лінією (рис. 5.8); навпроти атрибутів, які є зовнішніми
ключами, стоїть позначка — (FK).
Сутніcть-A
<Атрибут первинного ключа >
<Ім’я атрибута_1>
<Ім’я атрибута_2> (FK)
97
тифікуючий зв’язок відображається суцільною лінією (рис. 5.9), а
неідентифікуючий зв’язок — пунктирною (рис. 5.10). Залежна
сутність відображається прямокутником зі скругленими кутами.
Сутність-В
Сутність-А
Ключовий атрибут-В
Ключовий атрибут-А Ім’я зв’язку Ключовий атрибут-A (FK)
Цех Працівник
Код цеху Табельний номер
Назва цеху Працюють Код цеху (FK)
Телефон Прізвище
Ім’я
По батькові
98
5.4.1. S-Designor — засіб інформаційного моде-
лювання
99
При проектуванні в S-Designor використовується дворівневий
підхід: перший — концептуальна модель даних (ER-діаграма);
другий — фізична модель даних. При переході на другий рівень
S-Designor автоматично генерує відповідну фізичну модель да-
них для вибраної СКБД з урахуванням її специфіки.
Концепція S-Designor — реалізація класичної теорії інформа-
ційного моделювання, що включає чіткий поділ між концептуа-
льною моделлю даних (представлення об’єктів реального світу та
взаємозв’язку) і фізичної (відображення цих об’єктів у термінах,
близьких до фізичного представлення) (рис. 5.11). Наприклад,
зв’язки багато до багатьох. Відповідно до теорії інформаційного
моделювання і проектування баз даних такий зв’язок при реалі-
зації має бути деталізований додаванням третьої зв’язкової таб-
лиці. Представивши зв’язок Б : Б у S-Designor на концептуально-
му рівні при генерації фізичної моделі, S-Designor автоматично
додає зв’язкову таблицю, у такий спосіб деталізуючи цей зв’язок.
Особливість S-Designor полягає в тому, що він дозволяє вико-
нувати пряме та зворотне проектування. При прямому проекту-
ванні, розробивши концептуальну модель можна автоматично зге-
нерувати фізичну і після цього виконати генерацію структури БД.
100
Предметна область
Побудова інформаційної
моделі предметної області
(концептуальна —
CDM-модель)
Вибір СКБД
Генерування Реінжиніринг
фізичної моделі моделі
102
2.1.Кожному запису об’єкта А може відповідати один чи більше
записів з об’єкта В. При цьому необов’язково кожному запису із
об’єкта А відповідає пов’язаний з ним запис в об’єкті В, і навпаки.
А B
103
3.3.Кожному запису об’єкта А може відповідати багато записів
в об’єкті В, і навпаки, кожному запису об’єкта В може відповіда-
ти багато записів в об’єкті А. При цьому кожному запису об’єкта
А обов’язково повинен відповідати хоча б один пов’язаний запис
в об’єкті В, і навпаки
4. Залежність коду об’єкта А від коду об’єкта В:
А B
105
Рис. 5.12. Вікно ідентифікації сутності
109
Рис. 5.17. Вікно вибору СКБД
111
Логічне моделювання в ERwin можна виконувати з викорис-
танням однієї з двох методологій — IDEF1X чи IE. Методологія
— IDEF1X була розроблена для ВВС США і тепер використову-
ється в урядових, аерокосмічних і фінансових установах, а також
багатьох приватних компаніях. Ця методологія визначає стандар-
ти і терміни, які використовуються при інформаційному моделю-
ванні і графічному зображенні типових елементів даних на діаг-
рамах. Діалогове вікно вибору методології проектування
наведено на рис. 5.18.
2
Рис. 5.19. Вікно переключення між режимами відображення
Зміна масштабу
3
Перехід з логічного рівня проектування на фізичний викону-
ється перемикачем панелі інструментів (палітра інструментів до-
даткового меню логічного рівня наведена на рис. 5.20).
Створення
Режим сутності
мишки
Текст
Категоріальний
зв’язок
Маніпулю- Ідентифі Зв’язок Неіденти-
вання куючий Б:Б фікуючий
атрибутами зв’язок зв’язок
4
Діаграма сутність-зв’язок є моделлю верхнього рівня. Вона
містить сутності і взаємозв’язки, якими характеризується предме-
тна область. Ця модель може вміщувати зв’язки Б:Б і при цьому не
мати опису ключів. Як правило, ця модель готується як презента-
ційний варіант для обговорення і узгодження зі спеціалістами
предметної області, тому вона може бути не дуже деталізованою.
Модель даних, що основана на ключах опис логічної моделі,
містить усі сутності та всі первинні ключі.
Повна атрибутивна модель — це найбільш детальна презен-
тація структури логічної моделі даних, яка містить усі сутності,
представлені у третій нормальній формі, всі атрибути і зв’язки.
Основою логічного моделювання є визначення сутностей, атри-
бутів, що входять до кожної сутності, та зв’язків між сутностями.
5
Рис. 5.22. Вікно для ідентифікації та опису сутності
6
Рис. 5.23. Вікно для визначення атрибутів сутності
7
При встановленні зв’язку «атрибути первинного ключа» голо-
вної сутності вони автоматично переносяться як зовнішні ключі у
підпорядковану сутність. Тому при проектуванні підпорядкова-
ної сутності не слід в ній відображати вторинні ключі. Кнопка
Migrate діалога у Attribute Editor викликає діалогове вікно
Migrate Attribute Property, в якому можна задавати властивості,
що повинні зберегтися при міграції.
Закладинку Definition діалогу Attribute Editor використову-
ють для визначення атрибута та його додаткових характеристик,
таких як можливі значення, верхня-нижня межа та ін. Іноді атри-
бут обчислюється на основі інших атрибутів, тоді вказується по-
рядок такого обчислення.
Сутність відображається прямокутником, над яким вказується
її ім’я, а в середині прямокутника — атрибути, що входять до її
складу. Первинний ключ у прямокутнику, що відображає сут-
ність, відділяється від неключових атрибутів горизонтальною лі-
нією. Незалежна сутність відображається прямокутником з гост-
рими кутами, а залежна — прямокутником із закругленими
кутами.
Для атрибутів, крім основних, функціональних, імен, можна
задавати рольові імена. Рольові імена будуть синонімами атрибу-
та зовнішнього ключа, що вказують на ту роль, яку відіграє атри-
бут у дочірній сутності. Так, у сутності ВИКЛАДАЧ зовнішній
ключ КОД КАФЕДРИ має функціональне ім’я ДЕ ПРАЦЮЄ, яке
показує, яку роль відіграє цей атрибут у підпорядкованій (залеж-
ній) сутності (рис. 5.25).
Викладач Викладач
Код кафедри Де працює_Код кафедри (FK)
Табельний №
Назва кафедри
Телефон Зав_кафедрою_табельний № Керує /
підчиняється
Ім’я ролі
(функціональне) Ім’я ролі
(базове)
Рис. 5.25. Встановлення рольових імен для зовнішніх ключів
За замовчуванням у списку атрибутів вказується лише ім’я
ролі. Для відображення повного імені атрибута — як функціона-
льного, так і рольового — необхідно в контекстному меню клац-
8
нути лівою кнопкою мишки, вибрати опцію Rolename/Attribute
в меню Display Options/Entities.
Рольове ім’я необхідно обов’язково вказувати в тому разі, якщо
один і той самий атрибут, маючи однакову область значень, може
мати різну семантику. Наприклад, у структурі сутності ОБМІННІ
ОПЕРАЦІЇ, атрибут КОД ВАЛЮТИ присутній двічі. Він характе-
ризує код проданої валюти і код купленої валюти. Тобто сутність
ВАЛЮТА повинна бути зв’язана двічі із сутністю ОБМІННІ ОПЕ-
РАЦІЇ і первинний ключ КОД ВАЛЮТИ повинен два рази мігрува-
ти в підпорядковану сутність як зовнішній ключ (рис. 5.26).
Валюта Операції
Купівля
Код валюти Код валюти_Куплено (FK)
Код валюти_Продано (FK)
Назва валюти
Позначення валюти Продажа Дата операції
Сума
10
Неідентифікуючим є зв’язок, коли екземпляр дочірньої сут-
ності ідентифікується інакше, ніж через зв’язок з батьківською
сутністю. Атрибути, які складають первинний ключ батьківської
сутності, при цьому мігрують до складу неключових атрибутів
дочірньої сутності. Неідентифікуючий зв’язок використовується
для зв’язування незалежних сутностей. Приклад неідентифікую-
чого зв’язку наведено на рис. 5.28.
Цех Працівник
Код цеху Табельний номер
Назва цеху Працюють Код цеху (FK)
Телефон Прізвище
Ім’я
По батькові
12
символом Z позначається зв’язок типу «нуль чи один» (ви-
ключається багатозначність);
цифрою позначається конкретне значення.
При моделюванні в ERwin зв’язки ідентифікують іменами.
Для зв’язку 1 : Б (ідентифікуючого чи неідентифікуючого) достат-
ньо вказати ім’я, яке характеризує відношення батьківської до
дочірньої сутності (Parent-to-Child). Для зв’язку Б:Б необхідно
вказати як ім’я Parent-to-Child, так і Child-to-Parent.
У палітрі інструментів для різного типу зв’язків використову-
ються такі кнопки:
— ідентифікуючий зв’язок;
— неідентифікуючий зв’язок;
— зв’язок «багато—до—багатьох».
Приклад відображення зв’язку «багато—до—багатьох» при
проектуванні на логічному рівні відображено на рис. 5.29.
Матеріал Виріб
Код матеріала Код виробу
Назва матеріала Назва виробу
Одиниця вимірювання Оптова ціна
13
каскадне виконання операції (DELETE/UPDATE);
установка пустого значення чи заданого значення за замов-
чуванням.
Замовник Замовлення Продукція Постачання
Код замовника Код замовлення Код продукції
Назва / ПІБ замовника Код замовлення (FK) Код продукції (FK)
Адреса замовника Код продукції (FK) Назва продукції Номер договору (FK)
Дата прийому Код виробника Код постачальника (FK)
Дата виконання Оптова ціна Дата
Кількість Min оптова партія Кількість
Ознака оплати Роздрібна ціна
15
мети, якщо в БД записана інформація хоча б про одного викла-
дача кафедри.
ERwin автоматично присвоює кожному зв’язку значення по-
силкової цілісності за замовчуванням. Режими RI, які задаються
за замовчуванням, наведені в табл. 5.2. Ці режими у разі необхід-
ності можуть бути змінені в редакторі Referential Integrity
Defaulet, який можна викликати, клацнувши по кнопці RI
Defaults діалогу Target Server (меню Server/Target Server).
Таблиця 5.2
ЗНАЧЕННЯ RI, ЯКІ ПРИСВОЮЮТЬСЯ В ERwin ЗА ЗАМОВЧУВАННЯМ, а та-
кож можливі режими для кожного типу зв’язку
16
ванням
Parent Delete RESTRICT, RESTRICT, RESTRICT, RESTRICT,
Можливі режими CASCADE, CASCADE, CASCADE, CASCADE,
NONE NONE, SET NONE, SET NONE
NULL, SET DEFAULT
DEFAULT
Parent Delete Ре- RESTRICT SET NULL RESTRICT CASCADE
жими за замовчу-
ванням
Parent Insert Мо- RESTRICT, RESTRICT, RESTRICT, RESTRICT, .
жливі режими CASCADE, CASCADE, CASCADE, CASCADE,
NONE NONE, SET NONE, SET NONE
NULL,SET DEFAULT
DEFAULT
Parent Insert Ре- NONE NONE NONE NONE
жими за замовчу-
ванням
Parent Update Мо- RESTRICT, RESTRICT, RESTRICT, RESTRICT,
жливі режими CASCADE; CASCADE, CASCADE, CASCADE,
NONE NONE, SET NONE, SET NONE
NULL, SET DEFAULT
DEFAULT
Parent Update Ре- RESTRICT SET NULL RESTRICT CASCADE
жими за замовчу-
ванням
17
5.4.2.4. Фізичне проектування засобами ERwin
1
імена таблиць та індекси за шаблонами логічної моделі. Але та-
кож можна змінювати ці імена у разі потреби вручну. Вікна Table
Name Macro і Index Name Macro дозволяють внести ці зміни.
2
За допомогою кнопки Reset Names викликається вікно Globally
Rest DBMS Property (рис. 5.34), яке надає можливість поверну-
тись назад, тобто імена, які встановлювались вручну, будуть за-
мінені на імена за замовчуванням, що були визначені при проек-
туванні на логічному рівні. Якщо в імені сутності чи атрибуту
будуть пробіли, то вони автоматично замінюються на символ «_».
Характеризуємо ці закладинки:
Comment — коментарі до таблиці;
Volumetrics — оцінка розміру БД;
Physical Property — задання фізичних властивостей таблиці;
Partitions — задання значення розділення. Доступна лише
для Oracle 8.x;
4
UDP — задання властивостей, що визначаються користувачем;
Validation — визначення правил валідації;
Stored Procedure — зв’язування з таблицею процедур, що
зберігаються;
Pre & Post Script — створення скриптів (наборів команд), які
будуть виконуватись до і після створення таблиць при генерації БД;
Synonym — визначення синонімів таблиць, якщо вони під-
тримуються сервером;
PowerBuilder — задання розширених атрибутів для генерації
клієнтського додатка на PowerBilder.
Для задання характеристик стовпчиків, відмінних від значень
за замовчуванням, використовується редактор стовпчиків Column
Editor (рис. 5.37), який подібний до редактора атрибутів моделі
логічного рівня. Вікно та режими редагування редактора таблиць
і стовпчиків залежить від вибраної СКБД.
Замовник
Договір
Код замовника: Integer
Номер договору: Integer
Назва/ПІБ замовника: Text(18) Код продукції: Integer Постачальник
Адреса замовника: Text(18) Код постачальника: Integer Код простачальника: Integer
Дата договору: Date/Time Назва постачальника: Text(18)
Кількість: Integer
Договірна ціна: Currency Адреса постачальника Text(18)
Виконання МФО банка: Integer
№ рахунка: Double
Код продукції: Integer Телефон/факс: Text(18)
Код замовника: Integer Електронна адреса: Text(18)
Код замовлення: Integer
Дата: Date/Time
Кількість: Integer
6
/* %Parent %VerbPhrase %Child ON PARENT DELETE
CASCADE */
delete %Child
from %Child,deleted
where
/* %%JoinFKPK(%Child,deleted,« = »,« and») */
%JoinFKPK(%Child,deleted,« = »,« and»)
7
6 Pоздiл
CТВОРЕННЯ ТА РОБОТА З БАЗОЮ ДАНИХ У
СЕРЕДОВИЩІ СКБД MICROSOFT ACCESS
135
виникненні в них певних змін. В Access виокремлюється таке по-
няття, як подія, що визначає будь-яку зміну стану об’єктів.
СКБД Access працює з вікнами. Тут є довідкова система, за
допомогою якої можна отримати різну інформацію про поточну
робочу ситуацію, що висвічується у довідковому рядку. Однак,
якщо цієї інформації недостатньо, то, натиснувши клавішу F1, на
екрані автоматично відтвориться текст довідки, що відповідає
поточній робочій ситуації. Довідки, що видаються в Access, згру-
повані за темами і предметними рубриками. Це дозволяє знаходи-
ти ті теми і рубрики, які цікавлять користувача в даний момент.
Access є сучасним додатком Windows-95, тому вона дозволяє
використовувати всі можливості DDE-динамічного обміну дани-
ми (Dynamic Data Exchance), а також виконувати зв’язок та
включення OLE об’єктів (Object Linking and Embedding). DDE до-
зволяє виконувати обмін даними між Access та іншими засобами
Windows, які підтримують DDE. За допомогою OLE об’єктів мо-
жна виконувати зв’язок з іншими продуктами Windows, а також
включати в Access такі об’єкти, як картини, діаграми чи докуме-
нти з інших продуктів Windows, які підтримують OLE об’єкти.
В Access можливий імпорт/експорт даних з інших СКБД
(dBASEIII, dBASEIV, FoxPro, Paradox, BTrievе), програм елект-
ронних таблиць Exсel, Lotus, текстових файлів. Також інформа-
цію з бази даних у середовищі Access можна експортувати в ці ж
системи.
Access також може працювати з найпопулярнішими базами
даних, такими як Oracle, Microsoft SQL Server, DB-2 та іншими,
які підтримують стандарт ODBC (Open Database Connectivity —
відкритий доступ до даних).
Access має в своєму арсеналі деякі засоби захисту інформації.
В меню Access є спеціальні команда для відновлення БД. Якщо за
допомогою цієї команди не вдалося відновити втрачені дані, то
необхідно використовувати останню страхову (резервну) копію.
Відновити базу даних за допомогою спеціальної команди меню
Access вдається без резервної копії в тих випадках, якщо дані бу-
ли пошкоджені в результаті незапланованої зупинки Access (на-
приклад, через зависання системи).
В Access є можливість стискати дані для зменшення ємності
пам’яті та підвищення швидкості роботи системи. При вилученні
записів з таблиць вони фізично не знищуються, а лише відповідним
чином позначаються. Нові записи розташовуються в кінці таблиці.
В результаті такої організації через певний час у таблиці може деяка
частина записів мати відповідні позначення про їх вилучення. Ці за-
136
писи не братимуть участі в процесах обробки, а розмір таблиці буде
невиправдано великим. Тому з певною періодичністю адміністратор
повинен виконувати процедуру стискання, в результаті якої таблиця
реорганізується і з неї вилучаються всі позначені записи.
Access має засоби адміністрування бази даних і захисту її від
несанкціонованого доступу, зокрема такий інструмент, як шиф-
рування даних, котрий доцільно використовувати при транспор-
туванні бази даних по мережі. Шифрування даних захищає їх від
інших програм і дозволяє перегляд лише в середовищі Access.
Останній розпізнає зашифровані дані та автоматично виконує їх
дешифрування.
Access підтримує автоматизоване ведення словника даних,
який вміщує детальний опис усієї бази даних. Ця компонента
Access називається архіваріусом.
В арсеналі СКБД Access — мови запитів SQL та QBE. Версія
мови SQL тут носить назву Jet SQL. Мова запитів QBE (qubery-by-
example) — є графічною мовою реалізації запитів за зразком у
режимі конструктора. Access дозволяє конвертувати запити QBE
в SQL-запити. Крім того, Access підтримує мову Visual Basic for
Applications (VBA). VBA — це мова програмування, за допомо-
гою якої користувач має можливість створювати модулі, що роз-
ширяють стандартні можливості системи.
Додатки Access-97 можуть безпосередньо взаємодіяти з доку-
ментами, розташованими в World Wide Web.
Деякі обмеження Access-97:
розмір бази даних (файла з розширенням .mdb) — 1 Гбайт.
Реально розмір обмежується обсягами пам’яті на диску, оскільки
до БД можна приєднувати таблиці;
число об’єктів у БД — 32 768;
кількість користувачів, що одночасно працюють із систе-
мою, — 255;
максимальний розмір таблиці — 1 Гбайт;
максимальна кількість полів у таблиці — 255;
максимальна кількість індексів у таблиці — 32;
максимальна кількість символів у записі (не враховуючи
Memo і OLE-об’єкти) — 2000;
максимальна кількість символів в Memo-полі — 65 535;
максимальний розмір OLE-об’єкта — 1 Гбайт;
максимальна кількість таблиць у запиті — 32.
Таким чином, розглянута СКБД має розвинутий арсенал су-
часних технологічних засобів, які дозволяють виконувати проце-
дури проектування, створення і ведення баз даних.
137
6.2. Типи даних в ACCESS
139
1. З меню вибрати команду Файл, вибрати опцію Cоздать ба-
зу данных чи натиснути кнопку із зображенням бланка на панелі
інструментів. Access відобразить вікно, наведене на рис. 6.1. Вік-
но має дві вкладинки Общие і База данных. Перша вкладинка
вміщує піктограму Новая база данных, друга — піктограми 22
стандартних шаблонів, одним з яких можна скористатися при
створенні бази даних.
140
лише імена файлів БД. Якщо буде вибрана опція Все файлы, то у
вікні будуть висвічені всі файли активної папки.
Після вибору диска і папки тиснемо на кнопку Создать. У ре-
зультаті буде створена нова база даних, в яку можна заносити її
об’єкти.
Властивості Зміст
Визначає максимальну довжину текстового або числово-
Розмір поля
го поля
Визначає формат відображення даних у формі та запиті.
Формат поля Формат може бути: стандартний, числа, валютний, фіксо-
ваний з виділенням тисяч, процентний, експоненціальний
Число десятко- Визначає кількість розрядів в дробовій частині десятко-
вих знаків вого числа
Маска вводу Задає маску даних при введенні даних
Вміщує надпис, який виводиться поруч з полем у формі
Підпис чи звіті (цей підпис може не збігатися з іменем поля, як
правило, він пояснюючий до змісту поля)
Значення за за- Вміщує значення, яке встановлюється за замовчуванням
мовчуванням для відповідного поля таблиці
Умова на зна- Визначає множину значень, яких може набувати те чи
чення інше поле
Повідомлення Задає повідомлення, яке видається на екран при введенні
про помилку недопустимого значення
Обов’язкове Цей параметр вказує на те, що при заповненні таблиці це
поле поле повинно обов’язково бути заповненим
Параметр визначає, чи можливе введення пустих рядків у
Пусті рядки
дане поле
Визначає прості індекси для прискорення пошуку, вка-
завши наявність чи відсутність елементів дублювання.
Індексне поле
Поле первинного ключа визначається як індексне авто-
матично
144
Після того як робота завершена, необхідно вибрати в меню
Файл режим Сохранить, ввести ім’я таблиці і натиснути OK.
Якщо при створенні таблиці не було задано ключа, то при за-
критті таблиці Access запропонує зробити це. Коли буде вибрана
стверджувальна відповідь, то в таблицю автоматично додається
поле лічильника, якому буде присвоєна ознака ключового поля.
При від’ємній відповіді первинний ключ не створюється.
Таблицю можна в будь-який момент перейменувати. Для цьо-
го необхідно її маркірувати в списку об’єктів бази даних і викли-
кати команду Переименовать з меню Правка.
Таблиці, що створюються, повинні бути представленими у но-
рмалізованому вигляді. Якщо таблиці не нормалізовані, то приве-
сти їх у відповідність вимогам теорії нормалізації можна за до-
помогою опції Анализ меню Сервис.
146
6.4.4. Пошук даних
147
внутрішню таблицю з двох стовпчиків, яка вміщує значення
ключів індексації та відповідну адресу кожного запису в таблиці,
для якої встановлюється індекс.
Створити індекс по одному полю досить просто. Для цього не-
обхідно відкрити таблицю в режимі конструктора і визначити по-
ле, яке буде ключем індексації, потім клацнути мишкою на харак-
теристиці поля Индексированное поле, яка розташована в нижній
частині вікна таблиці. Розглянемо створення індексу по одному
полю на прикладі таблиці договір на постачання матеріалів
(Docow). Первинним ключем, тобто унікальним полем, буде номер
договору на постачання, а індексним полем — код постачальника
(рис. 6.6). При цьому залежно від даних, які зберігаються в табли-
ці, можна вибрати одну з двох опцій: допускається збіг чи не до-
пускається збіг значення індексного поля. Для прикладу, що роз-
глядається, доцільно вибрати характеристику, яка допускає збіг
індексного поля, оскільки з одним і тим самим постачальником
може бути укладено кілька договорів на постачання матеріалів.
148
дньому кроці (рис. 6.6). Для встановлення складового індексу не-
обхідно ввести ім’я наступних полів у пусті рядки.
Наприклад, для таблиці Docow створимо індекс, який склада-
тиметься із трьох полів — k_post, data і k_mat. Для цього необхід-
но, встановивши курсор на пустих рядках, занести туди ім’я полів
data і k_mat в стовпчики Индекс і Поле вікна Индексы, користу-
ючись списком полів, яке видасть у допоміжному вікні Access. Діа-
логове вікно Индексы після цього матиме такий вигляд (рис. 6.7).
Для вилучення певного індексного поля досить встановити
курсор в області маркірування поля та натиснути клавішу Del.
Access використовує складові індекси навіть у тих випадках,
коли пошук виконується лише по певних його полях. Таким чином
пошук можна виконувати по коду постачальника, коду постачаль-
ника і даті, а також коду постачальника, даті і коду матеріалу.
149
6.4.6. Встановлення зв’язку між таблицями
155
Рис. 6.14. Схема даних
156
6.5. Запити в ACCESS
6.5.6.Запити вилучення
За допомогою запитів вилучення можна вилучати пев-
ні записи із таблиці. Це можна робити вручну за допомогою ко-
манд Правка / Удалить, але на це витрачається багато часу, крім
того, можна через необачність вилучити потрібні записи. Тому
краще створити запит, який проведе вилучення записів, що від-
повідають певній умові. Передусім необхідно визначитись, які
записи необхідно вилучати. Для надійності спочатку створюється
запит-вибірка, за допомогою якого можна переглянути ті записи,
котрі можуть бути вилучені. Якщо в результатах запиту-виборки
присутні лише ті записи, які підлягають вилученню, то такий за-
пит-вибірку можна перетворити на запит-вилучення.
163
Розглянемо, яким чином перетворити запит-вибірку на запит-
вилучення.
Створимо на основі таблиці Довідник споживачів запит-
вибірку, задавши умову вибору тих споживачів, які знаходяться у
м.Кременчук. Переглянувши результати виконання цього запиту,
перетворимо його на запит вилучення. Перетворення виконуємо
за допомогою опції Удаление команди Запрос або вибравши оп-
цію Удаление піктограми Тип запроса (рис. 6.21).
Перед виконанням запиту-вилучення Access видає два діагно-
стичних повідомлення: перше — інформує користувача, що ви-
конання цього запиту приводить до змін у таблиці: друге — вка-
зує, скільки записів буде вилучено з таблиці, якщо користувач
підтвердить необхідність виконання запиту. Відмінити вилучен-
ня можна, натиснувши команду Отмена. Якщо вибрати ствер-
джувальну відповідь, то вказані записи будуть фізично знищені і
відновити їх можна буде лише за наявності страхової копії.
166
таблиці. Наприклад, можна сформувати запит, який дозволить
переглядати дані про реалізацію за певний проміжок часу. Для
цього в діалогове вікно запитів додається таблиця, на основі якої
буде створюватись запит. Потім з неї вибираються і заносяться в
таблицю QBE необхідні поля. Як умова виконання запиту в рядку
Условие отбора задається вираз, наведений на рис. 6.24, який за-
дає діапазон вибірки, причому дати, які задають межі діапазону
необхідно задавати як параметри.
Рис. 6.25. Вікна для введення параметрів при реалізації запиту з пара-
метрами
167
6.5.10. Перехресні запити
Для створення перехресного запиту, який відображатиме
підсумки реалізацій за кожен місяць, необхідно виконати такі дії:
1. Створити новий запит, включивши до нього таблиці Реалі-
зація і Виріб.
2. До бланка запитів переносяться поля: Назва виробу, Код
виробу, Кількість. Для поля Дата будується вираз з використан-
ням функції Month, яка відобразить номер місяця, коли було ви-
конано реалізацію Дата:Month ([Дата реалізації]).
3. З меню команди Запрос вибирається опція Перекрестный.
Після цього змінюється заголовок запиту — із запиту вибірки на
перехресний запит.
4. Після цього, розкривши список Перекрестная таблица,
необхідно визначитись з полями: які будуть заголовками рядків
стовпчиків, а які будуть значеннями. У нашому випадку поля На-
зва виробу і Код виробу вибрані заголовками рядків, поле Дата —
заголовком стовпчика, Кількість — значенням (рис. 6.27).
5. Розкривши список Групповая операция для поля Кіль-
кість, вибираємо функцію SUM.
Рис. 6.28. Вікно для вибору інтервала групування при створенні пере-
хресних запитів
173
Вибираємо всі поля і натискаємо кнопку Далее. З’явиться вік-
но, в якому необхідно буде вибрати зовнішній вид форми із за-
пропонованих варіантів, які представлені на рис. 6.34.
174
В останньому вікні (рис. 6.36) Access запропонує вказати ім’я
форми, пропонуючи за замовчуванням залишити ім’я тієї таблиці
чи запиту, на базі якого створюється ця форма. Створеній формі
можна присвоїти унікальне ім’я.
180
6.6.4. Створення додаткових елементів форми
181
6.6.5. Управління безпомилковим введенням
форм
186
Крок 3. Після вибору таблиці з’явиться наступне вікно, в якому
буде запропоновано вибрати необхідні поля із заданої таблиці. Ви-
бравши поля Код виробу, Назва виробу, тиснемо на кнопку Далее.
Крок 4. На четвертому кроці з’явиться вікно, в якому буде за-
пропоновано задати ширину стовпчиків та ознаку Скрыть клю-
чевой столбец, яка за замовчуванням відмічена прапорцем. У
нашому випадку ми відміняємо прапорець і тиснемо кнопку Да-
лее (рис. 6.51).
Крок 5. Необхідно виділити поле Код виробу, яке буде збері-
гатись.
192
Наступний крок — це створення кнопки у формі Реалізація
для виклику макроса. Форму відкриваємо в режимі Конструкто-
ра, у вільному місці на екрані за допомогою Панели элементов
створюємо кнопку. Потім, відмітивши кнопку маркером, тиснемо
праву кнопку мишки. З’явиться вікно Свойства, в якому задаємо
такі опції: Имя, Подпись, Нажатие кнопки. В опції Подпись
вказується ім’я кнопки, в опції Нажатие кнопки — ім’я створе-
ного макроса.
Результат можна переглянути, відкривши форму в режимі фор-
ми. Access відкриє форму Реалізація зі створеною кнопкою викли-
ку макроса, натиснення якої відкриє форму Довідник споживачів.
201
В деяких ситуаціях не вдається визначити, чи пошкоджена ба-
за даних. Якщо база даних веде себе непередбачено, виконайте
такі дії.
Відновлення відкритої бази даних.
Виберіть в меню Сервис команду Служебные программы і
підкоманду Восстановить базу данных.
Відновлення невідкритої бази даних.
1. Закрийте активну базу даних.
2. Виберіть в меню Сервис команду Служебные программы
і підкоманду Восстановить базу данных.
3. Зазначте ім’я і каталог бази даних, що відновлюється і на-
тисніть кнопку Восстановить.
Рис. 6.68. Діалогове вікно для вибору бази даних для шифрування
202
рення зашифрованої або дешифрованої копії бази даних. У про-
цесі цих двох операцій Асcess створює копію файла.
2. На всіх робочих станціях необхідно закрити базу даних, що
підлягає шифруванню.
3. Активізувати команду Сер-
вис/Защита/Шифрование/Дешифрование.
4. З’явиться вікно (рис. 6.68) вибору бази даних для шифру-
вання, в якому вибираємо базу даних і тиснемо ОК.
Якщо вибрана база даних не зашифрована, то відкриється вік-
но Шифрование базы даных под именем, в якому буде запро-
поновано нове ім’я для зашифрованої бази даних. Якщо ж вибра-
на база даних була зашифрована, то з’явиться вікно
Дешифрование базы даных под именем.
4. Вибирається ім’я файла для нової зашифрованої чи дешиф-
рованої бази даних. Натискаємо кнопку Сохранить.
У процесі шифрування або дешифрування Асcess стискає базу
даних.
Облікові записи
Після створення робочої групи можна заносити облікові (ре-
єстраційні) записи. Оскільки реєстраційний запис Admin одина-
ковий для всіх копій Access, для захисту бази даних необхідно
включити нового користувача в групу Admins чи замінити адміні-
стратора Admin.
Для включення нового користувача в групу Admins необхідно:
1. Запустити Access, вибравши робочу групу, і відкрити базу
даних.
209
2. У підменю Защита меню Сервис вибрати команду Поль-
зователи и группы.
3. У вікні, що відкриється (рис. 6.71), вибрати закладку Поль-
зователи і натиснути на кнопку Создать.
Рис. 6.72. Вікно для введення імені та кода облікового запису користу-
вача
210
від 00 до 31). Крім того, ім’я користувача не може починатися з
пробілу.
Після повернення у вікно Пользователи и группы виберіть у
списку Имеющиеся группы групу Admins і натисніть кнопку
Добавить. Група Admins буде розміщена в списку Участие в
группе, що забезпечить введення облікового запису в цю групу.
В кінці натисніть кнопку ОК.
При створенні облікового запису власника виконується така
сама послідовність операцій. Обліковий запис власника може бу-
ти занесеним у групу Admins чи іншу групу.
Крім облікових записів адміністратора і власника, створюють-
ся записи для користувачів та груп користувачів, які можуть мати
однакові права.
Для створення нової групи користувачів і відповідного облі-
кового запису необхідно активізувати команду Пользователи и
группы в подменю Защита меню Сервис і натиснути кнопку
Создать на закладинці Группы. У вікні, що відкриється в полі
Имя, вводиться ім’я групи, а в полі Код — унікальний код (будь-
яка комбінація символів від 4 до 20 знаків). Натискаємо кнопку
ОК. На ім’я групи накладаються ті ж обмеження, що і на ім’я ко-
ристувача.
Вилучення облікового запису користувача чи групи з робочої
групи виконується таким чином:
1. Запустіть Access з вибраною робочою групою і відкрийте
базу даних.
2. У підменю Защита меню Сервис виберіть команду Поль-
зователи и группы. У вікні, що відкриється, виберіть закладку
Пользователи (при вилученні облікового запису користувача) чи
Группа (при вилученні облікового запису групи).
3. Виберіть ім’я користувача чи групи в списку Имя і натис-
ніть кнопку Удалить. Підтвердіть необхідність вилучення у на-
ступному вікні, натиснувши кнопку Да.
4. Закрийте вікно Пользователи и группы.
Після створення облікових записів для користувачів і груп
взаємозв’язок між ними можна побачити при натисненні на кно-
пку Отчет о защите.
215
7 Pоздiл
ХАРАКТЕРИСТИКА МОВИ SQL
216
програмні продукти такі засоби, які б дозволили будь-якому до-
датку за допомогою CLI мати доступ до їх баз даних.
Корпорація Microsoft розробила формалізований інтерфейс
CLI для робочих станцій, який дістав назву драйвера ODBC.
Останній дає змогу різним розробникам спілкуватись між собою
за допомогою стандарту SQL Access Group. Microsoft Access мо-
же спілкуватись з іншими СКБД за допомогою ODBC, а також
розуміє основні діалекти стандарту SQL Access Group.
Отже, мова SQL може бути реалізована такими способами:
Прямий виклик. Набір операторів SQL передається безпосере-
дньо програмі управління базами даних. Ця програма відповідає
на запит, створюючи таблицю з результатами виконання запиту, і
відображає її на екран.
Модульна мова. Програмістом створюється файл, який скла-
дається з операторів SQL, після чого ці оператори можуть бути
виконані додатком.
Вмонтований SQL. Найпоширеніша реалізація мови. Операто-
ри SQL генеруються прикладною програмою чи вмонтовуються в
програмний код як рядки тексту програми. Саме такий варіант
використання SQL реалізовано в СКБД Access.
219
CREATE INDEX — створює індекс для існуючої таблиці;
ALTER TABLE — за допомогою цього оператора можна до-
давати нові поля в таблицю чи вилучати існуючі;
DROP — вилучає існуючу таблицю з бази даних або вилу-
чає існуючий індекс з таблиці.
221
лькох полів, необхідно використати пропозицію CONSTRAINT,
призначену для створення складового індексу. При цьому потрі-
бно перелічити всі поля, що містять посилання на поля у зовні-
шній таблиці, а також зазначити ім’я зовнішньої таблиці та імена
полів зовнішньої таблиці, на які посилаються поля, перелічені
вище, причому в тому ж порядку. Якщо останні поля є ключем
зовнішньої таблиці, то вказувати їх необов’язково, оскільки ядро
бази даних вважає: як дані поля потрібно використати ті поля, що
складають ключ зовнішньої таблиці.
222
Оператор CREATE INDEX дозволяє створити тимчасовий ін-
декс для приєднаної таблиці, яка ще не має індексу, з такого дже-
рела даних ODBC, як SQL Server.
224
DISTINCT — виключає записи, які містять значення, що по-
вторюються у вибраних полях. Щоб запис був включений у ре-
зультаті виконання запиту, значення в кожному полі, включено-
му в інструкцію SELECT, повинні бути унікальними.
DISTINCTROW — пропускає дані, що ґрунтуються на запи-
сах, які цілком повторюються, а не окремих полів, що повторю-
ються. Предикат DISTINCTROW впливає на результат тільки в
тому разі, коли до запиту включені не всі поля з таблиць, що
аналізуються. Предикат DISTINCTROW ігнорується, якщо запит
містить тільки одну таблицю або всі поля всіх таблиць.
TOP n [PERCENT] — повертає певне число записів, що зна-
ходяться на початку або в кінці діапазону, описаного за допомо-
гою пропозиції ORDER BY;
* — вказує, що вибрані всі поля заданої таблиці або таблиць;
таблиця — ім’я таблиці, з якої повинні бути відібрані записи;
поле_1, поле_2 — імена полів, з яких вибираються дані. Якщо
задано кілька полів, вони вибираються у визначеному порядку;
псевдонім_2, псевдонім_2 — імена, які стануть заголовками
стовпчиків замість початкових назв стовпчиків у таблиці;
вираз — імена однієї або кількох таблиць, які містять дані, що
відбираються;
зовнішняБазаДаних — ім’я бази даних, яка містить таблиці,
вказані за допомогою опції вираз, якщо вони не знаходяться в
поточній базі даних.
Оператор SELECT не змінює дані в базі даних.
Звичайно слово SELECT є першим словом оператора SQL.
Нижче наведено мінімальний синтаксис оператора SELECT:
SELECT поля FROM таблиця.
Порядок таблиць у виразі не суттєвий. Для відбору всіх полів
таблиці можна використати символ зірочки (*). Наприклад, опе-
ратор відбирає всі поля з таблиці «Деталь»:
SELECT * FROM Деталь.
Якщо кілька таблиць, включених до опції FROM, містять од-
нойменні поля, перед ім’ям такого поля потрібно ввести ім’я таб-
лиці і оператор . (крапка).
Наприклад, якщо поле «Відділ» міститься в таблицях «Спів-
робітники» і «Керівники», то оператор SELECT відбере поле
«Відділ» з таблиці «Співробітники» і поле «Керівник» з таблиці
«Керівники»:
225
SELECT Співробітники.Відділ,Керівники.Керівник
FROM Співробітники INNER JOIN Керівники
WHERE Співробітники.Відділ = Керівники.Відділ;
Якщо в результаті виконання потрібне інше ім’я поля, то ви-
користовується зарезервоване слово AS. У наступному прикладі
заголовок «Народження» стає ім’ям поля у результуючому наборі:
SELECT [Дата народження]
AS Народження FROM Співробітники;
При роботі зі статистичними функціями або запитами, які по-
вертають імена об’єкта, що повторюють поля, використовується
опція AS для іншого імені поля. В наступному прикладі заголо-
вок «Чисельність» задається для поля результуючого об’єкта.
SELECT COUNT(КодСпівробітника)
AS Чисельність FROM Співробітники;
226
Якщо оператор SELECT вміщує статистичну функцію, наприклад
SUM, то для кожного запису буде розраховано підсумок.
Так, визначимо максимальну ціну матеріалу кожного типу.
SELECT КодТипу, Max (Ціна) AS МаксимальнаЦіна FROM
Матеріал GROUP BY КодТипу;
228
7.4.2. Оператор SELECT...INTO
229
операція UNION — об’єднує результати кількох незалежних
запитів або таблиць.
До мови DML також можна віднести опис PARAMETERS,
який описує ім’я і тип даних кожного параметра в запиті з пара-
метрами.
230
запису, в які буде вміщено значення, і значення для цих полів.
Якщо поля не визначені, то в ці стовпчики буде вставлено зна-
чення за замовчуванням або значення Null. Записи додаються в
кінець таблиці.
Інструкцію INSERT INTO можна також використати для до-
запису набору записів з іншої таблиці або запиту за допомогою
SELECT. .. FROM, як показано вище в запиті на дозапис кількох
записів. У такій ситуацій SELECT визначає поля, що додаються у
вказану результатну таблицю.
Аргументи Джерело або Призначення визначають таблицю
або запит.
Інструкція INSERT INTO є необов’язковою, однак якщо вона
присутня, то повинна знаходитися перед інструкцією SELECT.
Якщо результуюча таблиця містить ключ, необхідно впевни-
тись, що в ключове поле (або поля) додаються унікальні непоро-
жні значення; у противному разі записи не будуть дозаписані.
Щоб дозаписати поля в таблицю з полем лічильника і наново
перенумерувати додані записи, не треба включати в запит поле
лічильника. Включати в запит поле лічильника необхідно, якщо
потрібно зберегти початкові значення поля.
При дозапису записів у таблицю в іншій базі даних потрібно
використовувати пропозицію IN.
Для створення нової таблиці краще використовувати оператор
SELECT... INTO замість запиту на створення таблиці.
Щоб заздалегідь дізнатися, які записи будуть додані, спочатку
виконайте і перегляньте результати запиту на вибірку, викорис-
товуючи ті самі умови відбору.
Запит на дозапис записів копіює записи з однієї або кількох
таблиць в іншу таблицю. Таблиці-джерела, з яких копіюються
записи, не змінюються.
Замість дозапису існуючих записів з іншої таблиці можна вка-
зати значення полів одного нового запису за допомогою пропо-
зиції VALUES. Якщо список полів пропущений, опція VALUES
повинна містити значення для кожного поля таблиці; інакше
оператор INSERT не буде виконано.
231
UPDATE таблиця
SET новеЗначення
WHERE умоваВідбору;
Характеристика складових оператора UPDATE:
таблиця — ім’я таблиці, дані в якій потребують змін;
НовеЗначення — вираз, що визначає значення, яке повинно
бути вставлене в поле, що оновлюється;
умоваВідбору — вираз, що відбирає записи, які повинні бути
змінені. При виконанні цього оператора будуть змінені тільки за-
писи, що задовольняють указаній умові.
Оператор UPDATE особливо зручно використати для зміни
відразу багатьох записів або в тому випадку, якщо записи, що
підлягають зміні, знаходяться в різних таблицях.
Одночасно можна змінити значення кількох полів. Так, на-
ступна інструкція SQL збільшує вартість замовлення на 10 відсо-
тків, а вартість доставки — на 3 відсотки:
UPDATE Замовлення
SET СумаЗамовлення = СумаЗамовлення * 1.1,
ВартістьДоставки = ВартістьДоставки * 1.03
WHERE КлієнОтримувач = ‘АО_Вега’;
Інструкція UPDATE не приводить до створення результуючо-
го набору записів. Щоб дізнатися, які записи будуть змінені, спо-
чатку необхідно переглянути результати запиту на вибірку, ви-
користовуючи ті самі умови відбору, а потім виконувати запит на
оновлення записів.
При використанні цього оператора неохідно регулярне архіву-
вання даних. При ненавмисному оновленні записів вони можуть
бути відновлені по резервній копії.
233
поле_1, поле_2 — імена полів, що об’єднуються. Якщо ці поля
не є числовими, то повинні мати однаковий тип даних і вміщува-
ти дані одного виду, при цьому поля можуть мати різні імена;
оператор — будь-який оператор порівняння: «=,» «<,» «>,»
«<=,» «>=,» чи «<>».
Якщо за умови рівності виконується об’єднання таблиці самої
з собою, то результат об’єднання називається самооб’єднанням.
Операцію INNER JOIN можна використати з таблицями За-
лишок і Надходження для відбору надходжень товарів, по яких
були залишки на складі.
Операції JOIN можуть бути вкладеними. У такому разі вико-
ристайте наступний синтаксис:
SELECT поля
FROM таблиця_1 INNER JOIN
(таблиця_2 INNER JOIN [( ]таблиця_3
[INNER JOIN [( ]таблиця_X [INNER JOIN. ..)]
ON таблиця_3.поле_3 оператор таблиця_X.поле_X)]
ON таблиця_2.поле_2 оператор таблиця_3.поле_3)
ON таблиця_1.поле_1 оператор таблиця_2.поле_2;
Для створення зовнішніх об’єднань використовують операції
LEFT JOIN, RIGHT JOIN.
Синтаксис операції зовнішнього об’єднання має такий вигляд:
FROM таблиця_1 [ LEFT ¦ RIGHT ] JOIN таблиця_2
ON таблиця_1.поле_1 оператор таблиця_2.поле_2
Характеристика складових операцій LEFT JOIN і RIGHT
JOIN:
таблиця_1, таблиця_2 — імена таблиць, записи яких підля-
гають об’єднанню;
поле_1, поле_2 — імена полів, що об’єднуються. Поля повинні
мати однаковий тип даних і містити дані одного виду, однак син-
таксис імен може бути різним;
Оператор — будь-який оператор порівняння: «=,» «<,» «>,»
«<=,» «>=,» або «<>»;
Операція LEFT JOIN використовується для створення лівого
зовнішнього об’єднання, за якого всі записи з першої (лівої) таб-
лиці включаються в динамічний набір, навіть якщо у другій (пра-
вій) таблиці немає відповідних до них записів. Якщо у другій
таблиці, з якою виконується з’єднання, не має відповідних ряд-
ків, то замість значень її полів додається значення Null.
Операція RIGHT JOIN використовується для створення право-
го зовнішнього об’єднання, за якого всі записи з другої (правої)
таблиці включаються в динамічний набір, навіть якщо в першій
234
(лівій) таблиці немає відповідних до них записів. Якщо у першій
(лівій) таблиці, з якою виконується об’єднання, не має відповід-
них рядків, то замість значень її полів дається значення Null.
Наприклад, для відбору залишків товарів, по яких не було
надходжень, або надходжень товарів, по яких не було залишків,
потрібно використати операції LEFT JOIN і RIGHT JOIN, які
створюють відповідно ліве та праве зовнішнє об’єднання.
Операції LEFT JOIN або RIGHT JOIN можуть бути вкладені в
операцію INNER JOIN, але операція INNER JOIN не може бути
вкладена в операцію LEFT JOIN або RIGHT JOIN.
236
FROM Клієнти;
Використовувати псевдоніми можна тільки в першій пропози-
ції SELECT, оскільки в інших вони пропускаються. У пропозиції
ORDER BY необхідно посилатись на поля по їх назвах у першій
пропозиції SELECT.
У кожному аргументі запиту допускається використання оп-
цій GROUP BY або HAVING для групування даних, що поверта-
ються.
У кінець останнього аргументу запиту можна включити опцію
ORDER BY, щоб відсортувати повернені дані.
237
В опції WHERE або HAVING можна використати аргумент
ім’я, але не типДаних. Наступна інструкція SQL запитує у корис-
тувача два параметри, а потім використовує їх при відборі запи-
сів з таблиці Кредити:
PARAMETERS [МінімальнийВідсоток] Currency,
[Початкова дата] DateTime;
SELECT НомерДоговору, СумаКредиту
FROM Кредити
WHERE Відсоток = [Мінімальний відсоток]
AND ДатаПідписання >= [Початкова дата];
Оператори SQL можна використовувати не лише для створен-
ня запитів, а у формах звітах і макросах.
238
8 Pоздiл
РОЗПОДІЛЕНІ БАЗИ ДАНИХ
239
вача повинні бути непомітними і складати в нього враження, що
він працює не з кількома, а з однією базою даних, яка вміщує всю
необхідну для його роботи інформацію.
На ринку програмних засобів з’явились розподілені СКБД
(РСКБД), які дають змогу підтримувати та обробляти розподіле-
ну базу даних у багатокориcтувацьких системах. Основним за-
вданням розподіленої СКБД є забезпечення управління доступом
до даних багатьох споживачів і цілісності й узгодженості даних в
умовах використання мережі ЕОМ. Тобто основна функція таких
СКБД — це координація спільної роботи багатьох користувачів з
розподіленою інформацією. Проте розв’язання проблеми авто-
номності роботи користувачів розподіленої системи створює ба-
гато специфічних проблем в організації баз даних, оскільки різні
користувачі можуть працювати паралельно з одними й тими са-
мими даними, виконуючи з ними різні перетворення.
240
ної цілісної моделі розподіленої БД, ускладнює розуміння систем
і мов запитів до них, потребує розробки якихось додаткових ін-
терфейсних та шлюзових програмних продуктів.
Існують ще так звані мультибазові системи, які характеризу-
ються абсолютно автономним управлінням кожного вузла мере-
жі. Мультибазові системи надають можливість користувачеві
самостійно управляти даними свого вузла без централізованого
контролю цих процесів. Дозвіл на доступ зовнішніх користувачів
до даних певного вузла визначається адміністратором БД вузла,
який надає права та визначає ту частину інформації, яка може
бути доступна зовнішнім користувачам. Мультибазова СКБД
об’єднує локальні схеми БД різних вузлів мережі і будує на їх
основі глобальну цілісну схему БД як єдиного цілого, на базі якої
користувачі можуть будувати запити.
Мультибазові системи поділяються на федеральні та нефеде-
ральні: нефедеральні — це ті, які не мають локальних користува-
чів; федеральні — це системи змішаного типу, які містять елемен-
ти розподілених і централізованих баз даних. Для локального
користувача федеральна система виглядає як централізована, а
для віддаленого — як розподілена.
241
Розподілена БД більш гнучка з погляду її розширення шляхом
створення нових вузлів, тоді як у разі централізованої обробки
розширення організації може призвести до необхідності техніч-
ного переоснащення системи, тобто заміни менш потужних
комп’ютерів на потужніші.
Однак поряд з перевагами розподілені БД характеризуються
цілим рядом недоліків. Системи на основі розподілених БД ха-
рактеризуються більшою складністю порівняно з централізова-
ними системами. Така складність полягає в необхідності органі-
зації реплікацій таким чином, щоб розподілені дані були завжди
актуальними. Ці системи потребують додаткових капіталовкла-
день на мережеве устаткування, канали зв’язку та забезпечення
системи їх захисту. Крім того, ускладнюється вирішення про-
блеми підтримки цілісності розподіленої БД. І, безумовно, прое-
ктування розподілених БД набагато складніше, ніж проектування
централізованих БД.
242
час i на процедури, пов’язанi з передачею iнформацiї. Обсяг бази
даних обмежений пам’яттю ЕОМ, що використовується для
зберiгання бази даних.
За розподiленої (децентралiзованої) стратегiї без дублювання
визначають данi, якi потрiбно зберiгати в кожному вузлi мережi.
При цьому розподiлену базу даних проектують як неперетинні
мiж собою пiдмножини даних, розподiленi по вузлах мережі.
Тобто при цій стратегії не допускаються копії окремих частин
БД. Проектування даних тут є складним завданням. Ключовим
фактором, який впливає на надійність і доступність бази даних,
виявляється так звана локалізація посилань. Якщо база даних
розподілена так, що дані, розміщені в цьому вузлі, викликаються
винятково його користувачем, то це свідчить про високий сту-
пінь локалізації посилань. Якщо подібне розчленування даних
здійснити неможливо і для виконання запитів користувача потрі-
бно звертатись за інформацією до інших вузлів, то це свідчить
про невисокий ступінь локалізації посилань.
Розглянута стратегiя пiдходить для тих предметних областей,
в яких практично немає дублювання даних у рiзних вузлах ме-
режi i потрiбна мiнiмальна кiлькiсть логiчних посилань для вико-
нання iнформацiйних взаємозв’язкiв вузлiв одного з одним. Тоб-
то користувач кожного вузла працює зi своїми файлами i досить
рiдко використовує данi iнших вузлiв мережi.
Економiчнi задачi за своїми iнформацiйними властивостями
xарактеризуються дуже тiсними iнформацiйними взаємо-
зв’язками, тому для даного класу задач реалiзацiя цiєї стратегiї
досить складна, неефективна i недоцiльна. Переваги цiєї стратегiї
полягають у тому, що зменшуються витрати на передачу
iнформацiї та вiрогiднiсть виникнення черг, коли кiлька користу-
вачiв одночасно звертаються до одного й того самого файла БД.
Разом з тим цю стратегiю важко контролювати з позицій дублю-
вання даних, чим ускладнюється реалiзацiя проблеми узгодже-
ностi та цілісності даних. Значно складнiшими є проблеми
адмiнiстрування та пiдтримки БД даних в актуальному станi.
Розподiлена (децентралiзована) стратегiя з дублюванням по-
лягає в тому, що база даних проектується як за централiзованого
пiдходу, але фiзично дублюється в кожному вузлi мережi. Тобто
кожний вузол має повну копiю всієї бази даних. Стратегiя роз-
подiлу з дублюванням найбiльш ефективно розв’язує проблеми
доступу та вибірки даних з мiнiмальними витратами часу. Сис-
тема досить проста при проектуваннi. Однак нарівні з перевагами
цей пiдхiд характеризується складнiстю адмiнiстрування та
243
розв’язання проблеми узгодженостi файлiв БД у рiзних вузлах
мережi. Ця проблема узгодженості досить гостро може постати
тоді, коли зв’язок у мережі порушується і в копії в різних вузлах
виникають розбіжності. У такому разі потрібно розробити спеці-
альний механізм реплікацій для узгодження копій бази даних на
вузлах мережі. Крім того, системи, що побудовані за цією страте-
гією, характеризуються великою вартістю ЕОМ для зберігання БД.
Змішана, або комбінована, стратегія розподілу даних поєд-
нує елементи описаних вище підходів з метою використання пе-
реваг кожного з них. За такої стратегії певна частина файлів збе-
рігається централізовано. Крім того, ця стратегія дозволяє певні
файли бази даних поділити на багато логічних фрагментів, як це
зроблено в стратегії розподілу без дублювання, що дозволяє до-
сягнути високої локалізації посилань. Для файлів БД, які не дуже
часто оновлюються, дозволяється мати довільну кількість фізич-
них копій на різних вузлах мережі. Такий підхід до створення
розподіленої бази даних дає змогу дублювати дані довільну кіль-
кість разів і в кожному вузлі; водночас у кожному вузлі може мі-
ститися потрібна частина бази даних. Система, побудована за ці-
єю стратегією, допускає досить просту реалізацію паралельної
обробки даних, що скорочує час відгуку системи. Ця стратегія
також забезпечує дуже велику надійність даних: за рахунок дуб-
лювання їх легко можна відновити при помилках чи збоях обла-
днання. Однак, як і при стратегії дублювання, виникає проблема
узгодженості копій бази даних у всіх вузлах мережі.
244
адміністратором БД. Глобальна зовнішня схема описує підмно-
жину глобальної концептуальної схеми розподіленої бази даних,
яка доступна конкретному вузлу.
Вузол 1 Вузол 2 Вузол n
Глобальна Глобальна Глобальна
зовнішня схема зовнішня схема … зовнішня схема
Глобальна
концептуальна
схема
Схема
фрагментації
Схема
розподілення
БД БД БД
245
ють собою певну підмножину глобальної концептуальної схеми.
Локальна схема відображення — це підмножина розподілених
даних, які потрібно відображати в локальній БД.
246
ментів, чи навпаки, за рахунок горизонтальної фрагментації пев-
них вертикальних фрагментів.
Відновлення або ж реконструкція початкового відношення на
основі його фрагментів виконується за допомогою операції:
з’єднання — для вертикальних фрагментів та об’єднання — для
горизонтальних фрагментів.
Фрагментацію слід виконувати, додержуючись таких основ-
них правил:
При фрагментації слід дотримуватись повноти. Згідно з цим
правилом, якщо якесь відношення розбивається на n-фрагментів,
то кожен атрибут відношення повинен бути присутнім хоча б в
одному зі створених фрагментів. Виконання правила повноти га-
рантує проектувальнику розподіленої БД, що жодні дані не бу-
дуть втрачені при фрагментації відношень.
Фрагментація повинна забезпечувати зворотність, тобто га-
рантоване відновлення початкового відношення в результаті
об’єднання відношень, отриманих у результаті фрагментації. До-
тримування цього правила забезпечує зберігання всіх функціона-
льних залежностей початкового відношення.
Отримані фрагменти не повинні перетинатись. Це правило
стосується насамперед результатів горизонтальної фрагментації,
тобто один і той же кортеж (запис) не може входити до складу
кількох фрагментів. Щодо вертикальної фрагментації, то це пра-
вило не поширюється на атрибути первинного ключа, які можуть
дублюватись у різних вертикальних фрагментах відношення.
Фрагментацію і розподіл даних необхідно виконувати поетапно,
при централізованому контролі за цією процедурою. Спочатку база
даних проектується за тими ж правилами, що і централізована. Зви-
чайно при цьому потрібно охопити користувачів кожного вузла та
досконало вивчити їх вимоги і запити до бази даних. Фрагментація
не є обов’язковою умовою побудови розподіленої бази даних. Во-
на застосовується лише за умови доцільності її використання; як-
що це не доцільно, то можлива відмова від фрагментації даних.
247
Локальна автономія. У розподілених системах кожна база
даних кожного вузла повинна бути автономною стосовно інших
вузлів. Тобто виконання операції на одному вузлі не повинно за-
лежати від виконання операцій на якомусь іншому вузлі, бо така
залежність при виході з ладу одного з вузлів може поставити під
загрозу виконання операцій на інших вузлах. Тобто проблеми
управління даними, їх безпеки, узгодженості і цілісності повинні
вирішуватись локально на кожному вузлі окремо. Досягти повної
локальної автономії в умовах розподіленого використання даних
звичайно не можливо, бо певна частина функцій управління да-
ними одного вузла надається іншим вузлам, тому потрібно праг-
нути зробити вузли максимально автономними.
Незалежність від центрального вузла. Якщо виконувати
вимогу локальної автономії, то значить необхідно розглядати всі
вузли мережі як рівноправні. Відповідно не повинно бути виді-
лення центрального вузла та залежності від нього інших вузлів.
Така залежність може призвести до виведення з ладу системи в
цілому в разі пошкодження центрального вузла, тобто централь-
ний вузол може стати вузьким місцем усієї системи. Отже, у сис-
темі не повинно бути централізованих серверів управління
трансакціями, виявлення взаємних блокувань, оптимізації запитів
та управління глобальним системним каталогом.
Безперервне функціонування. Система не повинна припиняти
своє функціонування у разі створення нових вузлів чи, навпаки,
припинення їх роботи. На її безперервне функціонування не по-
винні також впливати операції динамічного створення або вилу-
чення деяких фрагментів з одного або кількох вузлів.
Незалежність від розташування. Ця вимога ще називається
прозорістю розташування. Виконання її полягає в тому, що кори-
стувачеві не обов’язково потрібно знати, де фізично, або на яко-
му вузлі, зберігаються ті чи інші дані. Тобто користувач повинен
отримувати доступ до даних на кожному вузлі і при цьому з по-
зицій логіки, у нього виникає враження, що потрібні йому дані
зберігаються на його вузлі.
Незалежність від фрагментації. Розподілена база даних, що
підтримує фрагментацію даних, повинна забезпечувати виконан-
ня вимоги прозорості фрагментації. Тобто користувачеві забез-
печується такий режим роботи з логічними даними, що він взага-
лі не знає про те, що вони фрагментовані. Тобто при потребі над
фрагментами даних виконуються операції об’єднання та
з’єднання для реалізації певних запитів користувача.
248
Незалежність від реплікацій. Система повинна підтриму-
вати незалежність від реплікацій, якщо деякі відношення або їх
фрагменти можуть бути представленими різними копіями чи
репліками, що зберігаються на різних вузлах. Створення реплік
надає можливість вузлам працювати з локальними копіями, а не
витрачати час на обмін даними. Головний недолік реплік поля-
гає в тому, що при внесенні змін у реплікований об’єкт усі його
копії мають поновлюватися. В ідеалі система повинна підтри-
мувати незалежність від реплікацій, тобто у користувача з логі-
чної точки зору повинно складатися враження, що дані нереплі-
ковані.
Забезпечення виконання розподілених запитів. Система по-
винна забезпечувати виконання глобальних запитів, для реаліза-
ції яких потрібні дані кількох вузлів. При реалізації таких запитів
важлива увага надається їх оптимізації. Це пов’язано з тим, що,
якщо в запиті задіяна інформація кількох вузлів, то існує багато
способів її переміщення по мережі. Тобто для виконання розпо-
ділених запитів важливо найти найоптимальнішу стратегію взає-
модії з даними, що зберігаються на різних вузлах мережі.
Забезпечення управління розподіленими трансакціями. Си-
стема повинна забезпечувати механізм підтримки трансакцій як
одиниці відновлення бази даних. Механізм підтримки трансакцій
має працювати при виконанні як локальних, так і глобальних за-
питів. Тобто система повинна забезпечувати такі основні власти-
вості трансакцій, як атомарність, узгодженість, ізольованість і
довговічність.
Незалежність від апаратного забезпечення. Система управ-
ління розподіленою базою даних повинна забезпечувати функці-
онування на різноплатформенному обладнанні, забезпечуючи
при цьому єдність системи і рівноправність різних її вузлів.
Незалежність від операційної системи. Система управління
розподіленою базою даних повинна мати здатність функціонува-
ти не лише на різному апаратному забезпеченні, але й у різному
операційному середовищі.
Незалежність від архітектури мережі. Система управління
розподіленою базою даних повинна забезпечувати функціону-
вання в мережах різної архітектури.
Незалежність від типу СКБД. Виконання цієї вимоги в іде-
альній розподіленій системі передбачає, що розподілена СКБД
може співпрацювати з різними локальними СКБД, які підтриму-
ють бази даних локальних вузлів. Реалізація цієї вимоги, як пра-
249
вило, на практиці досягається шляхом розробки додаткової шлю-
зової програми, яка узгоджує та організує взаємодію різних СКБД.
Проаналізувавши описані вище вимоги до розподілених сис-
тем та можливості, можна дійти висновку, що розподілена
СКБД повинна підтримувати гетерогенність. На жаль, останні
чотири вимоги носять поки що більш бажаний характер, і мо-
жуть скоріш за все належати до гіпотетичної ідеальної розподі-
леної системи.
250
Блокування виконуються за правилами сумісності блокувань,
що виключає виникнення конфліктів типу «читання — запис»,
«запис –– читання» чи «запис — запис». Існують три методи бло-
кування: централізоване блокування, блокування первинної копії
і розподілене блокування [16.].
При централізованому блокуванні для всієї розподіленої бази
даних підтримується єдина таблиця блокувань, яка розміщується
на одному з вузлів під управлінням єдиного менеджера блоку-
вань. Менеджер блокувань відповідає за встановлення та зняття
захватів від імені всіх трансакцій. Оскільки управління блоку-
ванням зосереджено на одному з вузлів, то воно аналогічне
централізованому управлінню одночасним доступом до даних.
Такий підхід має певні проблеми при його функціонуванні. По-
перше, недостатню надійність, яка при відмові чи недоступності
центрального вузла блокувань може призвести до виходу з ладу
всієї системи. По-друге, центральний вузол може стати вузьким
місцем у системі через великі обсяги обробки даних на ньому і
генерованість навколо нього інтенсивного трафіка мережі.
Блокування первинної копії — це управління одночасним до-
ступом, що використовується для баз даних з реплікаціями, в
яких копії одних і тих самих даних можуть зберігатися на бага-
тьох вузлах. Одна з таких копій виокремлюється як первинна,
тому для доступу до будь-якого елемента даних необхідно вста-
новити блокування на його первинну копію. Множина первин-
них копій відома всім вузлам розподіленої системи, і запити на
блокування надходять на ті вузли, де зберігаються ці копії. Якщо
в розподіленій базі даних не використовуються реплікації, то ме-
ханізм блокування первинної копії зводиться до розподіленого
блокування. Механізм блокування первинної копії запропонова-
ний у розподіленій версії СКБД Ingres.
Розподілене (деценралізоване) блокування пропонує розподі-
лити обов’язки з управління блокуванням між усіма вузлами сис-
теми. Під час блокування згідно з цим механізмом необхідна ко-
ординація взаємодій менеджерів блокувань кількох вузлів. Цей
підхід до блокування усуває недоліки централізованого блоку-
вання, пов’язані з перевантаженням централізованого вузла, про-
те він складніший і характеризується більш високими комуніка-
ційними витратами. Такий алгоритм використовується в
системах System R* і NonStop SQL.
Блокувати можна весь файл, окремий його запис чи групу за-
писів. При блокуванні система повинна інформувати інших ко-
ристувачів по мережі про те, що в даний момент виконано бло-
251
кування. Проте наявність замка не повинна заважати виконанню
операцій пошуку у файлах, їх перегляду або доступу до отрима-
них результатів. Замок має захищати лише від паралельного вне-
сення змін різними користувачами.
Загальний побічний ефект усіх розглянутих алгоритмів управ-
ління паралельним доступом за допомогою блокувань –– це мож-
ливість виникнення тупикових ситуацій. Тупик –– це така ситуація,
коли багато запитів створюють цикл, очікуючи зняття захватів ін-
шими запитами з цієї самої множини. Виявлення та усунення ту-
пиків –– це одна з найскладніших задач у розподілених системах.
253
них даних і виявленням тупика. У всіх перелічених ситуаціях
збою трансакцію необхідно перервати і виконати «відкіт» бази
даних. Для попередження «зависання» системи потрібен конт-
роль за часом виконання трансакції. Якщо ліміт часу, відведений
для її виконання, перевищено, то її потрібно відмітити як таку,
що підлягає аварійному завершенню незалежно від результату
початкових кроків, а всі файли, задіяні при її виконанні, перевес-
ти в початковий стан.
Для підтримання цілісності бази даних при різного роду збоях
використовують протоколи журналізації, що вміщують інформа-
цію про всі зміни, які вносяться до бази даних під час виконання
трансакції.
В одну трансакцію доцільно об’єднувати операції, які вико-
нують логічно зв’язані між собою зміни файлів бази даних.
Наявність механізму підтримки трансакцій –– це показник рі-
вня розвинутості СКБД. Але, на жаль, не всі системи мають ме-
ханізм підтримки трансакцій, а лише ті системи, які проектува-
лись і розроблялись як розподілені СКБД для роботи в
багатокористувацькому середовищі. Підтримка трансакцій –– це
основа забезпечення цілісності БД.
З розподіленою трансакцією пов’язане таке поняття, як агент,
оскільки розподілена трансакція виконує операції з базою даних
на кількох вузлах. У такому разі говорять, що кожна трансакція
складається з кількох агентів, тобто процесів, які виконуються на
кожному вузлі за вказівкою даної трансакції. Тому система пови-
нна відстежувати агенти однієї трансакції, щоб не виникло тупи-
кових ситуацій.
У сучасних розподілених СКБД підтримку трансакцій можна
виконувати за допомогою двох методів — двофазної фіксації
трансакцій і дублювання даних. Ці два методи відрізняються тим,
що в першому випадку багато трансакцій працюють одночасно з
однією розподіленою базою даних. У другому випадку кожна
трансакція має змогу копіювати необхідні для її виконання дані з
розподіленої бази даних і працювати з нею як зі своєю особис-
тою базою даних, модифікувати ці дані, а потім після виконання
трансакції повертати у розподілену базу даних.
Розглянемо підтримку трансакцій за допомогою механізму
двофазної фіксації. При використанні цього методу трансакцію
виконують у два етапи, при цьому додержуються таких правил:
1. Якщо хоча б один вузол не може з будь-яких причин зафік-
сувати трансакцію, розподілена трансакція припиняється на всіх
інших вузлах, які беруть участь в її виконанні.
254
2. Якщо всі вузли погоджуються з фіксацією трансакції, вона
фіксується на всіх вузлах, які беруть участь в її реалізації.
Перший етап, або перша фаза, полягає в тому, що на вузлі, де
виконуватимуть трансакцію, створюють процес-координатор, а
на всіх інших вузлах –– процеси-учасники. Спочатку процес-
координатор розсилає повідомлення учасникам про початок
трансакції, і кожний з них самостійно вирішує, чи може трансак-
ція бути завершеною на даному вузлі. Учасники, готові заверши-
ти трансакцію, надсилають повідомлення на вузол-координатор
про свою готовність до завершення трансакції. Учасники, які не
зможуть зафіксувати свою частину трансакції, надсилають по-
відомлення про те, що трансакцію буде перервано. Координа-
тор, зібравши повідомлення всіх учасників, вирішує долю транс-
акції згідно з правилами. Якщо всі учасники надіслали згоду,
координатор надсилає повідомлення про глобальну фіксацію
трансакції, відповідно до якого вносяться зміни на всіх серверах.
При відмові хоча б одного з учасників приймають рішення про
припинення виконання трансакції і надсилають повідомлення
про глобальне припинення тим учасникам, які надіслали згоду на
виконання трансакції. Тим учасникам, які надіслали відмову на
виконання трансакції, повідомлення можна не надсилати, оскіль-
ки вони самі в змозі прийняти рішення згідно з правилами дво-
фазної фіксації трансакцій. Ця ситуація називається односторон-
нім припиненням виконання трансакції. У результаті на всіх
серверах трансакція завершується однаково (фіксується або пе-
реривається). Якщо всі вузли мають змогу зафіксувати трансак-
цію, то всі перетворення виконують на всіх вузлах: якщо хоча б
один вузол не в змозі зафіксувати результати трансакції, то її
припиняють на всіх вузлах і виконують відкот.
Протоколом обслуговування трансакцій передбачається обмін
повідомленнями між координатором і учасниками двічі, тому
цей механізм отримав назву двофазної фіксації трансакцій. Проте
механізм двофазного виконання трансакцій має ряд недоліків:
одночасний захват усіх ресурсів може досить надовго заблокува-
ти доступ до даних; крім того, вихід з ладу під час виконання
трансакції того вузла мережі, який заблокував ресурси, призведе
до блокування деяких даних усієї мережі доти, поки не буде від-
новлено його роботу.
Основні проблеми, які можуть виникнути при двофазній фік-
сації трансакцій –– це забезпечення коректної поведінки системи
в разі виходу з ладу сервера чи пошкодження ліній зв’язку. Тому
255
організація розподіленої системи в даному варіанті потребує до-
сить надійних і швидких ліній зв’язку.
Іншою проблемою, яка досить часто виникає при такій органі-
зації підтримування трансакцій, є вирішення конфліктів, коли
одна трансакція вступає в конфлікт з іншою з приводу доступу
до певних даних. Тому системи, що базуються на двофазній фік-
сації трансакцій, повинні мати якийсь механізм вирішення конф-
ліктів, пов’язаних з одночасним доступом.
Другим механізмом підтримки роботи трансакцій є дублюван-
ня (тиражування) даних. Суть його полягає в тому, що необхідні
для виконання трансакції дані копіюють на той сервер, де їх об-
роблятимуть. Усі зміни, внесені іншими користувачами протягом
здійснення запиту, не впливають на його виконання, оскільки
вони фіксуються в основних файлах і не відображаються в їх ко-
піях. Такий механізм дає змогу завершити трансакцію з ланцюж-
ком пошукових запитів будь-якої довжини, не порушивши логіч-
ної цілісності даних, а також є засобом уникнення конфліктів під
час роботи з базою даних. Наприклад, кілька користувачів мо-
жуть одночасно модифікувати одні й ті самі дані, не очікуючи
один одного. Але коли змінені дані будуть повернуті в основну
базу даних, то вона може мати кілька версій, тому для таких сис-
тем потрібен механізм управління версіями.
Після успішного завершення трансакції зміни вносять на всі
сервери у відповідні файли, які брали участь у виконанні транс-
акції. При цьому виникає потреба якимось чином забезпечити
синхронізацію процесу тиражування змін на різних серверах,
щоб база даних не втратила своєї цілісності. Можливі два режи-
ми тиражування змін: синхронний і асинхронний.
Синхронний режим тиражування змін –– це процес, за якого
зміни поширюються одразу по всіх вузлах після їх виконання.
Синхронний варіант внесення змін слід використовувати в тих
інформаційних системах, які повинні функціонувати в режимі
реального часу. Прикладом таких систем може бути автоматизо-
вана банківська система, в якій зміни залишку рахунків повинні
відображатись одразу, щоб не було можливості виконати з ними
якісь несанкціоновані дії. Цей варіант виконання трансакцій по-
рівняно з їх двофазною фіксацією має деякі переваги. По-перше,
запит виконують на одному сервері, при цьому не потрібно пере-
давати дані і розподіляти виконання запиту між серверами. По-
друге, хоч і потрібне тиражування змін даних, які виконала
трансакція, ці зміни вносять асинхронно щодо самої трансакції.
Отже, користувач отримує результат виконання запиту швидше,
256
оскільки йому не потрібно очікувати закінчення обміну даними
між серверами по внесенню змін. І ще одна важлива перевага
синхронного тиражування –– підтримка «дзеркальної» бази да-
них на резервному сервері, причому обидва сервери (основний і
резервний) у такому разі можуть працювати паралельно.
При асинхронному режимі зміни запам’ятовуються, а момент
їх передачі вибирають за якимось певним правилом. При такому
способі підтримки логічної цілісності розподіленої бази даних
спостерігається деяка розсинхронізація стану локальних баз да-
них, яка полягає в тому, що зміни, внесені до деяких локальних
баз, відстають за часом їх внесення одна від одної. Iнтервал часу,
через який поновлюються данi в iнших вузлах, має узгоджувати-
ся з iнтервалом розв’язання задачі в цих вузлах. Асинхронне ду-
блювання має недолiк, оскільки не забезпечує виконання проце-
дур поновлення даних у масштабi реального часу. Цей режим
можна використовувати в таких інформаційних системах, в яких
складно підтримувати постійний зв’язок між серверами, і термін
тимчасової неузгодженості стану бази даних не конфліктує з пе-
ріодичністю розв’язання задач у цій системі.
Стратегія дублювання для багатьох фiрм-виробникiв програм-
ного забезпечення стає домiнуючою в розподiлених СКБД, оскіль-
ки дозволяє виконати ту саму роботу, але з меншими затратами,
ніж при двофазній фіксації трансакцій. Можливості дублювання
мають такі системи, як Oracle 7, Informix-Online і Open-Ingres.
Порівняння двох методів підтримки трансакцій у розподіле-
них базах даних наведено в табл. 8.1.
Таблиця 8.1
ПОРІВНЯЛЬНА ТАБЛИЦЯ ДВОХ МЕТОДІВ ПІДТРИМКИ ТРАНСАКЦІЙ У
РОЗПОДІЛЕНІЙ БАЗІ ДАНИХ
257
У розподілених системах важливим моментом є проблеми
проектування розподіленої бази даних та її адміністрування. На-
самперед потрібно вибрати архітектуру розподіленої бази даних і
визначити правила доступу до даних та її адміністрування. Вста-
новлення правил адміністрування гарантує коректність роботи
системи.
Найпростіший варіант архітектури, який усуває можливість
виникнення конфліктів, полягає в тому, що серед усіх вузлів, які
зберігають одну й ту саму копію якихось даних, вибирають один,
що має право на внесення змін; інші вузли лише мають доступ до
цієї копії без права внесення змін. Цей варіант можуть вибрати
банк і його філії, коли останнім дозволяється переглянути певні
дані головної контори без права внесення змін.
Другим варіантом архітектури, який також гарантує, що
конфлікти не виникнуть, є динамічна передача права модифі-
кації від сервера до сервера. За цієї архітектури кожний еле-
мент даних має спеціальний додатковий атрибут, в якому мож-
на вказати дозвіл на внесення змін при передачі даних між
серверами. Цей варіант можна проілюструвати на прикладі ба-
зи даних торговельної організації (наприклад, замовлення на
товар було виконано, і він надійшов на склад). Інформацію про
це можна передати на сервер відділу продажу з правом вне-
сення змін у ці дані.
Слід зазначити, що тиражування даних має великі можливос-
ті, але при цьому слід ураховувати специфіку предметної області,
для якої створюється система, і мати повне уявлення про всі мо-
жливі варіанти поведінки системи на етапі її проектування.
Обидва механізми підтримки трансакцій є коректними, кож-
ний з них має певні переваги й недоліки і може використовува-
тися залежно від специфіки задач. Тому в СКБД обидва варіанти
повинні підтримуватись.
259
9 Pоздiл
КОНЦЕПЦІЯ ПОБУДОВИ СХОВИЩ ДАНИХ
260
Зауважимо, що з позицій інформаційних процесів аналітична
система є вторинною щодо трансакційної системи, оскільки всі
дані, що використовуються для аналізу, необхідно спочатку на-
громадити і, за можливістю, частково обробити, чим і займають-
ся різні трансакційні системи, і лише потім їх проаналізувати.
Аналітичні задачі залежно від концепції аналізу можна поді-
лити на дві групи:
задачі статичного аналізу;
задачі оперативного аналізу.
Ці дві групи аналітичних задач суттєво відрізняються між со-
бою. До першої групи належать регламентні аналітичні задачі, які
вирішуються з певною, заздалегідь відомою періодичністю. Ця
група задач характеризується тим, що вони реалізуються на основі
традиційної технології їх автоматизації. При цій технології споча-
тку формулюється технічне завдання, яке передається програмісту
на програмування. Програміст виконує програмування і тестуван-
ня програми і лише після цього отримує результат у вигляді рег-
ламентованих, тобто чітко визначених форм звітів. За такого під-
ходу виникає велика затримка в часі між моментом виникнення
потреби в аналізі та одержанням його результатів. Дуже часто
отриманий результат аналізу, який був потрібний аналітику, запіз-
нюється і рішення приймається без його врахування. Тому для
прийняття оперативних рішень такий вид аналізу не придатний.
До другої групи належать нерегламентні аналітичні задачі, які
вирішуються при виникненні потреби в бізнес-аналізі особи, що
приймає рішення. Тобто періодичність і представлення результа-
тів вирішення цих задач на може бути регламентована. Ці задачі
вирішуються за запитами, структура та види яких можуть зміню-
ватись залежно від бізнес-потреб.
Потреба в оперативному багатоаспектному бізнес-аналізі при-
вела до виникнення нової технології вирішення аналітичних за-
дач, яка дістала назву OLAP (On-Line Analytical Processing). Ця
технологія призначена забезпечувати аналітиків динамічним ба-
гатовимірним аналізом консолідованих даних.
Вирішення аналітичних задач не може обмежуватись лише да-
ними трансакційних систем. Для порівняльного аналізу та вияв-
лення тенденцій потрібно залучати великі обсяги зовнішніх даних
з різних статистичних збірників електронних та інших джерел.
Самі аналітичні запити складніші, ніж запити, які формулюються в
трансакційних системах. Так, одним із запитів до OLTP-системи
буде отримання інформації про суму коштів на рахунка конкрет-
ного клієнта. В аналітичній системі запит може мати таке форму-
261
лювання: «Знайти середнє значення проміжку часу між виставлен-
ням рахунка та сплатою його клієнтом у поточному і попередньо-
му роках у розрізі різних груп клієнтів». Виконати такий запит у
термінах мови SQL на основі традиційних баз даних дуже складно.
Для того, щоб реалізовувати оперативним чином аналітичні
запити, дані повинні бути організовані відмінним від прийнятого
в OLTP-системах способом. Це пов’язано з такими факторами:
по-перше, для реалізації аналітичних запитів потрібна оброб-
ка великих обсягів інформації. У БД дані зберігаються в нормалі-
зованому вигляді: чим більша ступінь нормалізації, тим більше в
реляційній базі даних таблиць, тим повільніше виконуватиметься
аналіз, бо потрібно здійснити багато операцій об’єднання таблиць;
по-друге, виконання деяких аналітичних запитів, пов’язаних
з виявленням тенденцій і прогнозуванням, потребує впорядкова-
них даних. Реляційна модель не передбачає певного порядку в
записах таблиці.
Тому виконання аналітичних запитів на традиційній базі даних
нераціонально, а іноді неможливе. Зручним способом зберігання
даних для вирішення оперативних аналітичних задач є різновид
баз даних, який носить назву сховище даних (Data Warehouse).
Доцільно провести певні розмежування та з’ясувати взаємо-
зв’язки OLAP-технологій і сховищ даних. Це необхідно зробити
тому, що іноді ці поняття ототожнюються. Хоча ці дві концепції
дуже часто технологічно поєднуються, вони можуть бути жод-
ним чином не пов’язані між собою. Тобто сховища даних як дже-
рело даних можуть використовуватись не лише для оперативних,
а й для регламентних аналітичних звітів. У той же час OLAP мо-
же черпати дані для оперативного аналізу не тільки зі сховищ да-
них, а також з традиційних баз даних.
262
Реалізація аналітичних звітів на основі традиційних баз да-
них, які містять оперативну інформацію, займає дуже багато ча-
су. Це пов’язано з тим, що для аналітичних звітів переважно по-
трібні не первинні оперативні дані, а певним чином узагальнені,
тобто агреговані дані. Причому витрати часу, необхідні на фор-
мування аналітичних звітів, невпинно зростають по мірі зростан-
ня обсягів оперативної інформації в базі даних. Це призводить до
затримок при реалізації аналітичних запитів.
Дуже часто на підприємстві чи в організації функціонує кі-
лька OLTP-систем, кожна з яких має свою окрему базу даних.
Уних використовуються різні структури даних, способи кодуван-
ня, одиниці вимірювання. Побудова зведеного аналітичного за-
питу на основі кількох баз даних є дуже складною проблемою,
яка спочатку потребує вирішення проблеми узгодженості даних,
що зберігаються в різних базах даних.
Для вирішення оперативних аналітичних задач недостатньо
інформації, що зберігається в базі даних. Необхідні архівні дані, що
містять результати роботи за попередні календарні періоди. Крім
того, дуже часто виникає потреба в зовнішніх джерелах (дані про
клієнтів, конкурентів, політичні, соціологічні, демографічні та ін.).
Основні відмінності трансакційних систем від аналітичних,
що створили передумови для розробки концепції сховищ даних,
згруповані в табл. 9.1.
Таблиця 9.1
ПОРІВНЯЛЬНІ ХАРАКТЕРИСТИКИ ТРАНСАКЦІЙНИХ ТА АНАЛІТИЧНИХ
СИСТЕМ
263
Оперативні БД можуть містити Сховище даних повинно містити
семантично еквівалентну інфо- узгоджену інформацію, що пред-
рмацію, представлену в різних ставлена в однакових форматах і
форматах, яка не завжди може максимально відповідає опера-
Вигляд даних бути узгодженою між собою тивній БД. Тобто сховища даних
(через використання різних повинно включати компоненту
технологій і різних СКДБ) для приведення до єдиного ви-
гляду інформації з різних дже-
рел
Закінчення табл. 9.1
Ознаки Трансакційна система (ТС) Аналітична система (АС)
264
Перелічені вище фактори створили передумови для розробки
різновиду баз даних, що дістала назву сховища даних.
Сховище даних — це інтегрований накопичувач даних, які
збираються з різних систем та джерел і використовуються
для бізнес-аналізу та прийняття обґрунтованих стратегічних
рішень.
OLTP-звіти
Бази
даних OLTP-системи
Вихідні
файли
Сховище
Архіви даних
265
Предметна орієнтація. Дані в сховищі даних організовані від-
повідно до основних напрямів діяльності підприємства чи фірми
(замовники, продажі, склад і т. п.). Це — відмінність сховищ даних
від організації оперативної БД, в якій дані організуються відповід-
но до процесів (відвантаження товару, виписка рахунків і т. п.).
Предметна організація даних не лише спрощує проведення аналізу,
але й значно прискорює виконання аналітичних розрахунків. Тоб-
то сховища орієнтовані на бізнес-поняття, а не на бізнес-процеси.
Інтегрованість. Дані у сховище надходять з різних джерел, де
вони можуть мати різні імена, формати, одиниці вимірювання і
способи кодування. Перш ніж завантажити дані до сховища, вони
перевіряються, певним чином відбираються, приводяться до одно-
го єдиного способу кодування, виду та формату і в необхідній мірі
агрегуються (тобто обраховуються сумарні показники). Зцього
моменту вони представляються користувачеві у вигляді єдиного
інформаційного простору, які набагато простіше аналізувати.
Якщо, наприклад, у чотирьох різних базах даних код товару
кодувався чотирма різними способами, то в сховищі даних буде
використана єдина система кодування.
Підтримка хронології. Дані в сховищі даних зберігаються у
вигляді «історичних пластів», кожен з яких характеризує певний
календарний період. Це дозволяє проводити аналіз зміни показ-
ників у часі. В OLTP-системах істинність даних гарантована
тільки в момент читання, оскільки вже в наступну мить вони мо-
жуть змінитися внаслідок чергової трансакції. Важливою відмін-
ністю сховищ від OLTP-систем є те, що дані в них зберігають
свою істинність у будь-який момент процесу читання.
В OLTP-системах інформація часто модифікується як резуль-
тат виконання яких-небудь трансакцій. Часова інваріантність да-
них у сховищі даних досягається за рахунок введення полів, що
характеризують час (день, тиждень, місяць) у ключі таблиць.
УСД містяться начебто моментальні знімки даних. Кожний еле-
мент у своєму ключі явно або непрямо зберігає часовий пара-
метр, наприклад день, місяць або рік.
Незмінність. Дані сховища даних, що характеризують кожен
«історичний пласт», не можуть змінюватись. Це теж є суттєвою
відмінністю даних, що зберігаються у сховищі даних, від опера-
тивних даних. Останні дані в базі даних постійно змінюються.
Зданими сховища даних можливі лише операції їх первинного
завантаження, пошуку та читання.
Якщо при створенні OLTP-систем розробники повинні врахо-
вувати такі моменти, як відкоти трансакцій після збою сервера,
266
боротьба із взаємним блокуванням процесів (deadlocks), збере-
ження цілісності даних, то для сховища даних ці проблеми не так
актуальні. Перед розробниками стоять інші задачі, пов’язані, на-
приклад, із забезпеченням високої швидкості доступу до даних.
Мінімальна надлишковість. Незважаючи на те, що інформація
до сховищ даних завантажується з БД OLTP-систем, це не при-
зводить до надлишковості даних. Мінімум надлишковості даних
забезпечується тим, що перш ніж завантажувати дані до сховищ,
вони фільтруються і певним чином очищаються від тих даних,
які не потрібні і не можуть бути використаними в бізнес-аналізі.
267
Джерела даних
Дані Зовнішні
OLTP-систем дані
Менеджер завантаження
Предметні Мета-
дані дані
Менеджер
сховища даних
Детальні Репози-
дані тарій
Агреговані
дані
СКБД
Менеджер запитів
268
ном відсортовані та згруповані дані, необхідні для виконання за-
питів.
Ця частина сховища є тимчасовою і змінною, оскільки вона
постійно модифікується у відповідь на зміни запитів. Необхід-
ність цієї компоненти пов’язана з підвищенням продуктивності
виконання запитів. Узагальнені дані поновлюються по мірі над-
ходження нових даних до системи. Частково узагальнені дані —
це результат певного узагальнення та агрегації детальних даних.
Глибоко узагальнені дані отримуються на основі узагальнення част-
ково узагальнених даних.
Репозитарій метаданих — це інформація про дані, що збері-
гаються в СД.
Структура метаданих може відрізнятися залежно від їх при-
значення. Метадані використовуються для таких основних цілей:
Вибірка і завантаження даних. Метадані містять інформацію
про джерела даних, способи та періодичність їх вибірки і заван-
таження в СД.
Обслуговування сховища. Метадані використовуються для ав-
томатизації процедур узагальнення даних.
Обслуговування запитів. Метадані використовуються для ви-
значення переліку таблиць для виконання запитів.
Менеджер запитів — це складова сховища, яка виконує опе-
рації, пов’язані з управлінням запитів користувачів. Ця компоне-
нта реалізується, як правило, на базі СКБД, що підтримує схови-
ще даних, а також сховища даних і програм власної розробки.
Користувачі спілкуються і працюють зі сховищем за допомо-
гою спеціальних засобів. До них можуть бути віднесені OLAP-
інструменти, засоби, що підтримують технологію Data Mining, та
різні засоби доступу кінцевого користувача: створення звітів і за-
питів; інструмент що належать до систем підтримки прийняття
рішень (Executive Information System, EIS).
При визначенні програмно-технологічної архітектури схови-
ща потрібно мати на увазі, що система прийняття рішень, на які б
візуальні засоби вона не спиралася, повинна надавати користува-
чеві можливість деталізації інформації. Керівник підприємства
або фірми, отримавши інтегроване представлення даних і висно-
вки, зроблені на їх основі, може зажадати детальніші дані, що
уточнюють джерело даних або причини висновків. З погляду
проектувальника сховищ даних це означає, що необхідно забез-
печити його взаємодію в деяких випадках з БД OLTP-систем.
269
9.5. Архітектура сховищ даних
270
та завантаження даних, відомості про структуру бізнес-понять та
інші дані. Архітектурно-віртуальне сховище даних складається з
оперативних систем та системи управління запитами, що зберігає
свій репозиторій метаданих (рис. 9.3).
Успадкування Управління
Управління
Успадковані запитамиіі
запитами
системи-джерела
системи-джерела Користувач
даних репозитарій
репозитарій
даних метаданих
метаданих
Успадковані
системи-джерела
даних
Вибірка,
перетворення
та інтеграція
Користувач
273
Успадкування
Успадковані
системи-джерела
системи-джерела
даних даних
Вибірка, пертворення
та інтеграція
Управління запитами
Користувач
274
Успадковані систе-
ми-джерела даних
Вибірка і
перетворення
Монолітне
сховище
Проміжне Проміжне
сховище сховище
Предметна Предметна
область 1 Користувач область 2
(кіоск 1) (кіоск 2)
Успадковані
Успадкування
системи-джерела
системи-джерела
даних
даних
Вибірка,
пертворення
та інтеграція
Користувач
275
При використанні цієї архітектури процес семантичної інтег-
рації і проміжне сховище заміняються стандартним архівом. Стан-
дартний архів — це стаціонарне інтегроване сховище, що вміщує
інформацію для всіх СППР, і яке можна використовувати для за-
повнення сховищ окремих предметних областей і вітрин даних.
Недоліком цього типу архітектури є високі витрати на пам’ять та
підвищені вимоги до супроводження. Великі витрати пам’яті
пов’язані з тим, що дані у стандартному архіві повинні зберіга-
тись в такому вигляді, щоб легко забезпечувати обробку опера-
тивних деталізованих запитів до сховища даних.
Ще одним суттєвим недоліком архітектури цього типу є від-
сутність інтеграції окремих предметних областей. Тому вклю-
чення додаткового блоку управління запитами (рис. 9.8) підви-
щує зручність використання сховищ даних при виконанні
інтегрованих запитів, для реалізації яких потрібні дані з кількох
предметних областей.
Успадковані
Успадкування
системи-джерела
системи-джерела
даних
даних
Вибірка,
пертворення
та інтеграція
Управління
запитами
Користувач
276
Архітектури монолітного сховища і стандартний архів даних є
найбільш придатними для побудови корпоративних сховищ да-
них, оскільки можуть задовольнити потреби в інформації всіх
користувачів-аналітиків та вищий менеджмент організації. Най-
доцільніше користуватись архітектурою на основі стандартного
архіву даних. Ця архітектура характеризується масштабованістю,
а заповнення сховищ окремих предметних областей виконується
зі стандартного архіву, дані в якому перебувають уже в очище-
ному та узгодженому стані, що забезпечує якість інформації та
ефективність рішень, які приймаються на основі її аналізу.
277
10 Pоздiл
МОДЕЛІ СХОВИЩ ДАНИХ ТА ОСОБЛИВОСТІ
ЇХ ПРОЕКТУВАННЯ
Період
Обсяги
продажів
Товар
278
ускладнення вмісту комірки — наприклад, у комірці розта-
шовуються не лише обсяги продаж, а й чистий прибуток і зали-
шок на складі. У такому разі в комірці буде кілька значень змін-
них, що аналізуватимуться.
Приклад куба, який призначений для аналізу прибутку від ре-
алізації продукції, наведено на рис. 10.2.
Прибуток
Рис. 10.2. Приклад куба для аналізу прибутку від реалізації продук-
ції
279
Показники, або змінні, складають, як правило, основний вміст
сховища даних і можуть бути представленими:
числовими характеристиками факту чи події, що відбували-
ся на об’єкті управління, для якого створюється сховище (напри-
клад, обсяги чи дохід від продажів);
формулами, що, як правило, являють собою прості функції
агрегування показників (змінних) для отримання узагальнених
даних (наприклад, сума, яка консолідує значення змінної за кіль-
ка календарних періодів в одне підсумкове значення).
Вимір — це множина однотипних даних, що утворюють од-
ну з граней куба і характеризують якусь ознаку показників,
котрі знаходяться в комірці багатовимірного куба.
281
робів, проданих протягом останнього року, підсумувавши дані
про обсяги продажів за кожен місяць. Якщо необхідно з’ясувати,
який з регіональних відділів продажів показав кращі результати,
можна виконати пошук по регіонах і знайти максимальну вели-
чину обсягу продажів у межах регіону.
MOLAP-системи досить чутливі до обсягів даних, що збері-
гаються.
Проте багатовимірна модель має серйозні недоліки, які галь-
мують її широке застосування. У багатовимірній моделі заздале-
гіть резервується місце для всіх значень, навіть якщо частина з
них відсутня. Тобто не всі комірки багатовимірного куба можуть
бути заповнені конкретними даними. Другий недолік полягає в
тому, що вибір високого рівня деталізації при реалізації гіперку-
ба може дуже збільшити розмір у багатовимірного сховища. Че-
рез це поширені на ринку багатовимірні СКБД не в змозі оперу-
вати даними великого обсягу. Вони, як правило, обмежуються
10—20 гігабайтами. Багатовимірну модель доцільно використо-
вувати тоді, коли обсяги інформації, яку потрібно зберігати, не-
великі, і гіперкуб має стабільний набір вимірів.
Таблиця
«КАЛЕНДАР»
Таблиця «ВИБІР» Дата
Код вибору Тиждень
Назва вибору Таблиця «ПРОДАЖІ» Місяць
Одиниця вимірювання Дата продажу Квартал
Код вибору Рік
Код споживача
Код регіону
Кількість
Таблиця «РЕГІОН» Ціна за одиницю
Код регіону Знижка Таблиця
Назва регіону Прибуток за одиницю «СПОЖИВАЧ»
Код району Код споживача
Назва району Назва
Код населеного пункту Адреса
Назва населеного Телефон
пункту E-mail
Район
Район
Населений
Населений
пункт
пункт
283
10.3. Відмінності проектування сховищ даних від
проектування баз даних
285
ції, тобто про ту частину продукції, яка була не лише відвантаже-
на, але й оплачена, тобто за яку надійшли виписки про перераху-
вання коштів на рахунок у банку. Таким чином, у сховищі даних
повинні зберігатись не первинні оперативні дані, арезультати їх
певної обробки, які виконуються при вирішенні задачі «Автомати-
зація обліку реалізації готової продукції». Тобто використання ме-
тоду реконструкції потребує глибоких знань предметної області та
специфіки і особливостей функціонуючих OLTP-систем.
Крім того, суттєвим недоліком зазначеного підходу до проек-
тування сховищ даних є те, що він орієнтується на існуючі дже-
рела OLTP-систем і не враховує зовнішніх даних, які можуть ви-
явитись досить суттєвими для бізнес-аналізу, який потрібно
виконувати в даній предметній області.
Проектування за шаблоном — це такий підхід до розробки
сховища даних, коли за основу для проектування береться існую-
ча, функціонуюча модель сховища даних у подібній предметній
області. В цю модель вносяться зміни, що відображають специ-
фіку конкретного об’єкта управління. Кращим варіантом цього
підходу є придбання стандартної галузевої моделі побудови схо-
вища даних, якщо така є на підприємствах галузі.
Проектування під замовлення — це проектування з «чисто-
го аркуша». Цей підхід ігнорує врахування існуючих галузевих
моделей сховищ даних і моделей OLTP-систем. При цьому варіан-
ті проектування розробники цілком зосереджують свою увагу на
потребах користувачів у результатах бізнес-аналізу та особливос-
тях предметної області, що досліджується. Тобто при цьому під-
ході акцент робиться на дослідженні бізнес-вимог до сховища з
боку користувачів. Тому цей підхід ще можна назвати «від запиту».
Проте цей підхід теж має недоліки, пов’язані з тим, що корис-
тувач, висуваючи вимоги, керується поточними потребами і не
враховує перспективи розвитку. Тобто важко визначитись з пов-
нотою та ефективним складом вимог до сховища з боку користу-
вачів. Крім того, користувач може поставити такі вимоги, які не
забезпечені потрібними даними.
Враховуючи недоліки кожного з підходів до проектування
сховищ даних, можна запропонувати комбінований підхід, який
включає елементи двох підходів до проектування сховищ да-
них— «від запиту» та «від джерела». Це дасть змогу врахувати ті
дані, які накопичені в трансакційних системах, шляхом їх певної
реконструкції та поповнити сховище даних недостатніми даними,
які потрібні з позицій користувача для проведення бізнес-аналізу.
Схема взаємодії цих двох підходів наведена на рис. 10.5.
286
Вимоги користувачів
Проведення
Від реконструйованих даних Від
запиту даними, що необхідні для джерела
бізнес-аналізу
287
для якої будується сховище даних, і визначаються основні бізнес-
події, які необхідно відобразити в сховищі як факти, а вже потім
з’ясовуються виміри та змінні, що характеризуватимуть ці факти.
Підхід «від джерела». Визначаються виміри, далі змінні, а
вже потім факти. Цей підхід називається орієнтованим на джере-
ло даних. Тобто при проектуванні сховища даних відштовхує-
мось від існуючих моделей баз даних, які будуть виступати осно-
вним джерелом наповнення даними сховища. На основі аналізу
існуючих баз даних визначаємо виміри сховища даних та змінні,
що їх характеризують, а потім виконуємо групування їх у факти.
У реальній дійсності при проектуванні сховищ даних може бу-
ти використана комбінація цих усіх підходів. Оскільки йдеться про
визначення кандидатів на виміри, змінні та факти, то, наприклад,
спочатку може бути застосовано підхід «від бізнесу». Використо-
вуючи його, вивчається предметна область і з’ясовуються бізнес-
події, які необхідно відображати у вигляді фактів, а потім визна-
чаються виміри та змінні, що їх характеризують. Далі проводиться
опитування майбутніх користувачів і виявляється перелік аналіти-
чних запитів, які можуть бути поставленими до майбутнього схо-
вища. На основі аналізу запитів користувачів проводиться уточ-
нення фактів, змінних та вимірів, які були отримані при вивченні
предметної області. І нарешті, отриманий перелік кандидатів на
змінні факти та виміри уточнюється з використанням підходу «від
джерела». При цьому з’ясовується, які дані є в існуючих базах да-
них, а які необхідно буде поповнити із зовнішніх джерел даних.
288
Змінні поділяються на три категорії: повністю адитивні, не-
адитивні та напівадитивні.
Адитивні змінні можуть підсумовуватися по всіх вимірах. На-
приклад, кількість проданих виробів є аддитивий факт, оскільки
шляхом сумування можна визначити, скільки виробів продано на
минулому тижні (за часом); скільки виробів продано по регіонах;
скільки продано кожному споживачу. В сховищах даних надаєть-
ся перевага адитивним змінним, оскільки, підсумовуючи їх, мож-
на отримати компактні набори результатів. Тобто бажаним для
змінної є її повна адитивність.
Деякі змінні є напівадитивними. Напівадитивна змінна — це
показник, який агрегується лише за певними вимірами. Тобто на-
півадитивну змінну можна коректно підсумовувати по одних ви-
мірах, але не можна — по інших. Наприклад, складські запаси
доцільно підсумовувати по продуктах або по регіонах, але не за
часом. Напівадитивні факти не можна підсумовувати по всіх ви-
мірах, але їх можна оцінювати іншим способом. Наприклад, ви-
значити середню величину складських запасів, зміни якої дореч-
но аналізувати в часі, або максимальний і мінімальний рівні
запасів і деякі інші статистичні показники.
І нарешті, неадитивні змінні. Це змінні, які неможливо підсу-
мовувати по жодному виміру. Приклад числової неадитивної
змінної — табельний номер співробітника. Неадитивні змінні не
можна підсумовувати, але їх можна полічити, тому вони вимірні.
Неадитивні змінні частіше групуються з вимірами.
Кожна змінна повинна мати свою семантичну інтерпретацію у
відповідних бізнес-термінах. По кожній змінній необхідно визна-
чити та ідентифікувати джерело даних, проте не по кожній змін-
ній можна однозначно вказати єдине джерело даних. Іноді змінні
отримуються розрахунковим шляхом на основі обчислень за
якимись формулами. У такому разі необхідно описати цю фор-
мулу та вказати, які дані і звідки потрібно взяти для проведення
необхідних обчислень.
По кожній змінній необхідно описати її використання в аналізі
даних. Змінні при аналізі можуть брати участь в обчисленнях, які
бувають простими або складними. Так, запит «Показати список
значень певної змінної для вибраних фактів», є простим, запит
«Визначити чистий прибуток від реалізації продукції» — склад-
ним. В останньому змінну чистий прибуток необхідно обчислю-
вати за певною формулою. По кожному обчисленні потрібно ма-
ти формулу та провести аналіз, який має визначити, чи включає
модель усі елементи даних, необхідних для обчислення.
289
10.5.2. Визначення ступеня деталізації змінних
290
зу, а й на обсяги сховища даних. Тобто, чим глибший ступінь
деталізації змінних, тим більші ресурси необхідно витрачати на
створення сховища даних. Звичайно є різниця, чи зберігати в
сховищі узагальнені дані про випуск продукції за місяць, чи за
кожен день.
Іноді вибір ступеня деталізації визначається інтенсивністю
змін. Так, для аналізу заробітної плати співробітників протягом
тривалого періоду не варто брати до уваги такий час, як день або
тиждень, якщо проміжок оплата праці співробітників перегляда-
ється раз на рік.
Визначивши ступінь деталізації змінної, можна визначити ви-
міри.
291
У межах одного виміру може бути певна ієрархія. Наприклад,
для виміру «Географія» типовою ієрархією буде: Континенти,
Країни, Регіони, Міста. Кожен рівень містить певну сукупність
складових елементів. Наприклад, «Країна»= {Україна, Росія,
США і т. д.}, «Місто» = {Київ, Одеса, Львів, Суми і т. д.}. Члени
певного виміру пов’язані між собою родо-видовими, стосунками
спадковості (батько-нащадок). Наприклад, міста Київ, Одеса,
Львів, Суми виступають нащадками стосовно України. Один і
той самий елемент виміру може в одному випадку виступати як
нащадок, а в іншому — як батько. По одному і тому ж виміру до-
пускається наявність кількох ієрархій. Наприклад, для виміру
«Час» такими ієрархіями можуть бути: рік, тиждень, день і рік,
квартал, місяць, день.
Відображення ієрархії вимірів уявляється деревоподібним
графом, який має певну кількість підпорядкованих вузлів вершин
і дуг. Вузли дерева — це виміри, а дуги — зв’язки між ними. Іє-
рархія вимірів може бути збалансованою та незбалансованою.
Збалансована (balanced) ієрархія вимірів має однакову висоту
по кожній гілці дерева, а кожний підпорядкований вузол має ли-
ше одного батька. Прикладом збалансованої ієрархії вимірів мо-
же бути відношення між календарними періодами. На рис. 10.6
наведено приклад виміру підрозділ корпорації, що має збалансо-
вану структуру.
Назвакорпорації
Назва корпорації
292
Є ще також різновид ієрархії, проміжний між збалансованою
та збалансованою ієрархією, яку називають «нерівною» (ragged).
«Нерівна» ієрархія характерна тим, що не всі її нащадки мають
своїх батьків на рівні, який безпосередньо є вищим. Напри-
клад, адміністративно-територіальний поділ у різних країнах
здійснюється за різними правилами: в деяких країнах є поділ
на регіони, штати, округи, а в деяких досить вказати назву на-
селеного пункту, а відомості про штат чи регіон будуть відсутні
(рис. 10.7).
Адміністративно-територіальний
Адміністративно-територіаль поділ
ний поділ
294
ризують його виміри. Ключі, що генеруються системою, іноді на-
зиваються сурогатними ключами. Існує кілька підходів до ство-
рення таких ключів.
Новий ключ генерується системою і складається з ключа си-
стеми та ключа джерела. Цей підхід виключає можливість збігу
ключів різних джерел, а також дає можливість відстежити, з яких
джерел дані надійшли в сховище. Створення таким способом
ключів сховища не вирішує проблеми унікальності при повтор-
ному використанні ключів з оперативних систем.
Новий ключ генерується системою і складається з ключа си-
стеми, ключа джерела та мітки календарного періоду заванта-
ження даних у сховище даних. Цей підхід дозволяє створити дій-
сно унікальний ключ за рахунок фіксації періоду завантаження
даних, але довжина ключа при цьому може бути досить значною,
що вплине на швидкість виконання запитів при об’єднанні різних
таблиць за ключовими полями.
Новий ключ генерується системою за допомогою спеціаль-
ного алгоритму. Перевага такого підходу до створення ключів
полягає в тому, що ключ можна зробити мінімальним за довжи-
ною, що зекономить пам’ять. Але такі ключі потребують спеціа-
льної інтерпретації, тобто встановлення відповідності між клю-
чами систем-джерел та ключами сховища даних.
Слід зауважити, що ключі, які генеруються системою, можуть
створити додаткові труднощі при завантаженні даних до сховища
даних. Ключі у сховищі ніколи не повинні змінюватись. Вибір
конкретного способу створення ключа залежить від кількості си-
стем-джерел і від вимог щодо продуктивності сховища. Тобто
конкретний спосіб створення ключів визначається проектуваль-
никами сховища даних.
При проектуванні слід враховувати, що факти найчастіше бу-
вають такими.
1. Факти, основані на окремих подіях, що відображають ре-
зультати виконання певних трансакцій (Transaсtion facts). Напри-
клад, отримання грошей з рахунку банку за допомогою банкомата.
2. Факти, що відображають стан об’єкта на певний момент
часу, які є його «моментальним фото» (Snapshot facts). Типовим
прикладом такого факту можуть бути залишки на рахунках банку
станом на кінець дня чи місяця.
3. Сукупні «моментальні фото» (Cumulative snapshot) відо-
бражають інформацію про діяльність організації за певний про-
міжок часу. Наприклад, сукупний обсяг продажу на поточну да-
ту, включаючи попередні місяці.
295
4. Факти, що відображають дані певного документа (Line-
item facts) — це факти, які ґрунтуються на даних певного доку-
мента. Наприклад, факти такого документа, як кредитний дого-
вір, містить детальну інформацію цього документа: номер дого-
вору, вид кредиту, код клієнта, валюту, дата початку дії
договору, дата закінчення дії договору, сума кредиту та ін.
5. Факти, що фіксують події чи стан об’єкта (Event or state
facts). Ці факти лише фіксують певну подію чи певний стан об’єктів
без жодних коментарів і подробиць. Наприклад, факт погашення
кредиту чи факт непогашення кредиту без жодних коментарів.
Відмінність факту, що представляє певну бізнес-подію, від
факту, що являє собою якийсь випадок або фіксує стан якогось
об’єкта, є дещо незрозумілою, тому дамо пояснення на конкрет-
ному прикладі. Факт ПРОДАЖ є результат певної бізнес-
трансакції і для її аналізу потрібні виміри, що її характеризують.
Аналіз змін показників факту ПРОДАЖ актуальний досить дов-
гий період, оскільки можна виконувати динамічний аналіз змін
обсягів продажів за останній рік або використовувати їх для про-
гнозування майбутніх продажів і т.д. Прикладом факту, що пред-
ставляє стан об’єкта, є ЗАЛИШОК. Показники, що характеризу-
ють залишки, є актуальними лише на поточний конкретний
момент часу. Наприклад, при аналізі забезпеченості виробництва
виробами менеджеру потрібні фактичні дані про стан залишків на
поточний момент. Його не будуть цікавити дані про стан залишків
за попередній місяць. Тому тривалість зберігання даних у сховищі
даних залежить від того, які факти вони характеризують. Якщо це
факти типу Event or state facts, то вони можуть зберігатись не дуже
довго і весь час повинні оновлюватися новими даними. Напри-
клад, інформація про стан залишків має поновлюватися щоденно.
Якщо це факти, що входять до 1—3 груп, то вони можуть зберіга-
тися досить довго у сховищі, утворюючи так звані історичні плас-
ти.
296
чів можна умовно розбити на дві групи: вимоги, орієнтовані на
процес, та інформаційно орієнтовані вимоги.
Вимоги, орієнтовані на процес, пов’язані з процесами обробки
даних при виконанні бізнес-аналізу. При вивченні цих вимог
з’ясовуються основні види перетворень, групувань та обчислень, які
необхідно виконувати з даними при обчисленні агрегованих даних.
Інформаційно орієнтовані вимоги дозволяють визначитись з
основними запити та основними бізнес-цілями побудови сховища
даних. Аналіз цієї групи вимог дає змогу встановити одну або кіль-
ка цілей створення сховища, а також ідентифікувати основні біз-
нес-події та показники, які будуть аналізуватися кінцевим корис-
тувачем. Наприклад, бізнес-цілі можуть визначатися таким чином:
«Метою створення сховища даних є аналіз витрат на ВИ-
ПУСК ПРОДУКЦІЇ та доходу від її ЗБУТУ СПОЖИВАЧАМ».
Отже, основними бізнес-подіями, що аналізуватимуться у
сховищі, виступають випуск продукції та її збут, які будуть пред-
ставлені в сховищі даних показниками виробничі витрати і дохід
від збуту з вимірами продукція і споживач.
Вивчивши вимоги до сховища даних кінцевих користувачів,
необхідно сформулювати основні бізнес-запити до сховища, що
проектується. Бізнес-запити являють собою інформаційні потре-
би кінцевих користувачів в аналітичній інформації. При опиту-
ванні користувачів необхідно визначити основні типи запитів.
Найпоширенішими є такі:
запити перевірки, результат виконання яких підтверджує
якусь бізнес-подію. Наприклад, з’ясування факту надходження
коштів від певного споживача за певний товар;
запити порівняльного аналізу, результат виконання яких по-
рівнює дані про якісь факти. Наприклад, порівняння даних про
збут певного виду продукції за останній місяць з даними попере-
днього місяця;
запити тенденції, результати виконання яких аналізують та
виявляють тенденції у зміні певних фактів у часі. Наприклад, як
змінювався дохід від реалізації певного виду продукції за останні
12 місяців;
запити для аналізу відношень, ранжування та кластериза-
ції, результати виконання яких дозволяє певним чином класифі-
кувати та ранжувати дані про певні бізнес-події. Наприклад, ран-
жування кращих споживачів продукції за обсягами продажів
протягом останнього року;
запити статистичного аналізу дозволяють провести стати-
стичний аналіз фактів, що характеризують певні бізнес-події. На-
297
приклад, обчислення середнього (мінімального, максимального)
доходу від реалізації продукції по певному регіону.
При формулюванні запиту необхідно описувати його так, щоб
можна було визначити основні змінні, які підлягають аналізу та
виміри, за якими будуть формуватися аналітичні звіти.
З’ясувавши всі запити користувачів до сховища даних, необхідно
побудувати таблицю взаємозв’язків вимірів та змінних із запита-
ми.
Розглянемо це на конкретному прикладі. Нехай дослідження
предметної області та опитування користувачів дозволило вияви-
ти такі запити до сховища даних:
1. Проаналізувати середні залишки кожної моделі Виробу в
розрізі Виробників за даний місяць.
2. Проаналізувати підсумкові витрати та дохід на поточну
дату від реалізації кожної моделі Виробу в розрізі Магазинів.
3. Надати підсумкові дані на поточну дату про витрати та
дохід, отриманий від реалізації кожної моделі Виробу в розрізі
Регіонів і Виробників.
4. Проаналізувати за останній тиждень (місяць) у розрізі Ма-
газинів відсотки товарів, на які можна встановити знижку та тих
по яких фактично було проведено уцінку.
5. Проаналізувати відсотки продажів за минулий місяць по
кожній моделі Виробу через оптову, роздрібну торгівлю та через
столи замовлень.
6. Які Моделі та Вироби не були продані минулого тижня (мі-
сяця)?
7. Проранжувати моделі Виробів, які були продані минулого
місяці за обсягами продажів, витратами та отриманим доходом.
8. Які Магазини не мали жодних продажів певної моделі Ви-
робу за минулий місяць?
9. По кожній з моделей Виробів виявити ті Магазини, в яких
не було продажів за минулий місяць.
Первинний аналіз запитів дозволив виокремити певну сукуп-
ність вимірів та змінних і згрупувати їх в табл. 10.1.
Таблиця 10.1
ТАБЛИЦЯ СПІВВІДНОШЕНЬ ВИМІРІВ І ПОКАЗНИКІВ
Номер запиту
Виміри та змінні
1 2 3 4 5 6 7 8 9
Виміри
298
Магазини + + + +
Виробники + +
Вироби + + + + + + + +
Закінчення табл. 10.1
Номер запиту
Виміри та змінні
1 2 3 4 5 6 7 8 9
Змінні
Середні залишки +
Витрати + + +
Дохід + + +
Кількість продано +
Відсоток товарів, що мають +
право на знижки
Відсоток товарів, по яких бу- +
ло проведено знижки
Відсоток роздрібних продажів +
Відсоток продажів через стіл +
замовлень
Відсоток оптових продажів +
299
відних фактів, то вони б створили факти, що не мають змінних.
Факти, що не мають змінних, називаються недостатніми, або
неповними. Вони фіксують лише факт певної події, не описуючи
її конкретними даними.
Після виокремлення фактів необхідно провести уточнення
структури початкових фактів шляхом оцінки адитивності змін-
них та визначення ступеня деталізації вимірів. Аналізуючи
факт1, можна виявити таку проблему деталізації. Середні залиш-
ки є величиною, яка визначається щомісячно (див. запит 1), дохід
та витрати (див. запит 3) — щоденними характеристиками. Тобто
зберігати в такому вигляді факт неможливо. У такому разі є дві
альтернативи: розбити факт 1 на два факти чи деталізувати вимір
часу до найнижчого його рівня, яким буде календарна дата, тобто
день. Оскільки середня кількість за місяць є величиною неадити-
вною, то краще зберігати в факті 1 адитивну змінну, що характе-
ризує фактичну величину наявності виробів за кожен день. При
реалізації запиту 1 середні залишки за місяць будуть розрахову-
ватись на основі фактичних даних про наявність виробів на кож-
ну дату.
Факт 1 Факт 2
Факт 3 Факт 4
код виробу
Код вибору
Кодчасу
Код часу
Витрати
Витрати Кодма
Код магазину
газина
Дохід
Дохід Кодча
Код часу
су
Кількістьпродано
Кількість продано Відсоток
Відсот окмоделей,
моделей,що
щомають
мають
Відсотокроздрібних
Відсоток роздрібних правона
право назнижки
знижки
продажів
продажів Відсоток
Відсот окмоделей,
моделей,що
щобули
були
Відсотокпродажів
Відсоток продажівчерез
через продані
продан і зізізнижкою
знижкою
стілзамовлень
стіл замовлень
Відсотокоптових
Відсоток оптовихпродажів
продажів
301
Факт 1 Факт 2
Кодвиробника
Код виробника Код магазину
Кодвиробу
Код вибору Код магазину
Кодчасу
часу(день) Код
Код вибору
виробу
Код Код
Код часу
часу (день)
Середні залишки
Залишки за день Витрати
Витрати
Витрати Витрати
Дохід Дохід
Дохід
Дохід
Факт 3 Факт 4
Код
код виробу
вибору
Код
Кодчасу
часу(день)
Витрати
Витрати Кодма
Код магазину
газина
Дохід
Дохід Кодча
Код часу
су(день)
Кількість
Кількістьпродано
продано Відсотсть
Кількі ок моделей,
моделей, що
що мають
мають
Кількість
Відсоток роздрібних
роздрібних правона
право назнижки
знижки
продажів Відсотсть
Кількі ок моделей,
моделей, що
що були
були
продажів продані
Кількість
Відсоток продажів
продажів через
через продан і зізізнижкою
знижкою
стіл
стілзамовлень
замовлень
Кількість
Відсоток оптових
оптових продажів
продажів
Код магазину
Код виробу
Код часу (день)
Витрати
Дохід
Кількість продано
Кількість роздрібних продажів
Кількість продажів через стіл
замовлень
Код магазину
Код виробу
Код виробника Код часу (день)
Код виробу Витрати
Код часу (день) Дохід
Залишки за день Кількість продано
Витрати Кількість роздрібних продажів
Дохід Кількість продажів через стіл
замовлень
Кількість оптових продажів
Код виробника
Назва регіону
Виробництво Назва виробника
Календар Адреса
Код виробника
Код часу (день) Код виробу
Тиждень Код часу (день) Вибір
Місяць Залишки за день
Витрати
Дохід
Код виробу
Модель
Собівартість
Оптова ціна
304
Продавець
Виробник
305
Визначення цілей побудови сховища даних
307
різних спеціалістів, які виконують різні ролі. До основних фахівців,
що задіяні на етапі створення та експлуатації сховищ, належать такі
категорії: архітектори (проектувальники) сховища даних, менедже-
ри проектів, адміністратори баз даних, програмісти, бізнес-
аналітики та інші фахівці. Усі категорії персоналу, що задіяні та
працюють зі сховищем, повинні бути описані у метаданих, а ролі,
які вони виконують, задокументовані. Крім того, у метаданих пови-
нні бути відображені групи та права доступу користувачів до даних,
а також інші додаткові характеристики, що забезпечують безпеку
функціонування сховища даних. Усі користувачі, що працюють зі
сховищем, повинні бути розбиті адміністратором на групи з певни-
ми правами доступу. Користувач, що входить до певної групи, має
всі права доступу цієї групи. Це дозволяє спрощувати процедуру
адміністрування, змінюючи права доступу до даних групи користу-
вачів. Адміністратор має змогу відразу змінити їх у всіх членів цієї
групи.
Моменти завантаження та обчислення підсумкових даних.
Сховище даних відображає хронологічну послідовність бізнес-
подій, які представляють інтерес для бізнес-аналізу. Для того,
щоб дані сховища були завжди актуальними, необхідно чітко ви-
значитись з періодами поповнення сховища новими даними. Тоб-
то необхідно чітко визначити та задокументувати в метаданих
календарні і часові періоди завантаження нових даних до схови-
ща. Адміністратор сховища повинен відстежувати та своєчасно
завантажувати дані до сховища. Цього регламенту слід ретельно
дотримуватись, оскільки гіршим за відсутність даних у сховищі є
застарілі дані. Якщо дані своєчасно не актуалізовані, то слід за-
боронити доступ до них користувачів.
Завантаження даних дуже часто супроводжується їх оброб-
кою, яка полягає в узагальненні даних, тобто обчисленні певних
підсумкових даних. Тому обов’язково в метаданих повинні найти
відображення процедури агрегування даних.
Сутності або наповнення сховища даних. Ця складова репози-
тарію метаданих є найбільш важливою. Вона містить опис сутно-
стей предметної області, що знайшли відображення в сховищі.
Метадані групуються по кожній моделі предметної області та
описують всі її складові, тобто виміри, атрибути вимірів, факти і
змінні. Здійснюючи такий опис, насамперед усім переліченим
компонентам слід присвоїти імена і псевдоніми.
Псевдонім необхідний через те, що іноді важко дійти згоди
щодо визначення імені, оскільки різні користувачі по-різному на-
зивають одні і ті самі об’єкти предметної області, тобто один
308
об’єкт може мати кілька синонімічних імен. При описі моделі та
її вимірів і фактів необхідно вказати відповідальну особу для ко-
нтактів. Це потрібно для того, щоб користувач зміг у разі потреби
отримати додаткову, більш повну інформацію про модель схо-
вища даних та його складові. На рис. 10.16 наведено узагальнену
схему метаданих, що описує сутності сховища даних.
Назва
Модель Визначення
Мета
Виміри 1
Факти 2
1 Змінні 3
Особа для контактів
Вимір Назва
Визначення
Псевдонім
Ієрархія
Правила змін
Частота завантаження
Атрибути
Факти 2
Змінні 3
2 Особа для контактів
Факт Назва
Визначення
Псевдонім
Частота завантаження
Календарний період
Змінні 3
Виміри 1
2 Особа для контактів
Змінна Назва
Визначення
Псевдонім
Календарний період
Тип даних
Правила перетворення
Факт 2
Вимір 1
Джерело Назва
Визначення
Псевдонім
Календарний період
Тип даних
Правила змін
Предметна область
Правила перетворень
309
Рис. 10.16. Узагальнена схема метаданих
310
схему перетворення, за якою початкове значення в системі-джерелі
приводиться до нового значення у сховищі даних. Так, якщо у сис-
темі-джерелі для позначення статі використовувались літери: Ч —
чоловіча стать, Ж — жіноча стать, а у сховищі ці позначення відпо-
відно замінені на цифрові позначення: 1 — чоловіча стать, 2 — жі-
ноча стать, то інформація про це повинна відображатися у метада-
них. У деяких окремих випадках вибір даних для сховища може
виконуватись з різних джерел за деякими умовами. Тоді необхідно в
метадані про джерела включати алгоритм (логіку) їх вибору.
Логіка переходу від систем-джерел до сховища не завжди мо-
же виконуватись за один крок. Іноді такий перехід може вимага-
ти кілька кроків. Це може трапитися в таких випадках:
системи-джерела, які необхідно об’єднувати, знаходяться у
різних місцях;
не всі дані можна об’єднувати відразу, оскільки таблиці ви-
магають зовнішніх об’єднань;
системи-джерела розміщені на різних платформах, які є тех-
нологічно несумісними між собою;
необхідна наявність комплексу агрегування (узагальнення)
даних.
Важливим питанням інтеграції є синхронізація даних різних
типів, що використовуються в межах усього сховища даних.
Оскільки різні інструменти сховища даних створюють і викорис-
товують свої власні метадані, то для досягнення повної інтеграції
потрібно зробити так, щоб ці інструменти могли спільно викори-
стовуватись метаданими. Задача в такому разі полягає в синхро-
нізації метаданих між різними програмними продуктами різних
фірм виробників, які використовують різні сховища метаданих.
Наприклад, необхідно ідентифікувати потрібний елемент метада-
них на відповідному рівні деталізації одного програмного проду-
кту, а потім встановити його відповідність другому елементу ме-
таданих на відповідному рівні деталізації другого програмного
продукту, а також врегулювати будь-які відмінності в способі
кодування. Цю операцію необхідно виконати стосовно спільних
метаданих по всіх програмних продуктах. Більше того, будь-які
зміни метаданих одного програмного продукту необхідно пере-
давати в метадані іншого програмного продукту. Завдання син-
хронізації внесення змін метаданих по кількох програмних про-
дуктах складна і потребує надто великих витрат ресурсів. Вирішити
цю проблему можна двома способами:
311
за допомогою механізму автоматичної передачі метаданих
між сховищами, що підтримуються різними інструментальними
засобами;
шляхом створення репозитарію метаданих.
У 1995 році був створений комітет Metadata Coalition
Committee, який розробив специфікацію Metadata Interchange
Format (MIF), призначену для стандартизації процесу передачі
метаданих. Цей стандарт використовується фірмами-
розробниками для створення інструментів обміну метаданими.
Незважаючи на корисність цих продуктів, все ж краще користу-
ватись репозитарієм метаданих.
Репозитарій метаданих об’єднує різні типи метаданих в інтег-
рованому сховищі і може синхронізувати та реплікувати метада-
ні, розподілені по всьому сховищу даних. Репозитарій можна
розглядати як специфічне сховище для зберігання метаданих.
Прикладами репозитарія можуть бути такі продукти: PLATINUM
Repository фірми Platinum Technologies, ROCHADE Repository
фірми R & O, Directory Manager фірми Prisms Solution і Universal
Directory фірми Logic Works.
312
Рис. 10.17. Панель інструментів для проектування сховищ даних
313
Рис. 10.18. Вибір методології моделювання сховища даних
314
Для занесення нової таблиці в модель можна використати
кнопку в меню інструментів. Для визначення імені таблиці
необхідно клацнути правою кнопкою мишки по створеній поро-
жній таблиці і в меню, що з’явиться, вибрати опцію TABLE
EDITOR. Ця опція відкриває діалогове вікно (рис. 10.20), в яко-
му ідентифікується таблиця та визначаються її властивості.
Специфічні властивості таблиць вимірної моделі задаються
шляхом активізації закладинки Dimensional. Для кожної таб-
лиці можна задати шість правил маніпулювання даними: онов-
лення (Refresh), поповнення (Append), резервне копіювання
(Backup), відновлення (Recovery), архівування (Archiving) та
очистка (Purge).
315
Рис. 10.21. Вікно для визначення правил ведення таблиці
316
вимірювань чи консольна). Для визначення ролі таблиці вручну
необхідно активізувати опцію Calculate Automatically.
Календар Продаж
Продукція
Код_періоду: DATE Код_продукції: NUMBER (FK)
Код_магазину: NUMBER (FK) Код_продукції: NUMBER
Число: DATE Код_періоду: DATE (FK)
Місяць: DATE Назва_прод.: СHAR (18)
Рік: СHAR (18) Дата: DATE Код_типу: NUMBER
Кількість: DECIMAL (.) Назва_типу.: СHAR (18)
Ціна: NUMBER
Магазин
Код_магазину: NUMBER
Назва_магазину.: СHAR (18)
Код_регіону: NUMBER
Телефон_факс.: СHAR (18)
317
перезаписування старих даних новими, при якому старі дані
знищуються;
створення нового запису в таблиці вимірювань з новими да-
ними і тимчасовими вимірами. У такому разі старі дані зберіга-
ються і можливе відстеження історії внесення змін до даних, але
при цьому необхідно генерувати ключі для посилань на старі дані;
запис нових даних у додатковому полі того самого запису.
Утакому разі зберігається початкове й останнє значення. Усі
проміжні значення втрачаються, тобто не видно історії внесення
змін до таблиць вимірювань протягом усього терміну експлуата-
ції сховища даних.
Таблиці вимірювань сховища даних можна нормалізувати. Так,
у розглянутому прикладі (рис. 10.23) таблиці вимірювань Магазин
і Продукція є ненормалізованими. Нормалізація вказаних таблиць
призведе до створення нових таблиць — довідника регіонів (Регі-
он) та довідника типів продукції (Тип_продукції). Таблиці, які
утворилися внаслідок нормалізації таблиць вимірювань, будуть
консольними таблицями, які перетворять модель сховища даних
типу «зірка» на модель типу «сніжинка» (рис.10.24).
Продаж
Продукція
Код_продукції: NUMBER (FK)
Код_типу: NUMBER (FK)
Код_магазину: NUMBER (FK) Код_продукції: NUMBER
Код_регіону: NUMBER (FK) Код_типу: NUMBER (FK)
318
газин не можуть існувати без зв’язку з певним екземпляром таб-
лиці Регіон, оскільки магазини розташовуються в певних регіо-
нах, а кожна продукція з таблиці Продукція обов’язково нале-
жить до певного типу. Тому консольні таблиці на моделі
«сніжинка» зв’язані ідентифікуючими зв’язками.
При проектуванні сховищ даних в ERwin можна також визна-
чити метадані. Зокрема, для кожного стовпчика можна вказати
джерело даних; метод, за допомогою якого дані вибираються, фі-
льтруються, очищаються та перетворюються, перш ніж потрап-
лять до сховища даних. Для документування інформації про дже-
рела даних використовується редактор Data Warehouse Sourse
Editor.
ERwin автоматично перевіряє коректність вимірної моделі і
видає на екран діагностичні повідомлення у таких випадках по-
рушення синтаксису:
таблиця факту не є у зв’язку дочірньою;
консольна таблиця не є у зв’язку батьківською;
установлено ідентифікуючий зв’язок між консольною таб-
лицею і таблицею фактів.
Для фізичного проектування використовується методологія
Dimensional Modeling (DM). Ця методологія вибирається в заклади-
нці Methodology діалогу Preferences (меню Option/Preferences).
Вибрана опція відображає зв’язки діагональними лініями
(Orthogonal), які встановлюються в групі Relationship lines заклади-
нки General діалогу Stored Diplay Editor меню Edit/Stored Display.
319
8. Охарактеризуйте способи та підходи до проектування
сховищ даних.
9. Визначте вимоги, які висуваються при проектуванні схо-
вищ даних до змінних.
10. Визначте вимоги, які висуваються при проектуванні
сховищ даних до вимірів.
11. Визначте вимоги, які висуваються при проектуванні
сховищ даних до фактів.
12. Розкрийте сутність вимірного моделювання сховищ даних.
13. В якій послідовності виконуються роботи по вимірному
моделюванню сховищ даних?
14. Які характеристики повинні мати метадані?
15. Яку інформацію повинні містити метадані про факти,
виміри і змінні?
16. Яку інформацію повинні містити метадані про модель та
її джерела?
17. Суть та особливості методології вимірного моделювання
в середовищі Erwin.
18. Поясніть процедуру міграції ключів при автоматизації
проектувань сховищ даних засобами ERwin.
19. Що являє собою консольна таблиця в ERwin?
320
11 Pоздiл
ОСНОВИ ПОБУДОВИ ІНФОРМАЦІЙНИХ СИС-
ТЕМ НА БАЗІ СХОВИЩ ДАНИХ
319
аналітичної моделі. Мається на увазі динамічна оптимізація роз-
рідженістю матриць, що виконується для підтримки потрібного
рівня продуктивності системи. У багатовимірних моделях прису-
тні мільйони комірок, багато з яких не вміщують конкретних да-
них на поточний момент. Відсутність значень (NULL) не повинна
негативно впливати на точність і швидкість доступу до даних.
Багатокористувацька підтримка. OLAP-система повинна за-
безпечувати паралельну роботу групи користувачів з однією чи
кількома моделями корпоративних даних.
Необмежені перехресні операції між розмірностями. OLAP-
система повинна вміти розпізнавати ієрархію розмірностей та ав-
томатично виконувати перехресні узагальнюючі обчислення все-
редині розмірності та серед розмірностей.
Підтримка інтуїтивного зрозумілого маніпулювання даними.
Розбивка, поворот (створення зведених таблиць), спадний аналіз,
консолідація (сумування), а також інші будь-які маніпулювання з
даними повинні виконуватись за допомогою найпростіших дій
щодо комірок куба типу «вибери і клацни» чи «перетягни та опусти».
Гнучкість засобів формування звітів. Необхідно також мати
інструменти упорядкування рядків, стовпчиків і комірок, які до-
зволять спростити аналіз даних за рахунок зрозумілого візуаль-
ного представлення аналітичних звітів. Користувачі повинні мати
можливість організовувати будь-яке бажане представлення по-
трібних їм даних.
Необмежене число вимірів і рівнів узагальнення. Залежно від
конкретних бізнес-вимог аналітична модель може мати різну кі-
лькість вимірів, при цьому кожен з вимірів може мати власну іє-
рархічну структуру. OLAP-система не повинна накладати жод-
них обмежень на кількість вимірів або рівнів узагальнення даних.
Через певний час вимоги та ознаки OLAP-систем, визначені
Коддом, були перевизначені та розширені. Зокрема, в деяких пуб-
лікаціях з’явились вимоги стосовно комерційних OLAP-
інструментів: вони повинні забезпечувати виконання спадного
аналізу— до рівня детальніших даних (до записів у джерелах да-
них) виконувати оновлення бази даних, а також мати SQL-
інтерфейс.
Основними ознаками OLAP-систем є:
розподіл даних на показники (змінні) і виміри, що відповід-
но визначають стан бізнесу в різних розрізах;
необмежене число рівнів ієрархічних зв’язків між значення-
ми вимірів.
OLAP-система повинна надавати такі можливості:
320
обчислення і багатовимірне ієрархічне моделювання аналі-
тичних показників;
аналіз трендів за послідовні періоди;
квантування підмножин (створення зрізів) для візуалізації на
екрані;
підвищення рівня деталізації до найглибших рівнів консолі-
дації (об’єднання);
прямий доступ до основних деталізованих даних;
ротація (поворот) до нових вимірювальних порівнянь.
Основи багатовимірного аналізу, які були започатковані
Е.Ф.Коддом, покладені в основу теста FASMI (Fast Analysis
Shared Multidimensional Information), який на сьогодні є критері-
єм оцінки функціонування OLAP-систем.
Тлумачення цього тесту таке:
Fast (швидкий) — аналіз повинен виконуватись однаково
швидко по всіх вимірах інформації. Допустимий час реакції по-
винен знаходитись у межах 5 сек.;
Analysis (аналіз) — повинна надаватись можливість виконува-
ти основні типи числового і статистичного аналізу, заданого роз-
робниками продуктів, або визначатись довільно користувачем;
Shared (розподілений) — користувачі повинні мати доступ до
даних, при цьому виконується контроль доступу до конфіденцій-
ної інформації;
Multidimensional (багатовимірний) — це основна, найсуттєві-
ша характеристика OLAP;
Information (інформація) — додатки повинні мати можливість
звернень до будь-якої потрібної інформації, незалежно від її об-
сягу та місця зберігання.
Багатовимірність в OLAP-системах може бути поділена на
три рівні:
Багатовимірне представлення даних — це засіб кінцевого ко-
ристувача, який забезпечує візуалізацію та маніпулювання дани-
ми; багатовимірне представлення абстраговано від фізичної
структури даних і сприймає дані як багатовимірні.
Багатовимірна обробка — засіб (мова) формулювання бага-
товимірних запитів (традиційна реляційна мова SQL у даному ра-
зі не придатна) і процесор, який вміє обробляти і виконувати такі
запити.
Багатовимірне зберігання — засоби фізичної організації да-
них, що забезпечують ефективне виконання багатовимірних за-
питів.
321
Перші два рівні повинні обов’язково бути в усіх OLAP-
засобах. Третій рівень необов’язковий, оскільки дані для багато-
вимірного представлення можуть добуватись з реляційних струк-
тур. Процессор багатовимірних запитів у такому разі транслює
багатовимірні запити в SQL-запити, які виконуються реляційною
СКБД.
323
такі як лінійна регресія. На жаль, більшість реальних моделей не
вкладаються в рамки лінійної регресії. Наприклад, розміри про-
дажу або котирування цінних паперів є дуже складними для про-
гнозу, оскільки можуть залежати від дуже великої кількості
пов’язаних між собою факторів (змінних).
Кластерний аналіз — це групування даних по сегментах чи
кластерах. Кластеризація подібна до класифікації, але відрізня-
ється тим, що кількість сегментів або кластерів, на які розбива-
ються дані, наперед невідома. В один сегмент чи кластер
об’єднуються дані, які характеризуються певними спільними
властивостями, що дозволяє вважати їх однорідними. Таким чи-
ном, основна мета кластерного аналізу є виокремлення з почат-
кових даних тих однорідних підмножин, коли об’єкти всередині
груп схожі за ознаками один на одного, а об’єкти з різних груп —
несхожі.
Метод аналізу зв’язків використовується для встановлення
зв’язків (асоціацій) між окремими записами даних чи їх набора-
ми. Цей метод доцільно використовувати тоді, коли події, що
відбуваються в предметній області, пов’язані між собою. Метод
аналізу зв’язків поділяється на: пошук асоціації, пошук послідо-
вних закономірностей і пошук аналогічних часових закономір-
ностей.
Пошук асоціації — це пошук деяких об’єктів, які передбача-
ють наявність інших об’єктів в тій же події. Подібність між
об’єктами задається за допомогою певних асоціативних правил.
Типовим прикладом може бути аналіз структури купівель това-
рів у супермаркетах. Наприклад, «Якщо клієнт купує пиво, то у
60% він купує і чіпси». Маючи такий асоціативний зв’язок, мо-
жна дійово регулювати знижки на ці товари, що призведе до
збільшення обсягів їх продажів.
Пошук послідовних закономірностей полягає у виявленні пев-
них закономірностей між окремими подіями. Тобто виявлення
такої закономірності, яка б визначала, що поява одного набору
даних буде супроводжуватись появою іншого набору через пев-
ний проміжок часу. Цей підхід, наприклад, використовується для
довгострокового прогнозування поведінки клієнта при виконанні
покупок.
Пошук аналогічних часових закономірностей використовуєть-
ся для знаходження зв’язків між двома наборами даних, які зале-
жать від часу. Цей метод можна застосовувати теж для аналізу
продажів, але при цьому різні операції з купівлі одним і тим са-
мим клієнтом об’єднуються в одну часову серію. Варіант такого
324
аналізу можливий, коли існує додаткова інформація (номер кре-
дитної картки клієнта або номер його банківського рахунка) для
зв’язку різних купівельних трансакцій в єдину часову серію. У
такій ситуації важливе не тільки співвідношення даних усередині
однієї трансакції, але й порядок, в якому ці дані з’являються в різ-
них трансакціях і час між цими трансакціями. Правила, які вста-
новлюють ці зв’язки, можуть бути використані для визначення
типового набору попереднього продажу, який може повести за
собою подальший продаж певного товару. Тобто, якщо існує ла-
нцюжок пов’язаних у часі подій, то йдеться про послідовність.
Наприклад, після купівлі житла у 45% випадків протягом місяця
купується нова кухонна плита, а в межах двох тижнів 60% ново-
селів купують холодильник.
Виявлення відхилень — це метод, який дозволяє визначити
ступінь відхилення від деяких наперед відомих значень матема-
тичного сподівання і стандартного середнього. Цей метод вико-
ристовується, наприклад, для виявлення спроб шахрайства з кре-
дитними картками і страховими полісами, а також при контролі
якості і пошуку дефектів.
Подібні основні типи моделей використовуються для знахо-
дження нового знання в сховищі даних. Звернемося тепер до
методів, які використовуються для проведення інтелектуально-
го аналізу даних. У такому разі застосовуються такі основні
методи:
нейронні мережі;
дерева рішень;
індукцію правил.
Крім цих методів, існують ще додаткові:
системи міркування на основі аналогічних випадків;
нечітка логіка;
генетичні алгоритми;
алгоритми визначення асоціацій і послідовностей;
аналіз з виборчою дією;
логічна регресія;
еволюційне програмування;
візуалізация даних.
Іноді застосовується комбінація перелічених методів.
Нейронні мережі — це спрощені моделі, що умовно імітують
роботу нейронів людської нервової системи, яка має здатність до
навчання, узагальнення й абстракції. Математична модель ней-
рона являє собою деякий універсальний нелінійний елемент з
можливістю широкої зміни і налагодження його характеристик.
325
Нейромережі знайшли широке застосування в системах підтрим-
ки прийняття рішень, зокрема як засіб добування знань (інфор-
мації) в базах і сховищах даних.
В одній з найбільш поширених нейромережевих архітектур —
багатошаровому персептроні — із зворотним поширенням по-
милки емулюється робота нейронів у складі ієрархічної мережі,
де кожний нейрон більш високого рівня сполучений своїми вхо-
дами з виходами підпорядкованих нейронів. На нейрони найниж-
чого рівня подаються значення вхідних параметрів, на основі
яких виконуються обчислення, необхідні для прийняття рішень,
прогнозування розвитку ситуації і т. д. Ці значення розглядають-
ся як сигнали, що передаються у вищі рівні, послаблюючись або
посилюючись залежно від числових значень (ваги), що характе-
ризують міжнейронні зв’язки. Внаслідок цього на виході нейрона
найвищого рівня генерується деяке значення, яке розглядається
як відповідь, реакція всієї мережі на введені значення вхідних
параметрів. Для того щоб мережу можну було використати, її на-
самперед потрібно «навчити» на отриманих раніше наборах да-
них (прикладах), для яких відомі і значення вхідних параметрів, і
правильні відповіді на них. Процес «навчання» складається в
підборі ваг міжнейронних зв’язків і модифікації внутрішніх па-
раметрів функції активізації нейронів. Для кожного поєднання
«тренувальних» даних на вході вихідні значення порівнюються з
наперед відомим результатом. Якщо вони відрізняються, то ви-
значається коригуючий вплив, що враховується при обробці у ву-
злах мережі. Вказані кроки повторюються, поки не виконається
умова щодо необхідної корекції, яка не перевищуватиме заданої
величини.
Нейронні мережі, по суті, являють собою сукупність
пов’язаних один з одним вузлів, одержуючих вхідні дані, що
здійснюють їх обробку і генерують на виході певний результат.
Між вузлами видимих вхідного і вихідного рівнів може перебу-
вати якесь число прихованих рівнів обробки. Нейронні мережі
реалізовують непрозорий процес. Це означає, що побудована мо-
дель, як правило, не має чіткої інтерпретації. Деякі алгоритми
можуть транслювати модель нейронної мережі у набір правил, що
допомагають усвідомити, що саме вона робить. Таку можливість
пропонують деякі оригінальні продукти, що використовують тех-
нологію нейронної мережі. Багато пакетів, які реалізують принци-
пи нейронних мереж, застосовуються не тільки в сфері обробки
комерційної інформації, а й при вирішенні задач розпізнавання об-
326
разів, зокрема розпізнавання рукописних текстів, типів клітин кро-
ві та ін.
Дерево рішень використовується для генерації класифікацій-
ного дерева рішень безпосередньо з даних. Дерево рішень скла-
дається з вузлів і відрізків ліній, що з’єднують ці вузли. Існує два
типи вузлів: вузли рішень і кінцеві вузли. Вузли рішень відпові-
дають ситуації, коли під час класифікації потрібно дати відповідь
на запитання про дані. Якщо вузол не містить запитань, то це кі-
нцевий вузол.
Цей метод придатний не тільки для вирішення задач класифі-
кації, а й для обчислень і тому досить широко застосовується в
сфері фінансів і бізнесу, де часто зустрічаються задачі чисельно-
го прогнозу. Використання цього методу дозволяє створити ієрар-
хічну структуру класифікуючих правил типу «ЯКЩО... ТОДІ...»,
що має вигляд класифікаційного дерева. Для того щоб вирішити,
до якого класу віднести деякий об’єкт або ситуацію, відповімо на
запитання, що стоять у вузлах цього дерева, починаючи з його
кореня. Запитання можуть мати вигляд «значення параметра А
більше X?» для випадку змінних, що вимірюються, або «значення
змінної В належить підмножині ознак З». Якщо відповідь пози-
тивна, то переходимо до правого вузла наступного рівня, якщо
негативна — до лівого вузла. Потім знову відповідаємо на запи-
тання, пов’язане з відповідним вузлом. Таким чином зрештою
доходимо до одного з кінцевих вузлів, де стоїть вказівка, до яко-
го класу треба віднести об’єкт, що розглядається. Цей метод
приваблює тим, що таке представлення правил наочне і його лег-
ко зрозуміти та інтерпретувати.
Класифікаційне дерево спочатку створюється для навчальної
вибірки даних, яка дає бажаний результат. Користувач може
управляти процесом генерації класифікатора, специфікуючи па-
раметри дерева (максимальне число рівнів, критерії розщеплення
вузлів та ін.) та оцінюючи інформацію про виведення: кількість
записів, використаних для навчання генератора висновку; кіль-
кість записів, використаних для оцінки точності результуючого
класифікатора, і т. д. Створений класифікатор може бути засто-
сований для класифікації нових даних. Класифікатори дерев ду-
же часто використовуються для вирішення такої задачі, як визна-
чення кредитоспроможності клієнтів (фізичних осіб) банку та
класифікації їх за рівнями ризику кредитування.
Дерева рішень, незважаючи на їх простоту і прозорість для
певних типів даних, можуть виявитися неприйнятними. Зокрема,
методи дерева рішень не дуже ефективні, якщо між цільовою
327
змінною та вхідними даними є лінійна залежність, оскільки в та-
кому разі дерево повинно мати велике число вузлів. Іноді вини-
кають проблеми при обробці безперервних величин, скажімо да-
них про вік або обсяг продажів. У даному разі їх необхідно
групувати і ранжувати. Однак вибраний для ранжування метод
може випадково приховати ту закономірність, яку хочемо вияви-
ти. Наприклад, якщо група об’єднує людей у віці від 25 до 34 ро-
ків, то той факт, що на рубежі 30 років деякий параметр має істо-
тну відмінність, може виявитися прихованим. Цього недоліку не
містить продукт SAS Enterprise Miner внаслідок того, що реалізо-
вані в ньому методи побудови дерева рішень можуть автоматич-
но виявляти межу (числовий критерій) розділення даних на од-
норідніші підгрупи.
Для дерев рішень дуже гостро стоїть проблема значущості.
Якщо побудоване дерево досить розгалужене і складається з не-
виправдано великого числа дрібних дуг, воно не даватиме стати-
стично обґрунтованих відповідей. Як свідчить практика, в біль-
шості систем, що використовують дерева рішень, ця проблема не
знаходить задовільного вирішення. Винятком з цього ряду є зга-
даний вище SAS Enterprise Miner, що включає широкий спектр
діагностичних інструментів, за допомогою яких аналітик може
вибрати статистично найобґрунтованішу модель з безлічі дерев
рішень і, більш того, порівняти отриману модель дерева з прин-
ципово іншими типами моделей (регресивною і нейромереже-
вою). У даному продукті цільовою змінною може бути як вели-
чина, що вимірюються, так і дискретна (змінна, що не вимірюється,
або ознаки), котра істотно розширює область застосування роз-
глянутого вище методу.
Індукція правил. Цей інструмент безпосередньо з даних ви-
водить класифікатор правил, що ранжує дані, визначаючи імо-
вірності, за яких може трапитися деякий, заздалегідь очікуваний
результат при заданих значеннях ознаки. Наприклад, можна ви-
значити, що клієнт банку, який володіє автомобілем вартістю
від 15 до 25 тис. дол., з імовірністю 70% поверне кредит. При
цьому класифікатор призначає умовні імовірності унікальним
величинам ознаки або діапазону величин для нього. Також на
основі розподілу записів з навчальних даних (використаних
для побудови класифікатора) обчислюється апріорна імовір-
ність.
Система міркування на основі аналогічних випадків ро-
бить прогноз на майбутнє або вибирає правильні рішення на ос-
нові минулому. В минулому знаходяться і близькі аналоги пото-
328
чної ситуації, які дають змогу вибрати ту відповідь, яка була пра-
вильною в минулому. Тому цей метод ще називають методом
найближчого сусіда (nearest neighbour). Системи міркування на
основі аналогічних випадків демонструють дуже хороші резуль-
тати у найрізноманітніших задачах. Головний їх недолік полягає
в тому, що вони взагалі не створюють яких-небудь моделей або
правил, котрі узагальнюють попередній досвід. При виборі рі-
шення вони засновуються на всьому масиві доступних історич-
них даних, тому неможливо сказати, на основі яких конкретних
чинників ці системи будують свої відповіді.
Нечітка логіка застосовується для таких наборів даних, де
зарахування елементів даних до якої-небудь групи визначається
мірою належності, що знаходиться на інтервалі від 0 до 1, але не
приймає крайніх значень. Чітка логіка маніпулює результатами,
які можуть бути або істиною, або хибністю. Нечітка логіка засто-
совується в тих випадках, коли необхідно маніпулювати мірою
«може бути» на доповнення до «так» і «ні».
Генетичні алгоритми застосовуються не лише для інтелек-
туального аналізу даних. Їх можна також використовувати як
засіб вирішення різноманітних комбінаторних і оптимізаційних
задач. Проте генетичні алгоритми увійшли в стандартний ін-
струментарій методів Data Mining. Генетичні алгоритми іміту-
ють процеси біологічної еволюції. Основна ідея їх полягає в то-
му, що внаслідок еволюції відбувається відбір найкращих
(найбільш пристосованих) екземплярів. Застосування генетич-
них алгоритмів при аналізі даних дає найкращу «популяцію»,
тобто рішення.
Нехай нам потрібно знайти розв’язання, найоптимальніше з
погляду деякого критерію. При цьому кожне рішення повністю
описується деяким набором чисел або величин нечислової при-
роди. Наприклад, якщо необхідно вибрати сукупність фіксовано-
го числа параметрів ринку, котре найбільш виражено впливає на
динаміку цього ринку, це буде набір імен цих параметрів. Про
цей набір можна говорити як про сукупність хромосом, що ви-
значають якості індивіда — рішення поставленої задачі. Значен-
ня параметрів, що визначають рішення, будуть тоді називатися
генами. Пошук оптимального рішення при цьому схожий на ево-
люцію популяції індивідів, представлених наборами їх хромо-
сом. У цій еволюції діють три механізми: по-перше, відбір най-
сильніших наборів хромосом, яким відповідають найкращі
рішення; по-друге, схрещування, тобто продукування нових ін-
дивідів за допомогою змішування хромосомних наборів відібра-
329
них індивідів; і, по-третє, мутації — випадкові зміни генів у де-
яких індивідів популяції. Внаслідок зміни поколінь виробляється
таке рішення поставленої задачі, яке вже не може бути в подаль-
шому суттєво поліпшене.
Генетичні алгоритми мають два недоліки. По-перше, сама по-
становка задачі в її термінах не дає можливості проаналізувати
статистичну значущість рішення, що отримується за їх допомо-
гою і, по-друге, ефективно сформулювати задачу, визначити кри-
терій відбору хромосом під силу тільки фахівцеві високої квалі-
фікації. Внаслідок таких обставин сьогодні генетичні алгоритми
треба розглядати швидше як інструмент наукового дослідження,
ніж як засіб аналізу даних для практичного застосування в бізне-
сі та фінансах.
Алгоритми виявлення асоціацій знаходять правила про
окремі об’єкти, які з’являються разом в одній економічній опе-
рації, наприклад в одній трансакції купівлі. Послідовність — це
також асоціація, але вона залежить від часу. Асоціація завжди
досліджується між парами подій (об’єктів), наприклад, між А і Б,
де А називається лівою частиною, або передумовою, Б — правою
частиною, або наслідком.
Сила асоціації задається кількісно такими характеристиками:
1.Поширеність. Частота появи кожного окремого об’єкта або
їх групи показує, як часто А і В зустрічаються разом у файлі. Об-
числюється як співвідношення кількості записів, де А і В присут-
ні разом до загальної кількості записів. Ця величина вимірюється
у відсотках і носить назву поширеність. Низький рівень пошире-
ності (менш однієї тисячної відсотка) говорить про те, що така
асоціація не істотна.
2.Довірчість — характеризує взаємозв’язок між А і Б. Вона
демонструє, як часто при появі А з’являється Б, і розраховується
як відношення частоти появи (поширеність) А і Б разом до по-
ширеності А. Тобто якщо довірчість А до Б дорівнює 20%, то це
означає, що при купівлі товару А в кожному п’ятому випадку бу-
де придбано і товар Б. Необходімо помітити, що якщо пошире-
ність А не дорівнює поширеності Б, то і довірчість А до Б не дорі-
внює довірчості Б до А. Дійсно, купівля комп’ютера частіше веде
до купівлі дискет, ніж купівля дискети до купівлі комп’ютера.
3.Потужність характеризує вплив появи А на появу Б. Чим
більша потужність, тим сильніше вплив появи А на появу Б. По-
тужність розраховується за формулою: (довірчість А до Б) / (по-
ширеність Б).
330
Деякі алгоритми пошуку асоціацій спочатку сортують дані і
тільки після цього визначають взаємозв’язок і поширеність. Єди-
ною відмінністю таких алгоритмів є швидкість або ефективність
знаходження асоціацій. Це особливо важливо через величезну кі-
лькість комбінацій, які необхідно перебрати для знаходження
найбільш значущих правил. Алгоритми пошуку асоціацій можуть
створювати свої бази даних поширеності, довірчості і потужнос-
тей, до яких можна звертатися за запитом. Наприклад: «Знайти
всі асоціації, в яких для товару Х довірчість перевищує 50% і по-
ширеність не менша за 2,5%».
При знаходженні послідовностей додається змінна часу, яка
дозволяє працювати з серією подій для знаходження послідовних
асоціацій протягом певного періоду.
Аналіз з виборчою дією — одна з давно відомих математи-
чних технологій класифікації. Вона знаходить площини (або
лінії для двовимірного простору), які розділяють групи. Отри-
мані моделі дуже прості для пояснення, оскільки все, що кори-
стувач повинен зробити з отриманою моделлю, — це визначи-
ти, по яку сторону площини або лінії потрапляє крапка. Така
технологія часто застосовується в медицині, соціальних науках
і біології.
Однак потрібно визнати, що аналіз з виборчою дією не дуже
часто застосовується при аналізі даних за допомогою технології
Data Mining з таких причин. По-перше, передбачається, що змін-
ні, які необхідно спрогнозувати, нормально розподілені. По-друге,
неможливо передбачити категоріальні змінні, які не можна упо-
рядкувати (наприклад, червоний-жовтий-зелений). По-третє, ме-
жі, які розділяють класи, — це лінії або площини (в їх класично-
му Евклідовому розумінні), але дані переважно не можуть бути
розділені таким способом. Нові методи аналізу з виборчою дією
вирішують деякі з цих проблем, дозволяючи межам бути не лі-
нійними, а квадратичними. Також можливо замінити припущен-
ня нормальності оцінкою реального розподілу, тобто теоретичну
дзвоноподібну криву параметрами реального розподілу змінної,
що передбачається.
Логічна (логістична) регресія має багато загального із зви-
чайною лінійною регресією, але використовується для прогнозу
імовірності появи того або іншого значення дискретною цільо-
вою змінною, таких як (0 або 1), («так» або «ні»), («відмінно»,
«добре», «погано»). Оскільки ця змінна дискретна, вона не може
бути змодельована методами звичайної багатофакторної лінійної
регресії. Проте результат (імовірність) може бути виражена у ви-
331
гляді лінійної комбінації вхідних змінних, що дозволяє дістати
кількісні оцінки впливу цих параметрів на залежну змінну.
Отримані імовірності можуть використовуватися і для оцінки
шансів. Шанс — це відношення імовірності появи події до імові-
рності того, що подія не станеться. Це відношення означає те са-
ме, що і шанс у грі або спортивних змаганнях. Коли ми говоримо
про те, що шанси команди виграти футбольний матч 3 : 1, це
означає, що імовірність перемоги в три рази більша за імовірність
поразки. Тобто, ми маємо 75% імовірність перемоги і 25% імові-
рність поразки. Аналогічна термінологія вживається і до шансів
певного типу клієнта (тобто клієнта заданої статі, з певним при-
бутком, сімейним станом тощо) відповісти на цільову рекламу.
Логічна регресія — це, з одного боку, класифікаційний ін-
струмент, який використовується для прогнозу значень категорі-
альних змінних (чи зробить певний клієнт купівлю, чи ні). З ін-
шого боку, — це регресійний інструмент, який використовується
для оцінки міри впливу вхідних чинників (у даному разі індиві-
дуальних характеристик клієнтів).
Еволюційне програмування — це найперспективніший на-
прям Data Mining. Суть методу полягає в тому, що гіпотези про
вигляд залежності цільової змінної від інших змінних формулю-
ються системою у вигляді програм на деякій внутрішній мові
програмування. Якщо це універсальна мова, то теоретично на
ньому можна виразити залежність будь-якого вигляду. Процес
побудови цих програм формується як еволюція в світі програм
(цим метод трохи схожий на генетичні алгоритми). Коли система
знаходить програму, яка досить точно виражає залежність, що
відшукується, вона починає вносити в неї невеликі модифікації і
відбирає серед побудованих таким способом дочірніх програм ті,
які підвищують точність. Таким чином, система створює («виро-
щує») кілька генетичних ліній програм, які конкурують між со-
бою в точності виразу шуканої залежності. Спеціальний транс-
люючий модуль перекладає знайдену залежність з внутрішньої
мови системи на зрозумілу користувачеві мову (математичні фор-
мули, таблиці та ін.), роблячи їх прозорими для користувача. Для
того щоб зробити отримані результати ще зрозумілішими для ко-
ристувача-нематематика, існує багатий арсенал різноманітних за-
собів візуалізації виявлених залежностей.
Пошук залежності цільових змінних від інших ведеться у фо-
рмі функцій якогось певного вигляду. Цей метод не має суттєвих
переваг порівняно з нейронними мережами з їх готовим набо-
ром стандартних нелінійних функцій, незважаючи на те, що
332
отримана формула залежності в принципі піддається аналізу та
інтерпретації (хоча на практиці все таки буває досить складно у
такій ситуації).
Комбіновані методи. Часто виробники поєднують вказані
підходи. Об’єднання засобів нейронних мереж і технології дерев
рішень повинно сприяти побудові більш точної моделі і підви-
щенню її швидкодії. Програми візуалізації даних у прямому ро-
зумінні не є засобом аналізу інформації, оскільки вони лише ві-
дображають результати аналізу користувачеві. Проте візуальне
відображення, наприклад, відразу чотирьох змінних досить вираз-
но узагальнює дуже великі обсяги даних. Деякі виробники розу-
міють, що для розв’язання кожної проблеми потрібно застосовува-
ти свій оптимальний метод. Наприклад, продукт SAS Enterprise
Miner 3.0 включає модуль автоматичної побудови результуючої
гібридної моделі, визначеної на безлічі моделей, створених зазда-
легідь принципово різними методами: методами дерева рішень,
нейронних мереж, узагальненої багатофакторної регресії.
333
Середнє До 25 Гбайт До ста мільйонів
Велике До 200 Гбайт Декілька сотень мільйонів
Гіпервелике Понад 200 Гбайт Мільярд і більше
334
Залежна вітрина даних. Аналогічно ізольованій вітрині да-
них, але джерела даних перебувають під централізованим конт-
ролем і управлінням.
Глобальне сховище даних. Корпоративне сховище даних, яке
повністю централізовано контролюється. Глобальне сховище да-
них може зберігатися централізовано або складатися з кількох
розподілених у мережі сховищ даних.
Oracle. Сімейство програмних продуктів Oracle Express при-
значено для розробки систем багатовимірного аналізу даних і за-
безпечує багатофункціональний інструментарій як для створення
і підтримки багатовимірних баз даних, так і для одержання при-
кладних програм, що реалізують функції аналізу даних і корис-
тувацького інтерфейсу. Oracle Express побудований за архітекту-
рою «клієнт/сервер» і включає серверні і клієнтські-програми.
Серверне програмне забезпечення Oracle Express Server може
працювати під управлінням операційних систем UNIX, Windows
NT, Sun Solaris та ін. Express Server являє собою систему управ-
ління багатовимірною базою даних і забезпечує широкі можли-
вості моделювання взаємозв’язків між даними, маніпулювання
даними, прогнозування, аналізу типу «що, якщо …?», формуван-
ня звітів і графіків. До складу Oracle Express Server входить мова
програмування високого рівня Express, яка дає змогу створювати
багатофункціональні збережувані процедури для реалізації сер-
верних функцій.
Express Server підтримує обмін даними з іншими СКБД завдя-
ки технології ODBC, має вбудовану мову структурованих запитів
SQL, що забезпечує взаємодію з реляційними БД, надає можли-
вості обміну запитами із SQL-серверами. Серверні функції на пер-
сональних комп’ютерах реалізує Personal Express, який забезпе-
чує гнучку взаємодію з Express Server і є його функціональним
аналогом.
Клієнтське програмне забезпечення Oracle Express працює
на персональних комп’ютерах і реалізує функції інтерфейсу
користувача, надаючи доступ до виконання на сервері програм
і функцій. До складу клієнтських програм Oracle Express вхо-
дять: Express Administrator, Express Analyzer, Express Objects,
Financial Analyzer, Sales Analyzer, Express Web Agent, Express
Web Publisher.
Hewlett Packard. Роботи, пов’язані зі сховищами даних, ви-
конуються в рамках програми OpenWarehouse. Виконання цієї
програми повинно забезпечити можливість побудови сховищ да-
них на основі могутніх комп’ютерів HP, апаратури інших вироб-
335
ників і програмних компонентів. Основою підходу HP є Unix-
платформи і програмний продукт Intelligent Warehouse, який при-
значений для управління сховищами даних. Основа побудови
сховищ даних (HP), що пропонується, залишає свободу вибору
реляційної СКБД, засобів реінжинірингу і т. д.
NCR. Рішення компанії спрямоване на розв’язання проблем
корпорацій, в яких однаково сильні потреби і в системах підтрим-
ки прийняття рішень, і в системах оперативної аналітичної обро-
бки даних. Архітектура, що називається Enterprise Information
Factory, засновується на досвіді використання системи управлін-
ня базами даних Teradata і пов’язаних з нею методах паралельної
обробки.
Informix Software. Стратегія компанії стосовно сховищ даних
спрямована на розширення ринку для власного продукту On-Line
Dinamic Parallel Server. Архітектура сховища даних, що пропо-
нується, базується на чотирьох технологіях: реляційні бази да-
них, програмне забезпечення для управління сховищем даних,
засоби доступу до даних і платформи відкритих систем. Три
останні компоненти розробляються партнерами компанії. Після
виходу універсального сервера, заснованого на об’єктно-
реляційному підході, можна чекати, що і він буде використову-
ватися для побудови сховищ даних.
SAS Institute. Компанія вважає себе постачальником повного
рішення для організації сховища даних. Підхід заснований на та-
кому:
забезпечення доступу до даних з можливістю їх витягнен-
ня з найрізноманітніших сховищ даних (і реляційних, і нереля-
ційних);
перетворення даних і маніпулювання ними з використанням
4GL;
наявність сервера багатомірних баз даних;
великий набір методів і засобів для аналітичної обробки і
статистичного аналізу.
Sybase. Стратегія компанії у галузі сховищ даних ґрунтується
на розробленій нею архітектурі Warehouse WORKS. В основі під-
ходу — реляційна СКБД Sybase System 11, засіб для підключення
і доступу до баз даних OmniCONNECT і засіб розробки приклад-
них застосувань PowerBuilder. Компанія продовжує вдосконалю-
вати свою СКБД для кращого задоволення потреб сховищ даних
(наприклад, введена побітова індексація).
Software AG. Діяльність компанії в сфері сховищ даних від-
бувається в рамках програми Open Data Warehouse Initiative.
336
Програма базується на основних продуктах компанії ADABAS і
Natural 4GL, власних і придбаних засобах витягнення й аналізу
даних, засобах управління сховищем даних SourcePoint. Останній
дозволяє автоматизувати процес витягнення і пересилки даних, а
також їх завантаження у сховище даних.
Узагальнюючи все описане вище, можна навести таку струк-
туру інформаційної системи на основі сховищ даних (рис. 11.1).
OLTP Блок
регламентних
аналітичних Інформаційна
задач система
БД
Блок очищення
Зовнішні та узгодження
дані даних Data Mining
Сховище Блок
даних інтелектуального
аналізу даних
OLАP
Блок оперативних
аналітичних задач
337
Mining the cubing — добуті зі сховища результати інтелекту-
ального аналізу повинні представлятись у гіперкубічній формі
для подальшого багатовимірного аналізу;
Cubing while mining — гнучкий спосіб інтеграції, який до-
зволить автоматично активізувати однотипні механізми інтелек-
туального аналізу над результатами кожного кроку багатовимір-
ного аналізу.
338
СПИСОК ЛІТЕРАТУРИ
339
16. Диго С. М. Проектирование и использование баз данных: Учеб-
ник. –– М.: Финансы и статистика, 1995. — 208 с.
17. Дюк В. А. Data Mining — интеллектуальный анализ данных.
Wysiwyg://18/http://www.olap.ru/basic/dm2.asp
18. Дюк В. А. Data Mining — состояние проблемы, новые решения:
Wysiwyg://38/http://www.inftech.webservis.ru/database/datamining/ar1.html
19. Єрьоміна Н. В. Концепція побудови аналітичної інформаційної си-
стеми банку // Наук. вісник Державної податкової служби України.— № 3.
20. Єрьоміна Н. В. Проектування баз даних: Навч. посібник.— К.:
КНЕУ, 1998. — 208 с.
21. Заратуйченко О. Современные подходы и методы построения
аналитических информационных систем // Тезисы выступления на се-
минаре НТЦ АРБ «Практические вопросы информационно-
аналитической работы в коммерческом банке». — 1998. — март.
22. Змитрович А. М. Базы данных: Учебн. пособие. –– Минск:
Університетське, 1991. — 271 с.
23. Кембелл М. Access. Ответы: Пер. с англ. — М.: Восточная Книж-
ная Компания, 1997. — 336 с.
24. Киселев М., Соломатин Е. Средства добычи знаний в бизнесе и
финансах: Открытые системы. — 1997. — №4. — С. 41—44.
25. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование,
реализация и сопровождение: Теория и практика // Пер. с англ.: Учебн.
пособие. — 2-е изд. — М.: Изд. дом «Вильямс», 2000. — 1120 с.
26. Корнеев В. В., Гареев А. Ф., Васютин С. В., Райх В. В. Базы дан-
ных: Интеллектуальная обработка информации. — М.: Нолидж, 2000.—
372 с.
27. Кузнецов С. Д. Ведення в СУБД // СУБД. — 1997. — №1—3.
28. Кузнецов С., Артемьев В. Обзор возможностей применения ве-
дущих СУБД для построения харнилищ данных (DataWarehouse) //
http:/www.citforum.ru/database/kbd98/glava15.shtml.
29. Куправа Т. А. Создание и программирование БД средствами
СУБД. — М.: Мир, 1991. — 177 с.
30. Ленг-Хонг Б., Плагман Б. Система словарей-справочников дан-
ных: Пер. с англ. — М.: Финансы и статистика, 1997. — 311 с.
31. Львов В. Создание систем поддержки решений на основе храни-
лищ данных // СУБД. — 1997. — № 3. — С. 30—40.
32. Маклаков С. В. BPwin и ERwin CASE-средства разработки ин-
формационных систем. — М.: Диалог-МИФИ, 2000. — 250 с.
33. Мартин Дж. Организация баз данных в вычислительных систе-
мах: Пер. с англ. — М.: Мир, 1980.
34. Microsoft Access 2000: Справо. пособие. — 2-е изд. — СПб.: Пи-
тер, 2000. — 416 с.
35. Основы современных компьютерных технологий: Учебн. посо-
бие / Под ред. проф. А. Д. Хомоненко. — СПб.: КОРОНА-принт, 1998.
36. Перспективы развития вычислительной техники: В 11 кн.:
Справ. пособие / Под ред. Ю. М. Смирнова; Кн. 2. Интеллектуализация
340
ЭВМ / Е. С. Кузин, А. И. Ройтман, И. Б. Фоминых, Г. К. Хахалин. —
М.: Высш. шк., 1989. — 159 с.
37. Полищук Ю. М., Хон В. Б. Теория автоматизированных банков
информации: Учебн. пособие. — М.: Высш. шк., 1999. — 194 с.
38. Поспелов Г. С. Искусственный интеллект — основа новой ин-
формационной технологии. — М.: Наука, 1988. — 280 с.
39. Поспелов Д. А. Данные и знания: Искуственный интеллект:
Кн.1.— М.: Радио и связь, 1990.
40. Проектирование интегрированных баз данных / А. А. Стогний,
В.Э. Вольфенгаген, В. А. Кушниров и др. — К.: Техника, 1987. — 143с.
41. Сахаров А. А. Принципы проектирования и использования мно-
гомерных баз данных (на примере Oracle Express Server) // СУБД. —
1996. — № 3.
42. Сиколенко В. В. Поддержка распределенных систем в СУБД
ORACLE // СУБД. — 1997. — № 4. — С. 27—74.
43. Cистемы баз данных третьего поколения: Манифест. Комитет по
развитию функциональных возможностей СУБД // СУБД. — 1995. —
№2. — С.143—159.
44. Системы управления базами данных и знаний: Справ. изд. / Под.
ред. А. Н. Наумова. — М.: Финансы и статистика, 1991. — 372 с.
45. Ситник В. Ф. та ін. Основи інформаційних систем: Навч. по-
сібн.— 2-ге вид., перероб. і доп. — К.: КНЕУ, 2001. — 420 с.
46. Спирли Э. Корпоративные хранилища данных: Планирование,
разработка, реализация: Том 1.: Пер. с англ. — М.: Изд. дом «Вильямс»,
2001. — 400 с.
47. Тамер Оззу М., Патрик Валдуриз. Распределенные и параллель-
ные системы баз данных // СУБД. — 1997. — № 4. — С. 4—27.
48. Тиори Т., Фрай Дж. Проектирование структур баз данных: В 2-х
кн.: Пер. с англ. — М.: Мир, 1997. — 311 с.
49. Торбен Бэч Педерсен, Кристиан Йенсен. Технология многомер-
ных баз данных // Открытые системы. — 2002. — № 1.
50. Ульман Дж. Основы систем баз данных. — М.: Финансы и ста-
тистика, 1983.
51. Федоров Ф., Елманова Н. Введение в OLAP: Ч. 1: Основы OLAP
// КомпьютерПресс. — 2001. — №4.
52. Федоров Ф., Елманова Н. Введение в OLAP: Ч. 2: Хранилища
данных // КомпьютерПресс. — 2001. — №5.
53. Федоров Ф., Елманова Н. Введение в OLAP: Ч. 5. Создание мно-
гомерных баз данных // КомпьютерПресс. — 2001. — № 8.
54. Хансен Г., Хансен Д. Базы данных: разработка и управление: Пер.
с англ. — М.: БИНОМ, 1999. — 704 с.
55. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных:
Учебник для высш. учеб. заведений / Под ред. проф. А. Д. Хомонен-
ко.— СПб.: КОРОНА-принт, 2000. — 416 с.
56. Цаленко М. Ш. Семантические и математические модели баз
данных. — М.: ВИНИТИ, 1985. — 205 с.
341
57. Цикритзис Д., Лоховски Ф. Модели данных: Пер. с англ. — М.:
Финансы и статистика, 1997. — 344 с.
58. Pendse N. The OLAP Report Whot is OLAP? — Busines Intelligence
Ltd. 1999. — 8 p.
59. Codd E. F., Codd S. B., Salley C. T. Providing OLAP (On-Line
Analytical Processing) to User-Analysts: An IT Mandate: www.hyperion.com/
solutions/whitepapers.cfm
60. Ballard Chuck, Herreman Dirk, Schau Don, Bell Rhonda, Kim
Eunsaeng, Valencie Ann. Data modeling Technigues for Data
Warehousing.— International Technical Support Orcanization, 1998.
342
ЗМІСТ
ВСТУП. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
343
Розділ 4. Проектування баз даних на основі нормалізації . . . . . . . 70
4.1. Сутність проектування баз даних на основі нормалізації . 70
4.2. Аномалії ненормалізованого відношення . . . . . . . . . . . . . 72
4.3. Теорія нормалізації відношень . . . . . . . . . . . . . . . . . . . . . 73
4.3.1. Перша нормальна форма . . . . . . . . . . . . . . . . . . . . . 73
4.3.2. Друга нормальна форма. . . . . . . . . . . . . . . . . . . . . . 74
4.3.3. Третя нормальна форма . . . . . . . . . . . . . . . . . . . . . . 76
4.4. Нормальні форми більш високих порядків . . . . . . . . . . . . 78
4.4.1. Нормальна форма Бойса—Кодда. . . . . . . . . . . . . . . 78
4.4.2. Четверта нормальна форма . . . . . . . . . . . . . . . . . . . 81
4.4.3. П’ята нормальна форма . . . . . . . . . . . . . . . . . . . . . . 83
344
6.4.4. Пошук даних . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.4.5. Створення індексів . . . . . . . . . . . . . . . . . . . . . . . . 147
6.4.6. Встановлення зв’язку між таблицями . . . . . . . . . . 150
6.5. Запити в Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.5.1. Типи запитів . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.5.2. Запити за зразком . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.5.3. Створення запиту-вибірки . . . . . . . . . . . . . . . . . . 160
6.5.4. Запити з обчисленнями . . . . . . . . . . . . . . . . . . . . . 160
6.5.5. Групувальні запити . . . . . . . . . . . . . . . . . . . . . . . . 162
6.5.6. Запити вилучення . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.5.7. Запити оновлення . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.5.8. Запити для впорядкування записів таблиць . . . . . 166
6.5.9. Запити з параметрами . . . . . . . . . . . . . . . . . . . . . . 166
6.5.10. Перехресні запити . . . . . . . . . . . . . . . . . . . . . . . . 168
6.5.11. Запити на створення нових таблиць . . . . . . . . . . 169
6.5.12. Оптимізація запитів. . . . . . . . . . . . . . . . . . . . . . . 170
6.6. Форми в Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.6.1. Створення форм на базі однієї таблиці . . . . . . . . . 171
6.6.2. Створення підпорядкованих та зв’язаних форм . . 175
6.6.3. Розробка зовнішнього вигляду форм . . . . . . . . . . 179
6.6.4. Створення додаткових елементів форми. . . . . . . . 181
6.6.5. Управління безпомилковим введенням форм . . . . 182
6.6.5.1. Створення прапорців . . . . . . . . . . . . . . . . 182
6.6.5.2. Створення групи перемикачів . . . . . . . . . 183
6.6.5.3. Створення полів зі списком . . . . . . . . . . . 185
6.6.6. Елементи управління, які обчислюються . . . . . . . 187
6.6.7. Гіперпосилання у формах . . . . . . . . . . . . . . . . . . . 190
6.6.8. Створення макроса у формі. . . . . . . . . . . . . . . . . . 192
6.7. Звіти в Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.7.1. Порядок створення звітів . . . . . . . . . . . . . . . . . . . 193
6.7.2. Створення звітів на базі форми . . . . . . . . . . . . . . . 196
6.7.3. Створення складних звітів . . . . . . . . . . . . . . . . . . 197
6.8. Макроси в Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.9. Адміністрування та захист в Access . . . . . . . . . . . . . . . . 201
6.9.1. Стиснення і відновлення файлів баз даних . . . . . . 201
6.9.2. Шифрування і дешифрування файлів баз даних. . . . 202
6.9.3. Створення файлів MDE . . . . . . . . . . . . . . . . . . . . . 203
6.9.4. Підвищення продуктивності бази даних за допомогою
аналізатора швидкості дії . . . . . . . . . . . . . . . . . . . 204
6.9.5. Захист даних в Access . . . . . . . . . . . . . . . . . . . . . . 204
345
7.3. Мова опису даних DDL. . . . . . . . . . . . . . . . . . . . . . . . . . 219
7.3.1. Оператор CREATE TABLE . . . . . . . . . . . . . . . . . . 220
7.3.2. Опція CONSTRAINT . . . . . . . . . . . . . . . . . . . . . . . 220
7.3.3. Оператор CREATE INDEX . . . . . . . . . . . . . . . . . . 222
7.3.4. Оператор ALTER TABLE . . . . . . . . . . . . . . . . . . . 223
7.3.5. Оператор DROP . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.4. Мова запиту даних DQL . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.4.1. Оператор SELECT . . . . . . . . . . . . . . . . . . . . . . . . 224
7.4.1.1. Речення FROM. . . . . . . . . . . . . . . . . . . . . 226
7.4.1.2. Речення GROUP BY. . . . . . . . . . . . . . . . . 226
7.4.1.3. Речення HAVING. . . . . . . . . . . . . . . . . . . 227
7.4.1.4. Речення ORDER BY. . . . . . . . . . . . . . . . . 227
7.4.1.5. Опція WITH OWNERACCESS OPTION. . . 228
7.4.2. Оператор SELECT...INTO . . . . . . . . . . . . . . . . . . . 229
7.5. Мова маніпулювання даними DML . . . . . . . . . . . . . . . . 229
7.5.1. Оператор INSERT INTO . . . . . . . . . . . . . . . . . . . . 230
7.5.2. Оператор UPDATE . . . . . . . . . . . . . . . . . . . . . . . . 231
7.5.3. Оператор DELETE. . . . . . . . . . . . . . . . . . . . . . . . . 232
7.5.4. Операція JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
7.5.5. Операція UNION . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7.5.6. Опис PARAMETERS . . . . . . . . . . . . . . . . . . . . . . . 237
Розділ 8. Розподілені бази даних . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.1. Поняття розподіленої бази даних . . . . . . . . . . . . . . . . . . 239
8.2. Особливості та види розподілених систем . . . . . . . . . . . 240
8.3. Переваги і недоліки розподілених систем . . . . . . . . . . . 241
8.4. Стратегії розподілу даних. . . . . . . . . . . . . . . . . . . . . . . . 242
8.5. Характеристика розподілених СКБД . . . . . . . . . . . . . . . 244
8.6. Особливості проектування розподілених баз даних . . . . 246
8.7. Вимоги до розподілених систем . . . . . . . . . . . . . . . . . . . 247
8.8. Особливості технології роботи з розподіленою базою даних250
8.8.1. Управління одночасним доступом до бази даних . . . 250
8.8.2. Трансакції та механізм їх підтримки . . . . . . . . . . . 252
8.8.3. Управління відновленням розподілених баз даних 258
Розділ 9. Концепція побудови сховищ даних . . . . . . . . . . . . . . . . . 260
9.1. Характеристика трансакційних та аналітичних систем . . . 260
9.2. Поняття сховищ даних та передумови їх створення . . . . 262
9.3. Основні характеристики сховищ даних . . . . . . . . . . . . . 265
9.4. Характеристика основних компонент сховища даних . . . . 267
9.5. Архітектура сховищ даних . . . . . . . . . . . . . . . . . . . . . . . 269
346
10.3. Відмінності проектування сховищ даних від проектуван-
ня баз даних . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
10.4. Підходи до проектування сховищ даних . . . . . . . . . . 285
10.5. Визначення основних елементів сховища даних . . . . 287
10.5.1. Визначення та вимоги до змінних. . . . . . . . . . 288
10.5.2. Визначення ступеня деталізації змінних. . . . . 290
10.5.3. Визначення та вимоги до вимірів . . . . . . . . . . 291
10.5.4. Визначення та вимоги до фактів . . . . . . . . . . . 294
10.6. Вимірне моделювання сховищ даних . . . . . . . . . . . . . 296
10.7. Визначення метаданих при проектуванні сховищ даних305
10.8. Автоматизація проектування сховищ даних. . . . . . . . 311
Розділ 11. Основи побудови інформаційних систем на базі сховищ
даних . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11.1. Аналітичні системи на базі сховищ даних . . . . . . . . . 319
11.2. Cховища даних і технологія DATA MINING . . . . . . . 322
11.3. Основи побудови інформаційних систем на базі сховищ
даних . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
347