Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
True_kursach_s_titul.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.08 Mб
Скачать

3.3.2 Проектування збережених процедур

Збережена процедура ­ це спосіб інкапсуляції повторюваних дій. У збережених процедурах можна оголошувати змінні, управляти потоками даних, а також застосовувати інші техніки програмування.

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

Позитивні наслідки використання зберігаємих процедур:

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

  2. Ізоляція користувачів від таблиць бази даних. Це дозволяє давати доступ до збереженим процедурам, але не до самих даних таблиць.

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

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

Негативні наслідки використовування процедур:

  1. Підвищення навантаження на сервер баз даних у зв'язку з тим, що велика частина роботи виконується на серверної частини, а менша - на клієнтській.

  2. Доведеться багато чого підучити. Вам знадобиться вивчити синтаксис MySQL виразів для написання своїх збережених процедур.

  3. Дублювання логіку свого додатку в двох місцях: серверний код і код для збережених процедур, тим самим ускладнюючи процес маніпулювання даними.

  4. Міграція з однієї СКБД на іншу (DB2, SQL Server та ін) може призвести до проблем.

  5. Інструмент, в якому я працюю, називається MySQL Query Browser, він досить стандартний для взаємодії з базами даних. Інструмент командного рядка MySQL – це ще один чудовий вибір. Я розповідаю вам про це з тієї причини, що всіма улюблений phpMyAdmin не підтримує виконання збережених процедур.

У курсовому проекті була розроблена збережена процедура усіх читачів які відвідують першу або другу бібліотеку .

CREATE DEFINER = 'root'@'localhost' PROCEDURE `new_proc1`(

IN `z` INTEGER(4)

)

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

IF(z>2) THEN

SELECT

`Reader_id`,

`first_Name_reader`,

`last_Name_reader`,

`telephone_reader`,

`adress_reader`,

`Biblarian_id`,

`Biblary_id`

FROM

`reader` where Biblary_id = '1';

ELSE

SELECT

`Reader_id`,

`first_Name_reader`,

`last_Name_reader`,

`telephone_reader`,

`adress_reader`,

`Biblarian_id`,

`Biblary_id`

FROM

`reader` where Biblary_id = '2';

end if;

END;

Після введення вхідного параметру "z" більше ніж два ми отримуємо перелік всіх читачів які відвідують першу бібліотеку що може бути потрібним користувачу під час редагування, систематизації даних, а також перегляду потрібних даних

Результати збереженої процедури зображено на рисунках 3.3 та 3.4.

Рисунок 3.3 – Перелік читачів першої бібліотеки

Після введення вхідного параметру "z" менше чи дорівнює двом ми отримуємо перелік всіх читачів які відвідують другу бібліотеку.

Рисунок 3.4 – Перелік читачів другої бібліотеки

Також була розроблена процедура для вибору усіх читачів відвідуючи першу бібліотеку яких обслуговував певний бібліотекар.

CREATE DEFINER = 'root'@'localhost' PROCEDURE `new_proc2`(

IN `q` INTEGER(4)

)

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

IF(q < 5) THEN

SELECT

`Reader_id`,

`first_Name_reader`,

`last_Name_reader`,

`telephone_reader`,

`adress_reader`,

`Biblarian_id`,

`Biblary_id`

FROM

`reader` where Biblarian_id = '1';

ELSE

SELECT

`Reader_id`,

`first_Name_reader`,

`last_Name_reader`,

`telephone_reader`,

`adress_reader`,

`Biblarian_id`,

`Biblary_id`

FROM

`reader` where Biblarian_id = '2';

END IF;

END;

Після введення вхідного параметру "q" менше п’яти ми отримуємо перелік всіх читачів яких обслуговує перший бібліотекар що може бути потрібним користувачу під час редагування або систематизації даних.

Результати зображено на рисунках 3.5 та 3.6.

Рисунок 3.5 – Перелік читачів першого бібліотекаря

Після введення вхідного параметру "q" більше або дорівнює п’яти ми отримуємо перелік всіх читачів яких обслуговує другий бібліотекар.

Рисунок 3.6 – Перелік читачів другого бібліотекаря

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