Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

Relevanta dokument
Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Exempel-Tentamen III

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Lösningsförslag till Tentamen,

Tentamen plus lösningsförslag

Relationsmodellen och syntetisk databasdesign

Lösningsförslag Tentamen, 25 april 03

Informationssystem och databasteknik

Karlstads Universitet, Datavetenskap 1

Logisk databasdesign

Konceptuella datamodeller

NORMALISERING. Mahmud Al Hakim

Tentamen för DD1370 Databasteknik och informationssystem

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

Tentamen i Databasteknik

Relationsdatabasdesign

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Tentamen för DD1370 Databasteknik och informationssystem

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

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen för DD1370 Databasteknik och informationssystem

IT i organisationer och databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna.

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Informationssystem och Databasteknik

Analytisk relationsdatabasdesign

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

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

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Tentamen för DD1370 Databasteknik och informationssystem

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

Tentamen i Databasteknik

Lösningsförslag till Exempel tentamen

Tentamen DATABASTEKNIK - 1DL116

IT i organisationer och databasteknik

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

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Databaser. Vad du ska lära dig: Ordlista

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

Grunderna för relationsmodellen!

Databasdesign. E-R-modellen

Informationssystem och Databasteknik

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

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

Karlstads Universitet, Datavetenskap 1

Föreläsning 4 Dagens föreläsning går igenom

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

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databaser Design och programmering

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

Lösningar till tentamen i EDAF75

Tentamen för DD1370 Databasteknik och informationssystem

Föreläsning 5: Relationsmodellen

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Svar till tentamen DATABASTEKNIK - 1DL poäng

Design och underhåll av databaser

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Databaser och Datamodellering Foreläsning IV

Tentamen i Databasteknik

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Laborationer - databaser, EDAA20 Programmering och databaser

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Lite om databasdesign och modellering

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Föreläsning 6: Normalisering & funktionella beroenden

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

Inga hjälpmedel är tillåtna

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Frågespråk mot relationsmodellen

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

Lösningsförslag till tentamen för DD1370 Databasteknik och informationssystem

Transkript:

Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl. 10-14 Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars kan tentamen inte rättas OM du gör en eller flera uppgifter som FX-uppgift så vänligen ange detta! Lycka till!

8 juni 2013 Tenta DB:DSK/FK Sidan 2 av 10 Uppgift 1 (svarar mot lärandemål 1 avseende databasteknik och informationsadministration) Uppgift 1 består av 10 flervalsfrågor där rätt alternativ ska väljas (bara ett är rätt). Välj ett alternativ för var och en av flervalsfrågorna nedan. Rätt lösningsrad kommer efter sista frågan! 1) Vilket av följande påståeenden om vyer är sant? a) En vy kan aldrig uppdateras. b) En vy kan inte användas för att förenkla ett SQL-uttryck eftersom vyns resultat inte lagras i databasen. c) En vy kan användas som en mekanism för att ge olika användare tillgång till olika delar av databasen utan att känna till övriga delar. 2) Vilket av följande påståenden är sant om entitetsintegritet? a) En sammansatt primärnyckels ingående kolumner måste alla var för sig vara dubblettfria. b) Om primärnyckeln består av flera kolumner får högst en av de kolumnerna vara NULL. c) Alla kandidatnycklar i en tabell kan väljas till att bli primärnyckeln i den tabellen. 3) Unionskompatibilitet krävs för de relationsalgebraiska operationerna: a) snitt och division b) union och difference c) theta-join och natural join 4) ON DELETE RESTRICT är ett exempl på en främmande nyckel-regel, vad innebär den? a) Man får inte ta bort en rad så länge primärnyckel-kolumnen i denna rad motsvaras av främmande nyckel-värden i andra tabeller. b) Man får inte ta bort en rad så länge värdet på främmande nyckel-kolumnen i denna rad svarar mot en primärnyckel-kolumn i en annan tabell. c) Man får inte ta bort vare sig rader som innehåller en primärnyckel-kolumn om denna kolumn motsvaras av främmande nyckel-kolumner i en annan tabell eller rader som innehåller en främmande nyckel-kolumn mot en primärnyckel i en annan tabell. 5) Tabellen RIDNING nedan bryter mot en typ av regel, vilken? a) Referential integrity. b) Entity integrity c) 3NF. 6) En relations/tabells kardinalitet är: a) antalet attribut/kolumner i relationen/tabellen. b) högsta värdet som finns i primärnyckel-kolumen. c) antalet rader i relationen/tabellen 7) Vilket av följande är inte sant vad gäller nycklar? a) En kandidatnyckel som inte väljs till primärnyckel blir alternativnyckel.

