Azụmahịa na InterSystems IRIS globals

Azụmahịa na InterSystems IRIS globalsInterSystems IRIS DBMS na-akwado usoro na-atọ ụtọ maka ịchekwa data - globals. N'ụzọ bụ isi, ndị a bụ igodo ọtụtụ ọkwa nwere ọmarịcha ihe mgbakwunye dị iche iche n'ụdị azụmahịa, ọrụ ngwa ngwa maka ịgafe osisi data, mkpọchi na asụsụ ObjectScript nke ya.

Gụkwuo maka globals n'usoro isiokwu "Globals bụ mma agha maka ịchekwa data":

Osisi. Akụkụ 1
Osisi. Akụkụ 2
Ngwakọta dị obere. Akụkụ nke 3

Enwere m mmasị n'otú e si arụ ọrụ azụmahịa na globals, ihe njirimara dị. E kwuwerị, nke a bụ usoro dị iche iche maka ịchekwa data karịa tebụl ndị a na-emekarị. Ọkwa dị ala.

Dị ka a maara site na tiori nke ọdụ data mmekọrịta, ezigbo mmejuputa azụmahịa ga-emeju ihe ndị a chọrọ Acid:

A - Atọmịk (atomiti). Mgbanwe niile emere na azụmahịa ma ọ bụ enweghị nke ọ bụla ka edekọtara.

C - Nkwenye. Mgbe azụmahịa mechara, ọnọdụ ezi uche dị na nchekwa data ga-abụrịrị n'ime ya. N'ọtụtụ ụzọ ihe a chọrọ na-emetụta onye mmemme, mana n'ihe gbasara ọdụ data SQL ọ na-emetụta igodo mba ọzọ.

M - Kewapụ. Azụmahịa na-aga n'otu n'otu ekwesịghị imetụta ibe ya.

D - Na-adịgide adịgide. Mgbe emechara azụmahịa nke ọma, nsogbu na ọkwa dị ala (ike ọdịda, dịka ọmụmaatụ) ekwesịghị imetụta data gbanwere site na azụmahịa.

Globals bụ usoro data enweghị mmekọrịta. Emebere ha ka ha na-agba ọsọ ngwa ngwa na ngwaike nwere oke oke. Ka anyị leba anya na mmejuputa azụmahịa na globals iji foto docker nke IRIS.

Iji kwado azụmahịa na IRIS, a na-eji iwu ndị a: TSTART, TCOMMIT, TROLBACK.

1. Atomity

Ụzọ kachasị mfe iji lelee bụ atomity. Anyị na-enyocha site na njikwa nchekwa data.

Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMIT

Mgbe ahụ anyị kwubiri:

Write ^a(1), “ ”, ^a(2), “ ”, ^a(3)

Anyị nwetara:

1 2 3

Ihe niile dị mma. A na-edobe atomity: a na-edekọ mgbanwe niile.

Ka anyị mee ka ọrụ ahụ sie ike, webata njehie ma hụ ka esi echekwa azụmahịa ahụ, akụkụ ma ọ bụ ọ bụghị ma ọlị.

Ka anyị lelee atomity ọzọ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3

Mgbe ahụ, anyị ga-eji ike kwụsị akpa ahụ, malite ya ma hụ.

docker kill my-iris

Iwu a fọrọ nke nta ka ọ daa na nkwụsị ike, ebe ọ na-eziga akara SIGKILL iji kwụsị usoro ahụ ozugbo.

Enwere ike chekwaa azụmahịa ahụ n'akụkụ ụfọdụ?

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

- Mba, ọ dịbeghị ndụ.

Ka anyị nwaa iwu nkwụghachi azụ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TROLLBACK

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

Ọ dịghị ihe dị ndụ ma.

2. Nkwenye

Ebe ọ bụ na na ọdụ data dabere na globals, a na-emekwa igodo na globals (ka m chetara gị na ụwa bụ usoro dị ala maka ịchekwa data karịa tebụl mmekọrịta), iji mezuo ihe a chọrọ, mgbanwe na igodo ga-agụnye. n'otu azụmahịa dị ka mgbanwe na ụwa.

