ГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
В.В. Боженко |
|
|
|
|
|
|
|
|
|
|
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №3
МИГРАЦИЯ БАЗЫ ДАННЫХ В СРЕДУ MySQL
по курсу: БАЗЫ ДАННЫХ
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. №
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2022
Цель работы
Осуществление переноса БД из одной среды разработки в другую.
Ход работы
1)В личных файлах нашел базу данных, реализованную в среде
Access в прошлом семестре в соответствии с рисунком 1.
Рисунок 1 – Cхема БД в Access
2) Перенесли БД из среды Access в программную среду MySQL в
соответствии с рисунками 2-5.
Рисунок 2 – Создание БД
Рисунок 3 – Добавления нового источника данных
2
Рисунок 4 – Добавление нового источника данных
Рисунок 5 – Экспорт таблиц из Access в MySQL
3
3) Восстановили связи между таблицами код в соответствии с листингом 1, результат в соответствии с рисунком 6.
Листинг 1 – Код восстановления связей между таблицами БД MySQL
use cleaning;
-- Присваивание полям типа primary key
alter table orders add primary key (Order_code);
alter table type_of_service add primary key (Service_type_code);
alter table customers add primary key (Client_code);
-- Устанровление связей между таблицами
alter table orders add foreign key (Client_code) references customers (Client_Code);
alter table orders add foreign key (Service_type_code) references type_of_service (Service_type_code);
Рисунок 6 – Результат восстановления связей в таблицах БД
4) Выполнили два запроса для проверки корректности миграции данных. Код запросов в соответствии с листингами 2-3, результат запросов в соответствии с рисунками 7-8.
Листинг 2 – Код первого запроса 1 на вывод всех данных таблиц
select *
from customers c
join orders o using(Client_Code)
join type_of_service t using(Service_type_code);
Рисунок 7 – Результат первого запроса
4
Листинг 3 – Код второго запроса на подсчет количества и суммы заказов по
клиентам
select c.Client_Code
,concat(c.Surname, ' ', c.Client_Name) 'ФИО'
,count(o.Client_Code) 'Кол-во заказов'
,sum(t.Price_of_the_service) 'Сумма заказов' from customers c
join orders o using(Client_Code)
join type_of_service t using(Service_type_code) group by 1, 2;
Рисунок 8 – Результата второго запроса
5)Модель данных в MySQL в соответствии с рисунком 9.
Рисунок 9 – Схема БД в MySQL
5
Вывод
В ходе данной лабораторной работы перенесли базу данных из MS Access в MySQL, восстановили связи и сгенерировали схему. Проверили связи на корректную работу выполнив несколько запросов в БД.
6
Список использованных источников
1) Лабораторная работа №3 «Миграция базы данных в среду MySQL»
7
ПРИЛОЖЕНИЕ A. Код программы
use cleaning;
-- Присваивание полям типа primary key
alter table orders add primary key (Order_code);
alter table type_of_service add primary key (Service_type_code);
alter table customers add primary key (Client_code);
-- Устанровление связей между таблицами
alter table orders add foreign key (Client_code) references customers (Client_Code);
alter table orders add foreign key (Service_type_code) references type_of_service (Service_type_code);
-- Запросы
select * from customers; select * from orders;
select * from type_of_service;
select *
from customers c
join orders o using(Client_Code)
join type_of_service t using(Service_type_code);
select c.Client_Code
,concat(c.Surname, ' ', c.Client_Name) 'ФИО'
,count(o.Client_Code) 'Кол-во заказов'
,sum(t.Price_of_the_service) 'Сумма заказов' from customers c
join orders o using(Client_Code)
join type_of_service t using(Service_type_code) group by 1, 2;
8