3. praktiskais darbs. Tranzakciju vadība

Praktiskajā darbā tiek pētītas tranzakcijas un to vadība.Tranzakcija ir SQL priekšrakstu SELECT, UPDATE, INSERT un DELETE kopa,
kas vai nu visi izpildās vai tiek visi anulēti. Princips: visu vai neko.
Tranzakciju koplietošanas režīmā, izpildot tās paralēli parādās nevēlamas situācijas: netīrā lasīšana, neatkārtojamā lasīšana, fantoma lasīšana un zaudētā atjaunojuma problēma. Lai šādas situācijas novērstu tranzakciju izpildei tiek definēti vairāki to izolācijas līmeņi:
1) apstiprinātās lasīšanas (read commited) izolācijas līmenis;
2) neapstiprinātās lasīšanas (read uncommited) izolācijas līmenis;
3) atkārtojamās lasīšanas (repeatable read) izolācijas līmenis;
4) seralizējamais (serializable) izolācijas līmenis.
1. Praktiskajā darbā jāizdomā piemēri tranzakcijām (pa divām) šo izolācijas līmeņu darbības demonstrācijai. Tiek veidotas divu vai vairāku tranzakciju attiecību situācijas un izpētīti darbību rezultāti.
2. Katrai demonstrācijai jāuzzīmē tabula (kā lekcijās), lai demonstrētu darbības procesu. Jāveic tranzakciju darbības un sadarbības apraksts.
3. Ar definētajām tranzakcijām jāpārbauda vai pie to paralēlas izpildes nenotiek netīra lasīšana, neatkārtojama lasīšana vai fantoma lasīšana. Jāveic darbību analīze un komentāru apraksts. Jāizdara secinājumi.
Neobligāti:
4. Jādefinē trīs tabulas ar rakstu skaitu virs 50000. Var arī izmantot atbilstošās tabulas no iepriekšējiem praktiskajiem darbiem.
5. Lai praktiski veidotu tranzakciju (salikta vaicājumu kopa) paralēlu darbību, var izmantot:
1) vairākas sesijas;
2) aktīvās datu bāzes trigerus;
3) citus redaktorus un citas iespējas.
6. Komentēt izdarītos eksperimentus un veikt gala secinājumus.