JavaRush /Kurslar /All lectures for TK purposes /Tranzaksiýalaryň izolýasiýa derejeleri

Tranzaksiýalaryň izolýasiýa derejeleri

All lectures for TK purposes
Dereje , Sapak
Elýeterli

2.1 Read uncommitted

«Tranzaksiýa izolýasiýasynyň derejesi» diýlip, tranzaksiýalaryň paralel ýerine ýetirilmegi wagtynda peýda bolýän maglumatlaryň nädogrylygyna garşy goragy derejesi diýilýär. Bu gorag SGBD-iň içki mehanizmleri bilen goşmaça programmirleme bolmazdan üpjün edilýär. SQL-92 standarty dört izolýasiýa derejesiniň ölçegini berýär.

  • Read uncommitted
  • Read committed
  • Repeatable read
  • Serializable

Bu izolýasiýa derejesini amala aşyrmagyň adaty usuly - üýtgetmeler etmeli wagtynda maglumatlary gulplaýyşdyr. Bu, şol bir maglumatlaryň bir wagtda üýtgedilmeginiň yzly-yzyna ýerine ýetiriljekdigini we hiç bir üýtgetmäniň ýitip gitmejekdigini aňladýar. Şeýle hem diňe okap bilýän tranzaksiýalar bu izolýasiýa derejesinde hiç haçan gulplanmaz.

2.2 Read committed

Köp senagat SGBD-leri, Microsoft SQL Server, PostgreSQL we Oracle ýalylar, ýerine ýetirilen okumy gyzyl bolmagy üçin ulanylýar. Bu, nädogry okama howpundan goraýar, ýöne beýleki tranzaksiýalar üstünlikli tamamlanmagy we üýtgetmeleriň işjeňleşdirilmegini üpjün edip biler. Şeýlelik bilen, ilkinji tranzaksiýa dürli maglumatlar toplumyndan işleşýär.

Werlendirilýän okama bloklama ýa-da wersiýa ulanyp amala aşyrylyp bilner.

Okalýan we üýtgedilýän maglumatlaryň bloklanmasy.

Ýazylan tranzaksiýa, okalan maglumatlary read committed ýa-da has ýokary izolýasiýa derejesinde üýtgedip biljek tranzaksiýalar bilen bloklaýar. Bu, gaty nädogry ýa-da doly däl görnüşdäki maglumatlaryň okalmagynyň öňüni almak üçin mümkinçilik berýär, bu bolsa «kirli okama» diýilýär. Şeýlelik bilen, ýazylan tranzaksiýa bloklanan ýazgydaky maglumatyň beýleki tranzaksiýalar bilen hakykatdanam gabat gelendigine ynanyp biler. Mundan başga-da, okalýan tranzaksiýa bilen bloklanan maglumat, SELECT operasiýasynyň tamamlanmasyndan soň awtomatiki azat edilýär. Şeýle-de bolsa, bu derejesinde iki tranzaksiýanyň maglumatlaryň ýeke däl bolmagyny gazanyp bilmegi mümkin. Şeýle-de bolsa, bu, maglumatlaryň bazasyna betbagtçylykly täsiriň ýüze çykmagynyň öňüni almaga kömek edýär.

Paralel ýagdaýda üýtgedilýän setirleriň birneme wersiýasyny saklamak.

Hemme setir üýtgedilende, SGBD bu setiriň täze wersiýasyny döredýär. Maglumat üýtgenden tranzaksiýa täze wersiýa bilen işleýär, islendik başga «okuyjy» tranzaksiýa iň soňky işjeňleşdirilen wersiýany alýar. Bu çemeleşme, bloklamalardan gaçyp çaltlygy üpjün edýänligi sebäpli uly tizligi berýär. Emma, setirleriň wersiýasyny saklamak üçin has köp operatiw ýatda saklamany talap edýär. Birnäçe tranzaksiýa bir wagtda maglumatlary üýtgedip biljek bolanda, üýtgetmeler gabat gelmezligi mümkin. Şol tranzaksiýa, ilkinji bolup işjeňleşdirilen bolsa, öz üýtgetmelerini saklar. Başgalary işjeňleşdirilip bilmez. SGBD olary ygtydaýyra gaýtaryp, «Ýazgy eýýäm üýtgedildi» habaryny berer.