8 juni 2013 Tenta DB:DSK/FK Sidan 3 av 10 b) Främmande nyckel-kolumner kan ingå i en primärnyckel. c) En supernyckel kan alltid bli primärnyckel. 8) Vad av följande gäller för 2PL (Two-Phase Locking)? a) En transaktion kan endast begära ett nytt lås om den inte redan har släppt ett annat lås. b) En transaktion kan få ett nytt lås trots att den redan släppt ett lås, om den körs mot endast en tabell. c) En transaktion kan begära ett nytt lås om den först släpper ett lås den fått tidigare. 9) Vilket av följande är sant vad gäller referensintegritet? a) En främmande nyckel får aldrig vara NULL. b) En främmande nyckel får aldrig innehålla dubbletter. c) En främmande nyckel som inte tillåts vara NULL, måste matcha ett exakt värde i primärnyckeln i den tabell den främmande nyckeln refererar till. 10) Varför använder databashanteringssystem sig av lås med avseende på resurser (tabeller, rader, kolumner etc.)? a) För att minimera att data, som accessas (skrives, läses) av olika användare samtidigt, förändras så att de samtidiga användarna ser olika information om samma resurs. b) För att få skrivningar och läsningar av informationen i databasen att ske så effektivt som möjligt. c) För att omöjliggöra att data, som accessas (skrives, läses) av olika användare samtidigt, förändras på ett sådant sätt att de samtidiga användarna ser olika information om samma resurs. Rätt lösningsrad: c c b a a c c a c c

8 juni 2013 Tenta DB:DSK/FK Sidan 4 av 10 Uppgift 2(svarar mot lärandemål 2, konceptuell modellering och databasmodellering) Konstruera ett UML klass-schema som ger möjlighet att representera samtliga utsagor nedan. Ange avbildningsregler för samtliga attribut och för samtliga roller i associationer, partiella attribut (attribut med min-värde = 0) ska undvikas: a) Konstruera ett konceptuellt schema, t.ex. i form av ett UML klassdiagram, för ett administrativt system för bokning och försäljning av biobiljetter, vars informationskrav framgår nedan. Avbildningsregler (cardinalities) skall anges för samtliga associationer. Anna Larsson bokade tre biljetter på rad 5, stol 11 och 12 och rad 10 stol 77 på Astoria på Kungsgatan 21 mars 1965, kl. 15. Föreställningen börjar 22 mars 1965 kl. 18. Anna Larsson bokade även en biljett på Rival, Biblioteksgatan, rad 10, stol 22, 21 juni 1999. Henrik Andersson bokade 5 ospecificerade biljetter (= han är garanterad 5 platser men vilka han får bestäms när han hämtar ut dem) på Astoria Kungsgatan 22 mars 1965, kl. 12. Föreställningen börjar 22 mars 1965 kl. 18. Anna hämtade aldrig ut de bokade biljetterna på Astoria och dessa biljetter såldes istället (kl. 17, 22 mars 1965) till Henrik Larsson som dessutom köpte två ytterligare biljetter på rad 8, stol 45 och 46 till den föreställningen (22 mars 1965 kl. 18). Astoria Kungsgatan tar alltid 75 kr för sina kvällsbiljetter (föreställningar som börjar kl. 18 och senare) och 50 kr för matiné-biljetter (föreställningar innan kl. 18). Rival på Biblioteksgatan tar 100 kr för sina kvällsbiljetter och 50 för matinébiljetterna. Lösningsförslag: BILJETT-PRO DUKT 1..* hör_till 1..* 1 FÖRESTÄLL NING Namn : 1..1 Datum : 1..1 Tidpunkt : 1..1 1..* BILJETTFÖRSÄ gäller LJNING 1 0..* Tidpunkt : 1..1 Datum : 1..1 avser KUND Namn 1..1 1..* 1 Adress 1..1 Telefon 1..1 1 BIOGRAF Gata 1..1 BILJETTTYP Pris : 1..1 Typ : 1..1 av_typ 1 0..* BILJETT Rad : 1..1 Stol : 1..1 0..* BILJETT_BO KNING avser 1 0 UTHÄMTNING Summa : 1..1

