Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

Питання до теми

  1. Які оператори відносяться до мови маніпулювання даними?

  2. З якою частиною бази даних оперують оператори введення та вилучення даних?

  3. Як забезпечити введення даних з однієї таблиці до іншої?

  4. Яке обмеження накладають на перенесення даних?

  5. Як забезпечити вилучення даних з таблиці, яка має зв‘язок з іншою таблицею?

  6. Що відбувається в базі даних, якщо в операторі видалення даних не вказано умову видалення?

  7. З якою частиною бази даних працює оператор оновлення даних?

  8. Як можна використати вкладений запит в операторі оновлення даних?

6. Вбудований sql

6.1. Sql та клієнтські додатки

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

Ця двоякість SQL створює низку переваг:

  • Усі можливості інтерактивної мови запитів доступні в прикладному програмуванні.

  • Можно в інтерактивному режимі налагодити головні алгоритми обробки інформації, які в подальшому мають бути вбудовані до працюючих додатків.

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

Базовими мовами програмування можуть бути мови С, Visual Basic, Delphi . Є два способи використання SQL у прикладних програмах:

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

  • Інтерфейс програмування додатків (АРI – application program interface). При використанні даного метода прикладна програма взаємодіє із СКБД шляхом використання спеціальних функцій. Викликаючи ці функції, програма передає СКБД оператори SQL та отримує зворотні результати запитів. В цьому випадку не потрібен спеціалізований препроцесор.

Процес виконання операторів SQL може бути умовно поділений на 5 етапів. Алгоритм виконання запиту наведено на рисунку 6.1.

Етап 1.

Етап 2.

Етап 3.

Етап 4. Системний

каталог БД

Етап 5

План

Етап 6

Рисунок 6.1. Процес виконання операторів SQL

1. На першому етапі виконується синтаксичний аналіз оператора SQL. На цьому етапі перевіряється коректність запису SQL-оператора у відповідності з правилами синтаксиса.

2. На другому етапі перевіряється коректність параметрів оператора SQL: імен відношень, імен полів даних, привілей користувача по роботі з вказаними об'єктами. Тут виявляються семантичні помилки.

3. На третьому етапі провадиться оптимізація запиту. СКБД провадить розподіл цілістного запиту на ряд мінімальних операцій і оптимізує послідовність їх виконання з точки зору вартості виконання запиту. На цьому етапі будується декілька планів виконання запиту і вибирається з них один — оптимальний для даного стану БД.

4. На четвертому етапі СКБД генерує двійкову версію оптимального плана запиту, підготованого на етапі З. Двійковий план виконання запиту в СКБД фактично є еквівалентом об'єктного кода програми.

5. І накінець, тільки на п'ятому етапі СКБД реалізує розроблений план, таким чином виконуючи оператор SQL.

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

6. Етап шостий, пов'язаний з оптимізацією плана запиту, потребує роботи не тільки з системним каталогом, але і з статистичною інформацією про БД, яка характеризує поточний стан всіх відношень використовуваних у запиті, їх фізичне розташування на сторінках і сегментах зовнішньої пам'яті. В силу вказаних причин етап оптимізації найбільш трудомістький та тривалий в процесі виконання запита. Але, якщо не проводити етап оптимізації, то вартість (час) виконання неоптимізованого запиту може в декілька разів перевищити вартість оптимізованого запита. Час, витрачений на оптимізацію запита, компенсує витрати на виконання неоптимізованого запита.

Етапи виконання операторів SQL однакові як в інтерактивному режимі, так і в середені додатків. Однак при роботі з готовим додатком багато етапів СКБД можна виконати завчасно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]