Побудова та технології БД
РОЗДІЛ 1
Пункт 1 (Побудова та технології БД)
Виникнення технологій баз даних припадає на початок 60-х років. Їх швидкому розвитку сприяли потреби в обробці інформації, досягнення в суміжних областях інформаційних технологій таких, як операційні системи, мови програмування, технічне забезпечення. Спочатку зароджувалися певні ідеї щодо управління ресурсами даних, формувалися основи методології побудови систем баз даних. Із самого початку було зрозуміло, що цей напрям має самостійне значення і буде відігравати одну з ключових ролей у побудові інформаційних систем різного призначення.
Інформаційні задачі на відміну від обчислювальних мають такі особливості:
− збереження даних складної структури;
− відносно прості алгоритми обробки;
− великі обсяги оброблюваної інформації.
Інформаційна система виконує функції збирання, зберігання, розповсюдження і обробки інформації. Під інформацією розуміють будь-які відомості про будь-яку подію, сутність, процес і т.ін., які є об'єктом певних операцій: передачі, перетворення, зберігання або використання. Дані можна визначити, як інформацію зафіксовану у певній формі, яка придатна для подальшої обробки, зберігання і передачі (рис. 1.1). Предметна область – область застосування конкретної бази даних.
Інформації відповідає інфологічне представлення, яке розглядає питання пов'язані зі змістом інформації, незалежно від представлення її в пам'яті комп'ютера. Даталогічне представлення розглядає питання представлення даних в пам'яті комп'ютера.
Функції управління інформацією в інформаційних системах виконують системи управління базами даних.
Предметна Інформаційна
Інформація
Дані
область
система
Представлення
Інфологічна
модель
Даталогічна
модель
Модель
Управління
інформацією
СУБД
Управління
Рис. 1.1. Зв'язок між інформацією і даними
Спочатку для збереження даних застосовувалися файлові системи (рис. 1.2). Для цих систем були характерні такі особливості:
− структура запису файла даних була відома тільки прикладній програмі, яка з ним працювала, а система управління файлами її не знала; кожна програма, яка працювала з файлом даних, повинна була мати у себе структуру даних, яка відповідала цьому файлу (така ситуація характеризувалась, як залежність програм від даних);
− система управління файлами повинна була забезпечити авторизацію доступу до файлів для різних користувачів, але були відсутні централізовані методи управління доступом до інформації;
− для організації паралельної роботи користувачів з даними необхідне узгоджене управління, а система управління файлами при цьому працювала надто повільно.
Для подолання цих недоліків практично паралельно почалися роботи над ієрархічними і мережними базами даних
(БД) і над відповідними системами управління цими БД − СУБД. В основі цих БД лежали відповідні моделі даних: ієрархічні і мережні (рис. 1.2).
Рис. 1.2. Етапи розвитку баз даних
Ці моделі належать до теоретико-графових моделей. До переваг цих БД можна віднести ефективне використання пам'яті комп'ютера, швидке виконання основних операцій над даними. Недоліками цих БД є таке:
− труднощі при обробці інформації з достатньо складними зв'язками;
− складність розуміння змісту звичайним користувачем, залежність від фізичної реалізації.
На початку 70-х років були сформовані теоретичні основи сучасних технологій БД і остаточно сформувався самостійний напрям інформаційних технологій – наука о базах даних. Головною подією цього періоду стало виникнення реляційних баз даних. В основі реляційної моделі лежить поняття відношення. Реляційна модель є простою і зрозумілою, а її фізичне представлення добре реалізується на комп'ютері. До недоліків реляційних моделей можна віднести складність реалізації ієрархічних і мережних зв'язків.
У 70-х роках почали формуватися підходи в БД, які пов'язані з використанням апарата логіки в якості моделі даних. Ці роботи привели до створення дедуктивних БД. Розвиток цього напряму дозволяє створювати бази знань.
У 80-х роках реляційні БД набули домінуючого положення. Однак уже тоді існувало і постійно розширювалося коло застосувань, для яких ця технологія була неадекватною. Це стосується мультимедійних застосувань, систем, які оперують просторовими даними і т.ін. В середині 80-х років успіхів досягло об'єктно-орієнтоване програмування. Під його впливом і в зв'язку з необхідністю реалізації нетрадиційних застосувань, вимоги яких погано узгоджуються з можливостями реляційних систем, почались роботи з практичної реалізації об'єктно-орієнтованих БД. Логічна структура об'єктно-орієнтованої БД зовні схожа на структуру ієрархічної БД, але вона доповнена об'єктно-орієнтованими механізмами. Об'єктно-орієнтовані БД у порівнянні з реляційними БД мають можливість відображати інформацію о складних взаємозв'язках об'єктів, визначати функції обробки окремих записів. До недоліків об'єктно-орієнтованих моделей належить висока понятійна складність, низька швидкість виконання запитів, незручність обробки даних.
Бажання розробників реляційних БД зберегти лідируючі позиції і підвищити ефективність реляційної моделі, привели до розробки об'єктно-реляційної моделі, на основі якої почали розроблятися об'єктно-реляційні БД. В цих моделях припускається застосування багатозначних полів – полів, які складаються з підзначень. Ці БД дозволяють забезпечити високу наглядність представлення інформації і підвищити ефективність її обробки. До недоліків об'єктно-реляційних моделей можна віднести складність рішення забезпечення цілісності і несуперечливості даних.
На початку 90-х років почало збільшуватися значення інформаційного забезпечення систем підтримки прийняття рішень. Це привело до необхідності створення багатомірних СУБД і на їх основі розробки інформаційних сховищ. Ці системи використовують історичну інформацію, яка представляється в агрегованому вигляді. На основі цієї інформації виконується аналітична обробка, прогнозування даних, а також інтелектуальний аналіз даних.
В цей час також велика увага приділялася розвитку розподілених систем. Успіхи в розробці комп'ютерних мереж стимулювали дослідження в технологіях розподілених БД, були розроблені архітектурні концепції клієнт – сервер.
Одним з найбільших досягнень 90-х років в області інформаційних технологій стало створення відкритої глобальної розподіленої неоднорідної гіпермедійної інформаційної системи, яка використовує комунікаційну мережу Internet. Ця система отримала назву WWW (Web). З самого початку виконувались спроби інтегрувати системи БД у Web. Одним з напрямів роботи є інтеграція структурованих даних БД і слабкоструктурованих даних Web, проводяться роботи зі створення БД на мові XML.
У даний час в багатьох комп'ютерних компаніях здійснюються роботи зі створення цифрових бібліотек − інформаційних систем, які призначені для зберігання, пошуку, обробки, аналізу і розповсюдження інформаційних ресурсів різної природи – структурованих і слабкоструктурованих даних, мультимедійної інформації, повнотекстових документів. Для створення таких систем використовуються Web-технології, розробляються методи інтеграції неоднорідних ресурсів, розпізнавання і пошуку інформаційних ресурсів.
Переваги і недоліки застосування СУБД
Переваги СУБД |
Недоліки СУБД |
Мінімізація збитковості даних |
Використання значної частини ресурсів на потреби СУБД, а не на прикладну задачу |
Несуперечливість даних і контроль їх цілісності |
Вартість СУБД |
Незалежність прикладних програм від даних |
Підвищені вимоги до технічного і програмного забезпечення |
Підвищена безпека |
Продуктивність |
Розвинені засоби резервного копіювання і відновлення |
Підвищені вимоги до кваліфікації робітників |
Багатокористувацький режим роботи |
Наслідки збоїв |
Архітектура бази даних
Для організації роботи з БД необхідно забезпечити незалежність прикладних програм від даних. Це обумовлено тим, що при зміні системи, а також з метою забезпечення ефективного обслуговування користувачів необхідно виконувати роботи щодо зміни методів зберігання даних в БД, шляхів доступу до даних, змінювати структури і формати даних та зв'язки між ними. Якщо не застосовувати спеціальні підходи і при написанні застосувань вводити програмний опис методів доступу, засобів зберігання даних, формати даних, то при будь-якій зміні в БД для перелічених випадків буде необхідно корегувати текст програми користувача, що потребує значних витрат.
Незалежність застосувань від даних забезпечується засобами СУБД. Цей підхід базується на тому, що користувачі застосовуючи БД, не знають внутрішнє представлення даних. На рис. 2.1 показана трирівнева модель архітектури СУБД, що була запропонована Комітетом планування стандартів і норм SPARC (Standarts Planning and Requirements Committee) Американського національного інституту стандартів ANSI (American National Standarts Institute).
Опис структури даних на будь-якому рівні називається схемою. Існує три різних типи схем БД, які визначаються згідно з рівнями абстракції архітектури СУБД. На самому верхньому рівні є декілька зовнішніх схем, які відповідають різним представленням даних. Цей рівень визначає точку зору на БД окремих застосувань. Кожне застосування бачить і обробляє тільки ті дані, які необхідні цьому застосуванню.
Зовнішні
моделі
ЗМ
1
ЗМ
2
. . . . .
ЗМ
N
Концептуальний
рівень
Користувачі
К
1
К
2
. . . . .
К
N
Внутрішній
рівень
С
У
Б
Д
База
даних
Рис. 2.1. Трирівнева архітектура СУБД
На концептуальному рівні опис БД називається концептуальною схемою. Тут БД представлена в найбільш загальному вигляді, який об'єднує дані, що використовуються всіма застосуваннями, які працюють з БД. Фактично концептуальний рівень відображає модель предметної області, для якої створювалася БД.
На внутрішньому рівні опис БД називається внутрішньою схемою. Тут БД представлена у вигляді безпосередньо даних, що розташовані в файлах, які відповідають фізичній організації БД.
Трирівнева архітектура СУБД дозволяє забезпечити незалежність від даних. Це означає, що зміни на нижніх рівнях не впливають на верхні рівні. Розрізняють логічну і фізичну незалежність при роботі з даними. Логічна незалежність від даних означає захищеність зовнішніх схем від змін, що вносяться в концептуальну схему. Зміни концептуальної схеми БД не викликають необхідності в корегуванні існуючих зовнішніх схем для користувачів, і відповідно не викликають змін в застосуваннях, що працюють з цими схемами. Фізична незалежність від даних означає захищеність концептуальної і зовнішніх схем від змін, що вносяться у внутрішню схему. До змін внутрішньої схеми належать використання різних файлових систем або структур даних, різних пристроїв зберігання, модифікація пошукових структур тощо.
Крім трьох названих рівнів абстрагування в БД існує ще один рівень, що передує їм. Цей рівень відображає інформацію про предметну область, а модель цього рівня називається інфологічною моделлю предметної області. Таким чином головними рівнями абстрагування в БД є рівні:
− інфологічний;
− зовнішній;
− концептуальний; − внутрішній.
Перехід від одного рівня абстрагування до наступного і складає в загальному вигляді процес проектування БД.
Моделі даних
Модель даних – це деяка абстракція, в якій знаходять своє відображення найбільш важливі аспекти функціонування визначеної предметної області, а другорядні – ігноруються. Модель даних являє собою деяку цільову модель предметної області. У моделі даних розрізняють три головні складові:
− структурна частина, яка визначає правила породження допустимих для даної СУБД видів структур даних;
− управляюча частина, яка визначає можливі операції над такими структурами ;
− класи обмежень цілісності даних, які можуть бути реалізовані засобами цієї системи.
Моделювання даних – це процес створення логічного представлення структури бази даних.
На рис. 2.2 показана класифікація моделей даних.
Моделі
даних
Інфологічні
моделі
Даталогічні
моделі
Фізичні
моделі
Модель
"
сутність
-
зв
'
язок
"
ER
-
(
модель
)
Семантична
об
'
єктна
модель
Фактографіч
ні
моделі
Документаль
ні
моделі
ER-
моделі
:
-
Чена
;
-
IDEF1X;
-
"
пташина
лапка
";
-
Баркера
Теоретико
-
графові
моделі
Теоретико
-
множинні
моделі
Об
'
єктно
орієнтовані
моделі
Дескрипторні
моделі
Тезаурусні
моделі
Гіпертекстові
моделі
Ієрархічна
модель
Мережна
модель
Реляційна
модель
Пост
реляційна
модель
Багатомірні
моделі
Рис. 2.2. Класифікація моделей даних
Кожному рівню представлення інформації відповідає певна модель.
Інфологічна модель – відображає інформацію про предметну область у вигляді незалежному від СУБД, що використовується. Ця модель відображає інформаційнологічний рівень абстрагування, який пов'язаний з описом об'єктів предметної області, їх властивостей і взаємозв'язків.
Часто ці моделі ототожнюють з концептуальними моделями предметної області і називають концептуальними інфологічними моделями (внутрішня і зовнішня концептуальні інфологічні моделі).
Даталогічна модель – модель логічного рівня, яка відображає логічні зв'язки між елементами даних безвідносно до їх змісту і середовища збереження. Часто ці моделі ототожнюють з логічними моделями.
Фізична модель – описує те, як дані зберігаються в комп'ютері, представляючи інформацію про структуру записів, їх впорядкованість і про існуючі шляхи доступу до даних.
Модель "сутність-зв'язок" (ER-модель) – описує модель предметної області і складається з множини сутностей, множини звязків між сутностями, а також з атрибутів сутностей і зв'язків. В модель входить обмеження цілісності даних, що пов'язано з двома множинами сутностей і називається залежністю по існуванню. ER-моделі дозволяють графічно представляти моделі предметних областей. Вони є складовою частиною багатьох CASE-продуктів.
Семантична об'єктна модель – описує модель предметної області і являє собою модель даних. Ця модель складається з семантичних об'єктів, що містять сукупність атрибутів. Атрибути групуються у класи. Модель даних володіє більш розвиненими засобами відображення семантики у порівнянні з теоретико-множинними і теоретико-графовими моделями.
Теоретико-графова модель – модель даних, в якій дозволені структури даних можуть бути представлені у вигляді графа загального або спеціального виду, наприклад дерева. Необхідну групу операцій на мові маніпулювання даними, що засновані на цій моделі, представляють навігаційні операції. Операції над даними мають позаописовий характер.
Теоретико-множинна модель – модель даних, в якій використовується математичний апарат реляційної алгебри, реляційного обчислення, а операції над даними маніпулюють таблицями.
Фактографічні моделі – містять відомості, які
представлені у вигляді спеціальним чином організованих сукупностей формалізованих записів даних.
Документальні моделі – передбачають, що в якості одиничного елемента інформації виступає неподільний на менші складові частини документ, а інформація про документ, як правило, не структурується, або структурується в обмеженому вигляді. В цих моделях в основному розглядаються тексти на природній мові, формати документів є вільними.
Ієрархічна модель – модель даних в основі якої використовується ієрархічна, деревоподібна структура даних. Вершинами цієї структури є записи, які складаються з простих елементів даних різних типів. Батьківському запису відповідає довільне число екземплярів підлеглих записів кожного типу. Мережна модель – модель даних, в якій дозволені структури даних можуть бути представлені у вигляді графа загального вигляду. Вершинами такого графа можуть бути дані різних типів – від атомарних елементів даних до записів складної структури. На відміну від ієрархічної моделі наступник в цій моделі може мати довільне число батьків.
Реляційна модель – модель даних, яка заснована на математичному понятті відношення і представленні відношень у формі таблиць.
Постреляційна модель – розширена реляційна модель, яка знімає обмеження неподільності даних, що зберігаються в записах таблиць. Ця модель допускає багатозначні поля – поля, значення яких складається з підзначень. Набір значень багатозначних полів вважається самостійною таблицею, яка вбудована в основну таблицю. Часто ці моделі ототожнюють з об'єктно-реляційними моделями.
Об'єктно-орієнтована модель – модель даних, яка базується на понятті об'єкта, тобто сутності, що володіє станом і поведінкою. Стан об'єкта визначається його атрибутами, а поведінка визначається сукупністю операцій, що визначені для цього об'єкта. Також передбачається можливість підтримки зв'язків між типами об'єктів.
Багатомірна модель – модель даних, яка оперує багатомірним представленням даних (у вигляді гіперкубу) і орієнтована на підтримку аналіза даних. Передбачається конструювання різноманітних агрегацій даних у межах гіперкубу, побудова різних його проекцій – підмножин гіперкубу, деталізація і обертання даних, а також цілий ряд інших операцій.
Дескрипторна модель – описує кожен документ за допомогою дескриптора. Дескриптор має жорстку структуру і являє собою набори деяких лексичних одиниць (слов, словосполучень, термінів), які потрібні для роботи з документами. Дескриптори між собою не зв'язані.
Тезаурусна модель – описує кожен документ за допомогою дескрипторів, а також змістовних відношень між лексичними одиницями (ціле-частина, род-вид, клас-підклас і т.ін.). Ці моделі дозволяють підвищити ефективність дескрипторних моделей за рахунок більш ефективного відображення предметної області.
Гіпертекстова модель – модель, що заснована на розмітці документа за допомогою спеціальних навігаційних конструкцій, які відповідають змістовим зв'язкам між різними документами, або окремими фрагментами одного документа. Такі конструкції утворюють деяку семантичну мережу в базі документів.
Програмні і мовні засоби баз даних
Основу програмних засобів банка даних складає СУБД. В СУБД можна виділити ядро СУБД, яке підтримує сукупність базових механізмів роботи з БД, а також інші компоненти, які забезпечують засоби тестування, налагодження системи, утіліти, які забезпечують виконання таких додаткових функцій, як відновлення БД, збір статистики і т.ін. Важливою компонентою СУБД є транслятори і компілятори для мов, що використовуються. Для роботи з БД розробляються застосування.
Застосування – програма, яка призначена для рішення деякої сукупності задач в даній предметній області, або яка являє собою типовий інструментарій, що застосовується в різних предметних областях. Застосування може використовувати різні джерела даних (фактографічні, документальні, WEB і т.ін.), мати різну архітектуру (дволанкову, триланкову, розподілену).
Застосування бази даних – застосування, яке використовує ресурси деякої системи баз даних. Для доступа до БД використовується інтерфейс прикладного програмування СУБД, в середовищі якої він підтримується. Застосування можуть бути написані на стандартній алгоритмічній мові програмування (Pascal, C, Basic тощо) з вбудованими операторами на мові SQL.
Мова даних – мова, яка призначена для визначення даних, маніпулювання даними, а також інших функцій в термінах понять і рамках можливостей, які передбачені в моделі даних, що підтримується розглядуваною СУБД.
Мова запитів – мова доступу до БД, яка орієнтована на користувача. Мова запитів належить до декларативних мов, описує властивості і взаємозв'язки сутностей, але не описує алгоритм рішення задачі. Як правило мова запитів використовується в інтерактивному режимі, а також може вбудовуватися в програмний код застосувань.
Мова маніпулювання даними (Data Manipulation Language – DML) – мова, яка реалізує операційні можливості моделі даних, що використовується. Ця мова визначає операції, які допустимі над даними, що знаходяться в БД.
Мова визначення даних (Data Definition Language – DDL) – мова, яка служить для опису структури БД, обмежень цілісності, а також, можливо, для специфікації процедур, що зберігаються, тригерів, обмежень управління доступом і т.ін. Функціональні можливості мов визначення і маніпулювання можуть інтегруватися в єдину мову даних.
Мова програмування баз даних – мова, яка забезпечує концептуально єдине інтегроване середовище, яке засновано на єдиній моделі даних, для програмування застосувань і управління даними в БД. Такі мови об'єднують функції традиційних мов програмування із засобами опису і маніпулювання даними в БД.
Мова програмування базова – традиційна мова програмування, для якої дана СУБД забезпечує інтерфейс прикладного програмування (API). Прикладна програма, яка написана на цій мові, має доступ до деяких функціональних можливостей СУБД і може виконувати з її допомогою доступ до БД.
Мови, які належать до мов четвертого покоління (FourthGeneration Language – 4GL), мають такі функціональні можливості:
− генератори екранних форм для створення шаблонів вводу і відображення даних;
− генератори звітів на основі інформації, що зберігається в БД;
− генератори застосувань для створення програм обробки даних;
− генератори запитів;
− генератори для представлення даних у вигляді різного роду діаграм.
Для формування запиту за допомогою різних СУБД найчастіше використовуються дві основні мови опису запитів:
− SQL (Structured Query Language) – структурована мова запитів;
− QBE (Query By Example) – мова запитів за зразком.
Головна різниця між цима мовами полягає в тому, що мова QBE передбачає ручне або візуальне формування запиту, а мова SQL – програмування запиту.
Мова SQL є найбільш поширеною мовою для роботи з БД. На даний час існують такі міжнародні стандарти на мову SQL: SQL1, SQL2, SQL3.
Мова SQL не володіє функціями повноцінної мови розробки і орієнтована на доступ до БД. Використання мови SQL може бути самостійним і вона може включатися в склад засобів розробки програм. В цьому випадку її називають вбудованим SQL. Розрізняють два головних методи використання вбудованого SQL: статичний і динамічний.
Статичне використання передбачає застосування в програмі функцій викликів мови SQL, які включаються в програмний модуль і виконуються після компіляції програми.
Динамічне використання передбачає динамічну побудову викликів функцій мови SQL та інтерпретацію цих викликів у ході виконання програми. Динамічний метод застосовується тоді, коли вид SQL запиту заздалегідь невідомий і будується у діалозі з користувачем.
Будь-яке SQL-застосування реляційної БД складається з трьох частин: інтерфейса користувача, набору таблиць в БД і SQL-машини.
Планування бази даних
Етап планування бази даних передбачає розробку загального стратегічного плану, який дозволить ефективно реалізувати етапи життєвого циклу БД. Тут вирішуються такі питання:
− аналіз існуючих інформаційних систем;
− доцільність зміни існуючої інформаційної системи;
− обсяг робіт і ресурсів, вартість проекту;
− визначення технічного завдання для проекту бази даних;
− визначення технічних вимог;
− розробка методології збору даних, визначення їх формату;
− визначення необхідної документації;
− визначення послідовності проектування і реалізації застосувань.
Аналіз вимог до бази даних
На етапі аналізу вимог до бази даних вирішуються такі задачі:
− визначення діапазону дії і границь застосувань БД;
− визначення складу користувачів і областей застосування;
− визначення представлень користувачів, що підтримуються БД.
На цьому етапі також збираються і аналізуються вимоги користувачів:
− опис даних, що застосовуються (вхідні і вихідні документи);
− детальні відомості про транзакції;
− відомості про засоби застосування даних.
На основі всієї цієї інформації складаються специфікації вимог користувачів.
Проектування бази даних
Процес проектування БД являє собою послідовність переходів від неформального мовного опису інформаційної структури предметної області до формалізованого опису об'єктів предметної області в термінах деякої моделі. Проектування БД складається з таких етапів:
− системний аналіз предметної області;
− концептуальне проектування;
− логічне проектування;
− фізичне проектування.
Системний аналіз передбачає мовний опис реальних об'єктів предметної області, визначення зв'язків між об'єктами, дослідження характеристик об'єктів і зв'язків. Результати дослідження використовуються при концептуальном проектуванні БД.
Для визначення складу і структури предметної області застосовуються або функціональний, або предметний підходи. Функціональний підхід застосовує рух "від задач" і використовується у тих випадках, коли заздалегідь відомі функції майбутніх користувачів БД, а також відомі всі задачі, для інформаційних потреб яких створюються БД. В цьому випадку на основі виробничих документів, опитувань замовників можна чітко визначити мінімальний набір об'єктів предметної області та їх взаємозв'язок.
Предметний підхід застосовується у тому випадку, коли інформаційні потреби майбутніх користувачів чітко не визначені. В цьому випадку не можна чітко визначити мінімальний набір об'єктів предметної області. В опис предметної області включаються об'єкти та зв'язки, які є найбільш характерними та найбільш суттєвими для неї. БД називається предметною і може використовуватися для розв’язання задач, які заздалегідь не визначені.
У практичній діяльності використовується комплексний підхід, який з одного боку дозволяє розв’язувати конкретні інформаційні та функціональні задачі, а з іншого боку – враховує можливість додавання нових застосувань.
У загальному випадку існує два підходи до проектування БД: низхідне проектування і висхідне проектування (рис. 4.2).
Концептуальна
модель
Сутність
Сутність
. . . .
Атрибут
Атрибут
Атрибут
Атрибут
Низхідне
проекту
вання
БД
Висхідне
проекту
вання
БД
Рис. 4.2. Схема підходів до проектування бази даних