8 juni 2013 Tenta DB:DSK/FK Sidan 5 av 10 Här kan man tänka sig många olika lösningar. En svårighet var att man antingen kan köpa biljetter till en viss plats (stol och rad) eller också ospecificerade biljetter, en lösning är att ha en super-klass BILJETTPRODUKT för de två typerna av biljetter. Då kan man boka bägge typerna av produkter (antingen bara biljettypen utan rad eller plats angiven eller också en specifik biljett med plats etc.) visas genom en association mellan BILJETTBOKNING och BILJETTPRODUKT. Uppgift 3(svarar mot lärandemål 4, analytisk db-design) a) Konstruera en tabell som inte är i 1NF, motivera ditt svar! Visa även hur tabellen kan överföras till 1NF! Lösningsförslag: Vilken tabell som helst som har icke-atomära värden i sina kolumner. Tex OST Ostnamn Osttyp Pris Svecia Hårdost 60.78 Herrgård {Hårdost, Mjukost} {50.00, 90.00} Brie Vitmögelost 140.00 Här har alltså den andra raden en mängd värden för Osttyp och Pris (givet att datatypen för Ostnamn och Osttyp är en sträng och datatypen för Pris är flyttal). Ett sätt att överföra tabellen till 1NF är att distribuera ut alla icke-atomära värden till egna rader. Fler sätt finns. OST Ostnamn Osttyp Pris Svecia Hårdost 60.78 Herrgård Hårdost 50.00 Herrgård Mjukost 90.00 Brie Vitmögelost 140.00 b) Betrakta följande tabell och funktionella beroenden: PERSON(Pnr, Namn, Vikt, Viktklass, Gata, Postnummer, Favoritmat) Pnr Namn, Vikt, Viktklass, Gata, Postnummer, Favoritmat Vikt Viktklass Gata Postnummer Tabellen PERSON är i minst 1NF. Bestäm en primärnyckel för tabell PERSON. Motivera ditt val. Överför tabellen till 3NF (motivera varför den inte är i 3NF i så fall och hur den kan bli det) eller motivera varför den redan är i 3NF.

8 juni 2013 Tenta DB:DSK/FK Sidan 6 av 10 Lösningsförslag: Det finns ett funktionellt beroende som visar att kolumnen Pnr bestämmer alla övriga kolumner funktionellt därför kan Pnr väljas till primärnyckel. Tabellen var i minst 1NF (givet i texten), den är även i 2NF med avseende på den icke sammansatta primärnyckeln (med en icke sammansatt primärnyckel kan inga övriga ickenyckelattribut vara partiellt funktionellt bestämda av primärncykeln). Tabellen är dock inte i 3NF pga att det finns två transitiva beroenden: ett mellan Postnummer och primärncykeln och ett mellan Viktklass och primärnyckeln. Pnr Gata (dekomponeringsregeln från Armstrongs axiom) och Gata Postnummer (givet i texten) således gäller (transitiva regeln från Armstrongs axiom) Pnr Postnummer transitivt. Pss Pnr Vikt (dekomponeringsregeln från Armstrongs axiom) och Vikt Viktklass (givet i texten) således gäller (transitiva regeln från Armstrongs axiom) Pnr Viktklass transitivt. Vi bryter ut de kolumner som hade ett transitivt funktionellt beroende till primärnyckeln plus deras determinanter till två nya tabeller: VIKT(Vikt, Viktklass) och GATA(Gata, Postnummer) Kvar i den gamla tabellen blir PERSON(Pnr, Vikt, Gata, Farvoritmat) Två nya främmande nycklar har uppstått: PERSON.Vikt är FN mot VIKT.Vikt och PERSON.Gata är FN mot GATA.Gata. Uppgift 4(svarar mot lärandemål 3, syntetisk db-design) Betrakta följande konceptuella schema:

