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 kopier

 

SELECT 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.