Tentamen Databasteknik



Relevanta dokument
Databasteknik för D1, SDU1 m fl

Lösningsförslag till Exempel tentamen

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

Sammanställning av studerandeprocessundersökning GR, hösten 2010

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

ANSÖKAN OM VALIDERING INOM LÄRARLYFTET VT15

Databasteknik för D1, SDU1 m fl

Vad tycker du om sfi?

Tentamen, EDA501 Programmering M L TM W K V

Giltig legitimation/pass är obligatoriskt att ha med sig. Tentamensvakt kontrollerar detta.

Design och underhåll av databaser

Sammanställning kursutvärdering

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Våga Visa kultur- och musikskolor

Sammanställning av studentutvärderingen för kursen Estetiska lärprocesser 15 hp, ht 2007

Underkänt 0-29 poäng Godkänt poäng Väl godkänt poäng. Viktigt! Glöm inte att skriva namn på alla blad du lämnar in.

Databasteori. Övningar

ANONYMA TENTAMINA (FÖRDELAR) ÅSIKTSTORG:

STUDENTBAROMETERN HT 2012

Karlstads Universitet, Datavetenskap 1

19. Skriva ut statistik

UTBILDNING. hösten 2016

Tentamen DATABASTEKNIK - 1DL116

3=delvis av samma åsikt. 4=helt av samma åsikt

Enkäten inleds med några frågor om demografiska data. Totalt omfattar enkäten 85 frågor år år år. > 60 år år.

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Grundläggande programmering med C# 7,5 högskolepoäng

Fakta om Melodifestivalen

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

Får vi vara trygga? Praktiknära forskning inom ämnet idrott och hälsa Rapport nr. 5:2009

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

Antagning och reservantagning. Antagning till kurs och program vid KI

ARBETSRELATERADE DISKUSSIONER

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Handels- och administrationsprogrammet

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Anmälan mot Göteborgs universitet angående nekande att rätta inlämnade uppgifter

Stödinsatser i skolan. Vad behöver jag som förälder Veta?

Handlingsplan i bibliotekskunskap för Nybro Kommuns skolor.

Utvärdering av 5B1117 Matematik 3

Enkät Plantskolan Hammarby IF FF vinter 2015/ Har din son deltagit som? 2. I vilken åldersgrupp har din son deltagit?

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Antagning till högre utbildning höstterminen 2016

Hej Björn! Först vill jag passa på att tacka för senast. Det var en trevlig "nätverksdag" tycker jag.

STÄNG AV FÖNSTER. Regler FLAGGSPECTRUM I FLAGGSPECTRUM II FLAGGSPECTRUM III FLAGGSPECTRUM STJÄRNSPEL

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

1. Skulle du vilja att dina barn åt mer frukt- och grönsaker än vad de gör idag?

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Vilket program och årskurs läser du? Respondenter: 5. Översikt alla Frågor - Verksamhetsstyrning FÖ5007 FÖ5009 FÖ6007 FÖ

Välkommen Till. särskild utbildning för vuxna. Kurskatalog Träningskolan, Grundläggande nivå och gymnasienivå

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Grunderna för relationsmodellen!

Klinisk omvårdnad: Somatisk hälsa, ohälsa och sjukdom Provmoment: Tentamen 2 Ladokkod: Tentamen ges för: SSK högskolepoäng.

Brukarundersökning 2010 Särvux

Tentamen, EDAA20/EDA501 Programmering

Kursprogram Golfträning 2014

Handbok för provledare

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

LO UNG UTBILDNINGAR LAR DIG MER OM FACKET!

Rapport om svenska för invandrare (Sfi) på Järfälla Lärcentrum

Fritidsenkäten 2014 Sammanställning av svar och index

Världskrigen. Talmanus

Positiv Ridning Systemet Om att sätta mål Av Henrik Johansen

MOBBNINGSENKÄT. XXX-skolan

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Skrivprocessen. Varför skriva för att lära? Min kunskapssyn

SVERIGES 18-ÅRINGAR HAR FÅTT EN VIKTIG UPPGIFT

