
1 / 2
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Кафедра прикладной информатики
ПРЕПОДАВАТЕЛЬ
Канд. техн. наук |
|
|
|
Е. Л. Турнецкая |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
Лабораторная работа №2
Реализация БД на сервере MySQL
по курсу: Базы данных
СТУДЕНТКА ГР. № |
Z0411 |
|
|
|
М. В. Карелина |
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Номер студенческого билета: 2020/3477
Санкт-Петербург
2023
Цели работы
Даталогическое проектирование реляционной БД в среде MySQL Workbech, физическая реализация БД на основе модели данных, заполнение БД данными.
Последовательность выполнения работы.
Внимательно прочитать методические указания.
Выполнить упражнения:
по даталогическому проектированию БД в среде MySQL Workbench,
физической реализации БД на сервере на основе модели БД, – заполнению данными БД.
На основании своего варианта реализовать БД на сервере, ориентируясь на этапы разработки БД по упражнениям. Выполнение каждого этапа необходимо зафиксировать на 3-7 скриншотах. Количество записей в каждой таблице от 3 до 5. Задание по лабораторной работе выполняется на основании трех таблиц Приложения А.
Структура первой и второй таблиц варианта вам знакома. По этим таблицам в первой лабораторной работе были реализованы две БД. В данной работе эти справочные таблицы входят в состав реляционной БД. Третья таблица соединяет их между собой связью «один ко многим» и, по сути, является журналом учета операций.
Выполните отчет в соответствие с требованиями ГОСТ 7.32-2017 и ГОСТ 2.105-2019: по оформлению отчетов (https://guap.ru/standart/doc).
Вариант 8.
1. Ткани (Код ткани, Тип ткани, Цвет).
2. Изделия (Код изделия, Вид изделия, Размер).
3. Заказы (Код заказа, Код изделия, Код ткани, Цена изделия, Дата заказа).
Реализация БД на сервере MySQL
На основе анализа предметной области выделено три сущности: ткани (fabrics), изделия (products), заказы (orders) (табл.1-3). Для каждой из них выявлены атрибуты, выделены первичные ключи, определены типы связей.
В таблицах приняты следующие сокращения: NN (Not Null) – поле с обязательным заполнением, AI (Avto Increment) – поле типа счетчик, ПК –
первичный ключ, ВК – внешний ключ.
Таблица 1.
Определение атрибутов сущности fabrics
Атрибуты |
Тип данных |
Размер (бит) |
Комментарии |
fabricId |
INT |
32 |
ПК, NN, AI |
fabricType |
VARCHAR |
45 |
Тип такани, NN |
fabricColor |
VARCHAR |
255 |
Цвет ткани, NN |
Таблица 2.
Определение атрибутов сущности products
Атрибуты |
Тип данных |
Размер (бит) |
Комментарии |
productId |
INT |
32 |
ПК, NN, AI |
productName |
VARCHAR |
255 |
Вид изделия, NN |
productSize |
INT |
32 |
Размер |
Таблица 3.
Определение атрибутов сущности orders
Атрибуты |
Тип данных |
Размер (бит) |
Комментарии |
orderId |
INT |
32 |
ПК, NN, AI |
productId |
INT |
32 |
ВК, NN |
fabricId |
INT |
32 |
ВК, NN |
price |
DECIMAL |
32 |
Стоимость,NN |
date |
DATE |
10, 2 |
NN |
Даталогическое проектирование БД
Запустим графический клиент MySQL Workbench. На главном окне клиента подключимся к серверу и создадим новую модель БД: File>New Model (рис.1).
Рисунок 1 - Создание новой модели, подключение к серверу и выбор опции создания New Model
Для того, чтобы отредактировать название, нужно: навести мышку на название>нажать правую кнопку мышки>Edit Schema. Переименуем схему mydb в sales. Выставите кодировку данных charset:utf8, алгоритм сопоставления данных collation:utf8-general-ci (рис.2).
Рисунок 2 - Установка алгоритма сравнения символов utf8-general-ci
Создадим ER-диаграмму: Add Diagram. Нажмем на пиктограмму с изображением таблицы и перетянем таблицу на поле построения ER-диаграммы (рис.3):
Рисунок 3 - Окно проектирования БД
Проектирование таблиц fabrics, products, orders в соответствие с атрибутами каждой сущности представлено на рис.4-6:
Рисунок 4 - Проектирование таблицы fabrics
Рисунок 5 - Проектирование таблицы products
Рисунок 6 - Проектирование таблицы orders
Для проектирования таблицы orders необходимо указать соединения с таблицами products и fabrics по ключевым полям. При этом первичный ключ внешних таблиц станет внешним ключом таблицы orders. Чтобы связать таблицы переходят на вкладку Foreign Keys. Установка связей между таблицами представлена на рисунках 7,8.
Рисунок 7 - Установка связей между таблицами products и orders
Рисунок 8 - Установка связей между таблицами fabrics и orders
Устанавливаемые связи автоматически отображены на модели данных (рис.9).
Рис.9 - ER-диаграмма БД sale
Реализация БД на сервере на основе модели данных
На основе модели данных запустим процесс по реализации БД на сервере. Первым шагом на пути к физической реализации БД станет автогенерация программного кода, которая представлена на рис.10-12.
Запустим команду: File>Export>Forward Engineer SQL CREATE Script… 2. В первой строке даем название скрипта по созданию БД и выбираем место файла сохранения на персональном компьютере (рис.10).
Рисунок 10 - Определение полного имени файла для сохранения скрипта БД
В процессе проектирования разработаны три таблицы – объекты БД. Других объектов не объявлено (рис.11).
Рисунок 11 - Определение объектов БД
В следующем окне проверим код, который был автосгенерирован на основании модели данных (рис.12).
Рисунок 12 - Просмотр сгенерированного программного кода
Далее выполним команду: File>Open SQL script (рис.13).
Рисунок 13 - Выбор местоположения файла для открытия
Программный код в окне редактирования кода MySQL Workbench и результат его выполнения представлены на рисунке 14,15:
Рисунок 14 - Исполнение скрипта на создание БД
Рисунок
15 - Результат выполнения команд
Для просмотра структуры таблицы следует Подвести курсор к ее названию>Нажать правую кнопку мышки>В контекстном меню выбрать опцию Table inspector (рис.16).
Рисунок 16 - Поля в таблице invoice
На рис.17 показана информация об индексируемых полях таблицы.
Рисунок 17 - Вкладка Indexes инспектора таблицы orders
Выполним проверку структуры таблицы и данных (рис. 18):
Рисунок 18 - Результат выполнения запроса на просмотр всех данных таблицы orders
Заполнение данными БД
Для заполнения таблиц fabrics, products и orders создадим новые листы для написания SQL-кода. Заполнение данными таблиц fabrics, products и orders представлены на рис.19-21.
Листинг. Заполнение таблицы fabrics
USE SALES;
insert into fabrics
values
(1, 'Шерсть','Амарантовый'),
(2, 'Шелк', 'Аквамариновый'),
(3, 'Хлопок', 'Бобровый'),
(4, 'Лен', 'Арлекин'),
(5, 'Вискоза', 'Баклажановый'),
(6, 'Ацетат', 'Горчичный');
select * from fabrics;
Рисунок 19 - Заполнение данными таблицы fabrics
Листинг. Заполнение таблицы products.
USE SALE;
insert into products
values
(1, 'Платье','42'),
(2, 'Юбка','44'),
(3, 'Футболка','46'),
(4, 'Шорты','42'),
(5, 'Свитшот','46'),
(6, 'Кардиган','42');
select * from products;
Рисунок 20 - Заполнение данными таблицы products
Листинг. Заполнение таблицы orders.
USE SALE;
insert into orders
values
(1,1,1, 50000, '2022-12-12'),
(2,2,2, 150000, '2021-12-12'),
(3,3,3, 125000, '2020-12-12'),
(4,4,4, 75000, 2019-12-12'),
(5,5,5, 80000, '2018-12-12'),
(6,6,6, 90000, '2017-12-12'),
(7,1,3, 110000, '2016-12-12'),
(8,4,6, 120000, '2015-12-12'),
(9,2,4, 70000, '2014-12-12'),
(10,5,2, 60000, '2013-12-12');
select * from orders;
Рисунок 21 - Заполнение данными таблицы orders
Вывод
В ходе выполнения данной лабораторной работы было реализовано даталогическое проектирование БД, а также БД на сервере на основе модели данных. Далее было произведено заполнение данными БД в соответствие со своим вариантом. Особых проблем при выполнении работы не возникало.