vuoi
o PayPal
tutte le volte che vuoi
Attributi e caratteristiche delle tabelle
N.B. Nome: Stringa di lunghezza variabile (massimo 15 caratteri);
N.B. Cognome: Stringa di lunghezza variabile (massimo 15 caratteri);
N.B. Nome Cognome
N.B. Gli attributi e non possono essere nulli.
Tabella Libro
LID: Stringa di lunghezza fissa di 3 caratteri;
Sussiste il vincolo di chiave primaria sull'attributo LID;
N.B. Titolo: Stringa di lunghezza variabile (massimo 25 caratteri);
N.B. L'attributo Titolo
N.B. non può essere nullo.
NumPagine: Numero intero;
Il valore di default dell'attributo NumPagine è 100.
N.B. Pubblicazione
Tabella Pubblicazione
AutoreID: Numero intero;
Sussiste il vincolo di integrità referenziale per l'attributo AutoreID,
N.B. il quale Autore;
si riferisce alla tabella Libro.
La reazione all'operazione di cancellazione è SET NULL;
LibroID: Stringa di
lunghezza fissa di 3 caratteri;• l’attributo LibroID,N.B. Sussiste il vincolo di integrità referenziale per il quale siLibro;riferisce alla tabellaPossibili Soluzionia.
a. CREATE TABLE Autore (AID INT PRIMARY KEY,Nome VARCHAR(15) NOT NULL,Cognome VARCHAR(15) NOT NULL)
b. CREATE TABLE Libro (LID CHAR(3) PRIMARY KEY,Titolo VARCHAR(25) NOT NULL,NumPagine INT DEFAULT 100)
c. CREATE TABLE Pubblicazione (AutoreID INT,LibroID CHAR(3),FOREIGN KEY (AutoreID) REFERENCES Autore(AID) ON DELETE SET NULL,FOREIGN KEY (LibroID) REFERENCES Libro(LID))–Basi di Dati e Sistemi Informativi C.L. in Ingegneria Gestionale– –Appello 05/09/2018 Possibili Soluzioni Pagina 1 di 5Si simuli l’esecuzione2. sequenziale delle seguenti istruzioni SQL su un ipotetico DBMS (chememorizza esclusivamente istanze legali di una Base di Dati), supponendo che tutte le tabelle coinvolteLibro, Pubblicazione)nelle istruzioni (Autore, siano vuote (N.B. le specifiche di tali tabellesono
riportate in Esercizio 1). Si commenti ciascuna istruzione, evidenziando eventuali errori di violazione dei vincoli di integrità. Infine, si riporti il contenuto delle tabelle al termine della simulazione dell'esecuzione di tutte le istruzioni:-
INSERT INTO Autore(AID, Nome, Cognome) VALUES (7, 'Giorgio', NULL)
-
INSERT INTO Autore(AID, Nome, Cognome) VALUES (12, 'Laura', 'Luna')
-
INSERT INTO Autore(AID, Nome, Cognome) VALUES (15, 'Dario', 'Marte')
-
INSERT INTO Libro(LID, Titolo) VALUES ('HA1', 'PQT')
-
INSERT INTO Libro(LID, Titolo) VALUES ('HA2', 'A2M')
-
INSERT INTO Libro(LID, Titolo, NumPagine) VALUES ('HA6', 'HAL', 245)
-
INSERT INTO Pubblicazione(AutoreID, LibroID) VALUES (7, 'HA7')
-
INSERT INTO Pubblicazione(AutoreID, LibroID) VALUES (12, 'HA1')
-
INSERT INTO Pubblicazione(AutoreID, LibroID) VALUES (12, 'HA2')
-
INSERT INTO Pubblicazione(AutoreID,
LibroID) VALUES (15, 'HA2')k. INSERT INTO Pubblicazione(AutoreID, LibroID) VALUES (15, 'HA6')l. DELETE FROM Autore WHERE AID = 12m. INSERT INTO Pubblicazione(AutoreID, LibroID) VALUES (12, 'HA2')
Possibili Soluzioni [Parziali]
Autore Libro Pubblicazione
AID Nome Cognome LID Titolo NumPagine AutoreID LibroID
15 Dario Marte HA1 PQT 100 NULL HA1
HA2 A2M 100 NULL HA2
HA6 HAL 245 15 HA2
15 HA6
a, g, m
Vincoli di integrità violati nelle seguenti istruzioni:
–Basi di Dati e Sistemi Informativi C.L. in Ingegneria Gestionale– –Appello 05/09/2018 Possibili Soluzioni Pagina 2 di 5
Autore, Libro Pubblicazione
Per gli Esercizi 3, 4, 5, 6 e 7, si consideri il contenuto delle tabelle e (lecui specifiche sono descritte in Esercizio 1), riportato rispettivamente nelle Figure 1, 2 e 3:
Autore Libro Pubblicazione
AID Nome Cognome LID Titolo NumPagine AutoreID LibroID
59 Mario Verde AK2 APQR 105 92 M90
65 Giorgio Blu B16 MZTR 250 83 M90
83 Antonio Blu M10 ABTRP 195
99 B1690 Mario Giallo M90 OB23 301 92 QK992 Giulia Rosso QK8 ABC2 57 83 QK999 Marta Verde QK9 MT1 72 90 M1092 QK8
Figura 1 Figura 2 Figura 2l’esecuzione per ciascuna di esse
Si formulino le seguenti interrogazioni in linguaggio SQL, simulando eriportando il relativo risultato. N.B. Si utilizzi il contenuto delle tabelle riportato nelle Figure 1, 2 e 3:
l’identificativo
3. Estrarre ed il cognome degli autori di cui non sono stati pubblicati libri.
Possibile Soluzione
SELECT AID, Cognome
FROM Autore
WHERE AID NOT IN (SELECT AutoreID FROM Pubblicazione)
Risultato dell’Interrogazione
AID Cognome
59 Verde
65 Blu
l’identificativo ed il titolo del libro avente il maggior numero di pagine.
4. Estrarre
Possibile Soluzione 1
SELECT LID, Titolo
FROM Libro
WHERE NumPagine = (SELECT max(NumPagine) FROM Libro)
Possibile Soluzione 2
SELECT LID, Titolo
FROM Libro
WHERE NumPagine IN (SELECT max(NumPagine) FROM Libro)
Risultato dell’Interrogazione
LID Titolo
M90 OB23 –Basi di Dati e Sistemi
Informativi C.L. in Ingegneria Gestionale - Appello 05/09/2018
Possibili Soluzioni
Pagina 3 di 5