Dị ka ihe atụ, anyị nwere ^ mmadụ zuru ụwa ọnụ, bụ́ ebe anyị na-echekwa ụdị mmadụ n’ime ya, anyị na-ejikwa TIN dị ka mkpịsị ugodi.

^person(1234567, ‘firstname’) = ‘Sergey’
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
...

Iji nweta aha ikpeazụ na aha mbụ a na-achọ ngwa ngwa, anyị mere igodo ^index.

^index(‘Kamenev’, ‘Sergey’, 1234567) = 1

Ka nchekwa data wee na-agbanwe agbanwe, anyị ga-agbakwunye onye ahụ dị ka nke a:

TSTART
^person(1234567, ‘firstname’) = ‘Sergey’
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
^index(‘Kamenev’, ‘Sergey’, 1234567) = 1
TCOMMIT

N'ihi ya, mgbe ị na-ehichapụ, anyị ga-ejikwa azụmahịa:

TSTART
Kill ^person(1234567)
ZKill ^index(‘Kamenev’, ‘Sergey’, 1234567)
TCOMMIT

N'ikwu ya n'ụzọ ọzọ, imezu ihe a chọrọ na-adabere kpamkpam n'ubu onye mmemme. Ma a bịa n'ihe gbasara ụwa, nke a bụ ihe nkịtị, n'ihi ọdịdị ha dị ala.

3. Mwepu

Nke a bụ ebe anụ ọhịa na-amalite. Ọtụtụ ndị ọrụ na-arụ ọrụ n'otu oge na otu nchekwa data, na-agbanwe otu data.

Ọnọdụ ahụ dị ka mgbe ọtụtụ ndị ọrụ na-arụ ọrụ n'otu oge na otu ebe nchekwa koodu ma gbalịa ime mgbanwe n'otu oge na ọtụtụ faịlụ n'otu oge.

Ebe nchekwa data kwesịrị ịhazi ya niile ozugbo. N'iburu n'uche na n'ime ụlọ ọrụ ndị siri ike, e nwere ọbụna onye pụrụ iche nke na-ahụ maka njikwa nsụgharị (maka ijikọta alaka, dozie esemokwu, wdg), na nchekwa data ga-eme ihe niile a ozugbo, mgbagwoju anya nke ọrụ ahụ na nhazi nke ziri ezi. nchekwa data imewe na koodu na-ejere ya ozi.

Ebe nchekwa data enweghị ike ịghọta ihe omume ndị ọrụ mere iji zere esemokwu ma ọ bụrụ na ha na-arụ ọrụ na otu data ahụ. Ọ nwere ike megharịa naanị otu azụmahịa nke na-emegide ibe ya, ma ọ bụ mebie ha n'usoro.

Nsogbu ọzọ bụ na n'oge mmezu nke azụmahịa (tupu ime ihe), ọnọdụ nke nchekwa data nwere ike ịbụ ihe na-ekwekọghị ekwekọ, ya mere, ọ bụ ihe na-achọsi ike na azụmahịa ndị ọzọ enweghị ohere ịnweta ọnọdụ na-adịghị agbanwe agbanwe nke nchekwa data, nke a na-enweta na ọdụ data mmekọrịta. n'ọtụtụ ụzọ: ịmepụta snapshots, ahịrị ndị nwere ọtụtụ ụdị na wdg.

Mgbe ị na-eme azụmahịa n'otu n'otu, ọ dị anyị mkpa na ha anaghị egbochi ibe ha. Nke a bụ ihe onwunwe nke iche.

SQL na-akọwapụta ọkwa anọ dịpụrụ adịpụ:

  • GỤKWUO GBASARA YA
  • GỤỌ KWESỊRỊ
  • AKWỤKWỌ KWESỊRỊ
  • SERIALIZABLE

