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

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

Exempel-Tentamen III

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

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

Tentamen plus lösningsförslag

Lösningsförslag till Tentamen,

Karlstads Universitet, Datavetenskap 1

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

Relationsdatabasdesign

Relationsmodellen och syntetisk databasdesign

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

NORMALISERING. Mahmud Al Hakim

Konceptuella datamodeller

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

Lösningsförslag till Exempel tentamen

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

Grunderna för relationsmodellen!

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

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

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

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

Tentamen i Databasteknik

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

Lösningsförslag Tentamen, 25 april 03

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

Logisk databasdesign

Informationssystem och databasteknik

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

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Databasdesign. E-R-modellen

Databaser Design och programmering

Informationssystem och Databasteknik

Databaser och Datamodellering Foreläsning IV

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

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

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

Design och underhåll av databaser

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

Tentamen i Databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

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

Föreläsning 5: Relationsmodellen

Analytisk relationsdatabasdesign

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

Tentamen DATABASTEKNIK - 1DL116

Databaser. Vad du ska lära dig: Ordlista

Karlstads Universitet, Datavetenskap 1

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:

IT i organisationer och databasteknik

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

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

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

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

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

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

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

IT i organisationer och databasteknik

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

Tentamen för DD1370 Databasteknik och informationssystem

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

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

Lösningsförslag, tentamen i Databaser

Lösningar till tentamen i EDAF75

Databasspråket SQL - online.

Föreläsning 2: Översikt över ett databassystem

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

Lite om databasdesign och modellering

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Tentamen i Databasteknik

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

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

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

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

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Databasspråket SQL - online.

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

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

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

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Informationssystem och Databasteknik

Starta MySQL Query Browser

