Skriftlig eksamen i Databaser Vinter 2002/2003 Dette eksamenssæt består af 5 nummererede sider (incl. denne). Der er 5 opgaver, som ved bedømmelsen tillægges følgende vægte: Opgave 1: 15% Opgave 2: 30% Opgave 3: 25% Opgave 4: 15% Opgave 5: 15% Alle sædvanlige hjælpemidler er tilladt. Side 1 af 5
Opgave 1 (15%) I forbindelse med datamodellering er det blevet afklaret, om et relationsskema R(A,B,C,D,E), at følgende 3 afhængigheder gælder: C->D E->D B->C Det kan konstateres at alle tre ovennævnte afhængigheder bryder Boyce-Codd Normalform (BCNF). Forklar hvorfor. Angiv en nøgle for R Dekomponer R efter C -> D. Kald de to nye relationer for R1 og R2. Angiv hvilke funktionelle afhængigheder der er problematiske (bryder Boyce-Codd Normalform) i henholdsvis R1 og R2. Spørgsmål 4 Løs spørgsmål 3 for E -> D i stedet. Spørgsmål 5 Løs spørgsmål 3 for B->C i stedet. Opgave 2 (30%) En database til registrering af flytrafik har følgende skema, hvor primærnøgler er understreget: lufthavn(lnr, navn, bynavn) flytype(tnr, navn, antal_sæder, fly(flynr, tnr) flyvning(flyvningsnr, dag, rnr, flynr, tid) rute(rnr, fra_lnr, til_lnr) Skemaet er kommenteret herunder. Bemærk at der skelnes imellem "konkrete" fly og flytyper. lufthavn: Stamoplysninger om lufthavne lnr: lufthavnsnummer navn: lufthavnens navn bynavn: navnet på byen, som lufthavnen dækker flytype: Stamoplysninger om flytyper tnr: flytypenummer navn: navnet på flytypen antal_sæder: antallet af sæder i den pågældende flytype fly: Stamoplysninger om fly flynr: flynummer tnr: flytypenummer for det pågældende fly (fremmednøgle til flytype) Side 2 af 5
flyvning: Oplysninger om flyvninger ("flight") flyvningsnr: nummer på flyvningen dag: dato for flyvningen rnr: rutenummer for ruten, hvorpå flyvningen foregår (fremmednøgle til rute) flynr: flynummer for det anvendte fly (fremmednøgle til fly) tid: afgangstidspunkt rute: Stamoplysninger om ruter rnr: rutenummer fra_lnr: nummer på afgangslufthavn (fremmednøgle til lufthavn) til_lnr: nummer på ankomstlufthavn (fremmednøgle til lufthavn) Formuler i SQL følgende forespørgsler: a) Hvilke byer har mere end en lufthavn? b) På hvilke ruter (angiv rnr) flyves med flytypen med navn "Jumbojet"? c) Hvormange pladser er der sammenlagt på flyvninger til lufthavnen med navn "Kastrup" på dagen 970117? Formuler i relationel algebra begrænsninger svarende til referentiel integritet i denne database. Skitser med SQL hvordan følgende begrænsninger kan føjes til databaseskemaet for en database med ovennævnte relationer. Angiv blot fragmenter af skemaet noteret i SQL. (Vink: Det er IKKE nødvendigt at benytte triggers). a) Rnr er primær-nøgle i rute. b) Rnr er entydig, men ikke primær-nøgle i rute (der må i et konkret design naturligvis vælges imellem denne og ovenstående). c) Referentiel integritet for relationen rute. d) Et rute s rnr skal være lig med nummeret på afgangslufthavnen efterfulgt af 3 cifre. Vink: begge antages altså at være numeriske. Man kan skære cifre af et heltal ved at benytte funktionen FLOOR, som trunkerer til heltal (dvs. skærer decimaler af ). F.eks. er FLOOR(12345/100) = 123. Opgave 3 (25%) I forbindelse med datamodellering som skal resultere i en database til registrering af tidsskriftsartikler er følgende foreløbige skema, bestående af en enkelt relation, fremkommet: Artikel(Titel, Forfatter, Tidsskrift, Sidenr, Redaktør, Ansvar_Redaktør, Årgang, Nummer, Forlag, Land) Attributterne skal repræsentere følgende: Titel: Artiklens titel Forfatter: Navn på forfatter Tidsskrift: Tidsskriftets navn Sidenr: Sidenummeret hvor artiklen starter Side 3 af 5
Redaktør: Navn på redaktøren for det aktuelle nummer af tidsskriftet Ansvar_Redaktør: Navn på den ansvarshavende redaktør for tidsskriftet Årgang: Tidskriftets årgang Nummer: Tidskriftets nummer (indenfor årgang nummereres fortløbende startende fra 1) Forlag: Forlagets navn Land: Landet hvor forlaget er hjemmehørende Det er konstateret at følgende afhængigheder gælder: Tidsskrift, Årgang, Nummer, Titel ->> Forfatter, Tidsskrift -> Forlag, Ansvarshavende_Redaktør Tidsskrift, Årgang, Nummer -> Redaktør Forlag -> Land Normaliser det angivne skema til et nyt skema i Boyce-Codd Normalform (BCNF) i forhold til de anførte afhængigheder Forklar hvad den angivne flerværdiafhængighed betyder og normaliser til 4. normalform Skitser et ER-diagram, der kan give anledning til det relationelle skema der er resultat spørgsmål 2. Opgave 4 (15%) Internet forhandleren på www.skærme.dk vil gerne kunne forespørge til forskellige interessante aspekter ved salget af computer skærme gennem deres portal og har til formålet angivet et stjerneskema, hvori der indgår følgende fakta-tabel: salg(model, størrelse, antal, pris, forhandler) Attributterne har følgende betydning: model: modelnavnet på en given skærm, størrelse: skærmens størrelse i tommer, antal: det totale antal solgte skærme af den givne model med den givne størrelse og af den givne forhandler, pris: den samlede pris for salg af skærme af den givne model med den givne størrelse og af den givne forhandler, forhandler: forhandleren. Angiv navne på dimensionsattributter samt afhængige attributter Over fakta-tabellen salg er der blevet dannet en data-kube. Angiv hvilke tupler i data-kuben der skal anvendes for at svare på følgende forespørgsler: Side 4 af 5
a) Find det totale antal solgte Eizo skærme solgt af forhandleren TopComputer b) Find den totale pris for salg af skærme foretaget af forhandleren Fyns Data A/S c) Find det totale antal og den totale pris for salg af 17 tommer skærme Opgave 5 (15%) Herunder er ved et ER-diagram skitseret en database, der skal bruges til at holde styr på graviditeter og barn/forældre forhold. Der registreres personer med adresseoplysninger. Personer kan være børn, mødre eller fædre og graviditeter registreres separat med bl.a. oplysninger om startdato for graviditeten og med termin (forventet tidspunkt for fødsel). cpr navn Gade Gadenr Person bor på Adresse Postnr By Telefonnr Barn Mor Far af hos med startdato Graviditet termin Kan der i en database med det skitserede skema registreres følgende (begrund svaret): a) Graviditet med ukendt far b) Tvillingefødsler c) Graviditet hos ukendt mor d) Barn af ukendt mor Oversæt ovenstående ER-skema til et relationelt databaseskema. Angiv heri nøgler og sørg for at det relationelle skema kan udtrykke det samme som ER-skemaet. Side 5 af 5