-- MySQL Script generated by MySQL Workbench -- Mon Jun 15 12:10:45 2020 -- 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 traffico_aeronautico -- ----------------------------------------------------- -- ----------------------------------------------------- -- Schema traffico_aeronautico -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `traffico_aeronautico` DEFAULT CHARACTER SET utf8 ; USE `traffico_aeronautico` ; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`aeroporto` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`aeroporto` ( `codice` CHAR(3) NOT NULL, `nome` VARCHAR(45) NOT NULL, `citta` VARCHAR(45) NOT NULL, `nazione` VARCHAR(45) NOT NULL, `lunghezza_pista` INT NOT NULL, PRIMARY KEY (`codice`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`tipo_aeromobile` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`tipo_aeromobile` ( `costruttore` VARCHAR(45) NOT NULL, `modello` VARCHAR(45) NOT NULL, `spazio_atterraggio` INT NOT NULL, `numero_motori` TINYINT NOT NULL, `lunghezza` INT NOT NULL, `numero_passeggeri` INT NOT NULL, PRIMARY KEY (`costruttore`, `modello`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`compatibilita` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`compatibilita` ( `costruttore_aereo` VARCHAR(45) NOT NULL, `modello_aereo` VARCHAR(45) NOT NULL, `codice_aeroporto` CHAR(3) NOT NULL, PRIMARY KEY (`costruttore_aereo`, `modello_aereo`, `codice_aeroporto`), INDEX `fk_compatibilita_aeroporto1_idx` (`codice_aeroporto` ASC) VISIBLE, CONSTRAINT `fk_compatibilita_tipo_aeromobile` FOREIGN KEY (`costruttore_aereo` , `modello_aereo`) REFERENCES `traffico_aeronautico`.`tipo_aeromobile` (`costruttore` , `modello`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_compatibilita_aeroporto1` FOREIGN KEY (`codice_aeroporto`) REFERENCES `traffico_aeronautico`.`aeroporto` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`alleanza` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`alleanza` ( `codice` INT NOT NULL, `nome` VARCHAR(45) NOT NULL, `sede` VARCHAR(45) NOT NULL, `anno_fondazione` YEAR NOT NULL, `frequent_flyer` VARCHAR(45) NOT NULL, PRIMARY KEY (`codice`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`compagnia_aerea` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`compagnia_aerea` ( `codice` CHAR(2) NOT NULL, `nome` VARCHAR(45) NOT NULL, `sede` VARCHAR(45) NOT NULL, `anno_fondazione` YEAR NOT NULL, `alleanza` INT NULL, PRIMARY KEY (`codice`), INDEX `fk_compagnia_aerea_alleanza1_idx` (`alleanza` ASC) VISIBLE, CONSTRAINT `fk_compagnia_aerea_alleanza1` FOREIGN KEY (`alleanza`) REFERENCES `traffico_aeronautico`.`alleanza` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`aeromobile` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`aeromobile` ( `codice` VARCHAR(45) NOT NULL, `anno_immatricolazione` YEAR NOT NULL, `miglia_percorse` INT NOT NULL, `costruttore_aereo` VARCHAR(45) NOT NULL, `modello_aereo` VARCHAR(45) NOT NULL, `compagnia_aerea` CHAR(2) NOT NULL, PRIMARY KEY (`codice`), INDEX `fk_aeromobile_tipo_aeromobile1_idx` (`costruttore_aereo` ASC, `modello_aereo` ASC) VISIBLE, INDEX `fk_aeromobile_compagnia_aerea1_idx` (`compagnia_aerea` ASC) VISIBLE, CONSTRAINT `fk_aeromobile_tipo_aeromobile1` FOREIGN KEY (`costruttore_aereo` , `modello_aereo`) REFERENCES `traffico_aeronautico`.`tipo_aeromobile` (`costruttore` , `modello`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_aeromobile_compagnia_aerea1` FOREIGN KEY (`compagnia_aerea`) REFERENCES `traffico_aeronautico`.`compagnia_aerea` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`volo` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`volo` ( `codice` INT NOT NULL, `data` DATE NOT NULL, `orario_partenza` TIME NOT NULL, `aeroporto_partenza` CHAR(3) NOT NULL, `orario_arrivo` TIME NOT NULL, `aeroporto_arrivo` CHAR(3) NOT NULL, `stato` ENUM("schedulato", "in volo", "atterrato", "ritardato", "cancellato") NOT NULL, `aeromobile` VARCHAR(45) NOT NULL, PRIMARY KEY (`codice`, `data`), INDEX `fk_volo_aeroporto1_idx` (`aeroporto_partenza` ASC) VISIBLE, INDEX `fk_volo_aeroporto2_idx` (`aeroporto_arrivo` ASC) VISIBLE, INDEX `fk_volo_aeromobile1_idx` (`aeromobile` ASC) VISIBLE, CONSTRAINT `fk_volo_aeroporto1` FOREIGN KEY (`aeroporto_partenza`) REFERENCES `traffico_aeronautico`.`aeroporto` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_volo_aeroporto2` FOREIGN KEY (`aeroporto_arrivo`) REFERENCES `traffico_aeronautico`.`aeroporto` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_volo_aeromobile1` FOREIGN KEY (`aeromobile`) REFERENCES `traffico_aeronautico`.`aeromobile` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `traffico_aeronautico`.`hub` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `traffico_aeronautico`.`hub` ( `alleanza` INT NOT NULL, `aeroporto` CHAR(3) NOT NULL, `numero_hangar` INT NOT NULL, PRIMARY KEY (`alleanza`, `aeroporto`), INDEX `fk_hub_aeroporto1_idx` (`aeroporto` ASC) VISIBLE, CONSTRAINT `fk_hub_alleanza1` FOREIGN KEY (`alleanza`) REFERENCES `traffico_aeronautico`.`alleanza` (`codice`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_hub_aeroporto1` FOREIGN KEY (`aeroporto`) REFERENCES `traffico_aeronautico`.`aeroporto` (`codice`) 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;