Tranzakciók az SQL-ben



Hasonló dokumentumok
Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

Adatbázis használat I. 5. gyakorlat

Tranzakciókezelés PL/SQL-ben

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatbázisok* tulajdonságai

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N

Adatbázis Rendszerek II. 10. Tranzakció kezelés 72/1B IT MAN

A könyv tartalomjegyzéke

Adatbázisok biztonsága

Adatbázis tartalmának módosítása. SQL DML utasítások

Adattípusok. Max. 2GByte

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Adattípusok. Max. 2GByte

Az SQL adatbázisnyelv: DML

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Relációs algebra 2.rész

BEVEZETÉS Az objektum fogalma

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

Statisztikai szoftverek Molnár Gábor József

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázis-kezelés, információs-rendszerek

Java és web programozás

Használati utasítás. NELSON EZ PRO Junior kül- és beltéri öntözésvezérlı automatika

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR 2( Adatbázisrendszerek 2) 7. Előadás: Tranzakciók és zárolások a MySQL-ben

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázis-kezelés. Harmadik előadás

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Ha a gyógyítás nem mőködik

Adatbázis tartalmának módosítása

Az Oracle rendszer komponensei

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Haladó DBMS ismeretek 1

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis Rendszerek II. 8. Gyakorló környezet

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Adatbázis rendszerek SQL nyomkövetés

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Lineáris. Soros. Okozati FIFO. Belépő

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Triggerek. Olyan névvel ellátott adatbázisobjektumok, amelyek eseményorientált feldolgozást tesznek lehetővé

SQL DDL-2 (aktív elemek) triggerek

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Együttes hozzárendelés

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Lekérdezések az SQL-ben 2.rész

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték


Általános módszertani útmutató költség-haszon elemzéshez. Nemzeti Fejlesztési Ügynökség

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

A POOL SZABÁLYAI. World Pool Billiard Association (WPA) A Pool Biliárd Világszövetség által jóváhagyott hivatalos szabályok

Adatbázisok II Jánosi-Rancz Katalin Tünde 327A 1-1

BEFEKTETÉSI SZÁMLACSOMAG SZOLGÁLTATÁS

Operációs rendszerek II. Holtpont

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Adatbázisrendszerek 9. előadás: Tranzakciók és konkurencia

1995. évi CXVII. törvény. a személyi jövedelemadóról ELSİ RÉSZ ÁLTALÁNOS RENDELKEZÉSEK. I. Fejezet ALAPELVEK

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Tartalomjegyzék Általános ismeretek a programról A táblázatok használata Az objektumtípusok áttekintése Részletes leírás Statisztikai jelentés 129

Szakdolgozat. Uzonyi László

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A 1-1

Cölöpözési technológiák

GroupWise 5.2 használói jegyzet

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

TÉZISEK. Közszolgáltatások térbeli elhelyezkedésének hatékonyságvizsgálata a földhivatalok példáján

Ujj Tamás * VALÓS IDEJŐ ADATTÁRHÁZAK

A Magyar Tudományos Akadémiáról szóló évi XL. törvény, a Magyar Tudományos Akadémia Alapszabálya és az Akadémiai Ügyrend egységes szerkezetben

Mozgólépcsıhöz frekvenciaváltók és kapcsolódó berendezések, lépcsıpályatest alkatrészek, valamint vonóláncok beszerzése

Java és web programozás

12. előadás. Tranzakció kezelés és konkurencia kontroll. Adatbázisrendszerek előadás december 12.

Dr. Mészáros Attila. Kezdetek. Az innováció humánaspektusai: Tárgyalástechnika üzleti kommunikáció. Az emberi kommunikáció fajtái


Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Szüntesd meg a torlódást.

Elosztott adatfeldolgozás

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

A térinformatika t. Az informáci. ciós s rendszerek funkciói. Az adatok vizsgálata

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Értelmezı rendelkezések

