Komplett pensumoversikt for avanserte databasesystemer ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
Innhold
Denne studieguiden dekker hele pensum i TDT4150 Avanserte databasesystemer ved NTNU (7,5 stp, masternivå). Emnet bygger videre på TDT4145 og går dypere inn i databasesystemers indre arkitektur, spørringsoptimalisering, parallelle og distribuerte systemer, samt moderne spesialiserte databaser og avanserte spørreoperatorer.
Vurderingsformat: 4-timers skriftlig skoleeksamen, ingen trykte hjelpemidler, enkel kalkulator tillatt (kode D). Settet består fast av seks oppgaver med prosentvis vekting per (del-)oppgave. Oppgavene er overveiende forklarings- og drøftingsoppgaver («Forklar», «Begrunn svaret», «Lag et eksempel som illustrerer …») kombinert med små regne-/utledningsoppgaver og steg-for-steg-utføringer (Rank Join, cracking). Den siste oppgaven er fast viet temaer fra seminarartikler. Du blir bedt om å gjøre rimelige antagelser der oppgaveteksten er ufullstendig — gjør dem eksplisitt.
Emnet tester at du kan:
Pensum er primært basert på Database System Concepts (Silberschatz m.fl.) og Database Management Systems (Ramakrishnan & Gehrke), supplementert med forskningsartikler om kolonneorienterte databaser, top-k-algoritmer og adaptiv indeksering.
Oppbygning av databasesystemer innenfra: bufferhåndtering, lagringsstrukturer og komponentinteraksjon.
Et databasesystem er delt i to hovednivåer: lagringsbehandleren (storage manager) og spørringsbehandleren (query processor). Disse kommuniserer via bufferpulen og katalogen.
Tradisjonelle databaser antar at data bor på roterende disk (HDD). Tilgangstid er summen av seek time + rotational latency + transfer time. For HDD er dette typisk 5–15 ms per tilfeldig blokk, mens sekvensielle leser er langt raskere.
Databaser organiserer data i blokker (typisk 4 KB–64 KB), som er den minste atomære I/O-enheten. Antall blokk-leser/-skriver er den primære kostnadsmåleenheten i ytelsesanalyse.
Buffermanageren holder et sett med rammer (frames) i minnet. Når en blokk forespørres:
Data lagres i heap files (ingen rekkefølge), sorterte filer eller som del av en trestruktur (clustered index). Innenfor en side organiseres tupler typisk med et slot directory i starten av siden og tuplene vokser fra bunn:
Kjerneprinsipp for recovery: skriv alltid loggposten til disk FØR den tilhørende datasiden. Dette sikrer at systemet etter en krasj kan gjenta (redo) eller angre (undo) operasjoner. Loggposten inneholder: LSN (Log Sequence Number), transaksjons-ID, operasjonstype, «before image» og «after image».
Dette er også grunnen til at DBMS-et selv må styre når en datablokk treffer permanent lager — hvis operativsystemet fritt kunne skrive ut buffer-sider, kunne en datablokk nå disk før den tilhørende loggposten, og WAL-garantien (og dermed recovery) ville brutt sammen.
Eksamen ber gjentatte ganger om å skille mellom de to topp-komponentene og mellom stegene inne i spørringsbehandleren:
Logisk data-uavhengighet: man kan endre det logiske skjemaet (legge til kolonner, splitte tabeller) uten å måtte endre applikasjonene som bruker views over skjemaet. Fysisk data-uavhengighet: man kan endre den fysiske lagringen (indekser, filorganisering, partisjonering) uten å endre det logiske skjemaet eller applikasjonene. Begge er ønskelige fordi de isolerer applikasjoner fra endringer på lavere abstraksjonsnivå og dermed reduserer vedlikeholdskostnad.
Nøkkelformler
Vanlige feil
Eksamenstips
Laster...