1. Служби

Адміністратор БД, описаний у попередньому підрозділі, надає прикладній програмі служби БД через API-служби БД. Програми-утиліти БД забезпечують інші служби (наприклад, для кінцевого ко­ристувача таку, як адміністратор БД). Далі описано служби БД, необхідні всім користувачам системи.

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

  1. Служби АРІ. Далі описано головні категорії служб БД, доступні в 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. Служби ЕЕІ. Служби ЕЕ1 необхідні для систем керування розподіленими БД. Також по­трібен загальний формат обміну для надання двом чи більше БД можливості взаємозв’язуватися. Стандарт протоколу віддаленого доступу до даних (RDA — Remote Data Access) визначає протокол, що допускає віддалений доступ і модифікацію реляційних БД. RDA включає керування сеансами діалогу і транзакціями, оброблення ресурсів, мову баз даних і служби контролю.

  2. Служби керування ресурсами БД не видимі прикладному програмісту в API-службі підтримки БД. Зазвичай забезпечують утиліти БД І охоплюють:

  • адміністрування БД;

  • відновлення БД;

  • керування розподіленими БД;

  • підтримування гетерогенного середовища;

  • встановлення контрольних точок відкочування;

  • flagger.

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

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

Служби керування розподіленими БД підтримують виділення розділів і часткове тиражу­вання БД. Адміністратор БД повинен визначати фізичне розміщення даних І структур для оптиміза- ції ефективності, часу відгуку І зменшення витрат.

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

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

Flagger-служби попереджують програміста про невідповідність коду застосування до роз­глянутого стандарту. Наприклад, FIPS-версія SQL-стандарту включає flagger-засіб для ідентифі­кації програмних властивостей, що не відповідають SQL-стандартові І, як наслідок, мають код, що не є взаємозамінним з іншими SQL-сумісними СУБД.

  1. Стандарти, специфікації і недокументовані служби

На сьогодні у стадії завершення або розроблення перебувають три взаємозалежних стандарти БД: мова реляційних баз даних SQL, система словників інформаційних ресурсів (IRDS — Information Resource Dictionary System) для роботи словника даних І RDA-протокол (таблиця 11). У таблиці 12 підсумована застосовність стандартів до різних мов програмування, підтримуваних POSIX-OSE.

  1. Стандарти 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 (дар) — прогалина (відсутність специфікацій).

  1. Мова структурованих запитів 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.