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

Тема 3. Теорія систем управління базами даних План

1.СУБД та банки даних.

2.Настільні та серверні СУБД.

3.Узагальнена архітектура СУБД.

4.Функції СУБД.

5.Мови визначення та маніпулювання даними в СУБД.

1. СУБД ТА БАНКИ ДАНИХ

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

Термін "банк даних" не є загально прийнятим. Найбільш близький до нього в англомовній літературі є термін "система баз даних" (data base system). Система баз даних включає БД, СУБД, відповідне обладнання, персонал.

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

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

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

Зазвичай СУБД розрізняють за моделлю даних, яка в ній використовується. Так, СУБД, засновані на використанні реляційної моделі даних, називають реляційними СУБД.

Одними з перших СУБД є наступні системи: IMS (IBM, 1968 р.), IDMS

(Cullinet, 1971 р.), ADABAS (Software AG, 1969 р.) і ІНЕС (ВНИИСИ

(Всесоюзный Научно-исследовательский институт системных исследований) АН СРСР, 1976 р.). Кількість сучасних систем управління базами даних обчислюється тисячами.

Кожна СУБД повинна задовольняти наступним вимогам:

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

дозволяти «запитувати» дані (інформацію з бази) і змінювати їх за допомогою мови запитів, або мови маніпулювання даними, допускати інтеграцію і спільне використання даних різними додатками;

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

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

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

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

даних.

Додатки - програми користувачів, яким необхідна інформація з системи. СУБД - програмне забезпечення, яке управляє доступом до даних і

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

Хост -система - комп'ютерна система, в якій зберігаються файли. Доступ до рядків даних здійснюється хост-системою. Роль СУБД полягає в тому, щоб генерувати запити, що дозволяють використовувати функціональні можливості системи управління файлами хост-системи для обслуговування різних додатків. СУБД являє собою додатковий рівень програмного забезпечення, надбудований над програмним забезпеченням хост-системи.