Ka anyị lelee ọkwa nke ọ bụla iche iche. Ọnụ ego nke imejuputa ọkwa ọ bụla na-eto eto fọrọ nke nta ka ọ bụrụ nke ukwuu.

GỤKWUO GBASARA YA - nke a bụ ọkwa dịpụrụ adịpụ nke kacha ala, mana n'otu oge ahụ kachasị ngwa ngwa. Azụmahịa nwere ike ịgụ mgbanwe emere ibe ya.

GỤỌ KWESỊRỊ bụ ọkwa ọzọ nke iche, nke bụ nkwekọrịta. Azụmahịa enweghị ike ịgụ mgbanwe nke ibe ha tupu itinye aka, mana ha nwere ike ịgụ mgbanwe ọ bụla emere ka emechara ya.

Ọ bụrụ na anyị nwere ogologo azụmahịa T1, n'oge nke mmegide mere na azụmahịa T2, T3 ... Tn, nke na-arụ ọrụ na otu data dị ka T1, mgbe ahụ, mgbe ị na-arịọ data na T1 anyị ga-enweta ihe dị iche iche n'oge ọ bụla. A na-akpọ ihe a na-agụghị ugboro ugboro.

AKWỤKWỌ KWESỊRỊ - na ọkwa dịpụrụ adịpụ a, anyị enweghị ihe ngosi nke ịgụ akwụkwọ na-abụghị nke a na-emeghachi, n'ihi na maka arịrịọ ọ bụla iji gụọ data, a na-emepụta foto nke nsonaazụ data na mgbe ejiri ya mee ihe n'otu azụmahịa ahụ, data sitere na foto ahụ. eji. Otú ọ dị, ọ ga-ekwe omume ịgụ data phantom na ọkwa dịpụrụ adịpụ a. Nke a na-ezo aka n'ịgụ ahịrị ọhụrụ ndị agbakwunyere site na azụmahịa myirịta.

SERIALIZABLE - ọkwa kachasị elu nke mkpuchi. A na-akọwa ya n'eziokwu na data ejiri n'ụzọ ọ bụla na azụmahịa (ịgụ ma ọ bụ mgbanwe) na-adị maka azụmahịa ndị ọzọ naanị mgbe emechara azụmahịa mbụ.

Nke mbụ, ka anyị chọpụta ma enwere ikewapụ ọrụ na azụmahịa site na isi eri. Ka anyị mepee windo ọnụ ọnụ abụọ.

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

Enweghị ikewapụ onwe ya. Otu eri na-ahụ ihe nke abụọ mepere azụmahịa na-eme.

Ka anyị hụ ma azụmahịa nke eriri dị iche iche na-ahụ ihe na-eme n'ime ha.

Ka anyị mepee windo ọnụ ọnụ abụọ wee mepee azụmahịa abụọ n'otu n'otu.

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

Ndekota azụmahịa na-ahụ onye ọ bụla ọzọ data. Yabụ, anyị nwetara ọkwa dịpụrụ adịpụ kacha dị mfe, mana ọ bụ ọkwa dịpụrụ adịpụ kacha ọsọ, GỤỌ AKWỤKWỌ.

Na ụkpụrụ, enwere ike ịtụ anya nke a maka ụwa niile, nke arụmọrụ na-abụkarị ihe kacha mkpa.

Kedu ihe ma ọ bụrụ na anyị chọrọ ọkwa dị elu nke ikewapụ na arụ ọrụ na ụwa?

N'ebe a, ị ga-eche maka ihe kpatara achọrọ ọkwa dịpụrụ adịpụ na otu ha si arụ ọrụ.

Ọkwa dịpụrụ adịpụ kacha elu, SERIALIZE, pụtara na nsonaazụ azụmaahịa emere n'otu oge dabara na ogbugbu ha n'usoro, nke na-ekwe nkwa enweghị nkwekọrịta.

Anyị nwere ike ime nke a site na iji mkpọchi smart na ObjectScript, nke nwere ọtụtụ ojiji dị iche iche: ị nwere ike ime mgbe niile, mmụba, ọtụtụ mkpọchi na iwu. Ncha.

