adat b 4 elméleti Flashcards
tranzakciókezelés atomicitás:
elvárjuk, hogy a tranzakció minden lépése sikeresen lefusson, vagy pedig hiba esetén a már végrehajtott lépések visszavonásra kerüljenek. (Ez az elvárásunk nem teljesült, mikor a telefonos rendelési példában programozási hiba miatt nem tudtuk felvenni a rendelést, de a vevő számláját azért megterheltük: a tranzakció atomicitása sérült.)
tranzakciókezelés konzisztencia
elvárjuk, hogy az adatbázis folyamatosan konzisztens állapotban maradjon. (A programozási vagy egyéb hibák nem vezethetnek például külső kulcs kényszerek sérüléséhez.)
tranzakciókezelés elszigetelés:
elvárjuk, hogy az egymással párhuzamosan futó tranzakciók a lehető legkevésbé legyenek hatással egymásra.
tranzakciókezelés tartósság:
elvárjuk, hogy a sikeresen lefutott tranzakciók hatása hardver hiba esetén is megőrződjön.
izolációs szintek: Read uncommitted (más néven „dirty read”):
a SELECT utasítások nem helyeznek el S zárat, ezért
egy másik tranzakcióhoz tartozó X zár nem blokkolja az olvasást.
izolációs szintek: Read committed:
a tranzakció az olvasás idejére S zárat szerez (ha tud), majd a sikeres olvasás után azonnal megszünteti. Ezért az olvasás után nem blokkolja más tranzakciók módosító utasításait (melyhez X zár elnyerése kell). Bármilyen technológiájú kliens csatlakozik is az
adatbázishoz, ez a default izolációs szint.
izolációs szintek: Repeatable read:
mint az előző, azonban az S zár a tranzakció végéig megmarad, és blokkolja más
tranzakciók módosító utasításait.
izolációs szintek: Serializable:
az S zárak nemcsak az olvasott rekordra, hanem az egész tartományra a tranzakció
végéig megmaradnak, ezért más tranzakciók nem tudnak a tartományba rekordokat
beszúrni/törölni sem. Tehát a „semmiből” megjelenő vagy eltűnő rekord (az ún. phantom read
jelenség) nem fordulhat elő.
Szerver oldali tárolt logika (függvények)
A tárolt eljárások lehetőséget adnak az SQL scriptek adatokkal együtt történő menedzselésére és távoli
eljárásként való meghívására. Az eljárást a CREATE PROCEDURE paranccsal hozhatjuk létre. Ennek hatására a kód nem fut le, hanem végrehajtási terv generálódik hozzá, és a szerveren tárolásra kerül, mintaz adatbázis egy objektuma.
Tranzakció kezelés T-SQL-ben
A tranzakciókezelés az adatbázisokban olyan folyamat, amely biztosítja az adatok konzisztenciáját és integritását.A tranzakciókezelés lényege, hogy a műveleteket olyan egységekbe csoportosítjuk, amelyeket vagy teljes egészében végrehajtunk, vagy semennyit. Ha egy tranzakció sikeresen végrehajtódik, akkor a módosítások állandóak lesznek, és az adatbázis az új állapotba kerül. Ha valami hiba történik a tranzakció során, akkor a rendszer visszaállítja az adatbázist az eredeti állapotába.
Izoláció
Az izoláció az adatbázis-tranzakciók tulajdonsága, amely meghatározza, hogy az egyidejűleg futó tranzakciók milyen mértékben érzékelik egymás módosításait. Az izoláció biztosítja az adatok konzisztenciáját és elkerüli az olyan problémákat, mint például az elveszett frissítések vagy a piszkos olvasások.