Året runt i naturen skolår 2-3 (läsår som startar med jämn HT)

Engelska skolan, Järfälla

Mötesplats för skolledare på sfi

Lilla indval för ES10, HP10 & MP10

Antalet medlemmar och företag som deltog i mentorskapsprogrammet i fjol

Fördjupningskurs i byggproduktion, ht 2009.

Användningsområde för digitalt verktyg

Teoretiskt, praktiskt eller som i SLÖJDEN? En liten skrift om varför slöjden är ett så viktigt skolämne.

TATM79 Matematisk grundkurs, 6hp Kurs-PM ht 2015

Kortfattad sammanfattning av studenternas synpunkter och förslag

Databaser. Vad du ska lära dig: Ordlista

eport tar hand om hela kursadministrationen

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

NÄR MAN TALAR OM TROLLEN och några andra talesätt

ANMÄL DIG TILL SOMMARLÄGRET!

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Hanne Solem Görel Hydén Sätt in stöten! MATEMATIK

LULEÅ TEKNISKA UNIVERSITET Ämneskod S0006M Institutionen för matematik Datum Skrivtid

Matematik på NV, NS, TE och SMBP

Kursutvärdering. Samhällskunskap A

Min väg till framtiden. Att arbeta med process i grupper

Lathund till Dexter IUP

NI - Naturvetenskapligt program med internationell inriktning Malmö Borgarskola

Att planera, köpa och genomföra teckenkurs

Kommunal vuxenutbildning: elever, kursdeltagare och utbildningsresultat, första halvåret 2016.

Bättre Självförtroende NU!

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Transkript:

Försättsblad Tentamen Databasteknik 2003 04 29, 8.00 13.00 Inga hjälpmedel. Bedömning (preliminär): uppgifterna ger maximalt 14 + 11 + 11 + 6 + 4 + 4 = 50 poäng. För godkänt krävs 25 poäng (3/25, 4/33, 5/42 respektive G/25, VG/38). Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 1 / 10

Uppgift 1 (1) Vid en universitetsinstitution är det studierektorns uppgift att planera undervisningen. Till exempel ska han eller hon bestämma vilka lärare som ska undervisa på vilka kurser. Med undervisa avser vi här föreläsningar och kursansvar, och vi förutsätter att det bara är en lärare som är ansvarig för varje kurs. Studierektorn behöver för detta ändamål en databas med uppgifter om institutionens kurser och lärare. Kurser har kurskod och namn, till exempel EDA215/Databaser. En kurs ges i en bestämd läsperiod. En del kurser sträcker sig över två läsperioder under samma läsår. Läsperioderna numreras 1, 2, 3, 4 och har ett start- och ett slutdatum. Vid den aktuella institutionen finns det inte några kurser som ges flera gånger per läsår. Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 2 / 10

Uppgift 1 (2) Lärarna har personnummer och namn. De flesta lärarna kan bara undervisa på ett begränsat urval av institutionens kurser. Dessutom kan det vara så att en lärare inte kan undervisa under någon eller några läsperioder, eftersom han eller hon ska ha tid att ägna sig åt forskning. När planeringen är klar ska det i databasen finnas uppgifter om vilken lärare som undervisar på varje kurs. Studierektorn ska ur databasen kunna få svar på frågor av typen vilka kurser kan en lärare hålla?, vilka kurser ges under en viss läsperiod?, vilka lärare håller en kurs under en viss läsperiod?, osv. a) Utveckla en ER-modell som beskriver databasen. b) Omvandla ER-modellen till en relationsmodell. Samtliga relationer ska vara i BCNF (visa, eller motivera åtminstone ordentligt, att så är fallet). Ange primärnycklar och främmande nycklar för alla relationer. c) Utgående från dina relationer i uppgift b, skriv i SQL en sats som ger kurskoderna för de kurser som går över två läsperioder Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 3 / 10

