Tranzakciós tulajdonságok

Vannak különböző tranzakciós modellek, amelyeket különböző tulajdonságok alapján lehet besorolni, beleértve a tranzakció struktúráját, a tranzakcióban való párhuzamosságot, időtartamot és így tovább.

Jelenleg a következő tranzakciót különböztetik meg: lapos vagy klasszikus tranzakciók, láncügyletek és beágyazott tranzakciók.

Lapos vagy a hagyományos tranzakció jellemzi négy klasszikus tulajdonságok: atomicitás, következetesség, elszigeteltség, tartósság (erő) - sav (Atomicity, összhang, Isolation, tartósság). Néha a hagyományos tranzakciókat ACID tranzakcióknak hívják. A fent említett tulajdonságok a következők:

  • Az atomicitás (Atomicitás) tulajdonsága abban a tényben fejeződik ki, hogy az ügyletet teljes egészében kell végrehajtani, vagy egyáltalán nem.
  • A Következet tulajdonság biztosítja, hogy a tranzakciók előrehaladtával az adatok egy következetes állapotból egy másikba mozognak - a tranzakció nem pusztítja el az adatok kölcsönös konzisztenciáját.
  • Az Isolation tulajdonság azt jelenti, hogy az adatbázis eléréséhez versengő tranzakciók fizikailag egymás után vannak feldolgozva, elkülönítve egymástól, de a felhasználók számára úgy néz ki, mintha párhuzamosan futnának.
  • A tartósság tulajdonsága a következőképpen értelmezhető: ha a tranzakció sikeresen befejeződött, akkor az általa előállított adatok változása semmilyen körülmények között (akár későbbi hibák esetén sem) elvész.

Két lehetőség van a tranzakció befejezésére. Ha minden operátor sikeres lesz, és szoftver vagy hardverhiba nem fordul elő a tranzakció során, akkor a tranzakciót elkövették.

A tranzakciókövetés olyan művelet, amely lehetővé teszi az adatbázis számára, hogy az ügylet során végrehajtott módosításokat írja az adatbázisba.

A tranzakció rögzítéséig megengedett visszavonni ezeket a változtatásokat, visszaállítani az adatbázist az ügylethez tartozó állapotba. A tranzakció rögzítése azt jelenti, hogy az összes tranzakciós eredmény állandóvá válik. Ezek a tranzakciók csak az aktuális tranzakció lezárása után válnak láthatóvá. Addig a tranzakció által érintett összes adat "látható" lesz a felhasználó számára az aktuális tranzakció elején.

Ha valami történt a tranzakció végrehajtása során, ami lehetetlenné teszi, hogy azt rendesen lehessen végrehajtani, akkor az adatbázist vissza kell állítani eredeti állapotába. Az ügylet visszagörgetése olyan művelet, amely biztosítja, hogy az SQL utasítások által az aktuális függőben lévő tranzakció testében végrehajtott adatok módosítása megszakad.

Minden tranzakciót végző operátor végzi el a munkájának részét, de az egész munka teljes egészének teljesítéséhez minden üzemeltetőnek feltétlenül fel kell függesztenie a feladatot. Az ügyfelek csoportosítása egy tranzakcióban azt mondja a DBMS-nek, hogy a teljes csoportot egyetlen egységként kell végrehajtani, és ezt a végrehajtást automatikusan támogatni kell.

Az ANSI / ISO SQL szabvány egy tranzakciós modellt és a COMMIT és ROLLBACK utasítások funkcióit határozza meg. A szabvány azt határozza meg, hogy a tranzakció az első olyan SQL utasítással kezdődik, amelyet a felhasználó kezdeményezett vagy a programban tartalmaz, amely megváltoztatja az adatbázis aktuális állapotát. Minden későbbi SQL utasítás a tranzakciós szervet alkotja. Az ügylet négy lehetséges útvonal egyikével ér véget (11.1. Ábra):

  1. a COMMIT nyilatkozat sikeres tranzakciót jelez; felhasználása folyamatosan változtatja meg az adatbázisban az aktuális tranzakciót;
  2. a ROLLBACK utasítás megszakítja a tranzakciót, elvetve az adatbázisban végrehajtott változtatásokat a tranzakció során; egy új tranzakció azonnal elindul a ROLLBACK használata után;
  3. a tranzakció sikeres befejezéséhez a tranzakció sikeres befejezését jelenti (mintha a COMMIT nyilatkozatot használnák);
  4. a hibás programkiszolgálás megszünteti a tranzakciót (mintha a ROLLBACK utasítás lenne).

Ebben a modellben az adatbázis állapotát megváltoztató operátorok tranzakcióként kezelendők, ezért az állítás sikerére az adatbázis új stabil állapotba kerül.