Ọkwa dịpụrụ adịpụ bụ azụmaahịa emebere iji bulie ọsọ nchekwa data.

Ka anyị hụ ka anyị nwere ike isi nweta ọkwa dị iche iche nke iche site na iji mkpọchi.

Onye ọrụ a na-enye gị ohere iwere ọ bụghị naanị mkpọchi pụrụ iche dị mkpa iji gbanwee data, mana nke a na-akpọ mkpọchi nkekọrịta, nke nwere ike were ọtụtụ eri n'otu oge mgbe ha chọrọ ịgụ data nke na-ekwesịghị ịgbanwe site na usoro ndị ọzọ n'oge usoro ọgụgụ.

Ozi ndị ọzọ gbasara usoro mgbochi akụkụ abụọ na Russian na Bekee:

Mgbochi nke abụọ
Mkpọchi ụzọ abụọ

Ihe isi ike bụ na n'oge azụmahịa, ọnọdụ nke nchekwa data nwere ike ịbụ ihe na-ekwekọghị ekwekọ, mana data a na-ekwekọghị ekwekọ na-ahụ anya na usoro ndị ọzọ. Kedu ka esi zere nke a?

Iji mkpọchi, anyị ga-emepụta windo visibiliti nke ọnọdụ nchekwa data ga-agbanwe agbanwe. Na ohere niile ị nweta windo ndị dị otú ahụ nke visibiliti nke steeti ekwekọrịtara ga-ejikwa mkpọchi.

Mkpọchi ejikọrọ na otu data ka enwere ike iji ya mee ihe-ọtụtụ usoro nwere ike were ha. Mkpọchi ndị a na-egbochi usoro ndị ọzọ ịgbanwe data, ya bụ. a na-eji ha etolite windo nke steeti nchekwa data na-agbanwe agbanwe.

A na-eji mkpọchi naanị maka mgbanwe data - naanị otu usoro nwere ike were mkpọchi dị otú ahụ. Enwere ike were mkpọchi pụrụ iche site na:

  1. Usoro ọ bụla ma ọ bụrụ na data bụ n'efu
  2. Naanị usoro nwere mkpọchi nkekọrịta na data a ma bụrụ onye mbụ rịọrọ mkpọchi pụrụiche.

Azụmahịa na InterSystems IRIS globals

Ka windo visibiliti dị warara, ka usoro ndị ọzọ na-echere ya, mana ka ọnọdụ nchekwa data dị n'ime ya na-agbanwe agbanwe.

READ_COMMITTED - Isi ihe dị na ọkwa a bụ na anyị na-ahụ naanị data etinyere na eri ndị ọzọ. Ọ bụrụ na emebeghị data dị na azụmahịa ọzọ, mgbe ahụ anyị na-ahụ ụdị ochie ya.

Nke a na-enye anyị ohere ịmekọrịta ọrụ ahụ kama ichere ka a tọhapụrụ mkpọchi ahụ.

Enweghị aghụghọ pụrụ iche, anyị agaghị enwe ike ịhụ ụdị ochie nke data dị na IRIS, yabụ anyị ga-eme ka mkpọchi.

N'ihi ya, anyị ga-eji mkpọchi nkekọrịta iji kwe ka agụ data naanị n'oge na-agbanwe agbanwe.

Ka anyị kwuo na anyị nwere onye ọrụ ^ onye na-enyefe ibe ya ego.

Oge mbufe site na onye 123 gaa na onye 242:

LOCK +^person(123), +^person(242)
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
LOCK -^person(123), -^person(242)

Oge nke ịrịọ ego n'aka onye 123 tupu ịkwụ ụgwọ ga-esonyere ya na ngọngọ pụrụ iche (na ndabara):

LOCK +^person(123)
Write ^person(123)

Ma ọ bụrụ na ịchọrọ igosi ọkwa akaụntụ na akaụntụ nkeonwe gị, ị nwere ike iji mkpọchi nkekọrịta ma ọ bụ ghara iji ya ma ọlị:

