Системи керування базами даних в цілому їх функції та структура

1



4



























Реферат

Системи керування базами даних в цілому, їх функції та структура


1.1 Вступ



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

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

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

		Дозволяє визначати базу даних – це зазвичай здійснюється за допомогою мови визначення даних (DDL- Data Definition Languge). Мова DDL надає користувачеві засоби для зазначення типу даних та їх структури, а також засоби створення обмежень для інформації, яка зберігається у базі.

		Дозволяє додавати, оновлявати, видаляти та вилучати інформацію з БД, що звичайно здійснюється за допомогою мови керування даними (Data Manipulation Language). Наявність централізованого сховища усіх даних та їх опис дозволяє використовувати мову DML, яку часто називають мовою запитів, як загальний інстумент організації запитів. Саме завдяки мові запитів усуваються обмеження, притаманні файловим системам, при яких користувачі мали справу лише з фіксованим набором запитів чи з постійно зростаючою кількістю прикладних програм, що породжували ще більші проблеми упралвіння ресурсами та прогармним забезпеченням.Існує два різновиди мов запитів DML – процедурні та непроцедурні мови, які відрізняються між собою способом вилучення даних. Основна відмінність полягає в тому, що процедурні мови звичайно обробляють інформацію у базі даних послідовно, запис за записом, а непроцедурні оперують одразу цілими наборами даних. Тому за допомогою процедурних мов DML звичайно вказують, ЯК можна одержати бажаний результат, тоді як непроцедурні мови DML використовуються для опису того, ЩО слід одержати. Найбілш поширеним типом пепроцедурних мов DML є мова структурованих запитів (Structured Query Language- SQL), яка в даний час фактично є обов’язковою мовою для реляційних СУБД.

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

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

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

		Системи управління паралельною роботою прикладних програм, яка котролює процеси їх сумісного доступу до БД;

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

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






СУБД

Ввід даних і видача звітів

Компоненти середовища СУБД





Апаратне забезпечення

Програмне забезпечення

Процедури

КористувачіУ середовищі СУБД можна виділити п’ять основних компонентів: апаратне забезпечення, програмне забезпечення, дані, процедури і користувачі 









Комп’ютер				Міст			Людина

Апаратне забезпечення



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

Програмне забезпечення

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

Дані

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

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

		Імена зв’язків (один–до-одного, один-до-багатьох, багато-до-багатьох);

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

		Імена зареєстрованих користувачів, яким надаються права деякого доступу (логін, пароль);

		Індекси, що використовуються, та структури зберігання (інвертовані файли чи дерева В+).

Процедури

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

Користувачі

4 групи: адміністратор БД, розробники БД, прикладні програмісти та кінцеві користувачі.

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



1.2 Недоліки сучасних файлових систем у базах даних



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

Спрощена схема системи баз даних складається з таких компонентів: 

дані;

апаратне забезпечення;

програмне забезпечення;

користувачі

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

В загальному випадку дані в системі баз даних є інтегрованими та розділюваними.

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

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

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

Апаратне забезпечення.

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

Апаратний процесор разом з основною пам’ятю, які призначені для підтримки програмного забезпечення системи баз даних.

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

Користувачі. З групи користувачів, які частково перекриваються:

		Перша група – прикладні програмісти, які відповідають за ниписання прикладних програм, які використовують базу даних. Для цієї мети використовуються мови високого рівня 4-го покоління, такі як COBOL, C++, Java. Прикладні програми одержують доступ до бази даних через видачу відповідного запиту до СКБД (зазвичай, це деякий SQL-оператор). Подібні програми можуть бути простими пакетними додатками або ж інтерактивними додатками, які передбачені для підтримки роботи кінцевих користувачів (безпосередній оперативний доступ до бази даних)

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

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

Тим не менш, корисно буде сформулювати ці (та інші) важливі функції окремо.


2.1 Основні функції СКБД



До числа функцій СКБД відносять наступні:



2.1.1 Безпосереднє керування даними у зовнішній пам’яті

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



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

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



2.1.3 Керування транзакціями

Транзакція - це послідовність операцій над БД, які розглядаються СКБД як єдине целе. Будь-яку транзакцію, що успішно виконується, СКБД фіксує зміни у БД, у зовнішній пам’яті, або жодна з цих змін ніяк не відбивається на стані БД. Поняття транзакції необходе для підтримки логичної цілісності БД. Якщо згадати наш приклад інформаційної системи відділу кадрів з файлами РОБІТНИКИ та ВІДДІЛИ, тоді єдиним способом не порушити цілісності БД при виконанні операції прийому на роботу нового співробітника буде об’єднання елементарних операцій над файлами РОБІТНИКИ та ВІДДІЛИ в одну транзакцію. Таким чином, підтримка механізму транзакцій є обов’язковою умовою навіть однокористувацької СКБД (якщо, звичайно, така система заслуговує назви СКБД). Набагато суттєвішим є поняття транзакції у СКБД з багатьма користувачами. Та властивість, що кожна транзакція починається при цілісному стані БД і залишає цей стан цілісним після свого завершення, робить дуже зручним використання поняття транзакції як одиниці активності користувача по відношенню до БД. При відповідному керуванні транзакціями, що паралельно виконуються, з боку СКБД кожен користувач може в принципі відчувати себе єдиним користувачем СКБД, якщо не зважати на деяку загальмованість роботи для кожного користувача. 

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



2.1.4 Журналізація

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

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

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

Дані передаються користувачеві у вигляді таблиць (і лише таблиць)

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

Причиною назви такої системи реляційною, полягає в тому, що термін «relation» (відношення, співвідношення), є математичною назвою таблиці

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

	До найбільш відомих та типових представників таких систем відносять Datacom/DB компанії Applied Data Research, Inc. (ADR). Вона було орієнтована на використання на машинах основного класу фірми IBM, і Adabas компанії Software AG.

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


3. Ієрархічні системи



Типовим представником є Information Management System (IMS) фірми IBM. Перша версія з’явилася у 1968 г. До тепер підтримується багато баз даних, що створює суттєві проблеми з переходом як на нову технологію БД, так і на нову техніку.

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





Рис.2 Ієрархічна деревоподібна структура моделі БД



Маніпулювання даними

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

Знайти вказаний вузол БД (наприклад, відділ 310); 

Перейти від одного вузла до іншого; 

Перейти від одного запису до другого всередині дерева (вузла) (наприклад, від начальника до к первому сотруднику); 

Вставити новий запис на вказану позицію; 

Видалити поточний запис. 

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

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

Мережеві системи

Типовий представник: Integrated Database Management System (IDMS) компанії Cullinet Software, Inc., передбчачені для використання на машинах основного класу фірми IBM під керуванням більшості операційн+их систем (70-ті рр.)

Мережеві структури даних

Мережевий підхід до організації даних був продовженням ієрархічного. Нагадаємо в останніх структурах запис-нащадок має лише одного попередника; в той час, як у мережевій системі попередників може бути як завгодно багато.







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

Маніпуляція даними

Знайти конкретний запис з набору однотипних записів (викладача 1); 

Перейти від предка до першого нащадка за деяким зв’язком (до першого студента групи 421); 

Перейти до наступного предка (від викладача 1 до викладача 2); 

Перейти від нащадка до предка через певний зв’язок (знайти викладача певного студента); 

Створити новий запис; 

Знищити запис; 

Модифікувати запис; 

Залучити до зв’язку; 

Вилучити зі зв’язку; 

Переставити в інший зв’язок тощо.