Добавил:
при поддержке музыки группы Anacondaz Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курило_ЛабРаб2.docx
Скачиваний:
1
Добавлен:
16.05.2025
Размер:
233.28 Кб
Скачать

4 Выполнение лабораторной работы

После установки MySQL 8.0.41 проверяем существующие базы данных

Рисунок 1 – Просмотр существующих баз данных

Далее создаём новую базу данных сargo_transportation и проверяем то, что оператор выполнил задачу.

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

Теперь имеется пустая БД, ожидающая создания таблиц. Прежде чем работать с БД, выбираем эту БД с помощью оператора USE сargo_transportation; Теперь все действия по умолчанию будут применяться именно к этой БД. Далее, используя оператор CREATE TABLE создаем таблицы. Создаём таблицы БД по полученной модели данных в Лабораторной работе №1 (представлена на рисунке 3).

Рисунок 3 – Физическая модель базы данных

При создании таблиц учитываем все имена столбцов, их типы и индексы, описанные ранее в Лабораторной работе №1. Также обеспечиваем ссылочную целостность с помощью конструкции FOREIGN KEY [name_key] (col1, ... ) REFERENCES tbl (tbl_col, ... ), которая позволяет задать внешний ключ и указать соответствующую таблицу на которую ссылается внешний ключ. Необязательные конструкции ON DELETE и ON UPDATE позволяют задать поведение СУБД при удалении и обновлении строк из таблицы-предка.

Получаем, что в таблице payment устанавливается связь с таблицами transportation и drivers (за счёт FOREIGN KEY (p_trans_id) REFERENCES TRANSPORTATIONS(trans_id) и FOREIGN KEY (p_driver_id) REFERENCES DRIVERS(driver_id)). В таблице transportation устанавливается связь с таблицей routs (за счет FOREIGN KEY (t_rout_id) REFERENCES ROUTES(rout_id)).

После создания всех таблиц проверим созданную БД и существование таблиц.

Рисунок 4 – Проверка БД сargo_transportation и существования таблиц

Листинг 1. Процесс Выполнения задания

Enter password: ****

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 15

Server version: 8.0.41 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW DATABASES;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sakila |

| sys |

| world |

+--------------------+

6 rows in set (0.04 sec)

mysql> CREATE DATABASE сargo_transportation;

Query OK, 1 row affected (0.01 sec)

mysql> SHOW DATABASES;

+-----------------------+

| Database |

+-----------------------+

| information_schema |

| mysql |

| performance_schema |

| sakila |

| sys |

| world |

| сargo_transportation |

+-----------------------+

7 rows in set (0.00 sec)

mysql> USE сargo_transportation;

Database changed

mysql> CREATE TABLE ROUTES (

-> rout_id int(6) NOT NULL AUTO_INCREMENT,

-> r_name varchar(100) NOT NULL,

-> r_mileage int(6) NOT NULL default '0',

-> r_rate decimal(7,2) NOT NULL default '0.00',

-> PRIMARY KEY (rout_id)

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> CREATE TABLE DRIVERS (

-> driver_id int(6) NOT NULL AUTO_INCREMENT,

-> d_surname varchar(20) NOT NULL,

-> d_name varchar(20) NOT NULL,

-> d_patronymic varchar(20) NULL,

-> d_experiens int(6) NOT NULL default '0',

-> PRIMARY KEY (driver_id)

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> CREATE TABLE TRANSPORTATIONS (

-> trans_id INT NOT NULL AUTO_INCREMENT,

-> t_rout_id INT NOT NULL,

-> t_departure DATE NOT NULL,

-> t_arrival DATE NOT NULL,

-> PRIMARY KEY (trans_id),

-> FOREIGN KEY (t_rout_id) REFERENCES ROUTES(rout_id) ON DELETE CASCADE ON UPDATE CASCADE

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE PAYMENT (

-> pay_id INT NOT NULL AUTO_INCREMENT,

-> p_trans_id INT NOT NULL,

-> p_driver_id INT NOT NULL,

-> p_bonus DECIMAL(7,2) NOT NULL DEFAULT 0.00,

-> PRIMARY KEY (pay_id),

-> FOREIGN KEY (p_trans_id) REFERENCES TRANSPORTATIONS(trans_id) ON DELETE CASCADE ON UPDATE CASCADE,

-> FOREIGN KEY (p_driver_id) REFERENCES DRIVERS(driver_id) ON DELETE CASCADE ON UPDATE CASCADE

-> ) ENGINE=InnoDB;

Query OK, 0 rows affected (0.03 sec)

mysql> SHOW DATABASES;

+-----------------------+

| Database |

+-----------------------+

| information_schema |

| mysql |

| performance_schema |

| sakila |

| sys |

| world |

| сargo_transportation |

+-----------------------+

7 rows in set (0.00 sec)

mysql> USE сargo_transportation;

Database changed

mysql> SHOW TABLES;

+---------------------------------+

| Tables_in_сargo_transportation |

+---------------------------------+

| drivers |

| payment |

| routes |

| transportations |

+---------------------------------+

4 rows in set (0.00 sec)

Соседние файлы в предмете Интеллектуальные базы данных