Mae ACID yn Diogelu Data Eich Cronfa Ddata
Mae model dylunio cronfa ddata ACID yn un o'r cysyniadau hynaf a phwysicaf o theori cronfa ddata. Mae'n cyflwyno pedwar nod ymlaen y mae'n rhaid i bob system rheoli cronfa ddata ymdrechu i'w cyflawni: atomigrwydd, cysondeb, unigedd a gwydnwch. Ni ellir ystyried cronfa ddata berthynas sy'n methu â chwrdd ag unrhyw un o'r pedwar nod hyn yn ddibynadwy. Ystyrir bod cronfa ddata sy'n meddu ar y nodweddion hyn yn cydymffurfio â ACID.
ACID Diffiniedig
Gadewch i ni gymryd munud i edrych yn fanwl ar bob un o'r nodweddion hyn:
- Mae atomigrwydd yn nodi bod rhaid i addasiadau cronfa ddata ddilyn rheol "cyfan neu ddim". Dywedir bod pob trafodiad yn "atomig." Os bydd un rhan o'r trafodiad yn methu, mae'r trafodiad cyfan yn methu. Mae'n hanfodol bod y system rheoli cronfa ddata yn cadw natur atomig y trafodion er gwaethaf unrhyw DBMS, system weithredu neu fethiant caledwedd.
- Dywed cysondeb mai dim ond data dilys fydd yn cael ei ysgrifennu i'r gronfa ddata. Os, am ryw reswm, gweithredir trafodiad sy'n torri rheolau cysondeb y gronfa ddata, bydd y trafodiad cyfan yn cael ei gyflwyno'n ôl, a bydd y gronfa ddata yn cael ei adfer i wladwriaeth sy'n gyson â'r rheolau hynny. Ar y llaw arall, os yw trafodiad yn esblygu'n llwyddiannus, bydd yn cymryd y gronfa ddata o un wladwriaeth sy'n gyson â'r rheolau i wladwriaeth arall sydd hefyd yn gyson â'r rheolau.
- Mae unigedd yn mynnu bod trafodion lluosog yn digwydd ar yr un pryd heb effeithio ar weithredu ei gilydd. Er enghraifft, os yw Joe yn trafod trafodiad yn erbyn cronfa ddata ar yr un pryd y mae Mary yn trafod trafodyn gwahanol, dylai'r ddau drafod weithredu ar y gronfa ddata yn unigol. Dylai'r gronfa ddata naill ai berfformio trafodiad cyfan Joe cyn gweithredu Mary's, neu i'r gwrthwyneb. Mae hyn yn atal trafodiad Joe rhag darllen data canolraddol a gynhyrchir fel sgîl-effaith rhan o drafodiad Mary na fydd yn ymroddedig i'r gronfa ddata yn y pen draw. Sylwch nad yw'r eiddo arwahanu yn sicrhau pa drafodiad fydd yn gweithredu yn gyntaf - dim ond y trafodion hynny na fydd yn ymyrryd â'i gilydd
- Mae gludiant yn sicrhau na chaiff unrhyw drafodion sydd wedi ymrwymo i'r gronfa ddata ei golli. Sicrheir bodlondeb trwy ddefnyddio copļau wrth gefn a logiau trafodion sy'n hwyluso adfer trafodion ymrwymedig er gwaethaf unrhyw fethiannau meddalwedd neu galedwedd dilynol.
Sut mae ACID yn Gweithio mewn Ymarfer
Mae gweinyddwyr cronfa ddata yn defnyddio sawl strategaeth i orfodi ACID.
Mae un a ddefnyddir i orfodi atomigrwydd a gwydnwch yn recordio ymlaen llaw (WAL) lle mae unrhyw fanylion trafodion yn cael eu hysgrifennu i log yn gyntaf, sy'n cynnwys ail-adrodd a dadwneud gwybodaeth. Mae hyn yn sicrhau, o ystyried methiant cronfa ddata o unrhyw fath, y gall y gronfa ddata ei wirio y log a chymharu ei gynnwys i gyflwr y gronfa ddata.
Dull arall a ddefnyddir i fynd i'r afael ag atomigrwydd a gwydnwch yw cysgodion lle mae tudalen gysgodol yn cael ei chreu pan fydd data i'w haddasu. Ysgrifennir diweddariadau'r ymholiad i'r dudalen gysgodol yn hytrach na'r data go iawn yn y gronfa ddata. Mae'r gronfa ddata ei hun wedi'i addasu dim ond pan fydd yr olygfa wedi'i chwblhau.
Gelwir strategaeth arall yn brotocol ymrwymo dau gam , yn arbennig o ddefnyddiol mewn systemau cronfa ddata dosbarthedig. Mae'r protocol hwn yn gwahanu cais i addasu data mewn dau gam: cyfnod ymgeisio a chyfnod ymrwymo. Yn y cyfnod ymgeisio, mae'n rhaid i bob DBMS ar rwydwaith y mae'r trafodiad effeithio arnynt gadarnhau eu bod wedi ei dderbyn ac yn meddu ar y gallu i gyflawni'r trafodiad. Unwaith y derbynnir cadarnhad gan yr holl DBMSs perthnasol, mae'r cam ymrwymo'n cwblhau lle mae'r data wedi'i addasu mewn gwirionedd.