- •Міністерство освіти і науки україни Черкаський державний технологічний університет
- •Черкаси 2013
- •Рецензент проф. В. Є. Снітюк
- •Лабораторна робота №1
- •1.1 Мета роботи
- •1. Набуття навичок аналізу предметної області
- •1.2 Теоретичні відомості
- •1.3 Завдання на лабораторну роботу
- •1.4 Методика виконання
- •1.6 Контрольні питання
- •Лабораторна робота №2
- •2.1 Мета роботи
- •3.Об’єднання таблиць.
- •4. Додавання записів.
- •2.2 Теоретичні відомості
- •2.3 Завдання на лабораторну роботу
- •2.4 Методика виконання
- •Тестування
- •2.6 Контрольні питання
- •3.3 Завдання на лабораторну роботу
- •3.4 Методика виконання
- •3.6 Контрольні питання
- •Лабораторна робота 4
- •4.1 Мета роботи Вивчення мови запитів, які поширюються на дві і більше таблиці.
- •4.2 Теоретичні відомості
- •4.3 Завдання на лабораторну роботу
- •Лабораторна робота №5
- •5.1 Мета роботи
- •1. Набуття навичок подання предметної області клієнту.
- •5.4 Методика виконання
- •5.6 Контрольні питання
- •Лабораторна робота №6
- •6.1 Мета роботи
- •6.2 Теоретичні відомості
- •6.3 Завдання на лабораторну роботу
- •6.4 Методика виконання
- •6.6 Контрольні питання
- •Лабораторна робота №7
- •7.1 Мета роботи
- •7.2 Теоретичні відомості
- •7.3 Завдання на лабораторну роботу
- •7.4 Методика виконання
- •7.6 Контрольні питання
- •Лабораторна робота №8 створення тригерів, подій
- •8.1 Мета роботи
- •1. Набуття навичок реалізації бізнес-правил
- •8.2 Теоретичні відомості
- •8.3 Завдання на лабораторну роботу
- •8.4 Методика виконання
- •8.6 Контрольні питання
- •Лабораторна робота №9
- •9.1 Мета роботи
- •1. Набуття навичок аналізу стану бд.
- •9.2 Теоретичні відомості
- •9.3 Завдання на лабораторну роботу
- •9.4 Методика виконання
- •1.Переглянути і зафіксувати версію сервера, статус обробників, рівень ізоляції.
- •9.6 Контрольні питання
- •Лабораторна робота №10 створення курсорів
- •10.1 Мета роботи
- •10.2 Теоретичні відомості
- •10.3 Завдання на лабораторну роботу
- •10.4 Методика виконання
- •10.6 Контрольні питання
- •Лабораторна робота №11 розподілена база даних
- •11.1 Мета роботи
- •1. Набуття навичок аналізу систем зберігання даних.
- •11.2 Теоретичні відомості
- •11.3 Завдання
- •11.4 Методика виконання
- •На Сервері №1 налаштовуємо головний майстер-сервер. Для цього потрібно:
- •1. Зупинити MySql сервер;
- •11. Додаємо в my.Ini такі записи:
- •11.4.2 Завершення реплікації
- •11.6 Контрольні питання
- •Лабораторна робота 12 діаграма класів бд
- •12.1 Мета роботи
- •12.2 Теоретичні відомості
- •12.3 Завдання на лабораторну роботу
- •12.4 Методика виконання
- •12.6 Контрольні питання
7.3 Завдання на лабораторну роботу
1.Створити процедури з параметром (параметрами) і без параметра.
2.Створити процедури, зв’язані з таблицею, за завданням викладача.
7.4 Методика виконання
Проходимо сесію. Тиснемо правою кнопкою на test3 і далі вибираємо Create new>Stored routine. У вікні Options заповнюємо вікна Name, Comment, Determenistic. Залишаємо як є інформацію в вікнах Type, Definer, Data Access, SQL Security.
У вікні Routine body в операторних дужках пишемо потрібні SQL-речення (завершуємо їх обов’язково ;). Тиснемо внизу Save, а справа внизу – Run routine(s)…
Якщо у процедурі потрібні параметр або параметри – тиснемо кнопку Parameters, потім – Add. Вводимо ім’я параметру (вікно Name), Datatype, вибираємо Context (IN, OUT або INOUT). Якщо є ще параметр – тиснемо Add, вводимо ім’я параметру (вікно Name), Datatype, вибираємо Context (IN, OUT або INOUT). Тиснемо Save.
Для виконання процедури тиснемо Run routine(s)… У вікні Parameter, що з’явилось, вводимо значення параметру, тиснемо кнопку ОК.
7.5 ЗМІСТ ЗВІТУ
Розділ “Результати роботи” повинен містити скрипти процедур і результати їх викликів.
7.6 Контрольні питання
Напишіть скрипт процедури по завданню викладача.
Як викликати процедуру?
3. Розкажіть про роботу процедури Вашої БД чи БД іншого студента.
Лабораторна робота №8 створення тригерів, подій
8.1 Мета роботи
1. Набуття навичок реалізації бізнес-правил
2. Підготовка до курсового проектування
8.2 Теоретичні відомості
У лабораторній роботі студенти вивчать роботу об’єктів БД TRIGGER і події EVENT (часового тригера або планувальника).
Синтаксис тригера:
CREATE
[DEFINER = {user | CURRENT_USER}]
TRIGGER trig_name
trig_time trig_event
ON tbl_name
FOR EACH ROW
trig_body
Синтаксис події:
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
schedule:
AT timestamp [+ INTERVAL interval]
| EVERY interval [STARTS timestamp]
[ENDS timestamp]
interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR |
MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR |
DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
Інструкція створює і планує нову подію.
8.3 Завдання на лабораторну роботу
1. Створити тригер, спрямований на аудит – визначення імен користувачів, які проводили дії з таблицею, та дату вставки.
2. Створити тригер згідно варіанту (позначимо BEFORE як B, AFTER – A, INSERT – I, DELETE – D, UPDATE U).
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
B |
B |
B |
A |
A |
A |
B |
B |
B |
A |
A |
A |
I |
D |
U |
I |
D |
U |
I |
D |
U |
I |
D |
U |
3. Створити подію на оновлення таблиці за завданням викладача.
8.4 Методика виконання
Техніка створення тригера подібна створенню процедури (лабораторна робота №7).
Для виконання п.1 завдання потрібно, наприклад, додати до БД log-таблицю, у яку вносити імена користувачів, що працювали з таблицею. Ім’я користувача отримаємо з допомогою вбудованої функції USER(), що повертає строку з ім’ям користувача.
Скрипт тригера, що частково виконує завдання:
CREATE TRIGGER `my_trigger`
BEFORE INSERT ON `table1`
FOR EACH ROW
INSERT INTO `mylog` SET `user`= USER(), `query`='insert';
Ще потрібно додати час вставки.
Для виконання п.3 завдання проходимо сесію. Тиснемо правою кнопкою на test3 і далі вибираємо Create new>Event. У вікно Name: вводимо ім’я події, залишаємо з «галочкою» віконце Drop event after expiration, у вікні Execution body: між операторними дужками BEGIN END вводимо текст Event. Тиснемо Save.
Наприклад, подія видалення всіх неактивних товарів
CREATE EVENT `delete_inactive`
ON SCHEDULE EVERY 1 DAY
DO
DELETE FROM `orders` WHERE `data_orrders` IS NUL;
За замовчуванням, планувальник відключений. Фіксуємо зміст таблиці. Включимо подію за допомогою запиту
SET GLOBAL event_scheduler = On;
Коли подія відбудеться, фіксуємо зміст таблиці.
8.5 ЗМІСТ ЗВІТУ
Розділ “Результати роботи” повинен містити скрипти тригерів, подій і результати їх роботи.
