- •Содержание
- •Введение
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей.
- •1 Системный анализ предметной области
- •1.2 Описание предметной области
- •1.2 Описание входных документов для заполнения бд
- •1.3 Определение пользователей
- •1.4 Определение запросов
- •1.5 Определение выходных документов
- •Анализ сущностей и связей между ними: er–диаграмма
- •Нормализация отношений: схема бд
- •Запросы
- •5 Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •6 Проектирование пользовательского интерфейса
- •6.1 Реализация всех запросов через вызовы хранимых процедур
- •6.2 Хранимые процедуры для выдачи требуемых разрешений каждому пользователю
- •6.3 Триггеры для работы пользователей с таблицами базы данных
- •7 Обработка и визуализация данных
- •7.1 Обработка и визуализация данных инструментами языка программирования Python
- •7.2 Визуализация данных программными инструментами Excel
- •Заключение
- •Список использованных источников
- •Приложение а Листинг создания таблиц
- •Приложение б Листинг добавление данных в таблицы
- •Приложение в Скриншоты заполненных таблиц в бд
Список использованных источников
С. Котеров, С. Герасимов, Д. Кузнецов и др. MySQL. Руководство для начинающих / Пер. с англ. – М.: ДМК Пресс, 2016. – 704 с.
М. Лутц. SQL на примерах / Пер. с англ. – М.: Вильямс, 2016. – 864 с.
Р. Фейертаг. SQL. Объектно-реляционное моделирование / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Основы языка / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Руководство для начинающих / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Экспертное программирование / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Разработка базы данных на MySQL Workbench. URL: [https://www.mysqltutorial.org/mysql-workbench-tutorial/] (дата обращения: 25.01.2024)
Руководство по SQL. URL: [https://www.oracle.com/ru/database/sql-developer-resources/] (дата обращения: 24.01.2023)
Сайт Stackoverflow https://stackoverflow.com (дата обращения 27.01.2024)
SQL для начинающих. URL: [https://www.udemy.com/topic/sql/] (дата обращения: 27.01.2024)
Руководство по SQL. URL: [https://www.codecademy.com/learn/learn-sql] (дата обращения: 27.01.2024)
Руководство по SQL. URL: [https://www.datacamp.com/courses/sql-for-data-science] (дата обращения: 27.01.2024)
SQL для начинающих. URL: [https://www.datacamp.com/courses/intro-to-sql] (дата обращения: 28.01.2024)
Приложение а Листинг создания таблиц
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';
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8mb3 ;
-- -----------------------------------------------------
-- Schema аэропорт
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema аэропорт
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `аэропорт` DEFAULT CHARACTER SET utf8mb3 ;
USE ` аэропорт ` ;
-- -----------------------------------------------------
-- Table `аэропорт`.`самолет`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`самолет` (
`№ Самолета` INT NOT NULL AUTO_INCREMENT,
`Тип самолета` VARCHAR(45) NOT NULL,
`Год выпуска` INT NOT NULL,
`Количество мест` INT NOT NULL,
`Фирма производитель` VARCHAR(45) NOT NULL,
`Экипаж` INT NOT NULL,
PRIMARY KEY (`№ Самолета`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`авиакомпания`
Продолжение приложения А
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`авиакомпания` (
`№ Авиакомпании` INT NOT NULL AUTO_INCREMENT,
`Название авиакомпании` VARCHAR(45) NOT NULL,
`Количество рейса` INT NOT NULL,
`№ самолета` INT NOT NULL,
PRIMARY KEY (`№ Авиакомпании`),
INDEX `№ Самолета_idx` (`№ самолета` ASC) VISIBLE,
CONSTRAINT `№ Самолета`
FOREIGN KEY (`№ самолета`)
REFERENCES `аэропорт`.`самолет` (`№ Самолета`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`места`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`места` (
`№ Места` INT NOT NULL AUTO_INCREMENT,
`Класс` VARCHAR(45) NOT NULL,
`Расположение` VARCHAR(45) NOT NULL,
PRIMARY KEY (`№ Места`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`пассажиры`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`пассажиры` (
`№ Пассажира` INT NOT NULL AUTO_INCREMENT,
`Ф.И.О.` VARCHAR(45) NOT NULL,
`Паспортные данные` VARCHAR(45) NOT NULL,
PRIMARY KEY (`№ Пассажира`))
ENGINE = InnoDB;
-- -----------------------------------------------------
Продолжение приложения А
-- Table `аэропорт`.`экипаж`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`экипаж` (
`№ Экипажа` INT NOT NULL AUTO_INCREMENT,
`Название` VARCHAR(45) NULL DEFAULT NULL,
`количество_сотрудников` INT NULL DEFAULT '0',
PRIMARY KEY (`№ Экипажа`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`рейс`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`рейс` (
`№ Рейс` INT NOT NULL AUTO_INCREMENT,
`Пункт отправления` VARCHAR(45) NOT NULL,
`Пункт прибытия` VARCHAR(45) NOT NULL,
`Время вылета` TIME NOT NULL,
`Время в пути` TIME NOT NULL,
`Тип самолета` VARCHAR(45) NOT NULL,
`№ авиакомпании` INT NOT NULL,
`№ Экипажа` INT NOT NULL,
PRIMARY KEY (`№ Рейс`),
INDEX `№ Авиакомпании_idx` (`№ авиакомпании` ASC) VISIBLE,
INDEX `№ экипажа_idx` (`№ Экипажа` ASC) VISIBLE,
CONSTRAINT `мяу`
FOREIGN KEY (`№ Экипажа`)
REFERENCES `аэропорт`.`экипаж` (`№ Экипажа`),
CONSTRAINT `№ Авиакомпании`
FOREIGN KEY (`№ авиакомпании`)
REFERENCES `аэропорт`.`авиакомпания` (`№ Авиакомпании`))
ENGINE = InnoDB;
-- -----------------------------------------------------
Продолжение приложения А
-- Table `аэропорт`.`билет`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`билет` (
`№ Билет` INT NOT NULL AUTO_INCREMENT,
`№ Рейса` INT NOT NULL,
`№ Пассажира` INT NOT NULL,
`№ Места` INT NOT NULL,
`Стоимость` INT NOT NULL,
`Дата приобретения` DATE NOT NULL,
`Дата бронирования` DATE NULL DEFAULT NULL,
PRIMARY KEY (`№ Билет`),
INDEX `№ Пассажира_idx` (`№ Пассажира` ASC) VISIBLE,
INDEX `№ Рейса_idx` (`№ Рейса` ASC) VISIBLE,
INDEX `ggg_idx` (`№ Места` ASC) VISIBLE,
CONSTRAINT `ggg`
FOREIGN KEY (`№ Места`)
REFERENCES `аэропорт`.`места` (`№ Места`),
CONSTRAINT `№ Пассажира`
FOREIGN KEY (`№ Пассажира`)
REFERENCES `аэропорт`.`пассажиры` (`№ Пассажира`),
CONSTRAINT `№ Рейсаа`
FOREIGN KEY (`№ Рейса`)
REFERENCES `аэропорт`.`рейс` (`№ Рейс`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`сотрудники`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`сотрудники` (
`№ Сотрудника` INT NOT NULL AUTO_INCREMENT,
`Ф.И.О.` VARCHAR(45) NOT NULL,
`Должность` VARCHAR(45) NOT NULL,
Продолжение приложения А
`Квалификация` VARCHAR(45) NOT NULL,
`№ Экипажа` INT NOT NULL,
PRIMARY KEY (`№ Сотрудника`),
INDEX `№ экипажа_idx` (`№ Экипажа` ASC) VISIBLE,
CONSTRAINT `№ экипажа`
FOREIGN KEY (`№ Экипажа`)
REFERENCES `аэропорт`.`экипаж` (`№ Экипажа`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `аэропорт`.`удаленные`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `аэропорт`.`удаленные` (
`id_del` INT NOT NULL AUTO_INCREMENT,
`date_del` DATE NULL DEFAULT NULL,
`operation` CHAR(10) NULL DEFAULT NULL,
`description` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id_del`))
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
