Databaskonstruktion
för D1, D3 m fl
onsdag 16 augusti 2006 kl 8:00 - 13:00 i L001
Hjälpmedel: | Inga hjälpmedel. |
Poängkrav: |
Maximal poäng är 40.
För betyget 3 respektive G krävs 20 poäng. |
Resultat: | Meddelas på kursens hemsida senast måndag 28 augusti 2006. |
Visning: |
Måndag 28 augusti 2006 kl 12:00-12:30 i mitt rum (T2220).
Efter visningen kan tentor hämtas på expeditionen. |
Examinator och jourhavande: | Thomas Padron-McCarthy, telefon 070-7347013. |
Felix, som är tre år gammal, vill strukturera upp sin lek, och därför vill han ha en relationsdatabas för att hålla reda på sina leksaker och sina lekkamrater.
Det han behöver hålla reda på är följande:
ER-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å vad som är primärnyckel, och vilka referensattribut som finns och vad de refererar till.
Implementationen ska vara bra.
a) (1p) Vilket nummer har lekkamraten som heter Anton?
b) (1p) Vilka leksaker ska finnas i leksakslådan som står på balkongen? Vi vill veta de leksakernas nummer och namn.
c) (2p) I vilka leksakslådor finns det just nu minst en leksak? Vi vill veta dessa lådors nummer och placering.
d) (2p) Vilka leksaker finns just nu inte i sin rätta låda? Vi vill veta de leksakernas nummer och namn.
e) (3p) Vilken leksakslåda är fullast, dvs innehåller just nu flest leksaker? Vi vill veta den lådans nummer och placering. (Vi förutsätter att det finns leksaker åtminstone i någon låda.)
Definiera gärna vyer om det underlättar, men skapa inte nya tabeller.
b) (1p) Förklara vad som menas med ett index.
Leksak | Namn | Datum | RättLåda | Placering | AktuellLåda | Placering |
---|---|---|---|---|---|---|
1 | Stora blå grävskopan | 2005-12-22 | 2 | På balkongen | 2 | På balkongen |
2 | Lilla gula grävskopan | 2006-03-10 | 1 | I garderoben | 1 | I garderoben |
3 | Röda fotbollen | 2006-04-02 | 3 | I källaren | 4 | I köket |
5 | Trampbilen | 2006-06-29 | 5 | I källaren | 4 | I köket |
Exempelvis visar tabellen att stora blå grävskopan finns i låda nummer 2, som står på balkongen, precis som den ska. Röda fotbollen, som ska vara i låda nummer 3, i källaren, har dock i stället råkat hamna i låda 4, som står i köket.
a) (2p) Vilka nycklar finns i tabellen?
b) (2p) Vilka fullständiga funktionella beroenden finns i tabellen?
c) (2p) Tabellen uppfyller inte kraven för BCNF. Vilken är den högsta normalform (av 1NF, 2NF och 3NF) som tabellen uppfyller? Motivera svaret!
d) (3p) Dela upp tabellen i flera, som uppfyller BCNF. Uppdelningen ska vara bra.
a) ACID-transaktion
b) vänster-ytter-join (på engelska: left outer join)
c) commit
d) rollback (ibland även kallat abort)
e) databashanterare
a)
Fönstret nedan, från Microsoft Access, visar relationerna i en databas. Access arbetar med relationsdatabaser, vilket betyder att det finns kopplingar, så kallade relationer, mellan tabellerna. Relationerna är utritade som streck mellan tabellerna.
b)
Principen bakom en databasbaserad webbplats är att man lägger webbsidorna i en databas. I och med att webbsidorna ligger i en databas, går de snabbare att hämta.
c)
En så kallad lagrad procedur innehåller triggers. När proceduren anropas "utlöses" dessa triggers, det vill säga körs, ungefär som programrader i ett vanligt datorprogram.