SGBD döredijileri amala aşyrma görnüşini saýlamyzda we parametrleri sazlap bilerler. Mysal üçin, MS SQL standartda bloklamalary ulanýar, ýöne 2005-iň wersiýasyndan başlap, READ_COMMITTED_SNAPSHOT parametrini gurmak mümkin. Oracle wersiýaly ulgamy ulanyp işleýär. Informix sistemasynda, okyjy we ýazmakçy tranzaksiýalaryň konfliktlerini USELASTCOMMITTED parametriniň 11.1 wersiýasynda öňüni alyp, okyjy tranzaksiýa soňky işjeňleşdirilen maglumatlary alýar.

2.3 Repeatable read

«Görünmezlik» derejesi - bu okyjy tranzaksiýanyň öňünden okalan maglumatlaryny görkezmezligi çärelerinde bolýan ýagdaýdyr. Bu görnüşde, hiç bir başga tranzaksiýa, häzirki tranzaksiýa tamamlanmaýança okalan maglumatlara zeper ýetirmez. Şeýlelik bilen, maglumatlar islendik rugsatsyz üýtgetmelerden we ýykylmakdan ynamly goralar.

Tranzaksiýa buýruklarynyň ýerine ýetirilmegi bilen alnan ähli maglumatlar üçin bloklamalar ulanylýar. Bu, beýleki tranzaksiýalary bu maglumatlary üýtgedip bilmez. Munuň ýerine, beýleki tranzaksiýalar häzirki tranzaksiýanyň şertlerinde täze maglumat goşup biler. Tranzaksiýa buýrugynyň gaýtadan ýerine ýetirilmegi, täze maglumatlaryň alyşylmagyna sebäp bolup, fantom okama ýagdaýyny döredip biler.

Bloklamalar tranzaksiýanyň tamamlanmagyna çenli saklanar, her ädimden soň däl. Bu, READ COMMITTED izolýasiýa derejesine garanyňda az paralelligi aňladýar. Zerurlyk ýok bolsa, bu we ondan has ýokary tranzaksiýa derejelerini ulanmak gowy däl.

2.4 Serializable

Iň ýokary izolýasiýa derejesi. Tranzaksiýalar biri-birinden doly izolýasiýada bolýar. Her biri, paralel tranzaksiýalaryň ýokdugy ýaly ýerine ýetirilýär. Diňe bu derejede paralel tranzaksiýalar «fantom okama» täsirine sezewar edilmeýär.

2.5 Hakyky SGBD-de tranzaksiýa izolýasiýasynyň goldawy

SGBD-ler hemme dört derejäni goldamakda her gezek ýardam bermekde däl, başga-da birnäçe funksiýa bolup biler. Käbirleri dürli izolýasiýa mümkinçiliklerine eýe bolup bilerler.

Oracle, esasan, noldan tranzaksiýa izolýasiýa derejesini goldamaýar, sebäbi onuň amala aşyrylyşy «kirli okama» ýagdaýyny aradan aýyrýar. Formal hökmünde Repeatable read derejesi goldanmaýar. Diňe Read committed (boluşyça) we Serializable derejeleri goldanýar.

Oracle, aýratyn bir buýruga okama goragy berýär. Mysal üçin, birinji tranzaksiýa bazadan setir toplumyny saýlasa, paralel geçirilen ikinji tranzaksiýa şol setirleriň käbirini üýtgetse hem, birinji tranzaksiýa tarapyndan alnan netijedäki setirler üýtgemesiz bolar. Mundan başga, Oracle READ-ONLY tranzaksiýalaryň Serializable laýyklykda, ýöne maglumatlary üýtgedip bilmezlik ýagdaýynda goldanýar.

Microsoft SQL Server dört izolýasiý

derejesini goldaýar. Onuň arkasyndan SNAPSHOT derejesi bar. Bu, tranzaksiýa başlamazdan öňki maglumat ýagdaýyny görüp biler. Serializable den tapawutlylykda, tranzaksiýa, eger-de başga bir tranzaksiýanyň şol maglumatlarda üýtgetme düzgüni bar bolsa, ýalňyşlyga sebäp bolup biler. COMMIT işjeňleşdirilip bilmez.

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION