Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зацерковний В.І. та ін. ГІС та бази даних

.pdf
Скачиваний:
979
Добавлен:
19.02.2016
Размер:
32.61 Mб
Скачать

Основним принципом організації баз даних є спільне збереження даних і їх опису.

Опис даних називають метаданими. Метадані зберігаються в частині бази даних, яка називається каталогом або словником-довідником даних. Знаючи формат метаданих, можна запитувати і змінювати дані без написання додаткових програм.

Одна й та ж база даних може бути використана для розв’язку багатьох прикладних задач. Наявність метаданих і можливість інформаційної підтримки розв’язку багатьох задач – це принципова відмінність бази даних від будь-якої іншої сукупності даних, що розташовуються в зовнішній пам’яті комп’ютера.

9.4.Функції СКБД

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

2.Керування буферами оперативної пам’яті. СКБД зазвичай пра-

цюють з БД значних розмірів; принаймні цей розмір зазвичай істотно більше доступного об’єму оперативної пам’яті. Зрозуміло, що якщо при звертанні до будь-якого елемента даних буде здійснюватись обмін із зовнішньою пам’яттю, то вся система буде працювати зі швидкістю пристрою зовнішньої пам’яті. Практично єдиним способом реального збільшення цієї швидкості є буферизація даних в оперативній пам’яті. Тому в розвинених СКБД підтримується власний набір буферів оперативної пам’яті з власною дисципліною заміни буферів.

3.Керування транзакціями. Транзакція – це послідовність операцій над БД, що розглядається СКБД як єдине ціле. Або транзакція успіш-

но виконується, і СКБД фіксує зміни БД, здійснені цією транзакцією, у зовнішній пам’яті, або жодна з цих змін жодним чином не відображується на стані БД. Поняття транзакції необхідне для підтримання логічної доцільності БД. Та властивість, що кожна транзакція починається при цілісному стані БД і залишає цей стан цілісним після свого завершення, робить дуже зручним використання поняття транзакції як одиниці активності користувача по відношенню до БД. При відповідному керуванні транзакціями з боку СКБД, що виконуються паралельно, кожний з користувачів може в принципі відчувати себе єдиним користувачем СКБД. Таким чином, підтримка механізму транзакцій є обов’язковою умовою функціонування СКБД.

341

4.Журналізація. Однією з основних вимог до СКБД є надійність збереження даних у зовнішній пам’яті. Підтримка надійності збереження даних у БД вимагає надлишковості збереження даних, причому та частина даних, яка використовується для відновлення, повинна зберігатись особливо надійно. Найбільш поширеним методом підтримки такої надлишкової інформації є ведення журналу змін БД.

Під надійністю збереження розуміється те, що СКБД повинна бути

встані відновлювати останній узгоджений стан БД після будь-якого апаратного або програмного збою.

5.Підтримка мов БД. Для роботи з БД використовуються спеціальні мови, які в загальному випадку називаються мовами БД. У ранніх СКБД підтримувалось декілька спеціалізованих за своїми функціями мов, а саме:

• мова опису даних (МОД) (SDL – Schema Definition Language), яка називається також мовою опису схем, – для побудови структури ("шапки") таблиць БД;

• мова маніпулювання даними (ММД) (DML – Data Manipulation Language) – для заповнення БД даними і операцій оновлення (запис, видалення, модифікація);

• мова запитів – мова пошуку наборів величин у файлі відповідно до заданої сукупності критеріїв пошуку і видачі затребуваних даних без зміни змісту файлів і БД (мова перетворення критеріївна систему команд).

Сьогодні функції всіх трьох мов виконує мова структурованих запитів SQL.

342

Х. ПРИНЦИПИ ПОБУДОВИ БАЗ ДАНИХ, ЇХ АРХІТЕКТУРА І КЛАСИФІКАЦІЯ

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

Б. Гейтс

Теорія баз даних – порівняно молода галузь знань, однак сучасний світ інформаційних технологій важко уявити собі без використання баз даних, а геоінформаційних технологій – взагалі неможливо.

Практично всі ГІС пов’язані з функціями тривалого збереження й обробки інформації, оскільки геоінформація є тим чинником, який багато в чому визначає ефективність будь-якої сфери діяльності.

