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

6 СЕМЕСТР / ЛР / ЛР3 / БД ЛР3

.pdf
Скачиваний:
11
Добавлен:
25.06.2023
Размер:
637.74 Кб
Скачать

ГУАП

КАФЕДРА № 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

Соседние файлы в папке ЛР3