Transkript:

Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 203 kl. 9-3 Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av pappret 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 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 2 av 8 Uppgift (svarar mot lärandemål avseende databasteknik och informationsadministration) Rätt lösningsrad kommer efter sista frågan! Uppgift består av 0 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. ) Vilket av följande påståeenden om vyer är sant? a) En vy kan uppdateras om koden som definierar vyn baserar sig på högst två bastabeller. b) En vy kan uppdateras koden som definierar vyn inte innehåller aggregatfunktioner. c) En vy kan uppdateras om koden som definierar vyn inte innehåller aggregatfunktioner och bara baserar sig på en bastabell. 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) Vilken operation är unär? a. Join b. Aggregering c. Differens d. Kartesisk produkt 4) ON DELETE RESTRICT är ett exempel 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. 8.Vilket av följande är falskt? a) Efter en DELETE-sats kan tabellen ha färre rader än förr. b) Efter en DELETE-sats kan tabellen vara oförändrad. c) Efter en UPDATE-sats kan tabellen vara oförändrad. d) Efter en UPDATE-sats kan tabellen ha färre rader än förr. e) Efter en DELETE-sats kan tabellen vara tom. f) Efter en UPDATE-sats kan samtliga rader i en tabell vara förändrade. 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. 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.

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 3 av 8 9) Vilket av följande måste alltid finnas i en relationstabell? a) En surrogatnyckel. b) En främmande nyckel. c) En primärnyckel d) en alternativnyckel 0) 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 D c c a c c

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 4 av 8 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: Nu skall ni få försöka modellera en tävlingsverksamhet, nämligen JOLLESEGLING. Jag kommer medvetet att förenkla en del, men i det stora hela stämmer det rätt bra. Tänk er att modellen skall användas för att representera information om alla tävlingar inom ett distrikt. Alla tävlande kommer från klubbar i detta distrikt. De tävlande är antingen seniorer eller juniorer. En tävling består av flera seglingar som varje tävlande deltar i och varje segling gäller en viss tävlingssträcka. T ex består tävlingen Gotland Runt av tre sträckor: Visby- Sudret, Sudret-Fårö och den fruktade sträckan Fårö-runt. Som vinnare in en tävling koras den som har lägst summa när man adderat alla placeringar på de olika seglingarna för de olika sträckorna och räknat bort den sämsta placeringen. Under en säsong kan en seglare delta i flera tävlingar. För klubbarna och individerna behövs sedvanliga adress-/personuppgifter. För tävlingarna behövs information om datum och arrangerande klubb. (Förutsätt att det är en enmansjolle typ E-jolle och att segelnr och båtnummer är utan betydelse) Lösningsförslag: Klubb namn.. adress.. tillhör Medlem namn.. födelsedatum.. adress.. telefon.. arrangerar Tävling datum.. namn.. gäller ingår i tävlar med Tävlingsdeltagande Slutplacering :.. har..* Säsong från.. till.. TÄVLINGSSTRÄCKA Namn :.. gäller består av Segling placering.. Uppgift 3(svarar mot lärandemål 4, analytisk db-design) a) Konstruera en tabell som inte är i NF, motivera ditt svar! Visa även hur tabellen kan överföras till NF! Vilken tabell som helst som har icke-atomära värden i sina kolumner. Tex OST Ostnamn Osttyp Pris

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 5 av 8 Svecia Hårdost 60.78 Herrgård {Hårdost, Mjukost} {50.00, 90.00} Brie Vitmögelost 40.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 NF ä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 40.00 b) Betrakta följande tabell: DIAMANT(AffärsId, Diamanttyp, Viktklass, Pris), där kolumnerna AffärsId och Diamanttyp tillsammans utgör primärnyckel.. Följande funktionella beroenden råder : AffärsId, Diamanttyp Viktklass, Pris Diamanttyp Pris Vilken normalform är tabellen DIAMANT i? Motivera ditt svar! Ö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. Lösningsförslag: DIAMANT är i NF och inte mer pga att den inte är i 2NF pga att det finns ett icke nyckel attribut som är partiellt beroende av nyckeln. För att överföra tabellen till 3NF överförs den först till 2NF: DIAMANT(Affärsid, Diamanttyp, Viktklass) DIAMANTPRIS(Diamanttyp, Pris), DIAMANT.Diamanttyp FN mot DIAMANTPRIS.Diamanttyp Båda dessa tabeller är nu i 2NF eftersom inga partiella eller transitiva beroenden existerar mellan icke nyckelattribut och primärnyckeln. Uppgift 4(svarar mot lärandemål 3, syntetisk db-design)

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 6 av 8 Betrakta följande konceptuella schema: ANIMAL Name :.. unique DOG Taxation number :.. CAT Tail-length :..* ANIMAL identifieras av sitt Name, övriga identifierare framgår av schemat. Surrogatnycklar får inte införas. Ö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): TABELLNAMN(Primärnyckelkolumn, Primärnyckelkolumn2, annankolumn, annankolumn2) TABELLNAMN2(Primärnyckelkolumn, annankolumn, annankolumn2), där TABELLNAMN2.(annankolumn,annankolumn2) är FN mot TABELL.(Primärnyckelkolumn,Primärnyckelkolumn2). Där sista raden betyder att tabellen TABELLNAMN2 har en främmande nyckel mot tabellen TABELLNAMN. Lösningsförslag: ANIMAL(Name) DOG(Name, Taxation number), DOG.Name FN mot ANIMAL.Name CAT(Name), CAT.Name FN mot ANIMAL.Name CAT-TAILS(Name, Length), CAT_TAILS.Name FN mot CAT.Name DOGDOG(DN, DN2), DOGDOG.DN FN mot DOG.Name, DOGDOG.DN2 FN mot DOG.Name 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

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 7 av 8 (Primärnycklarna i tabellerna ovan är understrukna). a) Översätt följande till SQL och relationsalgebra: Vilka hästar har ridits av personer på Byvägen 3? Ange deras namn och mankhöjd? OBS att lösningen måste vara generell och inte basera sig på hur innehållet i databasen ser ut just nu! Lösningsförslag SQL: SELECT HästNamn, Mankhöjd FROM PERSON, RIDNING, HÄST WHERE Namn=Person AND HÄST.HästId = RIDNING.HäsId AND Adress = Byvägen 3 Lösningsförslag relationsalgebra: TEMP (RIDNING X Person=Namn (σ Adress= Byvägen 3 PERSON)) Π Hästnamn, Mankhöjd (HÄST X TEMP) /* 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 hästar har ridits av alla personer, det räcker att ange hästens HästId? OBS att lösningen måste vara generell och inte basera sig på hur innehållet i databasen ser ut just nu! Lösningsförslag SQL:

8 augusti 203 Tenta DB:DSK/FK/DVK/SP/EIT/ATD mfl. kurstillfällen Sidan 8 av 8 SELECT HästId FROM HÄST H WHERE NOT EXISTS (SELECT * FROM PERSON WHERE Namn NOT IN (SELECT Person FROM RIDNING R WHERE R.HästId=H.HästId)) Lösningsförslag relationsalgebra: Nämnare (Person) π Namn (PERSON) Täljare π HästId, Person (RIDNING) Svar Täljare DIVISION Nämnare c) Vad blir resultatet (rita tabell med rader) om följande SQL-sats exekveras? (HÄR ska svaret basera sig på hur databasen ser ut just nu, dvs på exempelrelationerna ovan) SELECT Person FROM PERSON, RIDNING WHERE Person=Namn AND Adress = Solgatan 4 Lösningsförslag SQL: Person John John d) Vad blir resultatet (rita tabell med rader) om följande relationsalgebraiska uttryck exekveras (basera svaret på exempel-relationerna ovan)? (HÄR ska svaret basera sig på hur databasen ser ut just nu, dvs på exempel-relationerna ovan) π Person (σ Adress= Solgatan 4 (RIDNING X Person=Namn PERSON)) Lösningsförslag relationsalgebra: Person John