Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18 Jourhavande lärare: Pawel Pietrzak (013/28 24 10, 013/21 01 17) Poäng: Tentan består av 2 delar. För godkänd krävs 50% av maxpoäng på båda delar. Betygsräkningen baseras på det totala resultatet och inte på de olika delarna. Anvisningar: Förutom anvisningarna på skrivningsomslaget gäller följande. Skriv klart och tydligt. Antaganden utöver de som står i uppgiften måste anges. (Gjorda antaganden får naturligtvis inte förändra den givna uppgiften.) Hjälpmedel: lexikon, miniräknare LYCKA TILL! 1(5)
Praktisk del (16 poäng) I den praktiska delen kommer ni bland annat att modellera ett problem i uppgift 1. Denna modell ska sedan ligga till grund för de svar ni ska ge i uppgift 2. Uppgift 1 (6 p): Datamodellering med EER diagram Ett företag som hyr ut lägenheter (t.ex. Stångåstaden) skulle vilja göra om sin databas så att den uppfyller kraven nedan. Först av allt vill de lagra följande information om sina lägenheter: Adress (gata, nummer, postnummer, stad) Våning Antal rum Boyta Finns hiss i byggnaden (ja eller nej) Hyra Lägenheterna bebos av hyresgäster, personer för vilka vi behöver lagra namn och personnummer. Företaget vill också veta hur länge en hyresgäst har bott i lägenheten. För varje lägenhet finns exakt en hyresgäst, räkningsmottagaren, som är den som ansvarar för att betala hyran. Hyran betalas varje månad när företaget skickar en faktura till räkningsmottagaren. Fakturan innehåller följande information: senaste betalningsdatum, totalt belopp att betala och OCR-nummer. Företaget vill hålla reda på om hyran har betalts i tid eller inte. Om fakturan ej betalts skickas en påminnelse ut. Påminnelsen är en speciell faktura som innehåller den obetalda hyran samt en påminnelseavgift. Databasen ska innehålla information om alla fakturor och påminnelser som skickats ut. Uppgift 2 (4p): Översätt EER diagrammet från uppgift 1 till tabeller i BCNF. I de fall som ni valt att inte använda standardreglerna som dom finns beskrivna i kursboken så ska anledningen till att ni gjort ett annat val motiveras! Annars gäller: Primärnyckel ska vara understruken. Främmande nycklar ska understrykas med streckad linje. Den refererade tabellen och attributet måste anges. Exempel: TABELL1 Attribut1 Attribut2 TABBELL2 Attribut3 Attribut4 Tabell1(Attribut1) Den här uppgiften kommer i huvudsak att bedömas på kvaliteten på den översättning du gjort av ditt diagram från uppgift 1 till relationsmodellen. Dvs. även om du råkat göra något fel i uppgift 1 är det viktigt att du översätter ditt diagram och inte istället direkt gör tabeller för den databas som beskrivs i uppgift 1. 2(5)
Uppgift 3 (6p): SQL Studera följande databasschema: PASSAGERARE PassNr Namn BOKNING PassNr FlightNr FlightDatum BokningsDatum Pris Passagerare(PassNr) FlightNr+FlightDatum refererar FLIGHT(FlightNr,Datum) FLIGHT FlightNr Datum Från Till Formulera följande SQL frågor till databasen: a) (1p) Vart flög John Smith 2002-02-02? b) (2p) Vad är genomsnitsspriset på alla flighter till Paris? c) (3p) Vart flyger Nils Nilsson oftast? 3(5)
Teoretisk del (18 poäng) Uppgift 4 (2p): Normalisering. Studera följande relationsschema: KursNr Lärare Kursnamn Datum/Tid Rum Kapacitet Förutom de beroenden som impliceras av primärnyckeln har vi: KursNr KursNamn, Lärare Rum Kapacitet Vilken normalform är relationen i? Normalisera till BCNF om det behövs. Uppgift 5 (1 + 1 + 1 = 3p): Datastrukturer a) Beskriv de viktigaste egenskaperna för B+-träd?(1p) b) Antag att vi skapar ett B+-tree med p (maximalt antal barn) satt till 3. Visa hur värdena 1,5,4,3,2 (i denna ordning) sätts in i det initialt tomma trädet. (1p) c) Antag att vi har ett index baserat på ett B+-träd, där blockstorleken är 1000 bytes, pekarstorleken är 4 och storleken på sökfältet är 10. Vilket är det mest fördelaktiga värdet för p för detta B+-träd? (1p) Uppgift 6 (4p): Transaktioner Beskriv ACID-egenskaperna för transaktioner. Ange för varje egenskap vem eller vilken del av databashanteringssystemet ansvarar för att egenskapen uppnås. Uppgift 7 (2p): Serialiserbarhet Är följande tidsschema serialiserbart? Förklara hur du fick fram ditt resultat. T1 Read-item(other-account); other-account := other-account + 2000; Read-item(my-account); Write-item(other-account); my-account := my-account + 2000; Write-item(my-account); T2 Read-item(my-account); my-account := my-account + 1000; Write-item(my-account); 4(5)
Uppgift 8 (3p): Databasåterställning a) Beskriv metoden för återställning med omedelbar uppdatering (eng. recovery with immediate update). Ange vilken variant du använder. Använd systemloggen nedan för att exemplifiera metoden. (Observera att för varje write-item lagras bara 1 värde i systemloggen nedan.) b) Visa alla steg som görs vid återställningen av databasen. c) Ange för varje variabel (A, B, C, D och E) vad värdet är efter återställningen. (Om det inte går att få fram från systemloggen, ange detta.) System log: Start-transaction T1 Write-item T1, A, 10 Checkpoint Start-transaction T2 Write-item T1, B, 10 Write-item T2, C, 10 Commit T1 Start-transaction T3 Start-transaction T4 Write-item T3, D, 20 Write-item T4, E, 5 Write-item T2, C, 30 Commit T2 system crash Uppgift 9 (2p): Information retrieval Beskriv vektormodellen med hjälp av komponenterna D, Q, F och R. Ge exempel för varje komponent. (Förklara tf och idf!) D: hur representeras dokumenten? Q: vilka frågor kan ställas och hur representeras frågorna? F: hur kopplar man ihop frågorna och dokumenterna för att få svar på frågorna? R: gör man en rankning av svaren och i så fall, hur? Uppgift 10 (2p): Databankintegration Jämför för- och nackdelar av databankintegrationsmetoderna länkdrivna federationer och vyintegration. 5(5)