Устаткування - всі апаратні засоби (універсальний комп'ютер (mainframe), персональний комп'ютер( ПК), ноутбук, кишеньковий комп'ютер ).

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

Графічно систему з базою даних можна представити у вигляді логічної послідовності рівнів.

На самому нижньому рівні знаходяться дані, що зберігаються у фізичних файлах (фізична пам'ять бази даних).

На верхньому рівні розташовуються додатки, у яких є власне уявлення одних і тих же фізичних даних.

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

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

Фізичні моделі баз даних визначають не тільки способи розміщення даних у внутрішній пам'яті, а способи доступу до цих даних, які підтримуються на фізичному рівні. Історично першими системами зберігання і доступу до даних були файлові структури і системи управління файлами(СУФ), які фактично були частиною операційних систем.

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

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

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

Тоді поступово відбувся перехід від базових файлових структур до безпосередньо управління розміщенням даних на зовнішніх носіях самої СУБД.

І простір зовнішньої пам'яті вже виходив з-під впливу СУФ і керувався безпосередньо СУБД.

2. НАСТІЛЬНІ ТА СЕРВЕРНІ СУБД

Так само як класифікують БД, здійснюють класифікацію СУБД.

Багато авторів класифікують СУБД на 2 великі категорії: «Настільні» і «серверні».

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

Настільні СУБД

Незважаючи на те, що багато авторів висловлюють думку, що час цих СУБД пройшов, вони як і раніше використовуються і деякі з них досить активно. До числа подібних СУБД відносяться DBase, FoxPro, Paradox, MS Access.

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

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

Отже, де і як використовуються на сьогоднішній день перераховані вище СУБД? Насамперед, це державні (муніципальні) установи, сфера освіти, сфера обслуговування, малий і середній бізнес.

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

У подібних умовах використання настільних СУБД для управління інформаційними системами є цілком виправданим і з успіхом застосовується.

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

Деякі настільні СУБД функціонують в середовищі Microsoft Windows, а також мають засоби реалізації віконного користувальницького інтерфейсу,

наприклад, Microsoft Access і Visual FoxPro.

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

Зокрема, розроблений фірмою Borland механізм BDE (Borland Database

Engine) надає засоби для роботи з таблицями DBase, FoxPro, Paradox, Access, які інкапсулюють всередині себе всю інформацію про структуру таблиць.

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

Серверні СУБД

Однак, для великих організацій ситуація принципово змінюється. Там використання файл-серверних технологій є незадовільним з описаних вище причин. Тому, на передній план боротьби за автоматизацію виходять так звані серверні СУБД, розробкою яких активно займаються компанії IBM, INFORMIX, INPRISE, MICROSOFT, ORACLE, SYBASE (в алфавітному порядку).

Так, зараз на ринку серверних СУБД чільне місце займають DB2, Informix,

MS SQL Server, Oracle, Sybase, Interbase.

3. УЗАГАЛЬНЕНА АРХІТЕКТУРА СУБД

Для кращого розуміння функцій СУБД доцільно розглянути її архітектуру. Дана архітектура є умовною та узагальненою.

На зображені показано, що СУБД повинна управляти зовнішньою пам'яттю,

вякій розташовані файли з даними, файли журналів і файли системного каталогу.

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

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

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

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

Модуль управління буферами оперативної пам'яті призначений для вирішення завдань ефективної буферизації, яка використовується практично для виконання всіх інших функцій СУБД.

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

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

Остання область містить фрагменти системного каталогу, які необхідно постійно тримати в оперативній пам'яті, щоб прискорити обробку запитів користувачів, і область операторів SQL з курсором.

КУРСОР - це покажчик на контекстну область пам'яті, за допомогою якого програма на мові SQL може управляти контекстної областю та її станом під час обробки оператора.

Фрагменти системного каталогу в деяких реалізаціях називають словником даних. В стандарті SQL2 визначені загальні вимоги до системного каталогу. Системний каталог в реляційних СУБД являє собою сукупність спеціальних таблиць, якими володіє сама СУБД. Таблиці системного каталогу створюються автоматично при установці програмного забезпечення сервера БД. Усі системні таблиці зазвичай об'єднуються деяким спеціальним «системним ідентифікатором користувача».

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

Кожна таблиця системного каталогу містить інформацію про окремі структурні елементи БД.

Особливу увагу доцільно звернути на модуль підтримки SQL. Це практично транслятор мови SQL і блок оптимізації запитів.

Функції СУБД

Управління даними в зовнішній пам'яті

Управління транзакціями

Відновлення бази даних

Підтримка мов БД

Словник даних (Хомоненко, с.9)

Управління паралельним доступом

Управління буферами оперативної пам'яті

Контроль доступу до даних

Підтримка цілісності даних

Управління даними в зовнішній пам'яті

Ця функція надає користувачам можливості виконання найголовніших

операцій, які здійснюються з даними, - це збереження, вилучення та оновлення. Вона включає в себе забезпечення необхідних структур зовнішньої пам'яті як

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

Управління транзакціями

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

Відновлення бази даних

Однією з основних вимог до СУБД є надійність збереження даних у зовнішній пам'яті.

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

Звичайно розглядаються два можливі види апаратних збоїв:

м'які збої, які можна трактувати як раптову зупинку роботи комп'ютера (наприклад, аварійне вимкнення живлення);

жорсткі збої, що характеризуються втратою інформації на носіях зовнішньої пам'яті.

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

Найбільш поширеним методом підтримання такої надмірної інформації є ведення журналу змін БД.

Підтримка мов БД

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

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

Стандартною мовою найбільш поширених в даний час реляційних СУБД є мова SQL ( Structured Query Language - мова структурованих запитів). Мова SQL дозволяє визначати схему реляційної БД і маніпулювати даними.

Словник даних

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

наступна інформація:

імена, типи і розміри елементів даних;

імена зв'язків;

обмеження підтримки цілісності, що накладаються на дані;

імена користувачів, яким надано право доступу до даних;

зовнішня, концептуальна і внутрішня схеми;

статистичні дані, наприклад частота транзакцій і лічильники звернень до об'єктів бази даних.

Управління паралельним доступом

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

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

Управління буферами оперативної пам'яті

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

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

Контроль доступу до даних

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

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

Підтримка цілісності даних

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

Реалізація підтримки цілісності даних передбачає, що СУБД повинна містити відомості про ті правила, які не можна порушувати при роботі з даними, і

мати інструменти контролю за тим, щоб дані та їх зміни відповідали заданим правилам.

Мови визначення та маніпулювання даними в СУБД

У СУБД підтримується кілька спеціалізованих за своїми функціям підмов

(мов).

Їх можна розбити на дві категорії:

мова визначення даних БД – DDL (Data Definition Language);

мова маніпулювання даними DML (Data Manipulation, Language).

Мова визначення даних DDL - описова мова, за допомогою якої описується

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

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

Результатом компіляції DDL-операторів є набір таблиць, що зберігається в системному каталозі, в якому містяться метадані – тобто дані, які містять визначення записів, елементів даних, а також інших об'єктів, що представляють інтерес для користувачів або необхідні для роботи СУБД.

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

Соседние файлы в папке Інформатика та ІКТ_pdf