online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

 

Online dokumentumok - kep
  
kategória
 

Biológia állatok Fizikai Földrajz Kémia Matematika Növénytan Számítógépes
Filozófia
Gazdaság
Gyógyszer
Irodalom
Menedzsment
Receptek
Vegyes

 
 
 
 




































 
 

Mérési Segédlet Informatika II Tranzakció kezelés

számítógépes

Fájl küldése e-mail Esszé Projekt


egyéb tételek

 
Átviteli minöséggel kapcsolatos kérdések
Az operaciós rendszerek illesztése
Assembly Design - CATIA V5 – Start
A UNIX és a LINUX operaciós rendszer
Csomag alapú halózatok alapjai
A prezentació készítésének iranyelvei
A CRT unit fontosabb beépített konstansai, eljarasai, függvényei, hasznalata
A Windows NT 4.0 SERVER telepítése és üzemeltetése
Az adatbazisok kialakulasa
Színelméleti alapok
 
 

Mérési Segédlet

Informatika II

Tranzakció kezelés

1. Mérés Célja

A méréssorán a hallgatók megismerkednek az adatbázisok tranzakció kezelésével. A párhuzamos feldolgozási folyamatból adódóan számos ada 414b19e t egymásra hatást kell figyelembe venni, és ezeket az egymásra hatásokat kezelni kell. MS SQL Server és az Oracle Server számos különbséget mutat egymáshoz képest ezért a feladatok kidolgozása során a két szerver viselkedését is össze kell hasonlítani.

2. Szükséges ismeretek

Tranzakció kezeléssel kapcsolatos előismeretek, melyen előadáson elhangzottak:

  • Tranzakciók alaptulajdonságai
  • Tranzakciók izolációjával kapcsolatos alapproblémák ismerte
    • Piszkos olvasás
    • Elveszett módosítás
    • Nem megismételhető olvasás
    • Fantom rekordok
  • Zárak szerepe, működése

2.1 Tranzakció kezelés MS SQL Serverrel

Az MS SQL Server alapvetően auto commit üzemmódban működik, azaz minden SQL utasításnak egy tranzakciót nyit és automatikusan committal zár. Ha több utasítást szeretnénk egy tranzakcióba fogni, akkor azt a Begin transaction utasítással lehet megtenni.

Zárak manuális elhelyezésére a with kulcsszó szolgál a select utasításokban

  • Kizáró zár elhelyezése egy táblára

SELECT *

FROM tábla WITH (TABLOCKX)

  • Kizáró zár elhelyezése sorokon (a lekérdezés által érintett összes sor zárolása)

SELECT *

FROM tábla WITH (XLOCK)

WHERE feltétel

2.2 Tranzakció kezelés Oracle Serverrel

Az Oracle automatikusan létrehoz tranzakciókat minden kapcsolathoz, és minden tranzakció vége jelnél új tranzakciót indít a felhasználó számára. Ezért ha több utasítást akarunk összefogni egy tranzakcióba akkor ez automatikusan megtörténik.

Zárak elhelyezésére az alábbi lehetőségek vannak Oracle Serveren:

  • Kizáró zár elhelyezése a táblán

Lock table táblanév

  • Kizáró zár elhelyezése rekordokon

Select *

From tábla

Where

For update

3. Megoldandó feladatok

1. Kapcsolódjon az SQL Serverhez és hozzon létre ebben az adatbázisában egy szamla(szamla_id, egyenleg) táblát, és töltse fel a következő adatokkal:

1, 5000

2, 8500

3, 6400

Ezek után nyisson még egy kapcsolatot az SQL Serverhez.

2. 1000 forint átutalása az 1-es számláról a 2-esre.

Hajtsa végre a következő utasításokat:

  1. Kérdezze le a második ablakból a számlákon lévő pénzösszeget.
  2. Az első ablakban adjon ki egy olyan utasítást, amely csökkenti az 1-es számla egyenlegét 1000 forinttal.
  3. Ismételje meg az 1-es lekérdezést
  4. Növelje az első ablakban a 2-es számla egyenlegét 1000 forinttal.
  5. Ismételje meg az 1-es lekérdezést

Mit tapasztalt? Miért? Hogyan kerülheti el ezt a problémát?

3. Hajtsa végre az 1-es és 2-es feladatot Oracle Serveren. Milyen különbséget tapasztalt? Miért?

4. Vizsgajelentkezés limittel – zárolások kezelése.

Hozzon létre az SQL Serveren az adatbázisán belül egy vizsga(vizsga_id, targy, idopont, limit) táblát, és egy vizsgajelentkezes(diak_id, vizsga_id) táblát.

A vizsga táblába szúrja be a következő vizsgát:

1, ’Info 2’, ’6/12/2007’, 3

A vizsgajelentkezes táblába:

111, 1

222, 1

Az első ablakból indítson egy tranzakciót. Ezen a tranzakción belül kérdezze le, hogy hányan jelentkeztek az 1-es vizsgára. Tegye meg ugyanezt a második ablakból is. Mivel mindkét felhasználó úgy látja, hogy eddig ketten jelentkeztek, ezért mindketten megpróbálnak jelentkezni 3.-nak. Mindkét ablakban adjon ki egy-egy utasítást, ami a 333-as illetve a 444-es diákot felveszi a vizsgára. Ezek után fejezze be a tranzakciókat. Sikerült mindkét diákot felvenni? Miért? Adjon megoldást a problémára!

5. Ismételje meg az előző két feladatot Oracle Serveren. Adjon megoldást a felmerülő problémára itt is!

6. Deadlock előidézése Oracle Serveren.

1000 forint átutalása az 1-es számláról a 3-asra, illetve 2000 forint átutalása 3-asról az 1-esre. Az Oracle Serverhez kapcsolódjon kétszer. Az egyik ablakból csökkentse az 1-es számla egyenlegét 1000 forinttal. Ezután a második ablakból csökkentse a 3-as számla egyenlegét 2000 forinttal. Az első ablakból most növelje meg az 3-as számla egyenlegét 1000 forinttal. A második ablakból növelje meg az 1-es számla egyenlegét 2000 forinttal. Mi történik? Miért?

Találat: 765