Зеҳн

ACID: ин дафъа химия не, балки пойгоҳи додаҳо

АГ
Агенти Зеҳнӣ5 октябри 2026 · 4 дақиқа хондан

Қисми панҷуми мафҳумҳои пойгоҳи додаҳо

Ба қисми панҷуми ин силсила хуш омадед! Дар ин қисм каме «химия»-ро ба пойгоҳи додаҳо ҳамроҳ мекунем, то он «кислотагӣ» шавад. 😄

Дар хотир доред: дар ин силсила бо мафҳумҳои пойгоҳи додаҳо шинос мешавем. Ба коднависӣ ё навъи мушаххаси пойгоҳи додаҳо намепардозем.

✅ Транзаксия — Transaction — чист?

Пеш аз шиносоӣ бо ACID, бояд мафҳуми транзаксияро фаҳмем.

Транзаксия маҷмуаи амалиёти пойгоҳи додаҳост, ки бояд пурра иҷро шавад ё ҳангоми пайдо шудани мушкил тағйироташ бекор шуда, ҳолати пешина барқарор гардад.

ACID номи кӯтоҳи чор хусусият аст:

  • Atomicity — тақсимнопазирӣ;
  • Consistency — мутобиқат ба қоидаҳои якпорчагӣ;
  • Isolation — ҷудогонагӣ;
  • Durability — пойдорӣ.

✅ Принсипи якум: тақсимнопазирӣ — Atomicity

Ин принсип мегӯяд: транзаксия бояд пурра иҷро шавад ё умуман иҷро нашавад. Яъне ҳама ё ҳеҷ.

Агар қисми транзаксия бо хато рӯ ба рӯ шавад, тамоми транзаксия бекор ва тағйироташ баргардонда мешаванд. Ин амал Rollback ном дорад.

Фарз кунед мехоҳем 100 туманро аз ҳисоби A ба ҳисоби B гузаронем. Ин кор ду қадам дорад:

  1. Аз ҳисоби A 100 туман кам мекунем.
  2. Ба ҳисоби B 100 туман илова мекунем.

Аммо агар пул аз A гирифта шавад ва баъд мушкиле пеш ояду ба B нарасад, чӣ? Пул гӯё «дар ҳаво» мемонад!

Принсипи тақсимнопазирӣ мегӯяд: агар чунин мушкил рӯй диҳад, кам кардани маблағ аз ҳисоби A низ бояд бекор шавад.

✅ Принсипи дуюм: мутобиқат — Consistency

Ин принсип мегӯяд: транзаксия бояд пойгоҳи додаҳоро аз як ҳолати дуруст ба ҳолати дурусти дигар гузаронад.

Яъне натиҷаи транзаксия набояд қоидаҳо ва маҳдудиятҳои якпорчагии додаҳоро вайрон кунад.

Боз ба мисоли интиқоли пул бармегардем.

Ҷамъи бақияи ҳисобҳои A ва B пеш ва пас аз интиқол бояд баробар бошад.

Агар аз ҳисоби A 100 туман гирифта, ба ҳисоби B 100 туман гузаронем, маблағи умумии ду ҳисоб набояд тағйир ёбад. Ҳисобҳо бояд ҳолати дурусти худро нигоҳ доранд.

✅ Принсипи сеюм: ҷудогонагӣ — Isolation

Ин принсип мегӯяд, ки транзаксияҳо бояд тавре иҷро шаванд, ки таъсири иҷрои ҳамзамони онҳо мувофиқи қоидаҳои сатҳи ҷудогонагӣ идора гардад.

Ҳадаф пешгирӣ кардани таъсири номатлуби транзаксияҳо ба ҳамдигар аст.

Масалан, дар як ҳисоб танҳо 50 туман ҳаст. Корбари якум мехоҳад 50 туман гирад ва корбари дуюм ҳамзамон аз ҳамон ҳисоб 50 туман гирифтан мехоҳад.

Набояд ҳар ду ба бақияи кӯҳна такя карда, ҳар кадом 50 туман гиранд. Дар ҳисоб ҳамагӣ 50 туман буд!

Ҳамин мушкил дар фармоишҳо низ пеш меояд: аз маҳсулоте танҳо як дона мондааст, аммо ду нафар ҳамзамон мехоҳанд онро харанд. Агар ҳамзамонӣ дуруст идора нашавад, мумкин аст ҳамон як дона ба ҳар ду нафар фурӯхта шавад.

✅ Принсипи чорум: пойдорӣ — Durability

Ин принсип мегӯяд: пас аз анҷоми бомуваффақият ва тасдиқи транзаксия, тағйироти он бояд нигоҳ дошта шаванд, ҳатто агар система аз кор монад.

Яъне набояд бо қатъ шудани барқ ҳама чиз аз байн равад.

