Transaktioiden hallinta
Luennot
Aika | Huone | Luennoija | Päivämäärä |
---|---|---|---|
Ke 14-16 | C222 | Seppo Sippu | 03.11.2010-09.12.2010 |
To 14-16 | C222 | Seppo Sippu | 03.11.2010-09.12.2010 |
Harjoitusryhmät
Aika | Huone | Ohjaaja | Päivämäärä | Huomioitavaa |
---|---|---|---|---|
To 16-18 | B119 | Seppo Sippu | 08.11.2010—10.12.2010 |
Ilmoittautuminen tälle kurssille alkaa tiistaina 12.10. klo 9.00.
Information for international students
The course is an optional advanced-level course recommended for software systems M.Sc. students specialising in database management systems. The prerequisite for the course is Database Design.
The weekly lectures and exercise groups are given in Finnish only. Also the lecture notes are in Finnish, with references to textbooks written in English. The weekly homeworks are published both in Finnish and in English, and solutions to them will be published in English shortly after each weekly exercise group session.
International students are invited to submit their solutions to the weekly homeworks to the lecturer. The homeworks are not mandatory, but credits are given for doing them, so that out of a total of 60 points, 6 points can be earned from the homeworks (while 54 points can be earned from the course exam). The credits for homeworks are only valid for the exams to be held on December 16, 2010, and January 25, 2011. To pass the course, 30 points out of the total of 60 points must be earned.
Yleistä
Kurssi on vuosien 2005–07 tutkintovaatimuksissa Tiedonhallinnan erikoistumislinjan valinnainen syventävä opintojakso ja vuosien 2008–10 tutkintovaatimuksissa Ohjelmistojärjestelmien erikoistumislinjan tietokantajärjestelmien aihepiirin syventävä peruskurssi. Kurssia ei voi sisällyttää samaan tutkintoon aiemmin luennoidun laudaturkurssin Tietokantarakenteet ja -algoritmit (4 ov) kanssa.
Esitietoina edellytetään kurssi Tietokannan suunnittelu.
Kurssin oppimistavoitteet on esitetty erillisessä matriisissa.
Kurssin suorittaminen
Kurssi suoritetaan joko (1) kurssin päätyttyä järjestettävällä kurssikokeella (tai uusintakokeella) sekä kurssin kuluessa suoritetuilla viikottaisilla harjoitustehtävillä tai (2) myöhemmin järjestettävällä erilliskokeella. Kurssikokeen (ja uusintakoneen) maksimipistemäärä on 54, ja harjoituksista voi saada 6 pistettä (20 % tehtävistä tehty = 1 p, 30 % = 2 p, ..., 70 % = 6 p). Harjoitukset eivät ole pakollisia. Erilliskokeen maksimipistemäärä on 60 (harjoituksista ei saa pisteitä). Hyväksymiseen vaaditaan normaalisti noin puolet pisteistä eli 30 p. Kurssikoe pidettiin torstaina 16/12 2010 klo 16–19 Exactumin salissa A111.
International students are invited to submit their solutions to the weekly homeworks to the lecturer. The homeworks are not mandatory, but credits are given for doing them, so that out of a total of 60 points, 6 points can be earned from the homeworks (while 54 points can be earned from the course exam). The credits for homeworks are only valid for the exams to be held on December 16, 2010, and January 25, 2011. To pass the course, 30 points out of the total of 60 points must be earned.
Harjoitukset alkoivat viikolla 45.
Kirjallisuus ja materiaali
Kurssin sisältö noudattaa pitkälti syksyn 2009 luennointikerran sisältöä. Kurssin koko luentomateriaali sijoitetaan (pdf-muodossa) laitoksen sisäiseen verkkoon (intranettiin) ja linkitetään tälle sivulle, kurssin sisältökuvaukseen.
Looginen tietokanta ja transaktiot: transaktiopalvelin, looginen tietokanta, tiedonmäärittely- ja tiedonkäsittelykieli SQL, loogisen tietokannan eheys, transaktiot, transaktioiden tilat, oikeellinen transaktio, transaktion ACID-ominaisuudet, luku-kirjoitusmalli, avainvälimalli, peruutuspisteet ja osittaisperuutus, monirakeisuus.
Fyysinen tietokanta: transaktiopalvelimen tietokokoelmat, transaktiopalvelimen prosessit, levyjaksot ja sivut, sivutunniste ja monikkotunniste, tietokantasivujen puskurointi, sivujen naulinnat SQL-operaation suorituksessa, naulintakutsun suoritus, tietokannan tila, tietokannan elvytys ja tarkistuspisteet, tiedoston vapaan tilan hallinta, fyysisen tietokannan eheys, salpauskäytäntö, konttauskäytäntö, fyysisen tietokannan rakennemuutokset, uuden sivun varaus tietokantarakenteeseen.
Lokin ylläpito ja puskurinhallinta: tietokannan loki, fyysinen ja looginen lokikäytäntö, fysiologinen lokikäytäntö, aktiivisten transaktioiden taulu, avainvälimallin operaatioiden lokikirjaukset, rakennemuutosten lokikirjaukset, tietosivun päivittäminen, WAL-käytäntö, sitoutumiskäytäntö, puskurinhallintakäytännöt, levyhakujen vähentäminen.
Transaktioiden peruutus ja tietokannan elvytys häiriöstä: transaktion keskeytys ja peruutus, käänteisoperaatioiden suoritus, transaktion osittaisperuutus, järjestelmähäiriöt, päivitettyjen sivujen taulu, tarkistuspisteet, sumea tarkistuspiste, ARIES-elvytysalgoritmi, elvytyksen analyysivaihe, elvytyksen toistovaihe, elvytyksen peruutusvaihe, rakennemuutosten käsittely.
Transaktioiden eristyvyys: transaktioiden ajoitukset, transaktioiden eristyvyyden takaaminen, sitoutumaton päivitys, eristyvyysanomaliat, eristyvyysanomaliat ja tietokannan eheysrajoitteet, SQL:n eristyvyystasot, eristyvyys ja peruuntuvuus, konfliktisarjallistuvuus.
Transaktioiden samanaikaisuuden hallinta: lukot, lukkotaulu, lukon varaus ja vapautus, lukituskäytäntö, ankara kaksivaihelukitus, avainvälilukitus, monirakeisen tietokannan avainvälilukitus, aikomuslukot ja monirakeisuuslukitus, looginen vs. fyysinen lukitus, lukkiumat, lukkiumien havaitseminen, ehdolliset lukkopyynnöt.
Muita transaktioiden hallintamenetelmiä: päivitykseen varautumislukot, yleisiä lukkiumien estämismenetelmiä, heikommat eristyvyysasteet, Commit-LSN-mekanismi, elvytys ja samanaikaiset transaktiot, moniversioiva samanaikaisuuden hallinta, transaktiotason lukujohdonmukaisuus, tietoalkioversioiden hallinta, lausetason lukujohdonmukaisuus, tilannevedoseristyvyys, tilannevedoseristyvyys viivästettyjen päivitysten järjestelmässä, optimistiset ja pessimistiset käytännöt, tilannevedoseristyvyys välittömien päivitysten järjestelmässä.
Kurssi ei perustu suoraan mihinkään oppikirjaan. Kurssilla käsiteltävät asiat löytyvät muodossa tai toisessa seuraavista oppikirjoista ja alkuperäisartikkeleista. Monet asiat esitetään kurssilla eri tavalla ja eri laajuudessa kuin lähteissä.
- A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. 5th Edition. McGraw-Hill, 2006. Tärkeimmän osan kurssin sisällöstä kattaa kirjan osa 5 (transaction management), joka koostuu luvuista 15 (transactions), 16 (concurrency control) ja 17 (recovery system).
- C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems 17:1 (1992), 94–162.
- H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O'Neil & P. O'Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIGMOD Internat. Conf. on Management of Data, 1–10.
- C. Mohan: Commit_LSN: a novel and simple method for reducing locking and latching in transaction processing systems. VLDB'90, Proc. of the 16th Internat. Conf. on Very Large Data Bases, 406–418.
- C. Mohan: Concurrency control and recovery methods for B+-tree indexes: ARIES/KVL and ARIES/IM. Performance of Concurrency Control Mechanisms in Centralized Database Systems (V. Kumar, toim.), Prentice Hall, 1996, 248–306.
- M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006. Tärkeimmän osan kurssin sisällöstä kattaa kirjan osa 5 (transaction processing), joka koostuu luvuista 18 (ACID properties of transactions), 19 (models of transactions), 20 (implementing isolation), 21 (isolation in relational databases) ja 22 (atomicity and durability).
- R. Ramakrishnan & J. Gehrke: Database Management Systems. Third Edition. McGraw-Hill, 2003. Tärkeimmän osan kurssin sisällöstä kattaa kirjan osa V (transaction management), joka koostuu luvuista 16 (overview of transaction management), 17 (concurrency control) ja 18 (crash recovery).