Databasteknik för civilingenjörer
måndag 21 augusti 2017
Gäller som tentamen för:
DT504G Databasteknik för civilingenjörer, provkod 0100
Hjälpmedel: | Ordbok för översättning. |
Poängkrav: | Maximal poäng är 35. För godkänt betyg krävs 20 poäng, varav minst fyra poäng på uppgift 1 och minst fyra poäng på uppgift 2. |
Resultat: | Meddelas på kursens hemsida eller via e-post senast måndag 11 september 2017. |
Återlämning av tentor: | Elektroniskt via Studentforum. |
Examinator och jourhavande: | Thomas Padron-McCarthy, telefon 070 - 73 47 013. |
Det man behöver hålla reda på är, mer detaljerat, följande:
ER- och EER-diagram kan ritas på flera olika sätt. Om du använder en annan notation än kursboken, måste du förklara den notation som du använder.
Du behöver inte skriva create table-kommandon i SQL, men du ska ange vilka relationer som finns och vilka attribut varje relation innehåller. Ange också alla kandidatnycklar, vilken av dessa som är primärnyckel, samt vilka referensattribut som finns och vad de refererar till.
Implementationen ska vara bra.
a) (1p) Vad kostar en Big Mac?
b) (1p) Vilka olika pajer (alltså varor som innehåller "paj" i namnet) finns det?
c) (2p) Hur många Big Mac har sålts, sammanlagt?
d) (2p) På vilka restauranger har det sålts äppelpajer? Ge restaurangernas nummer, adress och telefonnummer.
e) (2p) På vilka restauranger har det INTE sålts några äppelpajer? Ge restaurangernas nummer, adress och telefonnummer.
f) (3p) Hur mycket har varje restaurang sålt för? Vi vill ha en listning med restaurangens nummer, adress, och den restaurangens sammanlagda försäljningssumma. Listningen ska sorteras i ordning efter försäljningssumman, så restaurangen som sålt mest kommer först. De restauranger som inte sålt något alls, behöver inte vara med i listan.
g) (2p) Det är förmodligen fel i databasen om det finns två restauranger på samma adress. Finns det några sådana restauranger i databasen, och vad har de i så fall för nummer och adress?
a) (2p) Vi lägger in några testrader i databasen och provkör frågan. Den går tillräckligt snabbt. Då är väl allt bra, och vi behöver inte göra något mer? Förklara hur det är!
b) (2p) Vi vill (oavsett svaret på fråga a) snabba upp körningen av frågan. Vilka index bör man skapa för att just den frågan ska gå snabbt att köra? Motivera valet.
c) (2p) När databasen varit i drift några månader ringer McDonald's och berättar att de har skapat alla index som behövs, och visst går frågan fortare att köra än utan indexen, men den tar ändå alldeles för lång tid. Förklara varför, och berätta vad de kan göra åt saken!
a) (2p) Man kan göra ändringen i ER-diagrammet, genom att skapa under-entitetstyper till entitetstypen Vara. Diagrammet blir då ett så kallat EER-diagram. Visa hur EER-diagrammet kommer att se ut. (Glöm inte kopplingarna till de andra entitetstyperna.)
b) (2p)
Översätt entitetstypen Vara och dess under-entitetstyper till tabeller.
Du behöver inte skriva create table-kommandon i SQL,
men du ska ange vilka relationer som finns och vilka attribut varje
relation innehåller. Ange också vad som är primärnyckel, och
vilka referensattribut som finns och vad de refererar till.
c) (2p) En nackdel med att skapa under-entitetstyper i EER-diagrammet är att databasen blir oflexibel. Det är svårt att lägga till en ny kategori. Visa en alternativ lösning, där det är lättare att lägga till kategorier. Rita upp ett ER- eller EER-diagram, och översätt också till tabeller!