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

5сем / lab2_database

.docx
Скачиваний:
3
Добавлен:
27.08.2024
Размер:
631.06 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

доц., канд. техн. наук

Б.К.Акопян

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2

РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ НА СЕРВЕРЕ MYSQL

по курсу: БАЗЫ ДАННЫХ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4016

М.О. Жовтяк

подпись, дата

инициалы, фамилия

Санкт-Петербург 2022

  1. Цель работы

Даталогическое проектирование реляционной БД в среде MySQL Workbench, физическая реализация БД на основе модели данных, заполнение БД данными.

  1. Вариант работы

Вариант – 14

1) Виды услуг химчистки (Код вида услуг, Тип белья, Стоимость).

2) Клиенты (Код клиента, Фамилия, Имя, Телефон).

3) Заказы (Код заказа, Код вида услуги, Код клиента, Дата приема, Цена услуги).

  1. Даталогическое проектирование БД

Запускается графический клиент MySQL Workbench, выполняется подключение к серверу, создается новая модель БД. Новая модель в WB приобретает новое название Dry_Cleaning. Это продемонстрировано на рисунке 1.

Рисунок 1 – Создание новой модели БД

Выбирается кодировка данных charset:utf8, а алгоритм сопоставления данных collation:utf8-general-ci. Это продемонстрировано на рисунке 2.

Рисунок 2 – Установка алгоритма сравнения символов

Выполняется создание ER-диаграммы с помощью кнопки Add Diagram. На поле построения ER-диаграммы добавляется таблица types, атрибуты которой заполняются в соответствие с заданием. Это продемонстрировано на рисунке 3.

Рисунок 3 – Создание таблицы types

Аналогично выполняется построение таблицы clients, заполнение атрибутов в соответствие с заданием. Это продемонстрировано на рисунке 4.

Рисунок 4 – Создание таблицы product

Аналогично выполняется построение таблицы Sales, заполнение атрибутов в соответствие с заданием. Это продемонстрировано на рисунке 5.

Рисунок 5 – Создание таблицы invoice

Выполняется построение соединений между таблицами во вкладке Foreign keys, где указывается название внешнего ключа, а потом, название таблицы, с которой необходимо связать данные. Результат представлен на рисунке 6.

Рисунок 6 – Установление связей таблиц Sales с types, clients

Итоговая ER-диаграмма представлена на рисунке 7.

Рисунок 7 – Итоговая ER-диаграмма БД Sales

Выполняется сохранение спроектированной модели через закладку File в формате .mwb, .png.

  1. Реализация БД на сервере на основе модели данных

Запускается команда Forward Engineer SQL CREATE Script. В поле OutPut дается название скрипта по созданию БД и выбирается место сохранения на ПК. Результат представлен на рисунке 8.

Рисунок 8 – Определение полного имени файла для сохранения скрипта БД

В процессе проектирования разрабатываются 3 таблицы. Это представлено на рисунке 9.

Рисунок 9 – Определение объектов БД

В следующем окне проверятся код, который был автосгенерирован на основании модели данных. Результат представлен на рисунке 10.

Рисунок 10 – Просмотр сгенерированного программного кода

Далее выполняется запуск скрипта для физической реализации БД на сервере с помощью команды Open SQL script. Это представлено на рисунке 11. Листинг скрипта представлен в приложении.

Рисунок 11 – Открытие SQL скрипта

Далее выполняется выполнение программного кода экспортированного скрипта. Результат представлен на рисунке 12.

Рисунок 12 – Исполнение скрипта на создание БД

Выполняется просмотр созданных таблиц в Навигаторе. Также, например, можно увидеть, что все столбцы таблицы Sales присутствуют. Это видно на рисунке 13.

Рисунок 13 – Просмотр результата выполнение скрипта

  1. Заполнение данными БД

Создается новый лист для написания SQL-кода в окне редактора кода. Вносятся данные в таблицу types_cloth (название было изменено, так как types – программная функция). Результат представлен на рисунке 14.

Рисунок 15 – Заполнение данными таблицы types_cloth

Аналогично заполняется таблица clients. Результат представлен на рисунке 15.

Рисунок 15 – Заполнение данными таблицы clients

Аналогично заполняется таблица clients (имя столбца Date заменено на Date_sale). Результат представлен на рисунке 16.

Рисунок 16 – Заполнение данными таблицы clients

  1. Вывод

В ходе лабораторной работы я углубил знания работы с реляционной базой данных MySQL Workbench, а конкретно:

  1. Даталогическое проектирование БД с помощью ER-диаграммы, в которой создаются таблицы со связями

  2. Реализация БД на сервере с помощью скрипта импортированного из модели БД, после чего БД была заполнена данными.

В ходе работы проблем не возникло.

Приложение

-- MySQL Script generated by MySQL Workbench

-- Sun Oct 2 20:21:22 2022

-- Model: New Model Version: 1.0

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------

-- Schema Dry_cleaning

-- -----------------------------------------------------

-- -----------------------------------------------------

-- Schema Dry_cleaning

-- -----------------------------------------------------

CREATE SCHEMA IF NOT EXISTS `Dry_cleaning` DEFAULT CHARACTER SET utf8 ;

USE `Dry_cleaning` ;

-- -----------------------------------------------------

-- Table `Dry_cleaning`.`types`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `Dry_cleaning`.`types` (

`typeID` INT NOT NULL AUTO_INCREMENT,

`type_cloth` VARCHAR(45) NOT NULL,

`Price` DECIMAL(10,2) NOT NULL,

PRIMARY KEY (`typeID`))

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Dry_cleaning`.`clients`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `Dry_cleaning`.`clients` (

`clientID` INT NOT NULL AUTO_INCREMENT,

`client_surname` VARCHAR(45) NOT NULL,

`client_name` VARCHAR(45) NOT NULL,

`client_telephone` VARCHAR(45) NOT NULL,

PRIMARY KEY (`clientID`))

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Dry_cleaning`.`Sales`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `Dry_cleaning`.`Sales` (

`salesID` INT NOT NULL AUTO_INCREMENT,

`typeID` INT NOT NULL,

`clientID` INT NOT NULL,

`Date` DATE NOT NULL,

`Price` DECIMAL(10,2) NOT NULL,

PRIMARY KEY (`salesID`),

INDEX `clientID_idx` (`clientID` ASC) VISIBLE,

INDEX `typeID_idx` (`typeID` ASC) VISIBLE,

CONSTRAINT `typeID`

FOREIGN KEY (`typeID`)

REFERENCES `Dry_cleaning`.`types` (`typeID`)

ON DELETE CASCADE

ON UPDATE CASCADE,

CONSTRAINT `clientID`

FOREIGN KEY (`clientID`)

REFERENCES `Dry_cleaning`.`clients` (`clientID`)

ON DELETE CASCADE

ON UPDATE CASCADE)

ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Список использованных источников

  1. Учебно-методическое пособие «Разработка и администрирование базы данных с открытым исходным кодом» - Аграновский А.В., В.В. Боженко, Е.Л. Турнецкая, 2022 г.

Соседние файлы в папке 5сем