Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger



Relaterede dokumenter
Skriftlig eksamen i. Databaser. Vinter 2002/2003

Spørgsmål 2 Givet at R indeholder 3 tupler (d,f,a,b,c), (d,f,b,d,e), (e,g,a,b,c). Hvilke tupler må R da også indeholde?

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Information Integration

Funktionel afhængighed

Datalagring og formater

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Databaser Obligatorisk opgave 1

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Design ved normalisering

Databasesystemer. IT Universitetet i København 8. juni 2006

Normalisering, del 2

Views etc. Databaser

Databasesystemer fra forskellige synsvinkler

Skriftlig eksamen i kurset. Informationssystemer

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 4: Mere om E-R modellering. 24. februar Forelæser: Rasmus Pagh

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Anvisning i aflevering af bitemporale data

Eksamen, DSDS, efterår 2007

Introduktion til programmering

Relationel Algebra og SQL

DB undervisning 01-01

(fig.1. Eksempel på en almindelig entity)

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");

Databaser. 3. Normalform. Mette Frost Nielsen

Database design for begyndere

AkademiMerkonom VEJLEDNING I PROJEKTARBEJDE. Nordjyllands Erhvervsakademi

1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Databaser Obligatorisk opgave 2 Vejledende løsning

Søren Løbner (lobner) ddb Databaser

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Eksamen, DSDS, efterår 2008

Fra ER-Diagram til Relationel model i 7 step

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Jørgen Koch. och. Access. Normalisering m.v.

Registrering af aviser i Arkibas (E-registrering) Valg af E-signatur. Aviser Afsnit 5.6

Data lagring. 2. iteration (implement backend)

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Undervisningsbeskrivelse

DEN GODE MODEL: OPSAMLING PÅ MODELLERINGSOPGAVER OG INTRO TIL MODELLERINGSALTERNATIVER

Karens lille vejledning til Access

Skriftlig Eksamen Diskret Matematik (DM528)

DATABASE - MIN MUSIKSAMLING

1. Basal select med (stjerne)

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

PRÆSENTATION AF ER-DIAGRAMMER OG NORMALISERING

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar Forelæser: Rasmus Pagh

Introduktion til SQL queries

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Databasesystemer. IT Universitetet i København 8. juni 2006

Take-home Eksamen. DM505 Design og programmering af databaser. Syddansk Universitet Institut for Matematik og Datalogi

Informations- og datamodellering

Dansk-historie-opgave 1.g

Manuskriptvejledning pr Bachelorprisen

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Database. lv/

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar Forelæser: Rasmus Pagh

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Forslag til oprettelse af et konferencemodul

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Introduktion til OPC Access

Manuskriptvejledning De Studerendes Pris

Frydenlunds manual om litteraturlister

DATABASE DESIGN. En note om database design, normalisering og database generalisering

EKSAMENSPROJEKTET. Oplæg 7. januar 2016.

Skriftlig eksamen i Datalogi

Jayne Alice Jensen [Link til portfolio]

Transkript:

Skriftlig eksamen i Databaser Vinter 2002/2003 Vejledende løsninger 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.

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. Spørgsmål 2 Angiv en nøgle for R Spørgsmål 3 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. Fordi hverken B, E eller C er supernøgler ABE er en nøgle Svar 3 R1(C,D), R2(A,B,C,E), R1:ingen, R2: B->C Svar 4 R1(E,D), R2(A,B,C,E), R1:ingen, R2: B->C Svar 5 R1(B,C,D), R2(A,B,E), R1: C->D, R2: ingen 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) 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? Spørgsmål 2 Formuler i relationel algebra begrænsninger svarende til referentiel integritet i denne database. Spørgsmål 3 Skitser hvordan følgende begrænsninger kan føjes til databaseskemaet for en database med ovennævnte relationer i SQL. 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. F.eks. er FLOOR(12345/100) = 123. a) Hvilke byer har mere end en lufthavn? select bynavn, count(navn) from lufthavn group by bynavn having count(navn)>1 b) På hvilke ruter (angiv rnr) flyves med flytypen med navn "Jumbojet"? select distinct rnr from rute, flyvning, fly, flytype where rute.rnr=flyvning.rnr and flyvning.flynr = fly.flynr and fly.tnr=flytype.tnr and flytype.navn="jumbojet" c) Hvormange pladser er der sammenlagt på flyvninger til lufthavnen med navn "Kastrup" på dagen 970117? select count(flytype.antal_sæder) from lufthavn, rute, flyvning, fly, flytype where lufthavn.navn = "kastrup" and lufthavn.lnr = rute.til_lnr and rute.rnr=flyvning.rnr and flyvning.flynr = fly.flynr and fly.tnr=flytype.tnr π tnr (fly) π tnr (flytype) π flynr (flyvning) π flynr (fly) π rnr (flyvning) π rnr (rute) π fra_lnr (rute) π fra_lnr (lufthavn) π til_lnr (rute) π til_lnr (lufthavn) Svar 3 a) Rnr er primær-nøgle i rute: primary key (rnr)

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. unique(rnr) c) Referentiel integritet for relationen rute foreign key (fra_lnr) references lufthavn(lnr) foreign key (tra_lnr) references lufthavn(lnr) 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. F.eks. er FLOOR(12345/100) = 123 check (floor(rnr/1000) = fra_lnr) 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 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 Spørgsmål 2 Forklar hvad den angivne flerværdiafhængighed betyder og normaliser til 4. normalform