ügyvéd idıpontját elhalasztja. Az eredményhirdetés új idıpontja: október 7. napján óra.

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Lekérdezések az SQL-ben 1.rész

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Lekérdezések az SQL-ben 1.rész

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

Centronic VarioControl VC470-II

Átírás:

Tranzakciók az SQL-ben Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 6.6. Tranzakciók az SQL-ben (Gyakorlaton csak SAVEPOINT, COMMIT és ROLLBACK lesz. Ez nem törzsanyag - nincs vizsgán, késıbb lesz az Adatbázisok-2-n) 1

Miért van szükség tranzakciókra? Az adatbázis rendszereket általában több felhasználó és folyamat használja egyidıben. Lekérdezések és módosítások egyaránt történhetnek. Az operációs rendszerektıl eltérıen, amelyek támogatják folyamatok interakcióját, az adatbázis rendszereknek el kell különíteniük a folyamatokat. 2

Példa: rossz interakció Egy idıben ketten töltenek fel 100 dollárt ugyanarra a számlára ATM-en keresztül. Az adatbázis rendszernek biztosítania kell, hogy egyik mővelet se vesszen el. Ezzel szemben az operációs rendszerek megengedik, hogy egy dokumentumot ketten szerkesszenek egyidıben. Ha mind a ketten írnak, akkor az egyik változtatás elvész (elveszhet). 3

Tranzakciók Tranzakció = olyan folyamat, ami adatbázis lekérdezéseket, módosításokat tartalmaz. Az utasítások egy értelmes egészt alkotnak. Egyetlen utasítást tartalmaznak, vagy az SQL-ben explicit módon megadhatóak. 4

ACID tranzakciók Az ACID tranzakciók: Atomiság (atomicity): vagy az összes vagy egy utasítás sem hajtódik végre. Konzisztencia (consistency): az adatbázis megszorítások megörzıdnek. Elkülönítés (isolation): a felhasználók számára úgy tőnik, mintha folyamatok, elkülönítve, egymás után futnának le. Tartósság (durability): egy befejezıdött tranzakció módosításai nem vesznek el. Opcionálisan: gyengébb feltételek is megadhatóak. 5

COMMIT és ROLLBACK A COMMIT SQL utasítás végrehajtása után a tranzakció véglegesnek tekinthetı. A tranzakció módosításai véglegesítıdnek. A ROLLBACK SQL utasítás esetén a tranzakció abortál. Azaz az összes utasítás visszagörgetésre kerül. A 0-val való osztás vagy egyéb hibák, szintén visszagörgetést okozhatnak, akkor is, ha a programozó erre nem adott explicit utasítást. 6

Példa: egymásra ható folyamatok A Felszolgál(bár, sör, ár) táblánál tegyük fel, hogy Joe bárjában csak Bud és Miller sörök kaphatók 2.50 és 3.00 dollárért. Sally a Felszolgál táblából Joe legolcsóbb és legdrágább sörét kérdezi le. Joe viszont úgy dönt, hogy a Bud és Miller sörök helyett ezentúl Heinekent árul 3.50 dollárért. 7

Sally utasításai (max) SELECT MAX(ár) FROM Felszolgál WHERE bár = Joe bárja ; (min)select MIN(ár) FROM Felszolgál WHERE bár = Joe bárja ; 8

Joe utasításai Ugyanabban a pillanatban Joe a következı utasításokat adja ki: (del) (ins) DELETE FROM Felszolgál WHERE bár = Joe bárja ; INSERT INTO Felszolgál VALUES( Joe bárja, Heineken, 3.50); 9

Átfedésben álló utasítások A (max) utasításnak a (min) kell végrehajtódnia, hasonlóan (del) utasításnak az (ins) elıtt, ettıl eltekintve viszont nincsenek megszorítások a sorrendre vonatkozóan, ha Sally és Joe utasításait nem győjtjük egy-egy tranzakcióba. 10