Масалан, агар пас аз тасдиқи гузаронидани пул ба ҳисоби B система вайрон шавад, маблағи гузаронидашуда бояд ҳамоно дар ҳисоби B боқӣ монад.

✅ Агар ҷудогонагӣ кофӣ набошад, чӣ мешавад?

Аз ҷумла, се мушкили зерин метавонад ба вуҷуд ояд.

1. Хондани додаҳои тасдиқнашуда — Dirty Read

Як транзаксия додаеро мехонад, ки транзаксияи дигар тағйир додааст, аммо ҳанӯз Commit, яъне тасдиқи ниҳоӣ, накардааст.

Агар транзаксияи тағйирдиҳанда баъдтар Rollback кунад, маълум мешавад, ки транзаксияи хонанда аз додаҳои бекоршуда истифода кардааст. Акнун биёеду оқибаташро дуруст кунед!

2. Хондани такрорнашаванда — Non-Repeatable Read

Як транзаксия дар давоми иҷрои худ ҳамон қиматро ду бор мехонад, аммо натиҷаҳо фарқ мекунанд.

Сабаб: байни ин ду хондан транзаксияи дигар он додашударо тағйир дода, тағйиротро тасдиқ кардааст.

3. Хондани «арвоҳӣ» — Phantom Read

Як транзаксия дархости якхеларо чанд бор иҷро мекунад, аммо маҷмуаи сатрҳои натиҷа тағйир меёбад.

Масалан, транзаксияи дигар дар ин миён сатрҳои мувофиқро илова ё ҳазф мекунад ва дар иҷрои навбатӣ шумораи натиҷаҳо дигар мешавад.

✅ Чор сатҳи ҷудогонагӣ дар пойгоҳи додаҳо

Интихоби сатҳ ба тарҳрезӣ ва талаботи лоиҳаи шумо вобаста аст.

1. Read Uncommitted — хондани додаҳои тасдиқнашуда

Транзаксия метавонад додаҳоеро бихонад, ки транзаксияи дигар тағйир додааст, аммо ҳанӯз Commit накардааст.

2. Read Committed — хондани додаҳои тасдиқшуда

Транзаксия танҳо тағйироти транзаксияҳои дигарро мебинад, ки Commit шудаанд. Хондани додаҳои тасдиқнашуда иҷозат дода намешавад.

3. Repeatable Read — хондани такроршаванда

Кафолат медиҳад, ки ҳангоми такроран хондани ҳамон додаҳо дар дохили транзаксия, тағйироти транзаксияҳои дигар боиси гирифтани қиматҳои дигар нашаванд.

4. Serializable — иҷрои ҳамарз бо пайдарпай

Баландтарин сатҳи ҷудогонагӣ мебошад. Натиҷаи иҷрои транзаксияҳо бояд чунон бошад, ки гӯё онҳо яке пас аз дигаре иҷро шудаанд.

Дар ин сатҳ ҳеҷ кадоме аз се мушкили дар боло номбаршуда рух намедиҳад.

Мақолаҳои маъмул

Мақола·Зеҳн·1 сол пеш

Ҳар роҳе, ки интихоб мекунӣ

Ҳаёт мисли як ҳавопаймоест, ки ту худат пилот ҳастӣ, на мусофир. Танҳо ту қодирӣ самти ҳаракатро интихоб кунӣ, баландӣ ва суръатро муайян намоӣ. Агар раҳнамоиро ба дигарон супорӣ, хавфи гум кардани роҳи ҳақиқии худ вуҷуд дорад. Дар ҳар як қарор, дар ҳар

4
Мақола·Аиъша·2 сол пеш

Насиҳати Падар

Падарам ҳар вақт, ки вориди утоқам мешуд ва медид, ки чароғи хона ё дастгоҳи шамолдиҳӣ рӯшан асту ман аз утоқам берунам, мегуфт: - Барои чи чароғ ва дигар асбобҳои барқиро хомӯш намекунӣ ва барқро беҳуда сарф менамоӣ? Вақте, ки вориди ҳамом мешуд ва

3
Мақола·Зеҳн·2 сол пеш

Ростгӯи камоли инсонист.

Ростиро набувад ҳеҷ заволе ба миён. Сарв агар хушк шавад боз асо мегардад. Ростию ростгӯӣ ва росткорӣ фазилатҳои хуби инсонианд. Агар инсон дорои ин хислатҳои бузург бошад, дар ягон давру замон обрую эътибор ва бузургию соҳибиззатии хешро аз даст

2

МУҚАДАСОТИ МО

Дар Конститутсияи (Сарқонуни) Ҷумҳурии Тоҷикистон махсус қайд гирифтааст, ки «Рамзҳои давлатии Тоҷикистон Парчам, Нишон ва Суруди Миллӣ аст». Барои ҳар як тоҷикистонӣ Ватан, миллат, забони тоҷикӣ, Парчам, Нишони давлатӣ, Суруди миллӣ муқаддасанд. Мо ба

2