Spørgsmål 3 Skitser et ER-diagram, der kan give anledning til det relationelle skema der er resultat spørgsmål 2. Tidsskrift -> Forlag, Ansvarshavende_Redaktør Tidsskrift (Tidsskrift, Ansvarshavende_Redaktør, Forlag, Land) Artikel(Titel, Forfatter, Tidsskrift, Sidenr, Redaktør, Årgang, Nummer) Tidsskrift, Årgang, Nummer -> Redaktør Tidsskrift (Tidsskrift, Ansvarshavende_Redaktør, Forlag, Land) Artikel(Titel, Forfatter, Tidsskrift, Sidenr, Årgang, Nummer) Nummer(Tidsskrift, Redaktør, Årgang, Nummer) Forlag -> Land Tidsskrift (Tidsskrift, Ansvarshavende_Redaktør, Forlag) Artikel(Titel, Forfatter, Tidsskrift, Sidenr, Årgang, Nummer) Nummer(Tidsskrift, Redaktør, Årgang, Nummer) Forlag (Forlag, Land) Tidsskrift, Årgang, Nummer, Titel ->> Forfatter, Tidsskrift (Tidsskrift, Ansvarshavende_Redaktør, Forlag) Artikel(Titel, Tidsskrift, Sidenr, Årgang, Nummer) Forfatter(Titel, Forfatter, Tidsskrift, Årgang, Nummer) Nummer(Tidsskrift, Redaktør, Årgang, Nummer) Forlag (Forlag, Land) Svar 3

forlag land Forlag udgives på Tidsskrift tidsskrift ansvar_red af årgang Nummer nummer redaktør Forfatter i Forfatter skrevet af Artikel titel 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

Spørgsmål 2 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: 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 Angiv navne på dimensionsattributter samt afhængige attributter (model, størrelse, forhandler) (antal, pris) 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: a) Find det totale antal solgte Eizo 17 tommer skærme solgt af forhandleren TopComputer salg( Eizo, 17, antal, pris, TopComputer ) b) Find den totale pris for salg af skærme foretaget af forhandleren Fyns Data A/S salg(*, *, antal, pris, forhandler) c) Find det totale antal og den totale pris for salg af 17 tommer skærme salg(*, *, antal, pris, *) 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 ISA ISA ISA Telefonnr Barn Mor Far af hos med startdato Graviditet termin Vil denne en database med det skitserede skema tillade registrering af følgende (begrund svaret): a) Graviditet med ukendt far b) Tvillingefødsler c) Graviditet hos ukendt mor d) Barn af ukendt mor Spørgsmål 2 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. a) Graviditet med ukendt far: Ja, med er mange-til-en (dvs. nul-eller-en) mod Far. b) Tvillingefødsler Ja, af er mange-til-en mod Graviditet c) Graviditet hos ukendt mor: Nej, Graviditet er svag mod Mor d) Barn af ukendt mor, Ja, af er mange-til-en (dvs. nul-eller-en) mod Graviditet. Person(cpr,navn,gade,gadenr,postnr) Adresse(gade,gadenr,postnr,by,telefonnr) Barn(cpr,morcpr,startdato) Graviditet(morcpr,startdato,farcpr,termin) Mor(cpr) Far(cpr)