SIF8041 OPERATIVSYSTEMER OG DATABASER
våren 2001
ØVING 4 : SQL og relasjonsalgebra.
LØSNINGSFORSLAG
a )Skriv ut ei liste med alle "landskapsbilder" av Mjøsa.
SELECT Nid FROM ORGINAL O, STED S, FRA F WHERE O.NId = F.NId AND S.SId = F.SId AND Navn = "Mjøsa" AND Type= "innsjø" AND Motiv = "landskap";
b) Skriv ut alle data om originalen for portretter tatt av fotograf Wilse i 1920.
SELECT * FROM ORIGINAL WHERE PIdFotograf IN (SELECT PId FROM PERSON WHERE Navn="Wilse") AND Dato BETWEEN (19200000, 19201232) AND Motiv = "Portrett";
c)
Lag en rapport som viser hvor mange kopier det er tatt av hver enkelt original. Tabellen skal sorteres etter antall kopier. Ta bare hensyn til direkte kopier, ikke kopier av kopierSELECT NId, COUNT (*) FROM Kopi WHERE KopiType = "original" GROUP BY NId ORDER BY 2 ASC;
d) Lag en liste over alle bilder som er tatt av Roald Amundsen. Liste skal inneholde negativets identifikasjon, dato for når bildet er tatt, fotografens navn, og navnet på stedet der bildet er tatt.
SELECT O.NId, O.Dato, P.Navn, S.Navn FROM ORIGINAL O, PERSON P, STED S, AVBILDET A, FRA F WHERE P.Navn = "Roald Amundsen" AND P.PId = A.PId AND A.NId = O.NId AND O.PIdFotograf = P.PId AND F.NId = O.NId AND F.SId = S.SId;
e) Svar på oppgave d) ved å bruke relasjonsalgebra.