Példa: egy furcsa átfedés Tételezzük fel a következı végrehajtási sorrendet: (max)(del)(ins)(min). Joe árai: {2.50,3.00} {2.50,3.00} {3.50} Utasítás: Eredmény: (max) 3.00 (del) (ins) (min) 3.50 Mit lát Sally? MAX < MIN! 11

A probléma megoldása tranzakciókkal Ha Sally utasításait, (max)(min), egy tranzakcióba győjtjük, akkor az elıbbi inkonzisztencia nem történhet meg. Joe árait ekkor egy adott idıpontban látja. Vagy a változtatások elıtt vagy utánuk, vagy közben, de a MAX és a MIN ugyanazokból az árakból számolódik. 12

Egy másik hibaforrás: a visszagörgetés Tegyük fel, hogy Joe a (del)(ins) és utasításokat nem, mint tranzakció hajtja végre, utána viszont úgy dönt, jobb ha visszagörgeti a módosításokat. Ha Sally az (ins) után, de visszagörgetés elıtt hajtatja végre a tranzakciót, olyan értéket kap, 3.50, ami nincs is benne az adatbázisban végül. 13

Megoldás A (del)(ins) és utasításokat Joe-nak is, mint tranzakciót kell végrehajtatnia, így a változtatások akkor válnak láthatóvá, ha tranzakció egy COMMIT utasítást hajt végre. Ha a tranzakció ehelyett visszagörgetıdik, akkor a hatásai sohasem válnak láthatóvá. 14

Elkülönítési szintek Az SQL négy elkülönítési szintet definiál, amelyek megmondják, hogy milyen interakciók engedélyezettek az egy idıben végrehajtódó tranzakciók közt. Ezek közül egy szint ( sorbarendezhetı ) = ACID tranzakciók. Minden ab rendszer a saját tetszése szerint implementálhatja a tranzakciókat. 15

Az elkülönítési szint megválasztása Az utasítás: SET TRANSACTION ISOLATION LEVEL X ahol X = 1. SERIALIZABLE 2. REPEATABLE READ 3. READ COMMITTED 4. READ UNCOMMITTED 16

Sorbarendezhetı (serializable) tranzakciók Ha Sally a (max)(min), Joe a (del)(ins) tranzakciót hajtatja végre, és Sally tranzakciója SERIALIZABLE elkülönítési szinten fut, akkor az adatbázist vagy Joe módosításai elıtt vagy után látja, a (del) és (ins) közötti állapotban sohasem. 17

Az elkülönítési szint választása Ez a döntés csak azt mondja meg, hogy az illetı hogyan látja az adatbázist, és nem azt, hogy mások hogy látják azt. Példa: Ha Joe sorbarendezhetı elkülönítési szintet használ, de Sally nem, akkor lehet, hogy Sally nem talál árakat Joe bárja mellett. azaz, mintha Sally Joe tranzakciójának közepén futtatná a sajátját. 18

Read-Commited tranzakciók Ha Sally READ COMMITTED elkülönítési szintet választ, akkor csak kommitálás utáni adatot láthat, de nem feltétlenül mindig ugyanazt az adatot. Példa: READ COMMITTED mellett megengedett a (max)(del)(ins)(min) átfedés amennyiben Joe kommitál. Sally legnagyobb megdöbbenésére: MAX < MIN. 19

Repeatable-Read tranzakciók Hasonló a read-commited megszorításhoz. Itt, ha az adatot újra beolvassuk, akkor amit elıször láttunk, másodszor is látni fogjuk. De második és az azt követı beolvasások után akár több sort is láthatunk. 20

Példa: ismételhetı olvasás Tegyük fel, hogy Sally REPEATABLE READ elkülönítési szintet választ, a végrehajtás sorrendje: (max)(del)(ins)(min). (max) a 2.50 és 3.00 dollár árakat látja. (min) látja a 3.50 dollárt, de 2.50 és 3.00 árakat is látja, mert egy korábbi olvasáskor (max) már látta azokat. 21