Uppgift 2 (1) Eurovision Song Contest ( melodifestivalen ) är en årligen återkommande tävling där Europas bästa sång utses. En databas med uppgifter om tävlingen har följande relationer: Countries(name) Participants(name) Tasks(task) Years(year, day, city, country) Songs(title, country, year, startno, place, points) Participations(year, startno, name, task) alla länder som någonsin deltagit alla personer som någonsin deltagit i någon funktion alla funktioner: singer, composer, etc alla år som tävlingen har givits samt när och var alla sånger som deltagit, med uppgifter om startnummer, placering, poäng och land alla personer som medverkat i någon funktion i någon sång Primärnycklarna är understrukna, främmande nycklar är kursiva. Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 4 / 10

Uppgift 2 (2) Skriv SQL-satser för följande uppgifter (det är tillåtet att definiera och använda vyer): a) Skapa tabellerna Songs och Participations. Hitta på lämpliga typer för attributen och ange rimliga integritetsvillkor. b) Skriv ut antalet sånger som deltog år 2001. c) Skriv ut titel, land och år för alla sånger som har vunnit (place lika med 1). d) Skriv ut namnen på alla sångare som har vunnit (task = singer ). e) Skriv ut alla länder som någonsin deltagit samt deras bästa placering. Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 5 / 10

Uppgift 3 I relationen R(A, B, C, D) gäller följande funktionella beroenden: FD1. FD2. FD3. AC B B D D A a) Vilka nycklar finns i relationen? b) Visa att relationen inte är i BCNF. c) Dela upp relationen i mindre relationer som är i BCNF och visa att de resulterande relationerna är i BCNF. Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 6 / 10

Uppgift 4 Ett stort företag har flera avdelningar. Vid varje avdelning arbetar ett antal anställda, och varje avdelning har ett antal registrerade kunder. En anställd kan arbeta på mer än en avdelning, och en kund kan också vara registrerad hos mer än en avdelning. Denna information har man samlat i en relation: BranchData(branchName, staffname, customername) a) Visa att relationen är i BCNF. b) Trots att relationen är i BCNF kan det finnas redundans i relationen. Ge exempel på en instans av relationen som innehåller redundans. c) Vad beror denna redundans på? Hur kommer man tillrätta med den? Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 7 / 10

Uppgift 5 En tidtabelldatabas för flyglinjer innehåller bland annat en relation med följande utseende: Flight(flightNbr, from, to) Relationen uttrycker att flygturen med nummer flightnbr går från staden from till staden to. Ur databasen kan man alltså utan svårighet få svar på frågor av typen Kan jag flyga direkt från Köpenhamn till New York? Man vill också kunna få svar på frågor av typen Kan jag flyga från Umeå till Boston? Om det inte går direkt, via vilka andra städer ska jag flyga? Kan man få svar på frågor av den senare typen med hjälp av vanliga SQL-satser? Om man kan det, hur skriver man? Om man inte kan det, vad kan man utnyttja i stället och hur skriver man? (I dina svar behöver du inte skriva korrekt kod, bara antyda hur man gör.) Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 8 / 10

Uppgift 6 (1) En databashanterare ska utföra en natural join mellan relationerna R(X,Y) och S(Y,Z). Relationerna är så stora att man inte kan lagra någon av dem i primärminnet. Följande algoritm utför uppgiften (operationen reset ser till att nästa inläsning sker från början av relationen, eof ger true om alla tupler har lästs, read läser en tupel): R.reset(); while (! R.eof()) { r = R.read(); S.reset(); while (! S.eof()) { s = S.read(); if (r.y == s.y) { output(r.x, r.y, s.z); } } } Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 9 / 10

Uppgift 6 (2) Detta är dock en mycket ineffektiv metod, eftersom antalet diskaccesser är lika med R.size() * S.size(). a) Beskriv en bättre algoritm. Förutsätt att varken R eller S har några index. Du behöver inte beskriva algoritmen på så detaljerad nivå som i ovanstående beskrivning, det räcker att du gör huvuddragen i algoritmen klara. b) Beskriv hur algoritmen i uppgift a kan förbättras om både R och S har ett B-trädsindex på attributet Y. Per Holm (Per.Holm@cs.lth.se) Databasteknik, extenta 2007/08 10 / 10