Fakulteten för ekonomi, kommunikation och IT
Datavetenskap
TENTAMEN I TILLÄMPAD SYSTEMKONSTRUKTION, CIT B01
DELTENTAMEN I DATABASTEKNIK
Måndag 06-04-24 kl. 08.15 – 13.15
Hjälpmedel: Inga
SKRIV TYDLIGT – LÄS FRÅGORNA NOGGRANT – ANVÄND FIGURER
Lycka till !
Anställda
Avdnr |
Avdnamn |
Avdbudget |
Anstnr |
Namn |
Lön (kr) |
1 |
Försäljning |
10 miljoner |
A1 |
Andersson |
30000 |
1 |
Försäljning |
10 miljoner |
A2 |
Berglund |
25000 |
1 |
Försäljning |
10 miljoner |
A3 |
Carlsson |
35000 |
1 |
Försäljning |
10 miljoner |
A4 |
Didriksson |
40000 |
2 |
Tillverkning |
50 miljoner |
A5 |
Eklund |
20000 |
2 |
Tillverkning |
50 miljoner |
A6 |
Fransson |
20000 |
3 |
Personal |
5 miljoner |
A7 |
Granlund |
32000 |
4 |
Forskning |
20 miljoner |
A8 |
Hansson |
45000 |
4 |
Forskning |
20 miljoner |
A9 |
Isaksson |
50000 |
Bilden ovan visar en relation i över anställda i ett företag och vilka avdelningar de arbetar på. Beskriv vilka olika problem som kan uppstå när man vill lägga till, ta bort och uppdatera tupler i denna relation. Anta att primärnyckeln är (Avdnr, Anstnr) (2p).
Rita ett diagram över de funktionella beroendena i relationen. Vilken normalform är relationen i och varför? (3p).
En relation i en lägre normalform kan alltid normaliseras så att man får en mängd relationer i 3NF. I denna process är det viktigt att ingen information försvinner, dvs att processen är reversibel. Hur kan vi med hjälp av funktionella beroenden visa att ingen information försvinner vid vår normalisering ? (2p)
Uppgift 2 Relationsdatabaser (7 poäng)
Vad finns beskrivet i det konceptuella schemat i en databas? (2p)
Relationer har fyra viktiga egenskaper. Vilka är de? (2p)
Vad är skillnaden mellan en vy och en basrelation? (1p).
Beskriv vad operationen Union gör och vad som krävs för att man ska kunna utföra operationen på två relationer. (2p)
Uppgift 3 Telefonnummerdatabas (10 poäng)
Ett företag har beslutat sig för att börja konkurrera med eniro.se och skapa en telefonnummerdatabas som skall innehålla information om privatpersoners och företags olika fasta telefonnummer, mobila telefonnummer och e-postadresser. Denna databas skall sedan kunna accessas från Internet. Till att börja med är det tänkt att följande information skall finnas med i databasen:
ID-nummer (unikt)
Förnamn, efternamn, adress och yrke
E-postadress (en eller flera)
Telefonnummer (ett eller flera)
Annan kontakt (t ex ICQ eller liknande). Högst en per person
Själva adressen
Kommentar ( t ex hemmet, kontoret eller sommarstugan)
Riktnummer
Abonnentnummer (det ”egentliga” numret)
Kommentar (t ex hemmet, sommarstugan, mobil, eller fax)
Ett telefonnummer kan innehas av flera privatpersoner (t ex två makar)
Själva numret
Orten som riktnumret går till
ID-nummer (unikt)
Företagets namn och adress
Annons (sparas som en bild i något format i databasen)
Bransch (en eller flera).
E-postadress (en eller flera)
Telefonnummer (ett eller flera)
(fortsättning på nästa sida)
Själva adressen
Kommentar ( t ex inköpschef, supportavdelning)
Riktnummer
Abonnentnummer (det ”egentliga” numret)
Kommentar (t ex inköpschef, supportavdelning eller fax)
Ett telefonnummer kan bara innehas av ett företag
För varje bransch
Bransch-kod
Branschrubrik. (Branschrubriker är de rubriker som man hittar i gula sidorna. Många företag kan finnas under samma branschrubrik, men ett företag kan också finnas under flera branschrubriker. T ex så kan en pizzeria stå under både ”restauranger” och ”pizzerior”.
Gör en modell av databasen i form av ett E/R-diagram där all ovanstående information finns med. Tycker du att något i informationen är oklart, så gör egna antaganden och ange dem i svaret (5p).
Ge en lista på de relationer du skulle skapa för databasen, tillsammans med deras attribut. Bestäm alla primärnycklar, kandidatnycklar och främmandenycklar (5p).
Relationsmodellen innehåller två viktiga generella integritetsregler.Vilka? Förklara vad dessa regler innebär och beskriv vad som kan hända om reglerna inte efterföljs. (3p)
Vad menas med databas-specifika (semantiska) integritetsregler? Ge exempel på tre sådana regler (i text) som skulle behöva definieras för databasen i uppgift 3 (3p).
Uppgift 5: Indexering (5 poäng)
Hur går indexering till rent generellt? Förklara kortfattat. (1 p)
Varför används index? Förklara kortfattat. (1 p)
Vad är skillnaden mellan ett dense och ett non dense index? (1.5 p)
Är ett primärindex (primary index) dense eller non dense? Motivera ditt svar (1.5 p)
Uppgift 6: Concurrency/Samtidighet (6 poäng)
T1 |
T2 |
read_item(X);
write_item(X);
Y:=Y+N; write_item(Y);
|
read_item(X);
write_item(X); |
När två transaktioner exekverar samtidigt är det viktigt att de inte påverkar varandra.
Två operationer i ett schema sägs vara i konflikt om tre villkor är uppfyllda. Vilka är dessa villkor? (1.5 p)
Vad menas med att ett schema är konfliktserialiserbart? (1.5p)
Rita upp en precedensgraf för ovanstående schema. Visa alla steg du tar på vägen och förklara varför du tar dem. Är schemat konfliktserialiserbart? Motivera ditt svar. (3p)
Uppgift 7: Recovery/Återhämtning (6 poäng)
Redogör för återhämtningsstrategin omedelbar uppdatering (immediate update). (3p)
Vad innebär cascading rollbacks? Ge ett exempel (1 p)
UNDO och REDO är två viktiga operationer vid återhämtning och ofta delar man in algoritmer med avseende på just dessa operatoner. Förklara vad en NO-UNDO/REDO-algoritm innebär och ge ett exempel på en återhämtningsstrategi som använder en sådan algoritm. (2 p)
Uppgift 8: Säkerhet (3 poäng)
En av metoderna för accesskontroll i databassystem är discretionary access control. Beskriv hur denna metod fungerar, ge exempel på en fördel och en nackdel med metoden, och ge ett exempel på hur det kan se ut då man delar ut rättigheter till en användare. (3 p).
Tags: datavetenskap tentamen, karlstads, ekonomi, universitet, kommunikation, datavetenskap, fakulteten