Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 11БД.doc
Скачиваний:
28
Добавлен:
30.05.2020
Размер:
75.26 Кб
Скачать

11. Лекція

ТЕМА: Збережені процедури

МЕТА: Визначити поняття збережених процедур. Навести приклади створення, зміни і використання збережених процедур з параметрами. Дати визначення вхідних і вихідних параметрів. Навести приклади створення і виклику збережених процедур.

ПЛАН

1 Поняття збереженої процедури

2 Типи збережених процедур

3 Створення, зміна і видалення збережених процедур

4 Виконання збереженої процедури

1 Поняття збереженої процедури

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

  • необхідні оператори вже містяться в базі даних;

  • всі вони пройшли етап синтаксичного аналізу і знаходяться у виконуваному форматі;

  • перед виконанням збереженої процедури SQL Server генерує для неї план виконання, виконує її оптимізацію і компіляцію;

  • збережені процедури підтримують модульне програмування, оскільки дозволяють розбивати великі задачі на самостійні, більш дрібні і зручні в управлінні частини;

  • збережені процедури можуть викликати інші збережені процедури і функції;

  • збережені процедури можуть бути викликані з прикладних програм інших типів;

  • як правило, збережені процедури виконуються швидше, ніж послідовність окремих операторів;

  • збережені процедури простіше використовувати: вони можуть складатися з десятків і сотень команд, але для їх запуску достатньо вказати всього лише ім'я потрібної збереженої процедури. Це дозволяє зменшити розмір запиту, посиланого від клієнта на сервер, а значить, і навантаження на мережу.

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

Подібний підхід робить модифікацію алгоритмів обробки даних досить простою, причому вони негайно стають доступними для всіх користувачів мережі. Це і забезпечує можливість розширення системи без внесення змін в сам додаток: достатньо змінити збережену процедуру на сервері баз даних. Розробнику не потрібно перекомпілювати додаток, створювати його копії, а також інструктувати користувачів про необхідність роботи з новою версією. Користувачі взагалі можуть не підозрювати про те, що в систему внесені зміни.

Збережені процедури існують незалежно від таблиць або яких-небудь інших об'єктів баз даних. Вони викликаються клієнтською програмою, іншою збереженою процедурою або тригером. Розробник може управляти правами доступу до збереженої процедури, дозволяючи або забороняючи її виконання. Змінювати код збереженої процедури дозволяється тільки її власнику або члену фіксованої ролі бази даних. При необхідності можна передати права володіння нею від одного користувача до іншого.

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

Соседние файлы в папке лекции