Eksamen 2011 Flashcards

1
Q

Hvilke typiske feilsituasjoner kan oppstå i et databasesystem og hvilke mekanismer er innført for å håndtere disse?

A

Typiske feilsituasjoner ved et system som er i kontinuerlig drift:
- Strømbrudd
- Disk kræsj
- Applikasjonsfeil (prosesser som stopper, køer som går fulle, etc.)
- Etc.

Mekanismer for å håndtere dette:
- Kommandoer for transaksjonshåndtering (rollback og commit)
- Innføring av loggføring av transaksjoner etter hvert som de blir utført for å kunne
rekonstruere systemet til tilstanden før feilen oppstod
- Recovery. Gjennomoppbygging av transaksjonsloggen (redo, undo)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Beskriv noen typiske problemer som kan oppstå i et databasesystem
som har flere samtidige brukere.

A

Typiske problemer:
- Når flere brukere har aksess til den samme databasen, kan de typisk ødelegge for hverandre dvs. det kan oppstå konflikter.
- Lesing ikke noe problem alle kan lese samtidig.
- Problemer ved skriving til databasen.
—-> Granularitet: finkornethet
——-> OK å skrive til ulike databaser?
——-> Ok å skrive til ulike tabeller?
——-> Ok å skrive til ulike poster?
——-> Ok å skrive til ulike felt?
——-> Bør nevne minst ett av de to typiske problemsituasjoner der man har mange samtidige.
transaksjoner med korte beskrivelser:
—-> Tapt oppdatering: En transaksjon overskriver en annen.
—-> Inkonsistent innhenting/analyse: Henter inn data som er under endring.
—-> Angret oppdatering: En transaksjon jobber på data som ikke er skrevet permanent til databasen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hva er en vranglås? Nevn eksempler på hvordan en vranglås kan
løses opp.

A

To typer lås:
—–> Delt lås ved lesing andre som skal lese kan komme inn
—–> Eksklusiv lås ved skriving, andre transaksjoner får ikke tilgang
- Ved vranglås har man en evig vent situasjon der transaksjon T1 venter på en lås transaksjon T2 har og omvendt. Systemet henger.
- Vis gjerne med eksempel med to transaksjoner som ender i en situasjon som beskrevet
over eller beskriv kort “The dining philosophers”.

Eksempler på hvordan en vranglås kan løses opp:
- Unngå vranglås
—–> Alle låser settes før transaksjon startes
—–> Nummerere alle ressurser og kreve at de innhentes i stigende rekkefølge
—–> Detektere vranglås og fjerne denne
- Kan gjøres ved algoritmer, kan tegne ressursallokeringsgraf og se om løkke
—–> Hvis vranglås, finn offer og ta rollback på denne transaksjonen
- «Strutse-algoritme» – tro at det ikke oppstår, ta ROLLBACK på en transaksjon hvis time-out krever tidsstempling

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hva er serialiserbare forløp?

A

Vil ha serialiserbarhet: Resultat uavhengig av rekkefølge på transaksjonene. Et forløp er en bestemt rekkefølge for hvordan alle deloperasjonene i et sett av samtidige transaksjoner utføres. Et sekvensielt forløp er en rekkefølge der hver enkelt transaksjon
utføres en etter en (dvs. alle deloperasjoner i hver transaksjon før neste påbegynnes). Dette er
ikke effektivt og man ønsker større grad av samtidighet, men opprettholde korrekthet i
utførelsen. Det betyr her som om de enkelte transaksjonene hadde blitt utført sekvensielt. Et serialiserbart forløp har samme effekt som et serialiserbart forløp.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly