Syddansk Universitet Institut for Matematik og Datalogi DM505 Design og programmering af databaser Take-home Eksamen Udleveret: 4. maj 2013, kl. 10:00 Afleveres senest: 5. maj 2013 kl 10.00 Forår 2013
Regler og andre generelle oplysninger Du har 24 timer til at besvare denne take-home eksamen. I den periode er du velkommen til at bruge bøger og opslagsværker, men det er ikke tilladt at diskutere opgaven med nogen (heller ikke i fora på nettet etc.). Hvis noget er uklart i opgaven er du velkommen til at stille spørgsmål til forelæseren (jamik@imada.sdu.dk / 40 60 59 67,) de første 4 timer af perioden. Start derfor med at læse opgaven grundigt igennem. Vægtningen af de enkelte spørgsmål står i overskriften til de enkelte delproblemer (som procent af take-home eksamenen). Take-home eksamen udgør 50% af bedømmelses grundlaget for karakteren, mens de andre 50% kommer fra projektet. Bemærk at et korrekt svar uden mellemregninger og begrundelse, generelt ikke vil blive betragtet som en fuld løsning. Du må lave besvarelsen på dansk eller engelsk, og din besvarelse skal være uploaded som én pdf fil på kursets blackboard side inden deadline. 2
1 Lave et E/R Diagram (15%) Den lokale sportsforening i Andeby har henvendt sig til dig, for at få hjælp til at designe en database til dem. De vil gerne kunne holde styr på deres medlemmer, specielt deres medlemsnummer, fødselsdato og navn. Medlemmerne deltager på et eller flere hold i en sportsgren. Sportsforeningen råder over en hal, hvor træningstiderne er delt ind i to-timers intervaller på ugedagene, og det enkelte hold kan være tildelt op til tre haltider til træning. Der er selvfølgeligt ikke to hold der kan træne i hallen på samme tid. Nogle af medlemmerne fungerer som trænere, og på disse medlemmer vil man gerne have registreret deres træner licens-type, nummer og udløbsdato. Der er også medlemmer der fungerer som medhjælpere til dommerbordet, fordelt på de forskellige hal tider oftest beliggende i weekenden hvor der spilles håndboldkampe. Medhjælperne får hvert år et julekort, så det er nødvendigt at have deres adresse registreret. Sportsforeningen oplyser endvidere at alle hold skal have en træner, samt at sportsgrenene er inddelt i kategori (f.eks. boldspil, ketcher-sport etc.). Lav et E/R diagram for designet af sportsforeningens database. Beskriv dine design valg og hvis der er noget du ikke kan modellere med diagrammet. Du skal bruge E/R diagram notationen fra kursets lærebog. 3
2 Konvertering af E/R Diagram (15%) er-diagram Exported Konverter at: Sun Apr ER28 2013 diagrammet 13:56:32 GMT+0200 fra (CEST) figur 1 til den relationelle model. Beskriv processen og Untitled constraints Page det ikke er muligt at overføre. CPR Patienter Fejler Sygdom Familie Navn Type Placeret BehandlesAf Stue Speciale Siden Sengeplads Type Nummer CPR Behandler Navn ISA ISA Lokal telefon Kiropraktor Læge Kontor Figur 1: E/R diagram til opgave 2 4
3 SQL (20%) Betragt følgende to relationer: Fodboldhold(licens nummer, holdnavn, hjemby, trøjefarve ) Fodboldkamp(kamp id, hjemmehold id, udehold id, hjemmehold mål, udehold mål) Her er et udsnit af data der ønskes gemt i relationerne: licens nummer holdnavn hjemby trøjefarve 452415 Andeby IF Andeby Matrosblå 875412 Svaneholm Boldklub Svaneholm Hvid 241527 FC Gåserød Gåserød Rød............ kamp id hjemmehold id udehold id hjemmehold mål udehold mål 4258 452415 875412 0 0 4259 875412 241527 2 1 4260 875412 452415 1 1............... Udfør følgende delopgaver: 1. Lav SQL, der opretter tabellerne, med fornuftige typer og relevante constraints. 2. Lav en forespørgsel, der lister bynavne og antal hold der hører hjemme for den enkelte by. 3. Lav en forespørgsel der finder kamp id, og resultat af alle kampe mellem Andeby IF og FC Gåserød. Oplys altid Andebys mål først som Andebys og Gåserøds sidst, uanset hvem der har spillet ude eller hjemme. 4. Lav SQL der indsætter resultatet af en kamp, hvor Andeby IF hjemme besejrede FC Gåserød med 3-0. 5
4 Normalisering og BCNF (20%) Betragt relationen R (A B C D E) med følgende functional dependencies: F := { D B, A D, B A, E B). 1. Find alle keys (ikke super keys), og argumenter for at der ikke kan være andre. 2. Er R på Boyce-Codd Normal Form? Hvis den er, argumenter hvorfor, hvis ikke, decomposer R indtil den er, og afgør om decompositionen er dependency preserving 6
5 B+ træ (10%) Udfør de følgende operationer. Start hver gang med det original træ fra figur 2. Beskriv hvad du gør i de enkelte skridt, dvs. aflever ikke kun en tegning med træet efter operationen. 1. Indsæt 15 2. Indsæt 6 3. Indsæt 33 4. Slet 23 19 7 23 32 42 2 4 5 7 10 19 21 22 23 29 32 37 41 42 47 Figur 2: B+ Træ til Problem 5. 7
extensible 6 Extensible Hashing (10%) Exported at: Fri Apr 19 2013 21:14:26 GMT+0200 (CEST) Tag udgangspunkt i den extensible hashing struktur du finder i figur 3. Her anvender vi hashfunktionen h(x) = x for at gøre det simpelt. Extensible Hashing i = 3 000 00010 00001 2 001 010 011 01011 3 01110 3 100 10111 10000 2 101 110 11001 3 111 11110 11100 3 Figur 3: Extensible hashing struktur til opgave 6 Udfør de følgende operationer. Tag hver gang udgangspunkt i den originale figur, ikke det der følger fra den foregående opgave. 1. Indsæt værdien 01101 2. Indsæt værdien 00111 3. Indsæt værdien 11111 8
linear 7 Linear Hashing (10%) Exported at: Fri Apr 19 2013 21:16:06 GMT+0200 (CEST) Tag udgangspunkt i den linear hashing struktur du finder i figur 4. Her anvender vi hashfunktionen h(x) = x for at gøre det simpelt. Linear Hashing i = 3 n = 5 r = 6 0 10000 1 11001 2 00010 01010 Bem: f = 2 pmax = 0.8 3 10011 4 00100 Figur 4: Linear hashing struktur til problem 7 Udfør de følgende operationer. Tag hver gang udgangspunkt i den figur der opstår ved udførsel af de foregående opgaver. 1. Indsæt værdien 01101 2. Indsæt værdien 00110 3. Indsæt værdien 11100 Hint: Det er ikke nødvendigt at udvide lineært hvis strukturen er præcis 80% fyldt, først når det overstiges. 9