Тема 2. Основи концепції БД. Вступ у проектування БД. Основні поняття
Вимоги інформаційних систем та концепція БД
Вимоги інформаційних систем до збереження даних.
Концепція БД.
Основні поняття
Етапи розвитку СУБД:
Функції та типова організація СУБД
Основні функції (призначення) СУБД
Безпосереднє управління даними у зовнішній пам'яті
Управління буферами оперативної пам'яті.
Управління транзакціями
Підтримка мов баз даних
Класифікація СУБД
Типова організація (архітектура) сучасної СУБД
Вимоги інформаційних систем та концепція БД
Вимоги інформаційних систем до збереження даних. Основна ідея баз данных
Файлові системи (ФС) головним чином орієнтовані на збереження, вибір і модифікацію постійно існуючої інформації. Ці системи мало придатні для забезпечення інформаційної підтримки прийняття і фіксації рішень, збереження й обробки інформації у розвинених інформаційно-комп'ютерних системах. Всі обмеження ФС є наслідком того, що:
визначення даних міститься усередині додатків, а не зберігається окремо і незалежно від них;
крім додатків не передбачено ніяких інших інструментів доступу до даних і їхньої обробки.
Усунення цих обмежень -– при іншому підході, що отримав назву технології БД. Технологія баз даних була розроблена для того, щоб подолати обмеження, властиві ФС. Програми обробки файлів звертаються безпосередньо до файлів даних. Програми обробки баз даних для доступу до даних викликають деяку програму-посередника - СУБД. Це різко спрощує прикладне програмування: програмістам немає потреби думати про фізичну організацію збереження даних, і вони можуть зосередитися на питаннях, важливих для користувача, а не для комп'ютерної системи. Дані є найважливішим базовим ресурсом прийняття рішень; їх треба створювати, зберігати і управляти ними у форматі, що забезпечує простоту доступу й обробки. Дисципліна, що вивчає методи створення, належного збереження і видобування даних, називається управлінням даними.
Концепція баз даних. Основні поняття та визначення
На початковому етапі використання обчислювальної техніки для управління інформацією проблеми структуризації даних вирішувалися індивідуально в кожній інформаційній системі. Створювалися необхідні надбудови над файловими системами (бібліотеки програм), подібно тому, як це робиться в компіляторах, редакторах тощо. Оскільки інформаційні системи вимагають складних структур даних, ці додаткові індивідуальні засоби управління даними були істотною частиною інформаційних систем і практично повторювалися від однієї системи до іншої. Прагнення виділити й узагальнити спільну частину інформаційних систем, відповідальну за управління складно структурованими даними, стало, на наш погляд, першою спонукальною причиною створення СУБД. Стало зрозуміло, що неможливо обійтися загальною бібліотекою програм, що реалізує над стандартною базовою файловою системою більш складні методи збереження даних. Виникла і розвинулася концепція БД і їхніх систем. Ефективне управління даними передбачає нині використання комп'ютерних баз даних (БД).
Термін БД має багато визначень, у т.ч. на побутовому рівні – відомості. Коннолі і Брегг визначають БД як «спільно використовуваний набір логічно зв'язаних даних і їхніх описів, призначений для задоволення інформаційних потреб організації». Це єдине, велике сховище даних, що одноразово визначається, а потім використовується спільно багатьма користувачами з різних підрозділів. Оскільки БД зберігає не лише дані, але і їхні описи, її іноді називають набором інтегрованих записів із самоописом. Д. Кренке так і визначає БД як самодокументоване зібрання інтегрованих записів.
Самодокументованість (self-describing) БД полягає в тому, що вона, на додаток до вихідних даних користувача, містить опис власної структури. Цей опис називають словником даних (data dictionary), каталогом даних (data directory) чи метаданими (metadata). Саме самодокументованість обумовлює незалежність програм від даних: структуру і вміст БД можна визначити шляхом звертання до самої БД. Крім того, зміна структури даних у базі (наприклад, додавання поля до запису) вноситься тільки в словник даних, що різко зменшує кількість супутніх модифікацій програм до тих, які безпосередньо обробляють змінений елемент. У цьому сенсі БД нагадує бібліотеку – крім книг, є каталог з їхнім описом. Словник даних описує дані, що містяться в БД.
Інтегрованість набору записів у БД забезпечується тим, що на стандартну ієрархію даних: біти поєднуються в байти, чи символи; ті групуються в поля; з полів формуються записи; записи поєднуються у файли, - накладається інтегрування на рівні файлів ще трьох елементів: метаданих, індексів і метаданих додатків.
Біти ( Байти (символи) ( Поля ( Записи ( Файли (
+
Метадані(
+
Індекси (
+
Метадані додатків (
У розділі метадані БД містить опис самої себе. Індекси представляють зв'язки між даними і служать для продуктивності роботи додатків. Структура форм для введення і виведення даних і звітів також є частиною структури БД і називається метаданими додатків. Тобто БД містить 4 типи даних: файли даних користувача, метадані, індекси і метадані додатків. Можна сказати, що БД - це інтегрована комп'ютерна структура спільного доступу, у якій розміщаються наступні відомості: дані кінцевих користувачів, тобто дані, що відбивають сферу інтересів кінцевих користувачів; метадані (metadata), чи дані про дані, тобто характеристики і зв'язки даних, за допомогою яких здійснюється інтегрування (об'єднання) даних. Метадані описують властивості даних і сукупність відношень, якими зв'язані дані, що зберігаються в БД.
Підхід БД заснований на тому, що структура даних відокремлюється від додатка, що звертається до даних, і зберігається окремо. Додавання чи зміна структур даних не впливає на роботу додатків, окрім тих, що залежать безпосередньо від змінюваних компонентів. Логічна зв'язність даних забезпечується виділенням у ході відбиття інформаційних потреб користувачів сутностей, атрибутів і зв'язків. Сутність (entity) – це окремий тип об'єкта, який треба представити в БД; атрибут (attribute)– конкретна його властивість, а зв'язок (relationship) – це те, що поєднує кілька сутностей, показує з взаємний вплив.
Іншими словами. база даних - це комп'ютерна структура, у якій зберігається набір логічно зв'язаних даних; це самодокументоване зібрання інтегрованих записів з можливістю доступу до них. У БД містяться дані двох типів: дані кінцевого користувача (вихідні факти) і метадані. У певному сенсі БД являє собою дуже добре організовану електронну картотеку, у якій потужне програмне забезпечення, називане СУБД, дозволяє керувати вмістом цієї картотеки.
База даних як модель. Комп'ютери були створені для розв'язання обчислювальних задач, однак згодом вони все частіше стали використовуватися для побудови систем обробки документів, наприклад, обліку продукції на складі, обліку відпрацьованого часу тощо, а точніше, інформації, що міститься в них. Такі системи називають інформаційними. Усі вони мають наступні особливості:
для забезпечення їхньої роботи потрібні порівняно низькі обчислювальні потужності
дані, що вони використовують, мають складну структуру
необхідні засоби збереження даних між послідовними запусками системи
Іншими словами, інформаційна система вимагає створення в пам'яті ЕОМ динамічно обновлюваної моделі певної предметної галузі зовнішнього світу з використанням єдиного сховища - бази даних.
Предметна галузь - частина реального світу, що підлягає вивченню з метою організації управління і автоматизації. Предметна галузь представляється множиною фрагментів, наприклад, підприємство - цехами, дирекцією, бухгалтерією і т.д. Кожний фрагмент предметної області характеризується множиною об'єктів і процесів, що використовують об'єкти, а також множиною користувачів з різними поглядами на предметну область.
Словосполучення "динамічно обновлювана" означає, що відповідність бази даних поточному стану предметної галузі забезпечується не періодично, а в режимі реального часу. При цьому ті самі дані можуть бути по-різному представлені відповідно до потреб різних груп користувачів.
База даних являє собою модель, але не певної частини реальності, а користувацької моделі (user model) цієї реальності. База даних певної бізнес-системи є моделлю того, як керівники бізнесу уявляють собі свій бізнес, які факти, об'єкти, часові рамки вони вважають важливими. Ступінь деталізації, що повинна бути присутнім у БД, залежить від того, яка інформація необхідна.
БД є динамічною моделлю, тому що реальність і представлення людей про їх змінюються. Тому БД повинна змінюватися відповідно до цих змін. Представленням подій є трансакції: при здійсненні якої-небудь події в БД повинні здійснюватися трансакції шляхом запуску програми для обробки трансакцій і внесення даних для трансакції. Програма потім викликає СУБД для внесення змін у БД і від неї одержує відповідний звіт про це.
Переваги баз даних.Системи БД мають ряд очевидних переваг над файловими системами:
інтегрированість даних;
менше дублювання і надмірність даних;
незалежність програм від даних;
представлення даних у зручному для користувача виді.
інтегрированіть даних. У системі БД усі дані зберігаються в одному місці, називаному БД. Прикладна програма може попросить СУБД звернутися до даних у будь-яких таблицях чи скомбінувати дані, а СУБД виконає необхідні операції. У задачу програміста більше не входить написання програм для об'єднання даних.
Менша надмірність. У добре спроектованих БД дані записуються мінімальне число разів, у більшості випадків – один, що знімає проблему суперечливості даних. Для модифікації даних звичайно треба лише одне відновлення.
Незалежність програм від даних. Усі формати записів зберігаються в єдиній базі даних і звертання до даних робить СУБД, а не прикладні програми. В останні не треба включати формати оброблюваних ними файлів і записів, їм досить містити лише опис (довжину і тип) кожного елементу необхідних їм даних. СУБД сама перетворить елементи даних у записи і виконає інші подібні операції, що мінімізує вплив зміни формату даних на прикладні програми.
1.3.3. Системи управління БД (СУБД)
Системи БД і середовище системи БД (стор. 38-39). Термін система БД відноситься до організації компонентів, що визначають і регулюють збір, збереження, управління і використання даних у середовищі бази даних. З погляду управління система БД складається з 5 частин:
устаткування;
програмне забезпечення, включаючи системне програмне забезпечення, ПО СУБД і прикладні програми й утиліти;
люди (системні адміністратори, адміністратори БД, проектувальники БД, системні аналитики і програмісти, кінцеві користувачі);
процедури (інструкції і правила, керуючі проектуванням і використанням БД);
дані.
Найважливішим елементом БД є СУБД.
Система управління базою даних (СУБД) являє собою сукупність програм, за допомогою яких здійснюється управління структурою бази даних і контроль доступу до даних, що зберігається в ній. СУБД дозволяє кільком додаткам чи користувачам здійснювати спільний доступ до даних. Як було показано в першій лекції, традиційних можливостей файлових систем виявляється недостатньо для побудови навіть простих інформаційних систем. Ми виявили кілька потреб, що не покриваються можливостями систем управління файлами: підтримка логічно погодженого набору файлів; забезпечення мови маніпулювання даними; відновлення інформації після різного роду збоїв; паралельна робота кількох користувачів. Можна вважати, що якщо прикладна інформаційна система спирається на деяку систему управління даними, що має ці властивості, те ця система управління даними є системою управління базами даних (СУБД).
Основні переваги СУБД:
СУБД дозволяє зробити більш ефективним управління даними;
СУБД допомагає створити робоче середовище, у якій кінцевим користувачам забезпечується більш зручний і швидкий доступ до даних, що дозволяє швидше реагувати на зміни;
СУБД забезпечує широкий доступ до добре керованих даних, що дозволяє оцінити вплив одного виду діяльності чи підрозділу підприємства на інші, зробити аналітичні висновки;
при використанні СУБД значно зменшується імовірність суперечливості даних у добре спроектованих БД, керованих СУБД;
- СУБД має у своєму складі мову запитів, що дає змогу оперативно реагувати на нерегламентовані запити. В принципі збережені в БД дані можна обробляти вручну, послідовно переглядаючи і редагуючи дані в таблицях за допомогою наявних у СУБД відповідних засобів. Для підвищення ефективності застосовуються запити, що дозволяють робити множинну обробку даних, тобто одночасно вводити, редагувати і видаляти множину записів, а також вибирати дані з таблиць.
Запит являє собою спеціальним образом описану вимогу, що визначає склад проведених над БД операцій по вибірці, видаленню чи модифікації збережених даних.
Для підготовки запитів за допомогою різних СУБД найчастіше використовуються 2 основні мови опису запитів:
мова QBE (Query by Example) – мова запитів за зразком;
мова SQL (Structured Query Language) – стуктурирована мова запитів.
По можливостях маніпулювання даними при описі запитів ці мови практично еквівалентні. Головна відмінність між ними – у способі формування запитів: мова QBE передбачає ручне чи візуальне формування запиту, у той час як використання SQL означає програмування запиту.
Роль СУБД при взаємодії між користувачем і БД показана на схемі 1.
СУБД відіграє роль посередника між користувачем і БД, транслюючи запити користувача в складний код, необхідний для виконання таких запитів. СУБД приховує від прикладних програм, що використовують БД, її складну внутрішню структуру. Прикладні програми можуть бути написані програмістом на якій-небудь мові програмування чи створені за допомогою сервісних програм СУБД.

Схема 1. СУБД керує взаємодіями між кінцевим користувачем і БД
СУБД являє собою придбаний Вами комерційний продукт, у який Ви не можете вносити змін. Тому, коли мова йде про проектування БД, мається на увазі проектування структури БД, що буде використана для збереження й управління даними, а не розробку програмного забезпечення СУБД. Після завершення проектування БД СУБД бере на себе управління всіма складними процедурами, необхідними для переведення представлення структури проектанта у форму, зручну для комп'ютера. Програмне забезпечення сучасних СУБД дозволяє централізовано зберігати не лише структури даних, але і взаємозв'язки таких структур, а також маршрути доступу до них. СУБД також беруть на себе клопоти по визначенню, збереженню й управлінню маршрутами доступу до цих компонентів.
При цьому розрізняють проектування так званих операційних, чи трансакційних баз даних і сховищ даних.
1.5. Класифікація СУБД
По кількості користувачів: однокористувацькі і багатокористувацькі СУБД. Перші в один даний момент часу можуть обслуговувати тільки одного клієнта, другі – кілька. Якщо однокористувацька СУБД реалізована на персональному комп'ютері, її називають настільною.
По місцю розташування сайта, на якому розміщена БД. СУБД, що обслуговує БД, розміщену на одному сайте, називається централізованою. СУБД, що обслуговує БД, розподілену по кількох різних сайтам, називається розподіленою СУБД.
По очікуваному відгуку, способу і сфері використання. СУБД, що керують БД, спроектованими для трансакцій негайного відгуку, називаються трансакційними, операційними чи робочими. СУБД, що керують БД, спроектованими для систем підтримки прийняття рішень (DSS) – СУБД для data warehouse, сховищ чи банків даних У цих баз дуже великий об'єм, але менша швидкість відновлення і відгуку. Проект БД залежить від цього показника.
Функції та типова організація СУБД
Основні функції (призначення) СУБД
При описі функцій СУБД, тобто дій, які вона виконує з даними в інтересах і за замовленням користувача, можна говорити про опис функцій на логічному рівні (тобто як результат дії розуміє користувач і відчуває логічна організація даних) і на фізичному рівні (тобто як результат дій СУБД відчуває комп'ютер і фізична організація даних).
З погляду користувача (на логічному рівні), СУБД виконує наступні функції (стор. 42-43):
керування словником даних;
керування збереженням даних;
перетворення і представлення даних;
керування безпекою;
керування багатокористувацьким доступом;
керування резервним копіюванням і відновленням;
мови доступу до даних і інтерфейси прикладного програмування;
інтерфейси взаємодії з БД (користувач може одержить відповідь на запити, заповнюючи екранні форми за допомогою обраного браузера; автоматизувати публікацію форм і звітів в Інтернету у відповідному форматі; підключитися до електронної пошти і поширити інформацію в мережі і т.д.)
Основні функції СУБД на фізичному рівні управління даними:
управління даними в зовнішній пам'яті (на дисках);
управління даними в оперативній пам'яті;
журналізація змін і відновлення бази даних після збоїв;
підтримка мов БД (мова визначення даних, мова маніпулювання даними).
СУБД виконує стосовно БД наступні операції:
1) визначення структури БД і її ініціалізація (структура описується мовою БД і в результаті створюється порожня БД заданої структури);
2) виконання операцій над БД (ідентифікація даного і перебування його позиції в БД, вибірка даного з БД, введення чи запис даного в БД, видалення даного з БД, модифікація даного в БД);
3) забезпечення незалежності даних (зміна логічного представлення даних без зміни фізичного представлення);
4) захист логічної цілісності даних (обумовлюється постійною перевіркою даних і зв'язків між ними);
5) захист фізичної цілісності даних (резервування даних, постійне ведення системного журналу);
управління доступом до БД.
Рассмотрим более подробно основные функции СУБД с по отношению к БД:
2.1.1. Безпосереднє управління даними в зовнішній пам'яті
Ця функція включає забезпечення необхідних структур зовнішньої пам'яті як для збереження даних, що безпосередньо входять у БД, так і для службових цілей, наприклад, для прискорення доступу до даних у деяких випадках (звичайно для цього використовуються індекси). У деяких реалізаціях СУБД активно використовуються можливості існуючих файлових систем, в інших робота провадиться аж до рівня пристроїв зовнішньої пам'яті. У розвинених СУБД користувачі в будь-якому випадку не зобов'язані знати, чи використовує СУБД файлову систему, і якщо використовує, те як організовані файли. Зокрема, СУБД підтримує власну систему іменування об'єктів БД.
2.1.2. Управління буферами оперативної пам'яті
СУБД звичайно працюють із БД значного розміру; принаймні цей розмір звичайно істотно більший за доступний об'єм оперативної пам'яті. Зрозуміло, що якщо при звертанні до будь-якого елемента даних буде провадитися обмін із зовнішньою пам'яттю, те вся система буде працювати зі швидкістю пристрою зовнішньої пам'яті. Практично єдиним способом реального збільшення цієї швидкості є буферизація даних в оперативній пам'яті. При цьому, навіть якщо операційна система робить загальносистемну буферизацію (як у випадку ОС UNIX), цього недостатньо для цілей СУБД, що має у своєму розпорядженні набагато більшу інформацію про корисність буферизації тієї чи іншої частини БД. Тому в розвинених СУБД підтримується власний набір буферів оперативної пам'яті з власною дисципліною заміни буферів.
Існує окремий напрямок СУБД, що орієнтований на постійну присутність в оперативній пам'яті всієї БД. Цей напрямок ґрунтується на припущенні, що в майбутньому обсяг оперативної пам'яті комп'ютерів буде настільки великий, що дозволить не турбуватися про буферизацію. Поки ці роботи знаходяться в стадії досліджень.
2.1.3. Управління трансакціями
Трансакція - це послідовність операцій над БД, розгляданих СУБД як єдине ціле. Або трансакція успішно виконується, і СУБД фіксує (COMMIT) зміни БД, зроблені цією трансакцією, у зовнішній пам'яті, або жодна з цих змін ніяк не відбивається на стані БД. Підтримка механізму трансакцій необхідна для підтримки логічної цілісності БД.
Та властивість, що кожна трансакція починається при цілісному стані БД і залишає цей стан цілісним після свого завершення, робить дуже зручним використання поняття трансакції як одиниці активності користувача стосовно БД. При відповідному управлінні паралельно виконуваними трансакціями з боку СУБД кожний з користувачів може в принципі відчувати себе єдиним користувачем СУБД.
З управлінням трансакціями в багатокористувацькій СУБД зв'язані важливі поняття серіалізації трансакцій і серіального плану виконання суміші трансакцій. Під серіализацією паралельно виконуваних трансакцій розумієють такий порядок планування їхньої роботи, при якому сумарний ефект суміші трансакцій еквівалентний ефекту їх деякого послідовного виконання. Серіальний план виконання суміші трансакцій - це такий план, що забезпечує серіалізацію трансакцій. Зрозуміло, що якщо вдається домогтися дійсно серіального виконання суміші трансакцій, то для кожного користувача, з ініціативи якого утворена трансакція, присутність інших трансакцій буде непомітно (якщо не вважати деякого уповільнення роботи порівняно з однокористувацьким режимом).
Існує кілька базових алгоритмів серіалізації трансакцій, найбільш поширені алгоритми, засновані на синхронізаційних захопленнях об'єктів БД. При використанні будь-якого алгоритму серіалізації можливі ситуації конфліктів між двома чи більш трансакціями по доступу до об'єктів БД. У цьому випадку для підтримки серіалізації необхідно виконати відкат (ліквідувати всі зміни, зроблені в БД) одної чи більше трансакцій. Це один з випадків, коли користувач багатокористувацької СУБД може реально (і досить неприємно) відчути присутність у системі трансакцій інших користувачів.
2.1.4. Журналізація
Одною з основних вимог до СУБД є надійність збереження даних у зовнішній пам'яті. Під надійністю збереження розуміють те, що СУБД повинна могти відновити останній погоджений стан БД після будь-якого апаратного чи програмного збою. Звичайно розглядаються два можливих види апаратних збоїв: так називані м'які збої, які можна трактувати як раптову зупинку роботи комп'ютера (наприклад, аварійне вимикання живлення), і жорсткі збої, для яких характерна втрата інформації на носіях зовнішньої пам'яті. Прикладами програмних збоїв можуть бути: аварійне завершення роботи СУБД (через помилку в програмі чи в результаті деякого апаратного збою) чи аварійне завершення користувацької програми, у результаті чого деяка трансакцся залишається незавершеною. Першу ситуацію можна розглядати як особливий вид м'якого апаратного збою; при виникненні останньої потрібно ліквідувати наслідки тільки одної трансакції.
Зрозуміло, що в будь-якому випадку для відновлення БД потрібно мати деяку додаткову інформацію. Іншими словами, підтримка надійності збереження даних у БД вимагає надмірності збереження даних, причому та частина даних, що використовується для відновлення, повинна зберігатися особливо надійно. Найбільш розповсюдженим методом підтримки такої надлишкової інформації є ведення журналу змін БД.
Журнал - це особлива частина БД, недоступна користувачам СУБД і підтримувана з особливою старанністю (іноді підтримуються дві копії журналу, розташовані на різних фізичних дисках), у яку надходять записи про всі зміни основної частини БД. У різних СУБД зміни БД журналізуються на різних рівнях: іноді запис у журналі відповідає деякій логічній операції зміни БД (наприклад, операції видалення рядка з таблиці реляційній БД), іноді - мінімальній внутрішній операції модифікації сторінки зовнішньої пам'яті; у деяких системах одночасно використовуються обидва підходи.
В усіх випадках дотримуються стратегії " випереджаючого запису", у журнал (так називаного протоколу Write Ahead Log - WAL). Грубо говорячи, ця стратегія полягає в тому, що запис про зміну будь-якого об'єкта БД повинен потрапити в зовнішню пам'ять журналу раніш, ніж змінений об'єкт попаде у зовнішню пам'ять основної частини БД. Відомо, що якщо в СУБД коректно підтримується протокол WAL, те за допомогою журналу можна вирішити всі проблеми відновлення БД після будь-якого збою.
2.1.5. Підтримка мов БД
Для роботи з базами даних використовуються спеціальні мови, у цілому називані мовами баз даних. У ранніх СУБД підтримувалося кілька спеціалізованих за своїми функціями мов. Найчастіше виділялися дві мови - мова визначення схеми БД (SDL - Schema Definition Language) і мова маніпулювання даними (DML - Data Manipulation Language). SDL служив головним чином для визначення логічної структури БД, тобто тієї структури БД, якою вона представляється користувачам. DML містив набір операторів маніпулювання даними, тобто операторів, які дозволяють заносити дані в БД, видаляти, модифікувати чи вибирати існуючі дані.
У сучасних СУБД звичайно підтримується єдина інтегрована мова, що містить усі необхідні засоби для роботи з БД, починаючи від її створення, і базовий користувацький інтерфейс, що забезпечує, з базами даних. Стандартною мовою найбільш розповсюджених у даний час реляційних СУБД є мова SQL (Structured Query Language). У кількох лекціях цього курсу мова SQL буде розглядатися досить докладно, а поки ми перерахуємо основні функції реляційної СУБД, підтримувані на "мовному" рівні (тобто функції, підтримувані при реалізації інтерфейсу SQL).
Насамперед, мова SQL об'єднує засоби SDL і DML, тобто дозволяє визначати схему реляційної БД і маніпулювати даними. При цьому іменування об'єктів БД (для реляційної БД - іменування таблиць і їхніх стовпців) підтримується на мовному рівні в тому сенсі, що компілятор мови SQL робить перетворення імен об'єктів у їхні внутрішні ідентифікатори на підставі спеціально підтримуваних службових таблиць-каталогів. Внутрішня частина СУБД (ядро) узагалі не працює з іменами таблиць і їхніх стовпців.
Мова SQL містить спеціальні засоби визначення обмежень цілісності БД. Знову ж, обмеження цілісності зберігаються в спеціальних таблицях-каталогах, і забезпечення контролю цілісності БД провадиться на мовному рівні, тобто при компіляції операторів модифікації БД компілятор SQL на підставі наявних у БД обмежень цілісності генерує відповідний програмний код.
Спеціальні оператори мови SQL дозволяють визначати так називані представлення БД, що фактично є збереженими в БД запитами (результатом будь-якого запиту до реляційної БД є таблиця) з іменованими стовпцями. Для користувача представлення є такою же таблицею, як будь-яка базова таблиця, збережена в БД, але за допомогою представлень можна обмежити чи, навпаки, розширити видимість БД для конкретного користувача. Підтримка представлень здійснюється також на мовному рівні.
Нарешті, авторизація доступу до об'єктів БД провадиться також на основі спеціального набору операторів SQL. Ідея полягає в тому, що для виконання операторів SQL різного виду користувач повинен мати різні повноваження. Користувач, що створив таблицю БД, має повний набір повноважень для роботи з цією таблицею. У число цих повноважень входить повноваження на передачу усіх чи частини повноважень іншим користувачам, включаючи повноваження на передачу повноважень. Повноваження користувачів описуються в спеціальних таблицях-каталогах, контроль повноважень підтримується на мовному рівні.
1.6. Структура (архітектура) СУБД
Організація типової СУБД і склад її компонентів відповідає розглянутому нами набору функцій. Нагадаємо, що ми виділили наступні основні функції СУБД:
управління даними в зовнішній пам'яті;
управління буферами оперативної пам'яті;
управління трансакциями;
журналізація і відновлення БД після збоїв;
підтримка мов БД.
Звичайно сучасна СУБД містить наступні компоненти:
ядро (Data Base Engine), що відповідає за управління даними в зовнішній і оперативній пам'яті, управління трансакціями і журналізацію,
процесор (чи компілятор) мови бази даних, що забезпечує оптимізацію запитів на видобування і зміну даних і створення, як правило, машинно-незалежного внутрішнього коду, що виконується,
підсистему підтримки часу виконання, що інтерпретує програми маніпуляції даними, які створюють користувацький інтерфейс із СУБД
сервісні програми (зовнішні утиліти), що забезпечують ряд додаткових можливостей по обслуговуванню інформаційної системи.
У деяких системах ці частини виділяються явно, в інші - ні, але логічно такий поділ можна провести у всіх СУБД.

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