Relazione tecnica Progetto Cinema A cura di Luca Raj VD A.S. 2014/2015 Traccia: Crea un database che permetta la raccolta dell’informazioni riguardanti gli attori (con il relativo codice, nome, anno di nascita e nazionalità), i film(codice film, titolo, codice sala, incasso, data proiezione), le relative sale dove si trasmette il film (codice sala, posti, nome, città) e infine sapendo che la proiezione deve indicare anche data proiezione, incasso, codice proiezione. Definizione schema concettuale: Leggendo attentamente il testo notiamo alcune relazioni: 1)Un attore può recitare in più film, e in un film possono recitare più attori. 2)Un film può essere proiettato in più sale, e una sala può proiettare più film in date diverse. Il modello concettuale presenterà le seguenti entità: Attori Sale Film Presenterà le seguenti relazioni Recita (che relaziona le due entità attori e film) Proiezione (che relaziona le due entità sale e film) Le tabelle quindi presenti nel database saranno, oltre alle tre entità, anche le due relazioni, in quanto la relazione tra le entità sono tutte relazione molti a molti, quindi serve un aggiungere una tabella contenente le due chiavi primarie (eccezione per la relazione proiezioni, poiché conterrà anche tre attributi, CodProiezione, Incasso, DataProiezione) Schema logico: Attori (1,N) Recita Proiezione (1,N) (1,N) Sale Film La relazione presente tra attori e film è di tipo N:M (molti a molti) La relazione presente tra sale e film è di tipo N:M (molti a molti) Listing mysql: CREATE DATABASE cinema; USE database cinema; CREATE TABLE IF NOT EXISTS `attori` ( `Codatt` varchar(5) NOT NULL, `Cognome` varchar(20) DEFAULT NULL, `Annon` varchar(4) DEFAULT NULL, `Nazionalita` varchar(10) DEFAULT NULL, PRIMARY KEY (`Codatt`) ) ENGINE=InnoDB INSERT INTO `attori` (`Codatt`, `Cognome`, `Annon`, `Nazionalita`) VALUES ('00001', 'Willis', '1960', 'USA'), ('01', 'Willis Bruce', '1952', 'Stati Unit'); CREATE TABLE IF NOT EXISTS `film` ( `Codfilm` varchar(5) NOT NULL, `Titolo` varchar(20) DEFAULT NULL, `Annopr` varchar(4) DEFAULT NULL, `Nazione` varchar(10) DEFAULT NULL, `Regista` varchar(20) DEFAULT NULL, `Genere` varchar(10) DEFAULT NULL, PRIMARY KEY (`Codfilm`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `proiezioni` ( `Codpro` int(11) NOT NULL AUTO_INCREMENT, `Codfilm` varchar(5) DEFAULT NULL, `Codsala` varchar(5) DEFAULT NULL, `Incasso` float DEFAULT NULL, `Datapro` varchar(10) DEFAULT NULL, PRIMARY KEY (`Codpro`), KEY `Codfilm` (`Codfilm`), KEY `Codsala` (`Codsala`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `recita` ( `Codatt` varchar(5) NOT NULL DEFAULT '', `Codfilm` varchar(5) NOT NULL DEFAULT '', PRIMARY KEY (`Codatt`,`Codfilm`), KEY `Codfilm` (`Codfilm`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `sale` ( `Codsala` varchar(5) NOT NULL, `Nome` varchar(20) DEFAULT NULL, `Numpos` int(11) DEFAULT NULL, `Localita` varchar(10) DEFAULT NULL, PRIMARY KEY (`Codsala`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `proiezioni` ADD CONSTRAINT `proiezioni_ibfk_1` FOREIGN KEY (`Codfilm`) REFERENCES `film` (`Codfilm`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `proiezioni_ibfk_2` FOREIGN KEY (`Codsala`) REFERENCES `sale` (`Codsala`) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE `recita` ADD CONSTRAINT `recita_ibfk_1` FOREIGN KEY (`Codatt`) REFERENCES `attori` (`Codatt`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `recita_ibfk_2` FOREIGN KEY (`Codfilm`) REFERENCES `film` (`Codfilm`) ON DELETE CASCADE ON UPDATE CASCADE;
© Copyright 2024