На сучасному етапі розвитку суспільства збільшились інформаційні потоки і підвищились вимоги до швидкості обробки даних. Більшість операцій з обробки інформації просто неможливо виконувати вручну, вони потребують застосування більш перспективних комп’ютерних технологій, якими і є геоінформаційні. Управлінські рішення в будь-якій предметній сфері вимагають чіткої і точної оцінки поточної ситуації та можливих перспектив її зміни. І якщо раніше при оцінці ситуації враховувалось декілька десятків факторів, що впливали на поточну ситуацію і які можна було обчислити вручну, то тепер кількість таких факторів становить сотні і навіть сотні тисяч, а ситуація змінюється не протягом року, а через декілька хвилин. При цьому обґрунтованість управлінських рішень, що повинні прийматись, повинна бути надзвичайно високою, оскільки ціна похибки, допущеної в процесі прийняття рішень, може бути надзвичайно високою. Отже, обійтись без ГІС, що ґрунтуються на базах просторових і атрибутивних даних та банках знань,просто неможливо.

Бази даних і бази знань є ядром автоматизованого банка даних.

10.1. Принципи побудови баз даних

База даних (БД) – іменована сукупність даних, що відображає стан об’єктів та їх відносини у певній предметній сфері.

Банк даних (БнД) – це система спеціальним чином організованих даних (баз даних), програмних, технічних, мовних, організаційнометодичних засобів, призначених для забезпечення централізованого накопичення і колективного багатоцільового використання даних.

343

Найбільш істотними науковими принципами, які лежать в основі побудови БД, є принцип інтеграції даних і принцип централізації керування ними (рис. 10.1).

Рис. 10.1. Принципи побудови баз даних

Принцип інтеграції даних полягає в об’єднанні окремих, взаємно не зв’язаних даних у єдине цілісне утворення, в ролі якого виступає БД. У результаті всі дані подаються єдиним інформаційним масивом. При цьому полегшуються пошук взаємозалежних даних і їхня спільна обробка, зменшується надлишковість даних, спрощується процес ведення БД.

Інтеграцію даних необхідно розглядати на двох рівнях – логічному і фізичному. На логічному рівні множина структур даних відображається в єдину структуру даних, на фізичному рівні автономні файли об’єднуються в БД.

Принцип цілісності даних відображає вимогу адекватності інформації, що зберігається в БД, стану предметної сфери. В будь-який момент часу дані повинні точно відповідати властивостям і характеристикам об’єктів. Порушення цілісності виникає внаслідок спотворення або навіть руйнації (стирання) всіх або частини даних, а також як результат запису в БД неправильної (спотвореної) інформації. Підтримка цілісності досягається:

за рахунок контролю вхідної інформації;

періодичної перевірки даних, що зберігаються;

застосуванням спеціальної системи відновлення даних;

іншими заходами.

344

Під незалежністю даних розуміють незалежність прикладних програм від даних, що зберігаються, при якому будь-які зміни в організації даних не вимагають корекції цих програм.

Шляхи забезпечення незалежності даних:

уведення додаткових рівнів абстрагування даних (принцип багато-

рівневості). Замість двох традиційних рівнів, передбачених базовим програмним забезпеченням і стандартними мовами програмування, – логічного

іфізичного – в архітектурі БД використовується принцип трирівневої організації даних: логічний рівень поділяється на два – зовнішній (рівень користувача) і концептуальний (загальний системний рівень даних);

передача СКБД частини функцій, пов’язаних з організацією доступу до БнД, що раніше покладалися на прикладні програми. При цьому прикладна програма лише формує і передає ядру інформацію, необхідну для пошуку даних;

застосуванням і дотриманням принципу відділення опису БД від процедур обробки даних;

реляційний підхід до побудови БД.

Найбільший ефект досягається симбіозом усіх зазначених шляхів.

Відсутність надлишковості – це стан даних, коли кожний елемент присутній у БД тільки в одиничному екземплярі. Надлишковість може мати місце як на логічному рівні, коли в структурі даних повторюються одні й ті ж самі типи даних, так і на фізичному рівні, коли дані зберігаються в двох або більше екземплярах. Принцип інтеграції дозволяє звести надлишковість до мінімуму.

Під несуперечливістю розуміється змістова відповідність між даними. Це такий стан БД, при якому дані, що зберігаються в ній, не суперечать один одному. Розрізняють два аспекти несуперечливості: змістова відповідність різнотипних даних та ідентичність (рівність) дублюючих даних.

Принцип зв’язності даних полягає в тому, що дані в БД взаємозалежні, і зв’язки відбивають відношення між об’єктами предметної сфери. Множина типів даних і множина зв’язків утворюють логічну структуру даних. Наявність зв’язків між записами в БД дозволяє зменшувати надлишковість, спростити і прискорити пошук даних.

Принцип централізації керування полягає в передачі усіх функцій керування даними єдиному комплексу керуючих програм – СКБД. Як було зазначено вище, всі операції, пов’язані з доступом до БД, виконуються не прикладними програмами, а централізовано – ядром СКБД – на підставі інформації, яку отримують з цих програм. Дотримання цього принципу дозволяє автоматизувати роботу з БД і тим самим істотно підвищити ефект, який отримують від застосування інформаційної системи.