8 juni 2013 Tenta DB:DSK/FK Sidan 7 av 10 SUBSTANS Namn : String 1..1 1 0..* INNEHÅLL Procent : Float 1..1 1..* GRUNDÄMNE Upptäckare : String 1..1 Kemisk beteckning : String 1..1 Atomnummmer : Integer 1..1 Atomvikt : Float 1..1 1 MOLEKYL Bindningstyp: 1..* SUBSTANS identifieras av sitt namn och INNEHÅLL av sina associationer mot SUBSTANS respektive MOLEKYL. Övriga identifierare framgår av schemat. Översätt det konceptuella schemat till ett databas-schema. Du kan använda följande struktur för definition av databas (dvs CREATE TABLE-satser ska inte skrivas): TABELLNAMN1(Primärnyckelkolumn1, Primärnyckelkolumn2, annankolumn1, annankolumn2) TABELLNAMN2(Primärnyckelkolumn1, annankolumn1, annankolumn2), där TABELLNAMN2.(annankolumn1,annankolumn2) är FN mot TABELL1.(Primärnyckelkolumn1,Primärnyckelkolumn2). Där sista raden betyder att tabellen TABELLNAMN2 har en främmande nyckel mot tabellen TABELLNAMN1. Lösningsförslag: SUBSTANS(Namn) MOLEKYL(Namn) där MOLEKYL.Namn är FN mot SUBSTANS.Namn BINDNING(Mnamn, Bindningstyp) där BINDNING.Mnamn är FN mot MOLEKYL.Namn GRUNDÄMNE(Namn, Upptäckare, Kemisk_beteckning, Atomnummer, Atomvikt), där GRUNDÄMNE.Namn är FN mot SUBSTANS.Namn INNEHÅLL(Snamn, Mnamn, Procent), där INNEHÅLL.Snamn är FN mot SUBSTANS.Namn och INNEHÅLL.Mnamn är FN mot MOLEKYL.Namn

8 juni 2013 Tenta DB:DSK/FK Sidan 8 av 10 Uppgift 5 (svarar mot lärandemål 5, frågespråk mot relationsmodellen) Databasschemat nedan modellerar det faktum att hästar har färger och mankhöjder, personer har addresser och personer rider på olika hästar. Följande främmande nyckel-regler gäller: RIDNING.HästID << HÄST.HästID RIDNING.Person << PERSON.Namn (Primärnycklarna i tabellerna ovan är understrukna). a) Översätt följande till SQL och relationsalgebra: Vilka personer har ridit hästen Man O War, ange deras namn och adress? Lösningsförslag SQL: SELECT Namn, Adress FROM PERSON, RIDNING, HÄST WHERE Namn=Person AND HÄST.HästId = RIDNING.HäsId AND Hästnamn = Man O War Lösningsförslag relationsalgebra: TEMP (RIDNING X Person=Namn PERSON) Π Namn, Adress (σ Hästnamn= Man O War (HÄST X TEMP))

8 juni 2013 Tenta DB:DSK/FK Sidan 9 av 10 /* här kan man använda natural-join eftersom kolumnen HästId finns i både TEMP och HÄST */ b) Översätt följande till SQL och relationsalgebra: Vilka personer har ridit alla hästar, det räcker att ange deras namn? Lösningsförslag SQL: SELECT Namn FROM PERSON WHERE NOT EXISTS (SELECT * FROM HÄST WHERE HästId NOT IN (SELECT HästId FROM RIDNING WHERE Person=Namn)) Lösningsförslag relationsalgebra: Nämnare π HästId (HÄST) Täljare π Person, HästId (RIDNING) Svar Täljare DIVISION Nämnare c) Vad blir resultatet (rita tabell med rader) om följande SQL-sats exekveras (basera svaret på exempel-relationerna ovan)? SELECT Person FROM PERSON, RIDNING WHERE Person=Namn AND Adress = Byvägen 3 Lösningsförslag SQL: Person Lisa Lisa Lisa d) Vad blir resultatet (rita tabell med rader) om följande relationsalgebraiska uttryck exekveras (basera svaret på exempel-relationerna ovan)? π Person (σ Adress= Byvägen 3 (RIDNING X Person=Namn PERSON)) Lösningsförslag relationsalgebra:

8 juni 2013 Tenta DB:DSK/FK Sidan 10 av 10 Person Lisa