I-ACID ivikela idatha yakho yedatha
Imodeli ye-ACID yokuklanywa kwedatha ingenye yemiqondo endala futhi ebaluleke kakhulu ye-theory yedatha. Ibeka phambili imigomo emine ukuthi yonke uhlelo lokuphathwa kwedatha kumele ilwele ukufezekisa: i-atomicity, ukuvumelana, ukuhlukaniswa kanye nokuqina. Idatha yokuxhumana ehluleka ukuhlangabezana nanoma iyiphi yale migomo emine ayikwazi ukubhekwa njengokwethenjelwa. I-database enezici zibhekwa njenge-ACID ehambisanayo.
I-ACID ichazwe
Masithathe isikhashana ukuhlola ngayinye yalezi zici ngokuningiliziwe:
- I-Atomicity ithi ukuguqulwa kwedatha kumele kulandelwe umthetho "konke noma akukho". Ukuthengwa ngalunye kuthiwa "i-athomu". Uma ingxenye eyodwa yokuthengiselana ihluleka, konke ukuthengiswa kwehluleka. Kubalulekile ukuthi uhlelo lokuphathwa kwedatha lugcine uhlobo lwe-athomu lokuthengiselana naphezu kwanoma iyiphi i-DBMS, uhlelo lokusebenza noma ukwehluleka kwehadiwe.
- Ukubambisana kusho ukuthi idatha kuphela evumelekile izobhalwa ku-database. Uma, ngesinye isizathu, ukuthengiswa kwenziwa okwephula imithetho yokuvumelana kwemininingwane yedatha, konke ukuthengiswa kuzolungiswa emuva, futhi i-database izobuyiselwa esimweni esifana nalezo mithetho. Ngakolunye uhlangothi, uma ukuthengiselana kwenziwa ngokuphumelelayo, kuzothatha idatha kusuka kumbuso owodwa ohambisana nemithetho kwenye indawo ehambisana nemithetho.
- Ukwehlukanisa kudinga ukuthi ukuthengiselana okuningi okwenzeka ngesikhathi esifanayo kungathinteki ukukwenziwa komunye nomunye. Isibonelo, uma uJoe ebeka ukuthengiselana ngokumelene nedatha ngesikhathi esifanayo ukuthi uMariya uphawula ukuthengiselana okuhlukile, kokubili ukuthengiselana kumele kusebenze kwi database ngendlela ehlukile. I-database kufanele yenza yonke into kaJoe ngaphambi kokukhipha uMariya, noma i-vice-versa. Lokhu kuvimbela ukuthengiswa kukaJoe ngokufunda idatha ephakathi okukhiqizwa njengomphumela ohlangothini lwezingxenye zokuthengiswa kukaMariya ezingeke zenzeke ekugcineni kwedatha. Qaphela ukuthi impahla yokuzihlukanisa ayiqinisekisi ukuthi yikuphi ukuthengiselana okuzokwenza kuqala - kuphela ukuthi ukuthengiselana ngeke kuphazamisane
- Ukuzinza kuqinisekisa ukuthi noma yikuphi ukuthengiselana okwenzile ku-database ngeke kulahleke. Ukuzinza kuqinisekiswa ngokusebenzisa ukusetshenziswa kwe-database ye-backups kanye ne-transaction logs ezenza kube lula ukubuyiswa kokuthengiselana okwenziwayo naphezu kwanoma yikuphi ukuhluleka kwesofthiwe noma kwe-hardware.
Indlela i-ACID isebenza ngayo ku-Practice
Abaphathi baseDatabase basebenzisa amasu amaningana ukuze agqugquzele i-ACID.
Omunye osetshenziselwa ukuphoqelela ukutholakala kwe-atomicity nokuqina kubhaliswa -phambili ngaphambi kokungena ngemvume (WAL) lapho yonke imininingwane yokuthengiselana ibhalwa kuqala kugijimi ehlanganisa kokubili kabusha futhi ihlehlise ulwazi.Lokhu kuqinisekisa ukuthi, uma kunikezwe ukuhluleka kwedatha kwanoma yiluphi uhlobo, i-database ingahlola ilogi bese uqhathanisa okuqukethwe kwalo kumbuso wedatha.
Enye indlela esetshenziselwa ukubhekana ne-atomicity nokuqina kuyisithunzi -ukuguqulwa lapho ikhasi lesithunzi lidalwa khona uma idatha izoguqulwa. Izibuyekezo zemibuzo zibhalwa kukhasi lesithunzi kunokuba idatha yangempela ku-database. I-database ngokwayo iguqulwa kuphela uma ukuhlela kuqedile.
Elinye isu libizwa ngokuthi i -phase-commit commitment protocol, ikakhulukazi ewusizo kumasistimu e-database asatshalaliswe. Le protocol ihlukanisa isicelo sokuguqula idatha ngezigaba ezimbili: isigaba sokufaka isicelo nesigaba sokuzibophezela. Esigabeni sokucela, wonke ama-DBMS enethiwekhi ethinteka yi-transaction kumele aqinisekise ukuthi ayitholile futhi anamandla okwenza umsebenzi. Uma isiqiniseko sithola kuwo wonke ama-DBMS afanele, isigaba sokuzibophezela sigcwalisa lapho idatha iguqulwa empeleni.