Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Типова організація сучасної СУБД
Організація і склад компонентів типовою СУБД відповідають виконуваного нею набору функцій. Виділяють наступні основні функції СУБД: 1) підтримка мов БД; 2) управління даними у зовнішній пам'яті; 3) управління буферами оперативної пам'яті; 4) управління транзакціями; 5) журналізація і відновлення БД після збоїв.
Більш докладно ці функції будуть розглянуті далі. Логічно в сучасній реляційної СУБД можна виділити внутрішню частину – ядро СУБД (часто його називають Data Base Engine), компілятора мови БД (зазвичай SQL), підсистему підтримки часу виконання, набір утиліт. У деяких системах ці частини виділяються явно, в інших – ні, але логічно такий поділ можна провести у всіх СУБД. Ядро СУБД відповідає за управління даними у зовнішній пам'яті, управління буферами оперативної пам'яті, управління транзакціями і журналізацію. Відповідно можна виділити такі компоненти ядра (принаймні, логічно, хоча в деяких системах ці компоненти виділяються явно), як менеджер даних, менеджер буферів, менеджер транзакцій і менеджер журналу. Функції цих компонентів взаємопов'язані, і для забезпечення коректної роботи СУБД всі ці компоненти повинні взаємодіяти з ретельно продуманим і перевіреним протоколами. Ядро СУБД володіє власним інтерфейсом, не доступним користувачам безпосередньо і використовуються в програмах, вироблених компілятором SQL (або в підсистемі підтримки виконання таких програм) і утилітах БД. Ядро СУБД є основною резидентною частиною СУБД. При використанні архітектури «клієнт– сервер» ядро є основною складовою серверної частини системи. Основною функцією компілятора мови БД є компіляція операторів мови БД в деяку виконувану програму. Основною проблемою реляційних СУБД є те, що мови цих систем (а це, як правило, SQL) є непроцедурными, тобто в операторі такої мови специфікується деяка дія над БД, але ця специфікація не є процедурою, а лише описує в деякій формі умови здійснення бажаного дії. Тому компілятор повинен вирішити, яким чином виконувати оператор мови, перш ніж зробити програму. Застосовуються достатньо складні методи оптимізації операторів. Результатом компіляції є виконувана програма, запропонована в деяких системах в машинних кодах, але більш часто у виконуваному внутрішньому машинно-незалежний код. В останньому випадку реальне виконання оператора здійснюється із залученням підсистеми підтримки часу виконання, представляє собою, по суті справи, інтерпретатор цього внутрішнього мови. Нарешті, в окремі утиліти БД зазвичай виділяють такі процедури, які занадто накладно виконувати з використанням мови БД, наприклад, завантаження і вивантаження БД, збір статистики, глобальна перевірка цілісності БД і т. д. Утиліти програмуються з використанням інтерфейса ядра СУБД, а іноді навіть з проникненням всередину ядра. Розглянемо докладніше функції СУБД.
|