























































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
modello concettuale, logico, sql
Tipologia: Dispense
1 / 63
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!
























































film (idFilm, titolo, genere, durata, dataUscita) registi (idRegista, nome, cognome, dataNascita, nazionalita, idFilm) attori (idAttori, nome, cognome, dataNascita, nazionalita) cinema(idCinema, nome, citta, indirizzo, numPosti) programmato(idFilm, idCinema) interpreta(idFilm, idAttori*)
dataNascita date NOT NULL, nazionalita varchar(150) NOT NULL, idFilm int(1), FOREIGN KEY (idFilm) REFERENCES film(idFilm ) ON DELETE restrict ON UPDATE cascade ); create table attori( idAttori int(1) NOT NULL AUTO_INCREMENT PRIMARY KEY, nome varchar(150) NOT NULL, cognome varchar(150) NOT NULL, dataNascita date NOT NULL, nazionalita varchar(150) NOT NULL ); create table cinema( idCinema int(1) NOT NULL AUTO_INCREMENT PRIMARY KEY, nome varchar(150) NOT NULL, citta varchar(150) NOT NULL, indirizzo varchar(150) NOT NULL, numPosti int(3) NOT NULL ); create table programmato( idFilm int(1), idCinema int(1), FOREIGN KEY (idFilm) REFERENCES film(idFilm), FOREIGN KEY (idCinema) REFERENCES cinema(idCinema) ON DELETE restrict ON UPDATE cascade ); create table interpreta( idFilm int(1), idAttori int(1), FOREIGN KEY (idFilm) REFERENCES film(idFilm), FOREIGN KEY (idAttori ) REFERENCES attori(idAttori) ON DELETE restrict ON UPDATE cascade ); INSERIMENTO DATI INSERT INTO attori(nome, cognome, dataNascita, nazionalita) VALUES ('Chris', 'Columbus', '1925-10-12', 'americana'), ('Amanda', 'Rossi', '1955-11-19', 'spagnola'), ('Anna', 'Magnani', '1985-10-18', 'tedesca'), ('Ciro', 'Esposito', '2005-05-08', 'italiana');
INSERT INTO programmato(idFilm, idCinema) VALUES ('1', '2'), ('3', '1'), ('2','3'); INSERT INTO interpreta(idFilm, idAttori) VALUES ('2', '1'), ('3', '2'), ('1','3') ('4', '1'), ('4', '3');
b. Trovare titolo e genere di tutti i film diretti da Spielberg. select f.titolo, f.genere, r.cognome from film as f, registi as r where r.cognome = 'Spielberg' AND r.idFilm = f.idFilm c. Trovare titolo e genere di tutti i film nei quali ha recitato l’attrice Anna Magnani. select f.titolo, f.genere, a.nome, a.cognome from film as f, attori as a, interpreta as i where a.nome = 'Anna' AND a.cognome = 'Magnani' AND i.idAttori=a.idAttori d. Per ogni film di genere horror, calcolare il numero di attori che vi recitano. select f.titolo, f.genere, a.nome, a.cognome from film as f, attori as a, interpreta as i where i.idAttori=a.idAttori AND i.idFilm = f.idFilm AND f.genere = 'horror'
cinema.sql -- phpMyAdmin SQL Dump -- version 5.1. -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0. -- Creato il: Dic 16, 2021 alle 10: -- Versione del server: 10.4.22-MariaDB -- Versione PHP: 7.3. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /; /!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /; /!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /; /!40101 SET NAMES utf8mb4 */; -- -- Database: cinema --
-- -- Struttura della tabella attori -- CREATE TABLE attori ( idAttori int(1) NOT NULL, nome varchar(150) NOT NULL, cognome varchar(150) NOT NULL, dataNascita date NOT NULL, nazionalita varchar(150) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Dump dei dati per la tabella attori -- INSERT INTO attori (idAttori, nome, cognome, dataNascita, nazionalita) VALUES (1, 'Chris', 'Columbus', '1925-10-12', 'americana'), (2, 'Amanda', 'Rossi', '1955-11-19', 'spagnola'), (3, 'Anna', 'Magnani', '1985-10-18', 'tedesca'),
(4, 'Ciro', 'Esposito', '2005-05-08', 'italiana');
-- -- Struttura della tabella cinema -- CREATE TABLE cinema ( idCinema int(1) NOT NULL, nome varchar(150) NOT NULL, citta varchar(150) NOT NULL, indirizzo varchar(150) NOT NULL, numPosti int(3) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Dump dei dati per la tabella cinema -- INSERT INTO cinema (idCinema, nome, citta, indirizzo, numPosti) VALUES (1, 'Uci', 'Torino', 'Via Nizza', 50), (2, 'The Space', 'Torino', 'Via Michelangelo', 80), (3, 'Movie Planet', 'Roma', 'Via Milanese', 20);
-- -- Struttura della tabella film -- CREATE TABLE film ( idFilm int(1) NOT NULL, titolo varchar(150) NOT NULL, genere varchar(150) NOT NULL, durata time NOT NULL, dataUscita date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Dump dei dati per la tabella film -- INSERT INTO film (idFilm, titolo, genere, durata, dataUscita) VALUES (1, 'Harry Potter', 'fantasy', '00:01:50', '2013-12-25'), (2, 'Fast & Furios', 'corsa', '00:02:10', '2005-10-12'), (3, 'Big Hero 6', 'cartone', '00:01:30', '2011-10-12'), (4, 'Saul', 'horror', '00:01:50', '2005-12-25');
cognome varchar(150) NOT NULL, dataNascita date NOT NULL, nazionalita varchar(150) NOT NULL, idFilm int(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Dump dei dati per la tabella registi -- INSERT INTO registi (idRegista, nome, cognome, dataNascita, nazionalita, idFilm) VALUES (1, 'JK', 'Rowling', '1966-12-10', 'inglese', 1), (2, 'Pietro', 'Ecola', '1989-05-12', 'italiana', 2), (3, 'Lawren', 'Spielberg', '1977-12-10', 'inglese', 3); -- -- Indici per le tabelle scaricate -- -- -- Indici per le tabelle attori -- ALTER TABLE attori ADD PRIMARY KEY (idAttori); -- -- Indici per le tabelle cinema -- ALTER TABLE cinema ADD PRIMARY KEY (idCinema); -- -- Indici per le tabelle film -- ALTER TABLE film ADD PRIMARY KEY (idFilm); -- -- Indici per le tabelle interpreta -- ALTER TABLE interpreta ADD KEY idFilm (idFilm), ADD KEY idAttori (idAttori); -- -- Indici per le tabelle programmato -- ALTER TABLE programmato ADD KEY idFilm (idFilm), ADD KEY idCinema (idCinema);
registiALTER TABLE registi ADD PRIMARY KEY (idRegista), ADD KEY idFilm (idFilm); -- -- AUTO_INCREMENT per le tabelle scaricate -- -- -- AUTO_INCREMENT per la tabella attori -- ALTER TABLE attori MODIFY idAttori int(1) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT per la tabella cinema -- ALTER TABLE cinema MODIFY idCinema int(1) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT per la tabella film -- ALTER TABLE film MODIFY idFilm int(1) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT per la tabella registi -- ALTER TABLE registi MODIFY idRegista int(1) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- Limiti per le tabelle scaricate -- -- -- Limiti per la tabella interpreta -- ALTER TABLE interpreta ADD CONSTRAINT interpreta_ibfk_1 FOREIGN KEY (idFilm) REFERENCES film (idFilm), ADD CONSTRAINT interpreta_ibfk_2 FOREIGN KEY (idAttori) REFERENCES attori (idAttori) ON UPDATE CASCADE; -- -- Limiti per la tabella programmato
Centro (codC, indirizzo, telefono) Data (dataInizio) Impiegati (codFisc, nome, recapito, titoloStudio) Settore (codS) Film (regista, titolo, costoNol, Anno) Distributore (codD, nome, indirizzo)
Centro (codC, indirizzo, telefono) Data (dataInizio) Impiegati (codFisc, nome, recapito, titoloStudio) Settore (codS, codC) Film (regista, titolo, costoNol, Anno) Distributore (codD, nome, indirizzo) DistribuitoDA (codD, [regista, titolo]*, costo)
LavoraIn (codFisc, codC, dataFine, Carica) Collocazione (codS, [regista, titolo], posizione, copie) remakeDi ( [regista, titolo]*) Ricorsiva -> si associa a se stessa 1,N A 1,N -> ENTITA’ ASSOCIAZIONE N A 1 O 1 A N -> IDENTIFICATIVO DI N VA MESSO DAL LATO 1 0 A 0 -> CREA ALTRA ENTITA’ SE SI VENGONO A CREARE TROPPI VALORI NULLI 1 A 1 -> SCELGO DOVE VOGLIO METTERE LA CHIAVE ESTERNA