LOCK +^person(123)#”S”
Write ^person(123)

Otú ọ dị, ọ bụrụ na anyị na-eche na a na-arụ ọrụ nchekwa data ihe fọrọ nke nta ka ọ bụrụ ozugbo (ka m chetara gị na globals bụ nhazi ọkwa dị ala karịa tebụl mmekọrịta), mgbe ahụ mkpa ọkwa a na-ebelata.

AKWỤKWỌ KWESỊRỊ - Ọkwa dịpụrụ adịpụ a na-enye ohere ịgụ ọtụtụ data nke enwere ike gbanwee site na azụmahịa n'otu oge.

N'ihi ya, anyị ga-etinye mkpọchi nkekọrịta na-agụ data anyị na-agbanwe yana mkpọchi naanị na data anyị na-agbanwe.

Ọ dabara nke ọma, onye ọrụ LOCK na-enye gị ohere ịdepụta n'ụzọ zuru ezu mkpọchi niile dị mkpa, nke enwere ike inwe ọtụtụ, n'otu nkwupụta.

LOCK +^person(123, amount)#”S”
чтение ^person(123, amount)

arụmọrụ ndị ọzọ (n'oge a, eri ndị yiri ya na-agbalị ịgbanwe ^ mmadụ (123, ego), mana enweghị ike)

LOCK +^person(123, amount)
изменение ^person(123, amount)
LOCK -^person(123, amount)

чтение ^person(123, amount)
LOCK -^person(123, amount)#”S”

Mgbe ị na-edepụta mkpọchi nke rịkọm kewapụrụ, a na-ewere ya n'usoro, mana ọ bụrụ na ịmee nke a:

LOCK +(^person(123),^person(242))

Mgbe ahụ, a na-ewere ha niile n'otu oge.

Ọrụ - anyị ga-edobe mkpọchi ka n'ikpeazụ azụmahịa niile nwere data nkịtị ga-eme n'usoro. Maka usoro a, ọtụtụ mkpọchi kwesịrị ịbụ naanị ma were ya na mpaghara kacha nta nke ụwa maka ịrụ ọrụ.

Ọ bụrụ na anyị na-ekwu maka ịkwụ ụgwọ ego na ^ mmadụ zuru ụwa ọnụ, ọ bụ naanị ọkwa dịpụrụ adịpụ nke SERIALIZE bụ nke a na-anabata maka ya, ebe ọ bụ na a ghaghị iji ego mee ihe n'usoro, ma ọ bụghị ya, ọ ga-ekwe omume iji otu ego ahụ ọtụtụ ugboro.

4. Ogologo oge

Eji m ike gbutu akpa ahụ wee nwale

docker kill my-iris

Ntọala ahụ nabatara ha nke ọma. Enweghị nsogbu ọ bụla a chọpụtara.

nkwubi

Maka ụwa niile, InterSystems IRIS nwere nkwado azụmahịa. Ha bụ n'ezie atọm na ndị a pụrụ ịdabere na ya. Iji hụ na nkwekọ nke nchekwa data dabere na ụwa, a chọrọ mgbalị mmemme na iji azụmahịa eme ihe, ebe ọ bụ na ọ nweghị ihe mgbagwoju anya arụnyere dị ka igodo mba ọzọ.

Ọkwa dịpụrụ adịpụ nke ụwa na-ejighi mkpọchi bụ GỤKWUO EGO, na mgbe ị na-eji mkpọchi, enwere ike ijide n'aka ruo ọkwa SERIALIZE.

Nzizi na ọsọ nke azụmahịa na globals nke ukwuu na-adabere na nkà nke onye mmemme: a na-eji ihe mkpuchi na-ekesa nke ọma mgbe a na-agụ akwụkwọ, ọkwa dị elu nke dịpụrụ adịpụ, na ka a na-ewerekwa ihe mkpuchi pụrụ iche, ngwa ngwa na-arụ ọrụ.

isi: www.habr.com

Tinye a comment