
- •М. Харків 2014р.
- •Реферат
- •Реферат
- •Перелік позначень та скорочень
- •1 Основні проблеми розробки сучасних баз даних. Постановка задачі курсової роботи
- •1.1 Актуальність розробки баз даних, основні поняття та визначення
- •1.2 Аналіз наданої предметної області
- •1.2.1 Система бізнес-правил
- •1.2.2 Глосарій проекту
- •1.3 Постановка задачі дослідження
- •2 Моделювання даних предметної області
- •2.1 Розробка концептуальної моделі даних
- •2.2 Проектування логічної моделі бази даних
- •2.3 Аналіз бізнес-логіки обробки даних у предметній області та визначення основних типів запитів у системі
- •3 Реалізація моделі бази даних "бібліотеки" у mysql 5.5. Інструментальні засоби
- •3.1 Мотивований вибір скбд для реалізації проекту
- •3.2 Реалізація бази даних
- •3.3 Результати, одержані при роботі з бд
- •3.3.1 Розробка уявлень для відображення результатів вибірки
- •3.3.2 Проектування збережених процедур
- •3.3.3 Розробка механізмів управління даними в базі за допомогою тригерів
- •Висновки
- •Список інформаційних джерел
- •Додаток а
- •Додаток б
3.3.2 Проектування збережених процедур
Збережена процедура це спосіб інкапсуляції повторюваних дій. У збережених процедурах можна оголошувати змінні, управляти потоками даних, а також застосовувати інші техніки програмування.
Причина їх створення ясна і підтверджується частим використанням. З іншого боку, якщо ви поговорите з тими, хто працює з ними нерегулярно, то думки розділяться на два абсолютно протилежних флангу. Не забувайте про це.
Позитивні наслідки використання зберігаємих процедур:
Поділ логіки з іншими додатками. Збережені процедури інкапсулюють функціональність; це забезпечує зв'язність доступу до даних і управління ними між різними додатками.
Ізоляція користувачів від таблиць бази даних. Це дозволяє давати доступ до збереженим процедурам, але не до самих даних таблиць.
Забезпечує механізм захисту. Відповідно з попереднім пунктом, якщо ви можете отримати доступ до даних тільки через збережені процедури, ніхто інший не зможе стерти ваші дані через команду SQL DELETE.
Поліпшення виконання як наслідок скорочення мережевого трафіку. За допомогою збережених процедур безліч запитів можуть бути об'єднані.
Негативні наслідки використовування процедур:
Підвищення навантаження на сервер баз даних у зв'язку з тим, що велика частина роботи виконується на серверної частини, а менша - на клієнтській.
Доведеться багато чого підучити. Вам знадобиться вивчити синтаксис MySQL виразів для написання своїх збережених процедур.
Дублювання логіку свого додатку в двох місцях: серверний код і код для збережених процедур, тим самим ускладнюючи процес маніпулювання даними.
Міграція з однієї СКБД на іншу (DB2, SQL Server та ін) може призвести до проблем.
Інструмент, в якому я працюю, називається 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 – Перелік читачів другого бібліотекаря