Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng Datum: 2016-11-02 Tid: 08:15 13:15 Lärare: Peter Bellström, Katarina Groth, Remigijus Gustas Hjälpmedel: Inga Tentamen är på 40 poäng. Gränsen för Godkänd (G) är 20 poäng. Gränsen för Väl Godkänd (VG) är 30 poäng. OBS! Ange anonymitetskod frågenummer och sidnummer upptill på alla inlämnade blad Börja på nytt papper/ny sida för varje uppgift, skriv ditt svar endast på framsidan. LYCKA TILL!
Fråga 1. Begreppsapparaten (3 poäng) Data, schema och databashanterare är tre viktiga begrepp inom databasteori. Förklara dessa tre begrepp noggrant. Fråga 2. Semantisk modellering (ER-modellering) (4 poäng) Ett filmbolag producerar filmer med hjälp av olika skådespelare. En studio har äganderätten till varje film som spelas in och varje studios kan därmed äga ett antal filmer. Skådespelarna kan spela olika roller i olika filmer. I varje film deltar ett antal skådespelare. Alla filmer lagras i databasen med sin titel, årtal, längd och genre. Det finns bara en film som kan ha en viss titel. Både skådespelare och studios lagras med respektive namn och adress. För skådespelarna lagras dessutom ett unikt ID-nummer. Några av de specifika filmgenrerna som ska lagras är Tecknad film och Science fictionfilmer. I de tecknade filmerna agerar vissa skådespelare med sina röster, men deltar inte aktivt. För att få full poäng på denna uppgift ska en ER-modell ritas upp innehållande: A. Entiteter, attribut och primärnycklar (dessa ska vara understrukna) B. Samband och Kardinalitet C. Entiteternas subklasser och superklasser Fråga 3. Designprocessen (3 poäng) Designprocessen består av tre steg. Förklara noggrant varje steg. Din förklaring ska innehålla korrekta namn på de olika stegen och även beskriva vilket resultat som kommer ut av varje steg (och som används som indata till nästa steg i förekommande fall). Även indata till det första steget ska beskrivas. Fråga 4. Attribut I ER-modeller (2 poäng) Förklara innebörden av att ett attribut är härlett och ge ett exempel på ett sådant attribut. Förklara därtill hur det representeras i relationsmodellen. Fråga 5. Översättning av ER-modell till Relationsmodell (5 poäng) Nedanstående ER-modell, Bild 1, ska översättas till en relationsmodell enligt de 10 + 1 stegen som presenteras som kort kokbok i kurslitteraturen (Padron-McCarthy & Risch, 2005). Utför denna stegvisa översättning och beskriv tydligt vilka steg som du använder.
B1 A1 A2 C1 D1 B A M AD N D 1 B2 AC D2 D3 C1 M C C2 D21 D22 Figur 1 Fråga 6. Normalisering (6 poäng) Normalisering används bland annat för att designa bättre och mer korrekta databaser. Padron-McCarthy & Risch (2005) beskriver i sin bok Databasteknik (utgiven av Studentlitteratur) första normalformen som [ ] tabellen ska innehålla atomära värden, dvs högst ett värde per ruta (s. 221) andra normalformen som [ ] 1NF, plus att varje ickenyckelattribut ska vara ffb av varje kandidatnyckel (s. 227) och tredje normalformen som [ ] 2NF, plus att inget icke-nyckelattribut får vara ffb av något annat icke-nyckelattribut (s. 227). Din uppgift blir nu att tillämpa normalformerna så som de är beskrivna av Padron-McCarthy & Risch (2005) på uppgiften nedan (se tabell och text). I ditt svar skall du redovisning hur tabellen/tabellerna ser ut i respektive normalform, primärnycklar skall strykas under och främmande nycklar skall markeras med en stjärna samt pil till det attribut det refererar tillbaka till, och hur du tillämpar respektive normalform för att normalisera tabellen/tabellerna till en högre normalform. För att erhålla mer information om vilka beroenden som måste användas finns också texten nedan som skall ses som ett utdrag ur en intervju med en av behovsägarna. I vår verksamhet och företag är vi bland annat intresserade av att hålla reda på eller ja kunna sök ut vilka album en artist har släppt och vice versa. Det som är viktigt att veta är att vi har artister som släppt flera album och för ett album kan det vara flera artister som varit med. Exempel på detta är när en duo släpper ett album och de årliga samlingsalbumen med Best of som vi släpper i januari varje år. Dessa Best of album säljer mycket bra och låtarna spelas ganska mycket på Spotify vilket vi är stolta över. Det är viktigt att veta att alla artister har ett unikt artistnr och likaså varje album (albumnr). Därtill är det viktigt att veta att det alltid är postnummer som bestämmer ort och inget annat. Avslutningsvis är det som så att varje skrivbolag kan unik identifieras med ett orgnr. Det är nog allt tror jag, lycka till!
albumnr Titel Utgivningsår OrgNr Namn artistnr Namn Utdelningsadress Ort PostNr 1 Två Artister och 2015 1 Bra och moderna 1 Bengt Normalform Lingonstigen 3 Karlstad 68291 en gitarr plattor 1 Två Artister och 2015 1 Bra och moderna 2 Anders Tabell Banangränd 5 Kil 66593 en gitarr plattor 2 Fias bästa 2016 2 Inte så bra och 3 Fia Attribut Melonvägen 7 Grums 66491 moderna plattor 3 Fia och Stina 2014 2 Inte så bra och 3 Fia Attribut Melonvägen 7 Grums 66491 framför bra låtar moderna plattor 3 Fia och Stina framför bra låtar 2014 2 Inte så bra och moderna plattor 4 Stina Modell Fikonvägen 9 Deje 66992 Fråga 7. SQL (10 poäng) I skidbyn Lavinen finns ett antal fjällstugor att hyra. Nedanstående tabeller är från den databas som används för att lagra kunder, stugor samt när stugorna hyrts ut. Tabellen Kund har primärnyckel KundNr, tabellen Fjällstuga har primärnyckel Fastighetsbeteckning och den tredje tabellen KundHyrStuga har en sammansatt primärnyckel med attributen KundNr, Fastighetsbeteckning och HyraFrån. I tabellen KundHyrStuga finns datum som ett attribut. Dessa attribut kan tolkas som att de antingen har datatypen Date eller datatypen Integer. Följande frågor ska besvaras och svaren ska se ut exakt så som i tabellerna som visas: a) Vilka kunder (för-, och efternamn) har tänkt fira julhelgen 2016 (med ankomst senast den 20 dec och avresa senast den 28 december) i en av fjällstugorna? (2p)
b) Hur många stugor är mindre än 50 kvm och har två eller fler bäddar? (2p) c) Vilken är den största stuga som finns på vardera gatan? (2p) d) Hur många gånger har respektive kund bott på Toppstugevägen? Svara med antal, kundnr samt för-och efternamn. Varje namn ska bara förekomma en gång. (4p)
Tabell 1 Fjällstuga Tabell 2 Kund
Tabell 3 KundHyrStuga
Fråga 8. Konkurrenssituationer vid transaktionshantering (5 poäng) Att transaktioner ska hållas isolerade från varandra även om flera transaktioner utförs samtidigt. Transaktionerna ska aldrig kunna se varandras halvfärdiga ändringar. I nedanstående bild har detta trots allt skett. Din uppgift är nu att med hjälp av skrivlås (exclusive lock) och läslås (shared lock) lösa dessa trassliga transaktioner så att båda kan genomföras. Dock får inte deadlock inträffa. a) Förklara vad dessa två lås samt deadlock betyder. (2p) b) Visa och förklara din lösning på problemen i bilden noga. (3p) Summan (summa) på kontot är vid T0=100 Transaktion A Tid Transaktion B Transaktionen påbörjas Läs(summa) summa=summa+100 T1 T2 T3 Skriv(summa) T4 Transaktionen påbörjas : : T5 Läs(summa) ROLLBACK T6 summa=summa 10 T7 T8 Skriv(summa) COMMIT Fråga 9. ACID-Transaktioner (2 poäng) A i ACID-transaktioner står för Atomicitet och D för Durability eller varaktighet. En databas som har kraschat måste kunna återställas och behöver databasen garantera att både A och D har uppfyllts. Vad innebär då A och D? förklara så noggrant du kan. 8