БАЗИ ДАНИХ. МОВИ ЗАПИТІВ, УПРАВЛІННЯ ТРАНЗАКЦІЯМИ,

РОЗПОДІЛЕНА ОБРОБКА ДАНИХ

 

1 Мови запитів QBE ТА SQL

 

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

Запит – це засіб отримання інформації з бази даних.

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

Для підготовки запитів з допомогою різних СКБД найчастіше використовують дві основні мови опису запитів:

 -  мова QBE (Query By Example) – мова запитів за зразком;

 -  мова SQL (Structured Query Language) – структурована мова запитів.

 

 1.1 Загальна характеристика мов запитів QBE та SQL

 

Мова QBE була розроблена Моше Злуфом, співробітником дослідницького центру компанії IBM, в 1970-х роках і призначалася для користувачів, зацікавлених у вибірці інформації з баз даних. Ця мова отримала в користувачів настільки широке визнання, що в даний час в тій чи іншій мірі вона реалізована практично у всіх популярних СКБД, включаючи і Microsoft Access.

В мові QBE використовується візуальний підхід до організації доступу до інформації в базі даних, який передбачає заповнення форми запиту, яку надає СКБД. Такий спосіб задання запиту забезпечує високий ступінь  наочності і не потребує вказання алгоритму виконання операцій, адже достатньо лише описати зразок очікуваного результату. В кожній з сучасних СКБД є свій варіант мови QBE.

На мові QBE можна створювати запити однотабличні та багатотабличні (вибирають і обробляють дані з декількох зв’язаних таблиць).

За допомогою запитів мовою QBE можна виконати такі основні операції над даними бази даних:

  - вибірку даних;

  - обчислення над даними;

  - додавання нових записів;

  - видалення записів;

  - модифікацію (зміну) даних.

У випадку перших двох операцій результатом виконання запиту є таблиця, які називають таблиця-відповідь, а у випадку інших операцій – оновлена вихідна таблиця.

Вибірка, вставка, видалення та модифікація можуть виконуватись безумовно або відповідно до певних умов, які задаються за допомогою логічних виразів. Обчислення над даними задаються за допомогою арифметичних виразів і породжують в таблицях-відповідях нові поля, які називають обчислюваними

Форма запиту має вигляд таблиці, ім’я і назви полів якої співпадають з іменем і назвами полів відповідної вихідної таблиці. Щоб дізнатись імена доступних таблиць БД, в мові QBE передбачений запит на вибірку імен таблиць. Назви полів вихідної таблиці можуть вводитись в шаблон вручну або автоматично. В другому випадку виконується запит навибірку заголовків стовпців.

В сучасних СКБД, наприклад в MS Access і Visual FoxPro, більшість дій по підготовці запитів за допомогою мови QBE виконуються візуально за допомогою миші.

СКБД Microsoft Access при створенні запиту з використанням засобів QBE неявно формує еквівалентний оператор мови SQL, призначений для виконання зазначених дій.

Структурована мова запитів SQL декларативна мова програмування для взаємодії користувача з  базами даних. Мова SQL орієнтована на операції з даними, представленими у вигляді логічно взаємозв'язаних сукупностей таблиць-відношень. Найважливіша особливість структур цієї мови полягає в орієнтації на кінцевий результат обробки даних, а не на процедуру цієї обробки. SQL сама визначає, де знаходяться дані, індекси і навіть які найбільш ефективні послідовності операцій слід використовувати для отримання результату, тому не треба вказувати ці деталі в запиті до БД.

Ця мова призначена для виконання:

  - операцій над таблицями (створення, видалення, зміна структури);

  - операцій над даними таблиць (вибірка, зміна, додавання і видалення);

  - операцій управління даними (надання і відміна привілеїв на доступ до даних, управління транзакціями та інші).

В результаті вибірки даних з однієї або декількох таблиць може бути отримана множина записів, які називають представленням.

SQL є непроцедурною мовою і складається з обмеженого числа команд, спеціально призначених для управління над даними. У зв'язку з цим SQL автономно не використовується, зазвичай вона занурена у середовище вбудованої мови програмування СКБД (наприклад, FoxPro СКДБ Visual FoxPro, ObjectPAL СКБД Paradox, Visual Basic for Applications СКБД Access).

Мова SQL бере свій початок в одній з дослідницьких лабораторій компанії IBM з 1970-х років. У 1986 році організація ANSI випустила офіційний стандарт під назвою SQL-86. Цей стандарт був оновлений тією ж організацією в 1989 році і отримав назву SQL -89, а потім в 1992 році (SQL-92 або SQL2). Найостаннішою версією стандарту SQL є SQL 2003 .

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

Основними перевагами мови SQL є: 

- стандартність мови SQL – її використання в програмах стандартизоване міжнародними організаціями;

- незалежність від конкретних СКБД – всі поширені СКБД використовують SQL, оскільки реляційну БД і програми, які з нею працюють, можна перенести з однієї СКБД на іншу з мінімальними доопрацюваннями;

- можливість переносу з однієї обчислювальної системи на іншу – СКБД може бути орієнтована на різні обчислювальні системи, проте додатки, створені за допомогою SQL, допускають використання як для локальних БД, так і для великих, розрахованих на багато користувачів систем;

- реляційна основа мови – SQL є мовою реляційних БД, тому вона стала популярною тоді, коли популярною стала реляційна модель представлення даних. Таблична структура реляційної БД добре зрозуміла, тому мова SQL є простою і легкою для вивчення;

- можливість створення інтерактивних запитів – SQL забезпечує користувачам негайний доступ до даних, при цьому в інтерактивному режимі можна отримати результат запиту за дуже короткий час без написання складної програми;

- можливість програмного доступу до БД – мова SQL може бути легко використана в додатках, яким необхідно звертатися до БД. Одні і ті ж оператори SQL  використовуються як для інтерактивного, так і для програмного доступу, тому частини програм, що містять звернення до БД, можна спочатку перевірити в інтерактивному режимі, а потім вбудовувати в програму;

- забезпечення різного представлення даних – за допомогою SQL можна передбачити таку структуру даних, що той або інший користувач бачитиме різні представлення даних. Крім того, дані з різних частин БД можуть бути скомбіновані і представлені користувачу у вигляді однієї простої таблиці, а значить, уявлення можна використовувати для посилення захисту БД і її настройки під конкретні вимоги окремих користувачів;

- можливість динамічної зміни і розширення структури БД – мова SQL навіть під час звернення до вмісту дозволяє маніпулювати структурою БД. Ця велика перевага перед мовами статичного визначення даних, які забороняють доступ до БД під час зміни її структури. Таким чином, SQL забезпечує гнучкість з погляду пристосованості БД до вимог предметної області, що змінюються, не перериваючи при цьому роботу додатку, що її виконує в реальному масштабі часу; 

- підтримка архітектури клієнт/сервер – SQL один з кращих засобів для реалізації додатку на платформі клієнт/сервер. При цьому SQL служить сполучною ланкою між клієнтською системою, що взаємодіє з користувачем, і серверною системою, БД, що управляє, дозволяючи кожній з них зосередитися на виконанні своїх прямих функцій.

Зважаючи на численні переваги мова SQL на сьогодні залишається найбільш поширеною мовою запитів.

 

 

попередня     ЗМІСТ    наступна

 

 

Пєтух А.М., Романюк О.В., Романюк О.Н.

ВНТУ 2016