Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОБД / лабки / БД_Лабораторна робота18_Бойко

.docx
Скачиваний:
0
Добавлен:
27.01.2024
Размер:
384 Кб
Скачать

Виконав Бойко Є.А

Група 310

Варіант 3

Лабораторна робота 18

Тема: Управління транзакціями

Мета: Засвоєння способів управління транзакціями в середовищі СУБД PHPMYADMIN

Форма звіту – електронний звіт.

Завдання

Створити та виконати 10 запитів на транзакції до бази даних student_college. Результати подати у вигляді змісту запиту, синтаксису запиту та скрін-шоту результату виконання запиту з екрану.

Таблиця 1 – Завдання для виконання

з/п

Зміст запиту: провести транзакцію на оновлення даних …

1.

Таблиця groups, додати до кількості студентів 6 людей на другому курсі.

Результат до транзакції

start TRANSACTION;

update groups set group_amount=group_amount+6 where group_amount LIKE "2%";

SELECT * from groups;

COMMIT;

Результат після транзакції

2.

Таблиця buildings, поміняти місцями Головний та Центральний корпуси.

Результат до транзакції

START TRANSACTION;

UPDATE buildings set building_name="Головний" where id_building=2;

UPDATE buildings set building_name="Лабораторний" where id_building=1;

SELECT * from buildings;

COMMIT;

Результат після транзакції

3.

Таблиця departments, Ананченко Юлія Михайлівна переходить у 114 кабінет, а Несвіт Олег Миколайович переходить у 122 кабінет

Результат до транзакції

START TRANSACTION;

UPDATE departments set department_cabinet=114 where department_chief="Ананченко Юлія Михайлівна";

UPDATE departments set department_cabinet=122 where department_chief="Несвіт Олег Миколайович ";

SELECT * FROM departments;

COMMIT;

Результат після транзакції

4.

Таблиця lecturers, перенести викладачів з 1 спеціальності на 2 і з викладачів 2 спеціальності перенести на 1

Результат до транзакції

START TRANSACTION;

UPDATE lecturers set id_speciality=2 where lecturer_name in ("Ананченко Ю.М.","Антипенко В.П.","Дорошкова О.М.","Ровна А.В.");

UPDATE lecturers set id_speciality=1 where lecturer_name in

("Очкова Т.Ю.","Валюх Е.Є.","Линець В.П.","Скороходова Л.І.","Крамінська Г.В.");

SELECT * from lecturers;

COMMIT;

Результат після транзакції

5.

Таблиця periods, зробити так щоб 6 пара починалась і закінчувалась на 10 хвилин пізніше.

Результат до транзакції

START TRANSACTION;

UPDATE periods set period_time_start="16:45:00" where period_number=6;

UPDATE periods set period_time_end="18:05:00" where period_number=6;

SELECT * FROM periods;

COMMIT;

Результат після транзакції

6.

Таблиця rooms, у лабораторному корпусі проходить ремонт кімнат на другому поверсі, вони не підлягають для навчання. Потрібно присвоїти їм значення null.

Результат до транзакції

START TRANSACTION;

UPDATE rooms set room_number=null where id_building=1 and room_number like "2%";

SELECT * from rooms;

COMMIT;

Результат після транзакції

7.

Таблиця schedule, змінити дні неділі на п’ятницю там де id_period = 2 і змінити на середу там де id_period = 1.

Результат до транзакції

start TRANSACTION;

UPDATE scheldule set day_name="П'ятниця" where id_period=2;

UPDATE scheldule set day_name="Середа" where id_period=1;

SELECT * from scheldule;

COMMIT;

Результат після транзакції

8.

Таблиця specialities, поставити Ровну Анну Володимирівну на спеціальність “Журналістика”, а Вірченко Ірину Сергіївну на спеціальність “Комп'ютерні науки”

Результат до транзакції

START TRANSACTION;

UPDATE specialities set speciality_head="Ровна Анна Володимирівна" where speciality_name="Журналістика";

UPDATE specialities set speciality_head="Вірченко Ірина Сергіївна" where speciality_name="Комп'ютерні науки";

SELECT * FROM specialities;

COMMIT;

Результат після транзакції

9.

Таблиця subjects, директору не подобається буква “т” і тому всі дисципліни у яких є буква “т” будуть зі значенням null.

Результат до транзакції

START TRANSACTION;

UPDATE subjects set subject_name=null where subject_name like "%т%";

SELECT * from subjects;

COMMIT;

Результат після транзакції

10.

Таблиця types_of_lessons, присвоїти Лекціям id=3, а Консультаціям id=1.

Результат до транзакції

START TRANSACTION;

UPDATE types_of_lessons set type_name="Лекція" where id_type=3;

UPDATE types_of_lessons set type_name="Консультація" where id_type=1 ;

select * FROM types_of_lessons;

COMMIT;

Результат після транзакції

КОНТРОЛЬНІ ПИТАННЯ

  1. Що таке транзакція?

Під транзакцією розуміється неподільна з погляду БД послідовність

операторів маніпулювання даними, що приводить до одного з двох

можливих результатів:

-або послідовність виконується, якщо всі оператори правильні,

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

2. Які існують властивості транзакцій?

-Атомарність

-Узгодженість

-Ізольованість

-Довговічність

3. Що розуміється під атомарністю (Аtomicity) транзакцій?

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

4. Що розуміється під узгодженістю (Сonsistency ) транзакцій?

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

5. Що розуміється під ізольованістю (Isolation) транзакцій?

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

6. Що розуміється під довговічністю (Durability) транзакцій?

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

7. В якому режимі транзакцій працює MySQL зЗа замовчуванням ?

За замовчуванням MySQL працює в режимі autocommit. Це означає, що при

виконанні оновлення даних MySQL буде відразу записувати оновлені дані на диск.

8. Як можна завершити режим транзакцій за замовчення ?

Режим autocommit можна відключити командою

SET AUTOCOMMIT = 0.

9. Описати команду START TRANSACTION

Починає блок транзакції

10. Описати команду COMMIT

COMMIT - Зберігає зміни

11. Описати команду ROLLBACK

ROLLBACK - Відкочується (скасовує) зміни

12. Описати команду SAVEPOINT

SAVEPOINT - Створює точку до якої група транзакцій може відкотитися

13. Які є аналоги команди START TRANSACTION ?

BEGIN

14. Які команди автоматично завершують транзакцію?

Autocommit

15. Які є феномени виконання транзакцій?

-Феномен брудного читання;

-Феномен неповторення читання;

Висновок: на лабораторній роботі № 18 я засвоїв способи управління транзакціями в середовищі СУБД PHPMYADMIN

15