Skip to main content

Ang ACID Model para sa Database Management Systems

Can You Die From Acid Reflux :The Risks of Untreated Heartburn and GERD (Abril 2025)

Can You Die From Acid Reflux :The Risks of Untreated Heartburn and GERD (Abril 2025)
Anonim

Ang ACID modelo ng disenyo ng database ay isa sa mga pinakalumang at pinakamahalagang konsepto ng database theory. Nagtatakda ito ng apat na mga layunin na dapat sinisikap ng bawat sistema ng pamamahala ng database na makamit ang: atomicity, consistency, isolation, at tibay. Ang isang database ng pamanggit na nabigo upang matugunan ang alinman sa mga apat na layunin na ito ay hindi maaaring ituring na maaasahan. Ang isang database na nagtataglay ng mga katangiang ito ay itinuturing na sumusunod sa ACID.

Tinukoy ang ACID

Kumuha ng isang sandali upang masuri ang bawat isa sa mga katangiang ito nang detalyado:

  • Atomicity ay nagsasaad na ang mga pagbabago sa database ay dapat na sundin ang isang "lahat o wala" na tuntunin. Ang bawat transaksyon ay sinasabing "atomiko." Kung nabigo ang isang bahagi ng transaksyon, nabigo ang buong transaksyon. Mahalaga na ang sistema ng pamamahala ng database ay nagpapanatili ng atomic na likas na katangian ng mga transaksyon sa kabila ng anumang DBMS, operating system, o hardware failure.
  • Hindi pagbabago nagsasaad na ang wastong data lamang ang isusulat sa database. Kung, sa ilang kadahilanan, ang isang transaksyon ay isinasagawa na lumalabag sa mga patakaran ng pagkakapare-pareho ng database, ang buong transaksyon ay lulubugin, at ibabalik ang database sa isang estado na naaayon sa mga patakarang iyon. Sa kabilang banda, kung matagumpay na maisagawa ang isang transaksyon, aabutin ang database mula sa isang estado na naaayon sa mga patakaran sa ibang estado na naaayon din sa mga patakaran.
  • Paghihiwalay ay nangangailangan na ang maraming mga transaksyon na nagaganap sa parehong oras ay hindi nakakaapekto sa pagpapatupad ng bawat isa. Halimbawa, kung nagdedesisyo si Joe ng isang transaksyon laban sa isang database sa parehong panahon na si Mary ay naglalabas ng ibang transaksyon, ang parehong mga transaksyon ay dapat magpatakbo sa database sa isang nakahiwalay na paraan. Ang database ay dapat na isagawa ang buong transaksyon ni Joe bago isagawa ang ni Maria, o kabaligtaran. Pinipigilan nito ang transaksyon ni Joe mula sa pagbabasa ng intermediate data na ginawa bilang isang side effect ng bahagi ng transaksyon ni Mary na hindi huli ay nakatuon sa database. Tandaan na ang hindi pag-aari ng ari-arian ay hindi tinitiyak kung anong transaksyon ang gagawin muna - lamang na ang mga transaksyon ay hindi makagambala sa isa't isa
  • Katatagan Tinitiyak na ang anumang transaksyong nakatuon sa database ay hindi mawawala. Ang katatagan ay nakasisiguro sa pamamagitan ng paggamit ng mga pag-backup ng database at mga log ng transaksyon na nagpapadali sa pagpapanumbalik ng mga transaksyong nakatuon sa kabila ng anumang kasunod na pagkabigo ng software o hardware.

Paano gumagana ang ACID sa Practice

Ang mga administrator ng database ay gumagamit ng ilang mga estratehiya upang ipatupad ang ACID.

Ang isa na ginagamit upang ipatupad ang atomicity at tibay ay write-ahead logging (WAL), kung saan ang anumang detalye ng transaksyon ay unang isinulat sa isang log na kasama ang parehong gawing muli at i-undo ang impormasyon. Sinisiguro nito na, na ibinigay ang isang pagkabigo sa database ng anumang uri, maaaring masuri ng database ang log at ihambing ang mga nilalaman nito sa estado ng database.

Ang isa pang paraan na ginagamit upang matugunan ang atomicity at tibay ay anino-paging, kung saan ang isang pahina ng anino ay nilikha kapag ang data ay mabago. Ang mga update sa query ay isinulat sa pahina ng anino sa halip na sa tunay na data sa database. Ang database mismo ay binago lamang kapag ang pag-edit ay kumpleto na.

Ang isa pang diskarte ay tinatawag na dalawang yugto na gumawa protocol, lalong kapaki-pakinabang sa mga sistema ng database na ipinamamahagi. Ang protocol na ito ay naghihiwalay ng isang kahilingan upang baguhin ang data sa dalawang phases: isang phase ng gumawa-request at isang bahagi na gumawa. Sa phase ng kahilingan, ang lahat ng DBMS sa isang network na apektado ng transaksyon ay dapat kumpirmahin na natanggap nila ito at may kapasidad na gawin ang transaksyon. Sa sandaling natanggap ang kumpirmasyon mula sa lahat ng may-katuturang mga DBMS, ang bahagi ng komit ay nakumpleto kung saan ang data ay binago nang aktwal.