A kereskedelmi DBMS első verzióiban ANSI / ISO tranzakciós modellt alkalmaztak. Ezt követően egy kibővített tranzakciós modellt hajtottak végre a SYBASE DBMS-ben, amely számos további műveletet tartalmaz. A SYBASE modellben a következő négy operátor használatos:

  • A BEGIN TRANSACTION nyilatkozat jelenti a tranzakció kezdetét. Az ANSI / ISO szabványtól eltérően, ahol a tranzakció kezdetét az első adatmódosítási operátor implicit módon meghatározza, a SYBASE modellben a tranzakció indítását kifejezetten a tranzakció indítási utasításával határozzák meg.
  • A COMMIT TRANSACTION nyilatkozat jelenti a tranzakció sikeres befejezését. Ez megfelel az COMMIT üzemeltetőnek az ANSI / ISO szabványmodellben. Ez az operátor, mint a COMMIT utasítás, rögzíti az adatbázisban végrehajtott összes változtatást a tranzakció során.
  • A SAVE TRANSACTION utasítás létrehoz egy mentési pontot a tranzakcióban, amely megfelel az adatállomány idején tárolt adatbázis közbenső állapotának. A SAVE TRANSACTION utasítás tartalmazza az elmentési pont nevét. Ezért a tranzakció során több mentési pont tárolható több közbülső állapotnak megfelelően.
  • A ROLLBACK utasítás két módosítást tartalmaz. Ha ezt az operátort további paraméter nélkül használják, úgy értelmezik, mint az egész tranzakció visszagörgető operátora, vagyis ebben az esetben ez az ANSI / ISO modell ROLLBACK rollback operátorának felel meg. Ha a visszagörgetési operátornak van egy paramétere, és a ROLLBACK B formában van írva, akkor úgy értelmezhető operátorként, hogy az ügylet részleges visszahúzódása a B tárolási pontra történik.

Tranzakciós tulajdonságok

Ábra. 11.1.A tranzakciós modell ANSI / ISO

A tranzakciós modellben végrehajtott tranzakciók elveit az 1. ábra mutatja. 11.2. Az ábrán az üzemeltetők számokkal vannak jelölve, így kényelmesebb lenne számunkra az ügylet előrehaladásának nyomon követése minden elfogadható esetben.

Tranzakciós tulajdonságok

Ábra. 11.2.A tranzakciók példái a kibővített modellben

A tranzakció kezdődik kifejezett ügyleti kezdte az üzemeltető, amely a mi program 1. számú Következik az üzemeltető 2, amely a keresési operátor és nem változik a jelenlegi állapotában az adatbázis, és azt követő üzemeltetői 3. és 4. megtért az adatbázist az új államban. Az üzemeltető 5 tárolja ezt az új köztes állapotban adatbázis és jelöli meg egy köztes állapot pontjában A. Ezt követi a piaci szereplők a 6. és 7., amely át az adatbázis új állapotban. 8. Egy, az üzemeltető fenntartja ezt az állapotot, mint egy köztes állapot a B pontban Az üzemeltető 9 végzi bemeneti új adatok, és az üzemeltető 10 folytat néhány ellenőrzése állapotú 1; ha az 1. feltétel teljesül, akkor az üzemeltető meggyőződik 11 hogy végez visszaállítást, hogy egy köztes állapot, B. Ez azt jelenti, hogy a hatás az üzemeltető intézkedések, mint a 9 hagyni, és az adatbázis visszatér a köztes állapotban, de miután az üzemeltető 9, volt már új feltétel. És miután romba ügylet helyett az üzemeltető 9, melyet korábban elvégzett státusza miatt az adatbázisban SZEREPLŐ 13 adja meg az új adatokat, majd vezérlés átkerül az operátor 14. Az üzemeltető 14 ismét ellenőrzi az állapotát, de egy feltétellel povoe 2; ha a feltétel teljesül, akkor vezérlés átkerül az operátor 15, amely visszaállítja a tranzakció a köztes állapotban A, azaz minden nyilatkozatokat, amelyek módosítják az adatbázist, kezdve a 6 és befejezve 13 sikertelen, vagyis az eredmények a végrehajtás elmentek, és mi ismét abban a helyzetben, és, miután a végrehajtás a nyilatkozat 4. ezután vezérlés átkerül az operátor 17 amely frissíti az az adatbázis tartalmát, majd vezérlés átkerül az operátor 18 mely a check feltételek vagy 3. teszt befejezi sebességváltó vezérlő op Rathore 20, amely kötelezi az ügylet, és az adatbázis bemegy egy új stabil állapot, és a változás részeként a jelenlegi tranzakció nem lehetséges. Vagy, ha az irányítást át az üzemeltető a 19. tranzakciót vissza az elejére az adatbázis és visszaáll az eredeti állapotba, és minden köztes állapotok már ellenőrizte, és végezze el a visszagörgetéshez a köztes állapotban, miután a kezelő 19 lehetetlen.

Természetesen a SYBASE által javasolt kibővített tranzakciós modell egy sokkal rugalmasabb mechanizmust támogat a tranzakciók végrehajtásához. A mentési pontok lehetővé teszik, hogy a tranzakcióban lévő markereket olyan módon hozzuk létre, hogy csak a tranzakcióban végzett munkák egy részét törölhessük. Célszerű hosszú távú és bonyolult tranzakciókban a mentési pontok használatát annak biztosítása érdekében, hogy bizonyos üzemeltetők visszavonhassák a módosításokat. Ez azonban a rendszer erőforrásainak többletköltségét okozza - az üzemeltető végzi a munkát, és a módosításokat ezután törlik; Általában a feldolgozási logika fejlesztése optimálisabb megoldás lehet.

Tudta, hogy az alacsony frekvenciájú elektromágneses hullámok gyakorisága kisebb, mint 100 kHz alapvetően eltér a nagyobb frekvenciájú elektromágneses hullámok alá sebesség arányos a négyzetgyök gyakorisága 300.000. Km / s, 100 kHz és kb 7000 km / s 50 Hz-en.

Kapcsolódó cikkek