Databasteknik
för D1 m fl
tisdag 10 januari 2017
Gäller som tentamen för:
DT105G Databasteknik, provkod 0100
DT1026 Datateknik A, Databasteknik, provkod 0100
DT1030 Datateknik A, Tillämpad datavetenskap, provkod 0310
Hjälpmedel: | Ordbok för översättning. |
Poängkrav: | Maximal poäng är 47. För godkänt betyg krävs 31 poäng, varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2. För den som följt kursen hösten 2016 ger varje i tid inlämnad inlämningsuppgift en extra poäng. Den som inte gått kursen hösten 2016 får dessa (fem) extrapoäng ändå. |
Resultat: | Meddelas på kursens hemsida eller via e-post senast tisdag 31 januari 2017. |
Återlämning av tentor: | Elektroniskt via Studentforum. |
Examinator och jourhavande: | Thomas Padron-McCarthy, telefon 070 - 73 47 013. |
Det vi ska lagra i databasen är 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. (Tips: Se även uppgift 3 nedan.)
a) (1p) Vilken normalform bryter detta mot?
b) (2p) Vilka praktiska problem innebär det?
a) (1p) Vad heter de avdelningar som har namn som börjar på bokstaven K?
b) (2p) Vilka symtom drabbas man av om man har pest?
c) (2p) Det kommer in en patient som har feber. Vilka sjukdomar kan hon ha? Vi vill alltså veta namnen på de sjukdomar som har feber bland sina symtom.
d) (2p) Vad heter den avdelning där det just nu vårdas flest patienter?
e) (3p) Vad heter de stackars patienter som samtidigt har både pest och kolera?
a) Vilka index bör man skapa för att just SQL-frågorna a-c i uppgift 4 ska gå snabbt att köra?
b) Ge ett exempel på ett index som inte skulle snabba upp någon av frågorna a-c i uppgift 4, och förklara varför det inte förbättrar tiderna!
a) Föreslå en databashanterare som kan vara lämplig att använda. Motivera varför den är lämplig!
b) Föreslå en databashanterare som inte är lämplig. Motivera varför den inte är lämplig!
Påstående | Sant | Falskt |
---|---|---|
Uttrycket null = NULL i ett WHERE-villkor blir falskt. | ||
Många databashanterare skapar automatiskt ett index på primärnyckeln i varje tabell. | ||
Vi söker ofta efter patienter med ett visst namn. Då bör vi skapa ett sammansatt index på (ID, Namn), eftersom ID är primärnyckel i tabellen. | ||
En vy kan användas för att dela upp en komplicerad fråga i flera steg. | ||
Flera SQL-satser som hör ihop, så att antingen ska alla utföras eller också ingen, kan grupperas till en enhet i form av en transaktion. | ||
Isolering mellan transaktioner betyder att varje transaktion har sina egna tabeller, som andra transaktioner inte kan se. | ||
I en trigger kan vi göra mer komplexa kontroller än vad vi kan göra med integritetsvillkor i SQL. | ||
SQL injection innebär att en hacker kan komma åt och förändra en databas genom att skriva in särskilt utformade texter till exempel i ett textfält på en webbsida. | ||
Man kan använda kommandona LOCK och UNLOCK för att gruppera flera SQL-kommandon till en transaktion. | ||
INSERT-kommandot kontrollerar nyckelvillkor, så man inte får dubbletter i primärnyckeln, men det gör inte UPDATE-kommandot, så med UPDATE kan man skapa dubbletter i primärnyckeln. | ||
För att ta bort rättigheter till ett objekt i databasen från en användare använder man kommandot REVOKE. | ||
"Relationerna" i en relationsdatabas är kopplingarna mellan tabeller med främmande nycklar ("foreign keys"). | ||
Ett funktionellt beroende är samma sak som en främmande nyckel. | ||
Boyce-Codds normalform (BCNF) ställer fler krav på hur en tabell får se ut än andra normalformen, så det finns tabeller som uppfyller andra normalformen men inte BCNF. |