Lena Strömbäck 2004-08-19 Skriftlig tentamen i kursen TDDI 60 Tekniska databaser Datum: 2004-08-19 Tid: 14-18 Lokal: TER1 Hjälpmedel: Engelsk ordlista tillåten ej elektronisk Miniräknare ej programmerbar Poängränser: Tentamen består av två delar Den praktiska delen kräver 10 poäng för godkänt Den teoretiska delen kräver 10 poäng för godkänt För betyg 4 krävs ungefär 28 poäng För betyg 5 krävs ungefär 36 poäng Resultat annonseras inom två veckor. Jourhavande lärare: Lena Strömbäck, 0709-39 6776, 013-16 46 99, 013-28 23 24 An English version of the questions is found at the back of each page. Använd ett papper för varje fråga även om du bara skriver en rad på det. Skriv namn och personnummer på varje blad. Skriv bara på ena sidan av papperet. Ge relevanta svar på frågorna. Poängavdrag kan ges för svar som inte är direkta svar på frågan.
Del 1: Praktisk 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 En liten samfällighet vid havet äger en båthamn för medlemmarnas båtar. Samfälligheten tar ut en årlig avgift för båtplatsen. Hjälp ordföranden att skapa en passande databas. 1 2 3 4 5 6 7 8 9 Sail boats 101112131415161718 19 20 21 22 23 24 25 26 27 28 29 30 Motor boats Water 1 3 5 7 2 4 6 Properties 8 Figure 1: Hamnplatser för motor- och segelbåtar i vattnet och tomter Varje tomt i samfälligheten identifieras av ett tomtnummer och beskrivs vidare genom dess adress. Databasen innehåller alla tomtägare (dvs. en tomt kan ägas av fler än en person). Dessutom måste det finnas en ekonomiskt ansvarig person ( betalare ) per tomt som betalar samfällighetens avgifter. Betalaren behöver inte vara identisk med ägaren (betalaren kan ha hyrt tomten). Alla dessa relevanta personer ska finnas i databasen med fullständigt namn och telefonnummer. Det ska vara möjligt att spåra gamla ägare (dvs. en databasfråga som vem ägde tomt 3 år 1954? ska vara möjlig). Till varje tomt hör maximalt två båtar. Varje båt hör till en hamnplats i hamnen. Hamnplatserna är markerade med små nummerskyltar som är spikade på bryggan (se bilden). Det finns hamnplatser för motorbåtar och segelbåtar. Årskostnaden för en hamnplats beror på dess typ: segelbåtplats eller motorbåtplats. Kostnaden för motorbåtsplatsen bestäms också av motorbåtens motoreffekt (antalet hästkrafter). Varje hamnplats och varje båt finns i databasen med respektive längd, bredd och djup för att tilldela och omfördela hamnplatser och båtar på ett enkelt sätt. Databasdesignen ska tvinga fram att alla båtar får rätt hamnplats (att motorbåtar hamnar på motorbåtsplatser och segelbåtar på segelbåtsplatser).förutom ägarförhållandet för tomtar finns inga historiska data i databasen. Du behöver inte modellera för databasfrågor som vilken hamnplats ägdes av hus 3 år 1960? ). Rita ett EER diagram som modellerar ovanstående mini-värld.
Uppgift 2 (4p): Översätt EER diagrammet från uppgift 1 till tabeller i BCNF. Förklara hur översättningen gjorts och om du väljer att göra någonting annorlunda än som beskrivs i boken måste detta motiveras. Kom ihåg att det inte bara är ditt slutliga relationsschema utan också dina antaganden och motiveringar som avgör bedömningen av ditt resultat. Vi kommer att utgår från din lösning av uppgift 1, det är alltså viktigt att ditt relationsschema är en översättning av din lösning av uppgift 1. Uppgift 3 (6p): SQL En databas innehåller information om böcker, förlag och författare. Attributen AuthOrder i wrote-tabellen anger vem som är första, andra, tredje, etc. författaren till en bok. Publisher PubID PubName 1 Addison-Wesley 2 Wiley Book BookID BookTitle BookPrice PublisherID 101 Fundamentals of Database 95.00 1 Systems 102 Building Secure Software 54.99 1 103 Securing Java 34.99 2 Author AuthorID AuthorName 2004 Elmasri, Ramez 2005 Navathe, Shamkant 2006 Viega, John 2007 McGraw, Gary 2008 Felten, Ed Wrote BookID AuthorID AuthOrder 101 2004 1 101 2005 2 102 2006 1 102 2007 2 103 2007 1 103 2008 2
a) Lista all böcker (och deras priser) som kostar mer än $40. (1p) Fundamentals of Database Systems 95.00 Building Secure Software 54.99 b) Lista alla titlar och deras förlag sorterade efter förlagsnamn och titel. (1p) Addison-Wesley Building Secure Software Addison-Wesley Fundamentals of Database Systems Wiley Securing Java c) Ange genomsnittspriset per förlag. (2p) Addison-Wesley 74.995 Wiley 34.99 d) Vilken första författare har skrivit den dyraste boken? Ange inte medförfattare. (2p) Elmasri, Ramez Uppgift 4 (4p): Normalisering. Kustklubben hyr ut båtplatser till sina medlemmar. För att hålla koll på vilka platser som är uthyrda och att alla har en plats lagom för sin båt föreslår de följande databas. (Varje brygga har bara platser av en viss storlek.) Medlemsnr Namn BåtID Båtplats Brygga Platsbredd Förutom de beroenden som ges av primärnyckeln har vi också: Medlemsnr Æ Namn Båtplats Æ Brygga Brygga Æ Platsbredd a) Vilken normalform är tabellen i? Motivera! (1p) b) Normalisera tabellen till BCNF. Var noga med att redovisa alla steg i normaliseringsprocessen. (3p)
Uppgift 5 (6p): Datastrukturer Del 2: Teoretisk Vi har en tabell med 10 000 rader bestående av tre attribut: Personnummer (10 byte), Namn (20 byte) och Telefonnummer (10 byte). Personnummer är primärnyckel i tabellen, namn är unika för varje person men flera personer kan ha samma telefonnummer. Tabellen är lagrad sorterat efter personnummer. Vi vill kunna göra snabb sökning på alla attribut. Visa vilken typ av index som kan skapas och hur dessa ser ut på för var och ett av de tre attributen. För full poäng ska dina förslag på index vara så effektiva som möjligt, motivera dina val av indextyp. (Blockstorlek 200 byte.) Uppgift 6 (7p): Relationsmodellen och relationsalgebra a) I tabellen i uppgift 5 vill vi hitta namn på alla personer som har samma telefonnummer som Pelle Pettersson. Skriv frågan i relationsalgebra. (2p) b) Vad är skillnaden mellan yttre och inre join? Förklara och ge ett exempel. (2p) c) Vad är primärnyckel, kandidatnyckel och supernyckel. Förklara och ge exempel från tabellen i uppgift 5. (3p) Uppgift 7 (5p): Databasåterställning Studera följande transaktionsschema. T1 Read-item(other-account); other-account := other-account + 2000; Write-item(other-account); Read-item(my-account); T2 Read-item(my-account); my-account := my-account + 1000; Write-item(my-account); Commit; my-account := my-account + 2000; Write-item(my-account); Commit; a) Är schemat återställningsbart respektive strikt? Motivera! (2p) b) Hur påverkar dessa båda egenskaper databasåterställningen? Visa vad som händer om transaktionen T2 skulle göra Rollback i stället för commit och diskutera hur detta påverkar återställningen av databasen. (3p) Uppgift 9 (2p): Förklara följande begrepp: a) Deadlock c) Rotational delay