Back
ExamFull examSolution only

TdE BD1 18 02 23 PARTE1 SOLUZIONI

Full exam for Basi di Dati in the Computer Engineering degree programme at Politecnico di Milano. The document covers: AUTORE (Nome, Nazionalità) EDITORE (Nome, Città, Nazione) LIBRO (Titolo, Editore, NroPagine, Lingua, Prezzo, Valuta, Anno) DIRITTI_AUTORE (Autore, Libro, Editore, Percentuale) -- 1. Definire lo schema di DIRITTI_AUTORE, inclusi i vincoli di integrità referenziale. (2pt) CREATE

Basi di DatiFull exam

Document information

What's included in this study material

Full exam for Basi di Dati in the Computer Engineering degree programme at Politecnico di Milano. The document covers: AUTORE (Nome, Nazionalità) EDITORE (Nome, Città, Nazione) LIBRO (Titolo, Editore, NroPagine, Lingua, Prezzo, Valuta, Anno) DIRITTI_AUTORE (Autore, Libro, Editore, Percentuale) -- 1. Definire lo schema di DIRITTI_AUTORE, inclusi i vincoli di integrità referenziale. (2pt) CREATE

Import quality: text was extracted directly from the original document.

Extracted content from the document

Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.

Page 1

AUTORE (Nome, Nazionalità) EDITORE (Nome, Città, Nazione) LIBRO (Titolo, Editore, NroPagine, Lingua, Prezzo, Valuta, Anno) DIRITTI_AUTORE (Autore, Libro, Editore, Percentuale) -- 1. Definire lo schema di DIRITTI_AUTORE, inclusi i vincoli di integrità referenziale. (2pt) CREATE TABLE DIRITTI_AUTORE( Autore VARCHAR(255) REFERENCES Autore(Nome) ON UPDATE CASCADE ON DELETE NO ACTION Libro VARCHAR(255) Editore VARCHAR(255) Percentuale FLOAT NOT NULL FOREIGN KEY (Libro, Editore) REFERENCES Libro(Titolo, Editore) ON UPDATE CASCADE ON DELETE NO ACTION PRIMARY KEY(Autore, Libro, Editore) ) -- 2. Per ogni editore, trovare gli autori che con quell'editore hanno pubblicato libri in almeno 10 lingue diverse. Il risultato deve elencare gli editori in ordine alfabetico e, per ogni editore, gli autori devono essere ordinati in base al numero di lingue diverse (dal numero più alto al più basso). (4pt) SELECT L.Editore, Autore FROM Libro L, DirittiAutore D WHERE Titolo = Libro AND L.Editore = D.Editore GROUP BY L.Editore, Autore HAVING COUNT(DISTINCT Lingua) >= 10 ORDER BY L.Editore ASC, COUNT(DISTINCT Lingua) DESC -- 3. Trovare gli autori che hanno scritto libri per tutti gli editori di Milano senza mai ottenere da questi una percentuale superiore al 5%. (4pt) SELECT D.Autore FROM DirittiAutore D, Editore E WHERE D.Editore = E.Nome AND E.Città = "Milano" GROUP BY D.Autore HAVING MAX(D.Percentuale) <= 5 AND COUNT(DISTINCT E.Nome) = ( SELECT COUNT(*) FROM Editore E2 WHERE E2.Città = "Milano" ) oppure SELECT D.Autore FROM DirittiAutore D, Editore E WHERE D.Editore = E.Nome AND E.Città = "Milano" AND D.Autore NOT IN (SELECT D1.Autore FROM DirittiAutore D1, Editore E1 WHERE D1.Editore = E1.Nome AND E1.Città = "Milano" AND D1.Percentuale > 5) GROUP BY D.Autore HAVING COUNT(DISTINCT E.Nome) =…

Preview

First page of the document.

First page: TdE BD1 18 02 23 PARTE1 SOLUZIONI