345

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

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

Архітектура БД – концепція взаємозв’язку логічних, фізичних і програмних компонентів системи.

10.2.Трирівнева архітектура баз даних

Упроцесі досліджень, присвячених тому, як саме повинна бути

влаштована СКБД, пропонувались різні способи реалізації. Найбільш життєздатною виявилась реалізація, запропонована ANSI36.

Перша спроба створення стандартної термінології та загальної архітектури СКБД була зроблена в 1971 р. групою DBTG (DataBase Task Group), яка прийшла до висновку про необхідність використання дворівневого підходу: схема (рівень адміністратора) і підсхеми (рівень користувацьких представлень).

У1975 р. ANSI/X3/SPARC37 визнав необхідним використання трирівневого підходу для задоволення потреб колективного використання структур даних при їх індивідуальному представленні. Хоча модель, що запропонована групою ANSI/SPARC, не стала стандартом, проте архітектура вважається класичною і є актуальною й донині.

Мета створення трирівневої архітектури СКБД є відділення ко-

ристувацького представлення бази даних від її фізичного представлення:кожен користувач повинен мати можливість звертатися до даних,

використовуючи власне уявлення про них (незалежно від уявлень інших користувачів);

взаємодія користувачів БД не повинна залежати від особливостей збереження даних у ній (наприклад, індексування, хешування38);

36Американський національний інститут стандартів (англ. American National Standards

Institute, ANSI) – об’єднання американських промислових і ділових груп, що розробляє торгові і комунікаційні стандарти, член ISO.

37X3 – комітет обчислювальноїтехніки й обробки інформації ANSI, SPARC– Standards Planning and Requirements Committee (Комітет планування стандартів і норм).

38 Хешування (іноді гешування, англ. hashing) – перетворення вхідного масиву даних довільної довжини на вихідний бітовий рядок фіксованої довжини. Такі перетворення також

346

адміністратор БД повинен мати можливість змінювати структуру збереження даних у базі, не впливаючи на користувацькі уявлення;

внутрішня структура БД не повинна залежати від змін фізичних аспектів збереження інформації (наприклад, використання нового пристрою збереження).

Архітектура ANSI-SPARC передбачає три різні рівні представлення даних: зовнішній, концептуальний та внутрішній (рис. 10.2).

Трирівневе представлення БД передбачає відповідний опис даних на кожному рівні й узгодження одних і тих самих даних на різних рівнях.

Рівень зовнішніх моделей (external level) – представлення БД з точки зору користувачів. Зовнішній рівень представлення даних не стосується фізичної організації (розміщення) даних у зовнішній пам’яті, тому його називають іноді логічним рівнем. Відповідно внутрішній рівень називають фізичним рівнем.

Оскільки БД є загальним ресурсом, то кожному користувачу може знадобитися своє, відмінне від інших уявлення про характеристики інформації, що зберігається в БД (користувач має справу з представленням предметної сфери, виражену в найбільш зручній для нього формі). Зовнішнє подання містить тільки ті сутності, атрибути та зв’язки предметної сфери БД, які цікаві користувачу (додатку).

 

Зовнішній

 

 

 

 

 

Рівні представлення моделей

Зовнішня

Зовнішня

 

Зовнішня

Інфо-

 

модель даних

модель даних

модель даних

 

 

 

логічний

 

 

 

 

 

 

Представлення

Представлення

 

Представлення

 

Рівні моделей даних

1

2

n

 

Концептуальний

 

 

Дато-

Внутрішній

 

 

 

логічний

 

 

 

Фізичний

 

 

 

 

 

 

 

База даних

 

 

Фізична

 

 

 

 

 

організація

 

 

 

 

 

 

даних

 

 

Рис. 10.2. Трирівнева модель системи керування базою даних,

 

 

 

що запропонована ANSI

 

 

називаються хеш-функціями або функціями згортки, а їх результати називають хешем, хешкодом або дайджестом повідомлення (англ. message digest).

347

Інші сутності, атрибути та зв’язки, які йому не потрібні, теж можуть бути представлені в БД, але користувач може навіть не підозрювати про їх існування. Тому на зовнішньому рівні може бути декілька різних зовнішніх представлень БД (кожний користувач має своє уявлення "реального світу" і не бачить зайве (з його точки зору)). Крім того, різні подання можуть різним чином відображати одні й ті ж дані. Наприклад, один користувач може переглядати дати в форматі (день, місяць, рік), а інший – у форматі (рік, місяць, день). Деякі подання можуть включати похідні або обчислювані дані, що не зберігаються в БД як такі, а створюються в міру потреби (вік співробітників, термін експлуатації споруди тощо), що не вимагає зайвих оновлень БД і дозволяє зменшити об’єм БД. Уявлення можуть також включати комбіновані або похідні дані з декількох об’єктів.

