Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se)







Tentamen i

Databasteknik II

för D3 m fl

tisdag 26 augusti 2008 kl 08:00 - 12:00

Gäller som tentamen för:
DT3001 Datateknik C, Databasteknik II, provkod 0100
TDD119 Databaser, fortsättningskurs, provkod 0100






Hjälpmedel: Miniräknare.
Poängkrav: Maximal poäng är 32.
För betyget 3 krävs 16 poäng.
Resultat och lösningar: Meddelas via e-post eller på kursens hemsida, http://basen.oru.se/kurser/db2/2007-2008-p3/, senast tisdag 16 september 2008.
Återlämning av tentor: Efter att resultatet meddelats kan tentorna hämtas på institutionen. Man kan också få sin rättade tenta hemskickad.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070-73 47 013.



LYCKA TILL!

Uppgift 1 (6 p)

a) (2p)

Vilka två olika tidsdimensioner brukar man tala om i en temporal databas? Vad betyder de? Förklara med exempel.

b) (2p)

De flesta databashanterare har inget inbyggt stöd för tidsdimensioner, men man kan representera tidsdimensionerna i en vanlig relationsdatabas. Hur? Förklara med exempel.

c) (2p)

Om man representerar tidsdimensionerna i en vanlig relationsdatabas, uppstår en del problem som är svåra att hantera. Vilka? Förklara med exempel.

Uppgift 2 (8 p)

Beskriv fyra olika tekniker för att kommunicera med en relationsdatabas från ett vanligt program. (Vad heter de? Vilka språk och plattformar går de att använda på? Hur lättanvända är de? Vilket stöd av programmeringverktyg finns? Hur flexibla är de?)

Uppgift 3 (6 p)

Försvarets Radioanstalt, FRA, har en hemlig databas, som bland annat innehåller tabellen Avlyssnat. Den innehåller all avlyssnad kommunikation via Internet mellan olika personer i Sverige. Tabellen har kolumnen Id, som är ett unikt heltal, kolumnen Tidpunkt, som är ett datum och klockslag, de två kolumnerna Avsändare och Mottagare, som är två 32-bitars IP-adresser, och kolumnen Innehåll, som är en (högst) 80 tecken lång beskrivning av vad kommunikationen handlade om. Tabellen har en triljon (1018) rader.

Vi vill söka efter en rad med ett visst nummer (Id). Gör rimliga antaganden om blockstorlek mm (och ange dem!), och räkna sen ut hur lång tid det i genomsnitt tar att köra denna fråga, om tabellen är lagrad:

a) (2p) utan något index (eller annan sökväg) på numret

b) (2p) med ett primärindex i form av ett B+-träd på numret

c) (2p) med ett sekundärindex i form av ett B+-träd på numret.

Ange antagandena, och visa hur du räknat.

Uppgift 4 (4 p)

a) (2p)

Vilka är de viktigaste skillnaderna mellan objektorienterade databaser (ibland kallade "första generationens objektorienterade databaser") och objektrelationella databaser (ibland kallade "andra generationens objektorienterade databaser")?

b) (2p)

När man programmerar idag använder man oftast objektorienterad programmering, med klasser och objekt. När man vill lagra sådana data använder man förstås en objektorienterad databas. Eller?

Uppgift 5 (4 p)

a) (2p) Vad innebär optimistisk transaktionshantering, t ex som i Mimer?

b) (2p) För vilka typer av tillämpningar är den lämplig, respektive mindre lämplig?

Uppgift 6 (4 p)

a) (1p) Vad är ett datalager?

b) (1p) Vad använder man datalager till?

c) (2p) Varför har man datalager till det, i stället för att använda vanliga databaser?