Служби
Адміністратор БД, описаний у попередньому підрозділі, надає прикладній програмі служби БД через API-служби БД. Програми-утиліти БД забезпечують інші служби (наприклад, для кінцевого користувача таку, як адміністратор БД). Далі описано служби БД, необхідні всім користувачам системи.
Служби БД — це спеціальне оброблення даних, необхідне для створення, доступу І керування БД, розміщеними на процесорному вузлі. До користувачів служб відносяться кінцеві користувачі й особи, що керують інфраструктурою БД і обробленням інформації.
Служби АРІ. Далі описано головні категорії служб БД, доступні в POSIX-AP1. Служби включають:
— служби визначення і маніпулювання схемою;
— служби доступу і маніпулювання даними;
— служби цілісності даних;
— змішані (різнорідні) служби (Miscellaneous Services).
Далі роз’яснено, що надають служби великому класові об’єктів, методів доступу і типів систем баз даних:
за типами об'єктів даних — здатність виконувати вищезгадані операції на ряді таких типів об’єктів даних, як числові дані, текст, діаграми, зображення, документи і мова;
за типами методів доступу — здатність виконувати вищезгадані операції, використовуючи ряд методів доступу типу індексованого послідовного, неіндексованого послідовного і прямого доступу;
за типами. СКБД — здатність виконувати вищезгадані операції на різних типах файлів і СКБД, включно з ієрархічними, реляційними, мережними й об'єктно-орієнтованими СКБД і їхніми гетерогенними комбінаціями.
4.4.4.1.1 Служби визначення та маніпулювання схемою стосуються можливостей адміністратора БД за визначенням і зміною схеми БД. Визначення схеми доступно SQL-програмам через більше ніж 20 таблиць, описаних в інформаційній схемі. Для обслуговування схеми задають;
визначення схеми. Створюють таблицю, подання, затвердження, надають привілеї;
команди маніпулювання схемою. Виконують створення чи додавання атрибутів-стовпців, зниження або додавання обмежень цілісності БД, скасування привілеїв користувачів.
4.4.4.1.2 Служби доступу та маніпулювання даними стосуються здатності прикладних програм опитувати БД. Служби забезпечують:
за доступом до даних — вибір рядків;
за маніпулюванням даними — вставка, вилучення чи модифікація даних;
за засобами запиту даних — визначення умов пошуку, що складаються з комбінації обраних списків, предикатів і операторів порівняння;
за прозорістю (незалежністю) даних — забезпечення доступу до даних, незалежно від їхнього розміщення.
4.4.4.1.3 Служби цілісності даних стосуються здатності СКБД до захисту БД від апаратних і програмних збоїв. Служби:
з блокування — визначають блокування даних до визначеного рівня глибини деталізації;
з несуперечності — визначають обмеження щодо посилань і перевіряють правильність даних;
з керування транзакціями — визначають фіксацію (commit) і відкочування (rollback) команд і гарантують серіалізованість (serializability) транзакцій БД;
із синхронного записування — перевантажують записані дані в енергонезалежну пам’ять;
з виявляння та запобігання тупиків — виявляють чи усувають умови, що блокують два або більше процесів, які одночасно звертаються до тих самих даних.
4.4.4.1.4 Змішані служби БД охоплюють:
з адміністрування привілеїв встановлюють і скасовують пріоритети доступу і керування даними;
з керування транзакціями з'ясовують транзакцїі на різних рівнях локалізації. Транзакція — група команд, кожна з яких повинна успішно закінчитися або зазнати невдачі протягом певного проміжку часу; наприклад, під час пересилання грошей від клієнта на активний рахунок;
з оброблення виняткових ситуацій у разі їхнього виникнення у нормальному процесі до активного застосування надходять повідомлення, необхідні для коригувальних дій;
з керування під’єднаннями забезпечується здатність під’єднання до середовищ із різними мовами запитів;
зі звітності створюють форматовані звіти;
з динаміки обчислень забезпечується тимчасова передача керування БД кінцевому користувачеві для інтерактивного доступу і маніпулювання даними, і потім повернення назад до керування застосуванням;
з послуг словника/довідника даних забезпечується можливість отримати дані щодо даних, збережених у БД (тобто метаданих), які дозволяють користувачам і застосуванню гнучкіше використовувати вміст БД. Служби дозволяють користувачеві однаково створювати, звертатися і управляти метаданими в різних підтримуваних БД;
з керування діалогом ініціалізують І завершують сеанси діалогу між системами.
Служби ЕЕІ. Служби ЕЕ1 необхідні для систем керування розподіленими БД. Також потрібен загальний формат обміну для надання двом чи більше БД можливості взаємозв’язуватися. Стандарт протоколу віддаленого доступу до даних (RDA — Remote Data Access) визначає протокол, що допускає віддалений доступ і модифікацію реляційних БД. RDA включає керування сеансами діалогу і транзакціями, оброблення ресурсів, мову баз даних і служби контролю.
Служби керування ресурсами БД не видимі прикладному програмісту в API-службі підтримки БД. Зазвичай забезпечують утиліти БД І охоплюють:
адміністрування БД;
відновлення БД;
керування розподіленими БД;
підтримування гетерогенного середовища;
встановлення контрольних точок відкочування;
flagger.
Служби адміністрування БД використовує призначений адміністратор БД для структуризації і керування конфігурацією БД загалом. Адміністратор розподіляє ресурси І використовує активний контроль, що гарантує одержання зареєстрованим користувачам відповідних послуг. Функції архівації, ведення журналів (journaling) і послуги реєстрації можуть надаватися як адміністраторам БД, так і основним користувачам.
Служби відновлювання БД забезпечують здатність до повідомлення застосування чи адміністратора БД про збій, що відбувся, допускають відновлення після збою і дозволяють підлеглій копії стати головною копією.
Служби керування розподіленими БД підтримують виділення розділів і часткове тиражування БД. Адміністратор БД повинен визначати фізичне розміщення даних І структур для оптиміза- ції ефективності, часу відгуку І зменшення витрат.
Служби підтримування гетерогенного середовища дозволяють локальним системам БД мати різний тип (наприклад, тип Інвертованого списку, ієрархічної, мережної, репяційної БД), надаючи транслятори між локальною формою БД і загальною "мережною мовою".
Служби встановлення контрольних точок відкочування підтримують цілісність даних, дозволяючи операції перез а пускати ся з попереднього стану БД.
Flagger-служби попереджують програміста про невідповідність коду застосування до розглянутого стандарту. Наприклад, FIPS-версія SQL-стандарту включає flagger-засіб для ідентифікації програмних властивостей, що не відповідають SQL-стандартові І, як наслідок, мають код, що не є взаємозамінним з іншими SQL-сумісними СУБД.
Стандарти, специфікації і недокументовані служби
На сьогодні у стадії завершення або розроблення перебувають три взаємозалежних стандарти БД: мова реляційних баз даних SQL, система словників інформаційних ресурсів (IRDS — Information Resource Dictionary System) для роботи словника даних І RDA-протокол (таблиця 11). У таблиці 12 підсумована застосовність стандартів до різних мов програмування, підтримуваних POSIX-OSE.
Стандарти POSIX-OSE. Стандарти, перелічені в цьому підрозділі, становлять частину POSIX-OSE.
Таблиця 12 — Стандарти баз даних
Служби |
Тип |
Специфікація |
Підрозділ |
Мови запитів: |
|
|
|
Визначення і маніпулювання описом схеми |
S |
ISO/IEC 9075-1:1999 |
4.4.5.1 |
Доступ і маніпулювання даними |
S |
ISO/IEC 9075-2:1999 |
4.4.5.1 |
Цілісності даних |
S |
ISO/IEC 9075-1:1999 |
4.4.5.1 |
Керування транзакциями |
S |
ISO/IEC 9075-9:1999 |
4.4.5.1 |
Оброблення виняткових ситуацій |
S |
ISO/IEC 9075-2:1999 |
4.4.5.1 |
Керування від’єднаннями |
S |
ISO/IEC 9075-3:1999 |
4.4.5.1 |
IRDS: Вимоги IRDS |
S |
ANS! ХЗ.138-1988 |
4.4.5.1 |
Мова команд і груповий Інтерфейс IRDS |
S |
ANSI ХЗ.138-1988 |
4.4.5.1 |
Формат експорту/ім порту файлів IRDS |
S |
ISO/IEC 13238-3:1998 |
4.4.5.1 |
Оточення (Framework) |
S |
ISO/IEC 10027:1990 |
4.4.5.1 |
Інтерфейс служб IRDS (включаючи структури даних, семантику служб, прив’язку до Паскаля, Сі, Ада, CORBA І RPC IDL) |
S |
ISO/IEC 10728:1993/Amd 1:1995/Amd 2:1996/ /Amd 3:1996/Amd 4:1998 |
4.4.5.1 |
Модуль інтерфейсу служб для прив’язки до мови Сі |
S |
ISO/IEC 10728:1993/Amd 1:1995 |
4.4.5.1 |
Модуль інтерфейсу служб для прив’язки до мови Ада |
S |
ISO/IEC 10728:1993/Amd 2:1996 |
4.4.5.2.I |
Підтримка проектів IRDS для SQL-застосувань |
є |
Проект |
4.4.5.2.1 |
RDA: |
|
|
|
Керування діалогом |
S |
ISO/IEC 9579:2000 |
4.4.5.1 |
Керування транзакціями |
S |
ISO/IEC 9579:2000 |
4.4.5.1 |
Оброблення ресурсів |
S |
ISO/IEC 9579:2000 |
4.4.5.1 |
Мова баз даних |
S |
ISO/IEC 9579:2000 |
4.4.5.1 |
Керування |
S |
ISO/IEC 9579:2000 |
4.4.5.1 |
Таблиця 13 — Мовні прив'язки стандартів БД
Стандарт |
LISS |
Ада |
APL |
Basic |
Ci |
C++ |
Кобол |
Лісп |
Фортран |
Модула-2 |
Паскаль |
ПЛ/І |
Пролог |
SQL |
G |
S |
G |
G |
S |
G |
S |
G |
S |
G |
S |
s |
G |
IRDS |
G |
E |
G |
G |
E |
G |
G |
G |
G |
G |
s |
G |
G |
Примітка. Тут LISS — доступна незалежна від мов специфікація; S — офіційний чинний стандарт; Е — вихідний стандарт або проект стандарту; Р загальноприйнятна опублікована специфікація; G (дар) — прогалина (відсутність специфікацій).
Мова структурованих запитів SQL. З середини 80-х років стандартизація SQL-специфІ- кацій перебуває у постійній роботі. Список проектів і стандартів, розроблених SQL-комітетами, включає чотири покоління стандартів.
SQL0 або SQL86 опублікований як ISO 9075:1987. Цей стандарт розроблено з метою охопити багато діалектів SQL; стандартизував доволі вузьку мовну смугу, залишивши багато проблем, відкритих для інтерпретації. Зрештою вийшов недосконалий стандарт, що вдосконалено надалі багатьма розширеннями і доповненнями.
SQL1 або SQL89 введений удію як ANSI ХЗ. 168-1989 «Вбудований SQL» (обсягом всього 100 сторінок) і широко розійшовся. Уперше запропонував процедурні SQL-прив’язки до мов програмування Кобол, Фортран, Паскаль, ПЛ/І, Сі й Ада.
SQL92 як ISO/IEC 9075:1992 створено на основі SQL-89, а його обсяг перевищив 500 сторінок. З SQL92 гармонізований ДСТУ 3149-95. SQL92 забезпечує більшість з описаних у 4.4.4 служб, включно з описом даних, маніпулюванням і цілісністю. Визначає два рівні відповідності (conformance): слабкий рівень-1 і рівень-2 з великими можливостями. Великі розбіжності у діалектах SQL згладжувалися завдяки високому ступеню деталізації й точності SQL92 як спадкоємця SQL89. Подібність та відмінність між SQL89 і SQL92 містять таке:
кодування помилок. SQL89 не специфікує точні значення для деяких кодів помилок, надаючи постачальнику волю для від'єднання власних, унікальних кодів. SQL92 специфікує точні коди помилки;
типізація даних. SQL92 стандартизує кілька типів даних, доступних у комерційних діалектах: символьні рядки змінної довжини, дата/чзс І валютний тип. Однак SQL92 не містить типи даних графічних і мультимедійних об’єктів;
системні таблиці. SQL92 стандартизує структуру каталогу, який навіть не згадано у SQL89;
убудований програмний інтерфейс. Якщо SQL89 визначає абстрактну методику для свого використання в середовищі кожної мови програмування, то SQL92 визначає вбудований інтерфейс для найпопулярніших мов програмування;
динаміка. У SQL89 немає властивостей, необхідних для розроблення такого інтерфейсу БД, як дружній користувачу інструментарій створення й оброблення запитів чи генератор звітів. Динамічні властивості розвилися в комерційних діалектах SQL, a SQL92 запровадив їхню підтримку;
семантичні відмінності. Задаючи специфічні елементи як залежні від реалізації, SQL89 і SQL92 допускають різницю діалектів у деталях. Зрештою два 5О189-сумісних діалекти дають різні результати для того самого запиту. Конструктивно обумовлені елементи охоплюють оброблення нульових (порожніх) значень, функцій стовпця і вилучення дублювання рядків;
схема сортування не відбита в SQL89, a SQL92 визначає порядок запиту користувачем деякої схеми сортування;
схема БД. SQL89 спрацьовує після відкриття та ініціалізації специфікованої БД. Деталі з'єднання з БД сильно відрізняються, і хоча SQL92 розширює SQL89 у вирішенні цієї проблеми, відмінності усе ще суттєві;
мобільність. У SQL92 уперше вирішується проблема прозорої (наскрізної) мобільності прикладних програм уздовж лінійки різних СКБД. Уніфікований доступ до БД MS ODBC також розроблено для досягнення мобільності. Однак реальний «прозорий» доступ до всього розмаїття продуктів від різних виробників — усе ще далекий від дійсності. Проблему мобільності набагато ширше розглядають в SQL99.