Зовнішній рівень являє собою, як правило, словесний опис даних та їх взаємозв’язків і відбиває інформаційні потреби користувачів та прикладних програм (рис. 10.3).

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

Вимоги з боку прикладних програм до зовнішнього рівня подання даних – це перелік даних з описом їх взаємозв’язків, які необхідні для реалізації певних функціональних завдань.

Вимоги користувачів

Вимоги прикладних програм

Зовнішній рівень представлення моделей

Рис. 10.3. Зовнішній рівень представлення моделей

Опис зовнішнього рівня не виключає наявності дублювання, надлишковості, неузгодженості тощо.

Метою проектування на зовнішньому рівні є розробка позамашинного інформаційного забезпечення, яке вміщує систему вхідної (первинної) документації і характеризує певну предметну сферу (ПС), систему класифікації та кодування інформації, а також перелік відповідних вихідних повідомлень.

Під предметною сферою розуміють один або кілька об’єктів реального світу, інформація про які моделюється за допомогою БД і використовується для розв’язку різних функціональних завдань.

Існує два підходи до проектування баз даних на зовнішньому рівні:

від предметної сфери;

від запиту.

348

Підхід "від предметної сфери" полягає в тому, що формується зовнішнє інформаційне забезпечення всієї предметної сфери без урахування потреб користувачів і прикладних програм. Іноді цей підхід називають ще об’єктним, або непроцесним.

При підході "від запиту" основним джерелом інформації про предметну сферу є вивчення запитів користувачів і потреб прикладних програм. Цей підхід також називається процесним, або функціональним. При такому підході БД проектується для виконання поточних завдань керування без урахування можливості розширення системи і виникнення нових завдань управління.

Перевагами підходу "від предметної області" є його об’єктивність, системність при відображенні ПС і стійкість інформаційної моделі, можливість реалізації великої кількості прикладних програм і запитів, у тому числі незапланованих при створенні БД. Недолік цього підходу – значний обсяг робіт, що його потрібно виконати при визначенні інформації, яка підлягає фіксації в БД, що відповідно ускладнюєі збільшує термін розробки проекту.

2. Концептуальний рівень (conceptual level) – це узагальнене,

проміжне представлення БД. Він містить логічну структуру всієї БД, а саме: всі сутності, їх атрибути і зв’язки; обмеження, семантичну інформацію про дані; інформацію про заходи безпеки і підтримки цілісності даних, що використовуються усіма додатками, які працюють з даною БД. Усі зовнішні представлення утворюються з даних цього рівня, але цей рівень не містить відомостей про методи збереження даних (тобто може мати інформацію про довжину полів, їх тип, назву, але не містить інформації про об’єми в байтах тощо).

Фактично концептуальний рівень відбиває узагальнену модель предметної сфери, для якої створювалася БД (рис. 10.4).

Вимоги та обмеження СКБД

Логічний рівень представлення моделей

Рис. 10.4. Логічний рівень представлення моделей

Як і будь-яка модель, концептуальна модель відображає тільки істотні з точки зору обробки особливості об’єктів реального світу.

Концептуальний рівень підтримує кожне зовнішнє представлення. Даний рівень об’єднує дані, які використовуються усіма прикладними програмами, що працюють з БД. Однак концептуальний рівень не

містить жодних відомостей про методи збереження даних.

349

Виділення концептуального рівня дозволило розробити апарат централізованого керування БД.

3. Внутрішній рівень (internal level) описує фізичну реалізацію бази даних. Його ще називають фізичним рівнем. Це власне дані, що зберіга-

ються в файлах або в сторінкових структурах, що розташовані на зовнішніх носіях інформації. На внутрішньому рівні міститься така інформація: розподіл дискового простору для збереження даних та індексів; відомості про розміщення записів; відомості про стиснення даних та методи їх шифрування.

Виділяють декілька проблем фізичного подання даних, які необхідно вирішити, щоб забезпечити максимальну ефективність роботи бази даних.

По-перше, необхідно вирішити, як здійснювати пошук потрібного запису. Для цього потрібно встановити відповідність між логічним записом і адресою фізичного запису.

По-друге, необхідно вирішити, як організувати дані, щоб їх пошук був ефективним.

По-третє, як додавати нові записи до даних, видаляти старі записи і при цьому не порушувати систему адресації і пошуку.

Відмінності між рівнями представлення даних показані на рис. 10.5.

Рис. 10.5. Відмінності між рівнями представлення даних

350