- •Введение
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей.
- •Системный анализ предметной области
- •Описание предметной области
- •Описание входных документов для заполнения бд
- •Определение пользователей
- •Определение запросов
- •Определение выходных документов
- •Анализ сущностей и связей между ними: er–диаграмма
- •Нормализация отношений: схема бд
- •Запросы
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •Проектирование пользовательского интерфейса
- •6.1 Реализация всех запросов через вызовы хранимых процедур
- •Хранимые процедуры для выдачи требуемых разрешений каждому пользователю
- •6.3 Триггеры для работы пользователей с таблицами базы данных
- •Обработка и визуализация данных
- •7.1 Обработка и визуализация данных инструментами языка программирования Python
- •Визуализация данных программными инструментами Excel
- •Заключение
- •Список использованных источников
- •Приложение а Листинг создания таблиц
- •Приложение б Листинг добавление данных в таблицы
- •Приложение в Скриншоты заполненных таблиц в бд
Список использованных источников
1 С. Котеров, С. Герасимов, Д. Кузнецов и др. 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/ (дата обращения: 23.01.2023)
Курсы по SQL. URL: https://www.w3schools.com/sql/ (дата обращения: 23.01.2023)
Руководство по SQL. URL: https://www.postgresqltutorial.com/postgresql-tutorial/ (дата обращения: 23.01.2023)
Руководство по SQL. URL: https://www.oracle.com/ru/database/sql-developer-resources/ (дата обращения: 24.01.2023)
SQL за 10 минут. URL: https://www.codecademy.com/learn/learn-sql (дата обращения: 24.01.2023)
Руководство по SQL. URL: https://www.sqlitetutorial.net/ (дата обращения: 24.01.2023)
SQL для начинающих. URL: https://www.udemy.com/topic/sql/ (дата обращения: 24.01.2023)
Руководство по SQL. URL: https://www.guru99.com/sql-tutorial.html (дата обращения: 24.01.2023)
SQL для начинающих. URL: https://www.edx.org/learn/sql (дата обращения: 24.01.2023)
Руководство по SQL. URL: https://www.codecademy.com/learn/learn-sql (дата обращения: 24.01.2023)
SQL для начинающих. URL: https://www.sololearn.com/Course/SQL/ (дата обращения: 24.01.2023)
Руководство по SQL. URL: https://www.datacamp.com/courses/sql-for-data-science (дата обращения: 24.01.2023)
SQL для начинающих. URL: https://www.datacamp.com/courses/intro-to-sql (дата обращения: 24.01.2023)
Руководство по SQL. URL: https://www.datacamp.com/courses/sql-server-fundamentals (дата обращения: 24.01.2023)
SQL для начинающих. URL: https://www.datacamp.com/courses/analyzing-data-with-sql (дата обращения: 24.01.2023)
Приложение а Листинг создания таблиц
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 airport
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema airport
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `airport` DEFAULT CHARACTER SET utf8 ;
USE `airport` ;
-- -----------------------------------------------------
-- Table `airport`.`Airlines`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Airlines` (
`airline_code` VARCHAR(2) NOT NULL,
`name` VARCHAR(127) NOT NULL,
`created` DATE NOT NULL,
`hq` VARCHAR(255) NOT NULL,
PRIMARY KEY (`airline_code`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Planes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Planes` (
`plane_id` INT NOT NULL AUTO_INCREMENT,
`type` VARCHAR(45) NOT NULL,
`year` DATE NOT NULL,
`seats` INT NOT NULL,
`firm` VARCHAR(45) NULL,
PRIMARY KEY (`plane_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Crews`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Crews` (
`crew_id` INT NOT NULL,
PRIMARY KEY (`crew_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Employees`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Employees` (
`emp_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`pos` VARCHAR(255) NOT NULL,
`skill` VARCHAR(45) NOT NULL,
`crew_id` INT NOT NULL,
Продолжение приложения А
PRIMARY KEY (`emp_id`),
INDEX `fk_Employees_Crews1_idx` (`crew_id` ASC) VISIBLE,
CONSTRAINT `fk_Employees_Crews1`
FOREIGN KEY (`crew_id`)
REFERENCES `airport`.`Crews` (`crew_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Flights`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Flights` (
`flight_id` INT NOT NULL AUTO_INCREMENT,
`dep_city` VARCHAR(45) NOT NULL,
`des_city` VARCHAR(45) NOT NULL,
`dep_time` DATE NOT NULL,
`time` VARCHAR(45) NOT NULL,
`plane_id` INT NOT NULL,
`airline_code` VARCHAR(2) NOT NULL,
`crew_id` INT NOT NULL,
PRIMARY KEY (`flight_id`),
INDEX `fk_Flights_Airlines1_idx` (`airline_code` ASC) VISIBLE,
INDEX `fk_Flights_Planes1_idx` (`plane_id` ASC) VISIBLE,
INDEX `fk_Flights_Crews1_idx` (`crew_id` ASC) VISIBLE,
CONSTRAINT `fk_Flights_Airlines1`
FOREIGN KEY (`airline_code`)
REFERENCES `airport`.`Airlines` (`airline_code`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Flights_Planes1`
FOREIGN KEY (`plane_id`)
REFERENCES `airport`.`Planes` (`plane_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Flights_Crews1`
FOREIGN KEY (`crew_id`)
REFERENCES `airport`.`Crews` (`crew_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Passangers`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Passangers` (
`pass_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`gender` VARCHAR(1) NOT NULL,
`birthday` DATE NOT NULL,
`passport` VARCHAR(25) NOT NULL,
`nationality` VARCHAR(45) NOT NULL,
PRIMARY KEY (`pass_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `airport`.`Tikets`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `airport`.`Tikets` (
Продолжение приложения А
`ticket_id` INT NOT NULL AUTO_INCREMENT,
`flight_id` INT NOT NULL,
`pass_id` INT NOT NULL,
`seat` VARCHAR(5) NOT NULL,
`cost` DECIMAL(10,2) NOT NULL,
`sale_date` DATE NOT NULL,
`book_date` DATE NULL,
PRIMARY KEY (`ticket_id`),
INDEX `fk_Tikets_Passangers1_idx` (`pass_id` ASC) VISIBLE,
INDEX `fk_Tikets_Flights1_idx` (`flight_id` ASC) VISIBLE,
CONSTRAINT `fk_Tikets_Passangers1`
FOREIGN KEY (`pass_id`)
REFERENCES `airport`.`Passangers` (`pass_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Tikets_Flights1`
FOREIGN KEY (`flight_id`)
REFERENCES `airport`.`Flights` (`flight_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;