Користувачі. З групи користувачів, які частково перекриваються:
- Перша група – прикладні програмісти, які відповідають за ниписання прикладних програм, які використовують базу даних. Для цієї мети використовуються мови високого рівня 4-го покоління, такі як COBOL, C++, Java. Прикладні програми одержують доступ до бази даних через видачу відповідного запиту до СКБД (зазвичай, це деякий SQL-оператор). Подібні програми можуть бути простими пакетними додатками або ж інтерактивними додатками, які передбачені для підтримки роботи кінцевих користувачів (безпосередній оперативний доступ до бази даних)
- Друга група – кінцеві користувачі, які працюють з системою баз данихбезпосередньо через робочу станцію або термінал. Кінцевий користувач може одержати доступ до бази даних, застосовуючи інтерактивний додаток, інтегрований у програмне забезпечення СКБД. Більшість СКБД містить принаймні один такий вбудований додаток, а саме – процесор мови запитів, який дозволяє користувачеві у діалоговому вікні вводити запити до бази даних (їх часто називають командами або операторами, наприклад SELECT, INSERT).
- Третя група –адміністратор баз даних – професійний спеціаліст в області інформаційних технологій, який відповідає за створення баз даних і організацію технічного контролю, відповідальність за швидкодію системи та її технічне обслуговування.
Тим не менш, корисно буде сформулювати ці (та інші) важливі функції окремо.
2.1 Основні функції СКБД
До числа функцій СКБД відносять наступні:
2.1.1 Безпосереднє керування даними у зовнішній пам’яті
Ця функція включає забезпечення необхідних структур зовнішньої пам’яті як для зберігання безпосередньо даних, що належать до БД, так і для службових цілей, наприклад, для прискорення доступу до даних, журналів транзакцій тощо..СКБД підтримує власну систему іменування об’єктів БД (це дуже важливо, оскільки імена об’єктів бази даних відповідають іменам об’єктів предметної області).
2.1.2 Управління буферами оперативної пам’яті
СКБД звичайно працюють з БД значного розміру; у будь-якому випадку цей розмір значно перевищує доступний об’єм оперативної пам’яті. Зрозуміло, якщо при зверненні до деякого елементу даних буде виконуватися обмін зі зовнішньою пам’ятю, тоді вся система буде працювати зі швидкістю пристрою зовнішньої пам’яті. Единим способом реально підвищити цю швидкість є буферизація даних в оперативній пам’яті. І навіть якщо операційна система виконує загальносистемну буферизацію (як у випадку ОС UNIX), цього недостатньо для цілей СКБД, яка володіє набагато більшою інформацією про корисність буферизації тої чи іншої частини БД. Існують окремі напрямки СКБД, які орієнтовані на постійну присутність в оперативній пам’яті всієї БД. Цей напрямок оснований на припущенні, що в майбутньому об’єм оперативної пам’яті комп’ютерів може бити настільки великим, що дозволить не турбуватися про буферизацію.
2.1.3 Керування транзакціями
Транзакція - це послідовність операцій над БД, які розглядаються СКБД як єдине целе. Будь-яку транзакцію, що успішно виконується, СКБД фіксує зміни у БД, у зовнішній пам’яті, або жодна з цих змін ніяк не відбивається на стані БД. Поняття транзакції необходе для підтримки логичної цілісності БД. Якщо згадати наш приклад інформаційної системи відділу кадрів з файлами РОБІТНИКИ та ВІДДІЛИ, тоді єдиним способом не порушити цілісності БД при виконанні операції прийому на роботу нового співробітника буде об’єднання елементарних операцій над файлами РОБІТНИКИ та ВІДДІЛИ в одну транзакцію. Таким чином, підтримка механізму транзакцій є обов’язковою умовою навіть однокористувацької СКБД (якщо, звичайно, така система заслуговує назви СКБД). Набагато суттєвішим є поняття транзакції у СКБД з багатьма користувачами. Та властивість, що кожна транзакція починається при цілісному стані БД і залишає цей стан цілісним після свого завершення, робить дуже зручним використання поняття транзакції як одиниці активності користувача по відношенню до БД. При відповідному керуванні транзакціями, що паралельно виконуються, з боку СКБД кожен користувач може в принципі відчувати себе єдиним користувачем СКБД, якщо не зважати на деяку загальмованість роботи для кожного користувача.
Для керування транзакціями у багатокористувацьких СКБД використовується поняття серіалізації транзакцій і серіального плана виконання суміші транзакцій. Під серіалізацією транзакції, що виконуються паралельно, розуміють таку послідовність планування їх роботы, при якому сумарний ефект суміші транзакцій еквівалентний ефекту їх деякого послідовного виконання.
2.1.4 Журналізація
Одією з основних вимог до СКБД є надійне зберігання даних у зовнішній пам’яті. Під надійністю зберігання розуміють те, що СКБД повинна бути в змозі відновити останній узгоджений стан БД після будь-якої апаратної або програмної відмови. В будь-якому випадку для відновлення БД потрібно володіти деякою додатковою інформацією. Інакше кажучи, забезпечення надійного збереження даних у БД потребуєт надлишкового збереження даних, причому та їх частина, яка використовується для відновлення, повинна зберігатися особливо ретельно. Найбільш поширеним методом збереження такої надлишкової інформації –є ведення журналу змін БД.
Журнал - це особлива частина БД, недоступна користувачам СКБД і підтримується особливо ретельно (деколи підтримується дві копії журналу, які розташовуються на різних фізичних дисках), в яку потрапляють записи про всі зміни основної частини БД.
Серед сучаснихі СКБД на ринку переважають системи побудовані на реляційній моделі даних, так звані реляційні системи. Що мається на увазі під реляційною системою? Нажаль, на даному етапі обговорення важко дати повну відповідь на це запитання. Проте, на основі знань, здобутих на лабораторних роботах можна коротко, але не зовсім точно сказати, що реляційна система даних базується на таких основних принципах:
1. Дані передаються користувачеві у вигляді таблиць (і лише таблиць)
2. Користувачу надаються оператори (напиклад, для вибірки даних), які дозволяють генерувати нові таблиці на основі тих, що вже існують.
Причиною назви такої системи реляційною, полягає в тому, що термін «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);
· Перейти від нащадка до предка через певний зв’язок (знайти викладача певного студента);
· Створити новий запис;
· Знищити запис;
· Модифікувати запис;
· Залучити до зв’язку;
· Вилучити зі зв’язку;
· Переставити в інший зв’язок тощо.