TGViewer
CleverDevs CleverDevs @cleverdevs · 10.9K subscribers
Post #2262 4.27K

Forwarded from Pink Orca | پینک اورکا

~> ACID Properties

‏ACID یه سری خصوصیات کلیدی هستش که تو دیتابیس‌های رابطه‌ای برای تضمین صحت تراکنش‌ها (Transactions) استفاده می‌شه. این مفهوم اولین بار سال 1983 توسط Theo Härder و Andreas Reuter معرفی شد.

حالا ACID مخفف چیه؟!⬇️

‏Atomicity (اتمی بودن): یعنی یه تراکنش یا باید کامل انجام بشه یا اصلا انجام نشه. مثلا وقتی پول از یه حساب بانکی به حساب دیگه منتقل می‌شه، یا باید هم کم شدن از حساب اول و هم اضافه شدن به حساب دوم انجام بشه، یا هیچکدوم انجام نشه. حالت نصفه و نیمه نداریم. اگه وسط کار مشکلی پیش بیاد، عملیات Rollback می‌شه.

‏Consistency (سازگاری): یعنی دیتابیس باید همیشه تو حالت معتبر (valid) باشه، چه قبل تراکنش و چه بعدش. مثلا اگه قانون داریم که موجودی حساب نباید منفی بشه، هیچ تراکنشی نمی‌تونه این قانون رو نقض کنه. اگه تراکنشی بخواد این کار رو بکنه، کامل کنسل می‌شه.

‏Isolation (انزوا): یعنی تراکنش‌های همزمان نباید روی هم تاثیر بذارن. مثلا اگه دو نفر همزمان از یه حساب برداشت می‌کنن، سیستم باید طوری مدیریت کنه که نتیجه نهایی درست باشه. این کار با مکانیزم‌های مختلف Locking انجام می‌شه.

سطوح مختلف Isolation وجود داره:
‏- Read Uncommitted: کمترین سطح ایزوله بودن.
‏- Read Committed: فقط تغییرات تایید شده دیده می‌شن.
‏- Repeatable Read: خوندن‌های تکراری نتیجه یکسان می‌دن.
‏- Serializable: بالاترین سطح ایزوله بودن.

‏Durability (ماندگاری): یعنی وقتی تراکنشی موفق انجام شد (Commit شد)، تغییراتش باید دائمی باشه و حتی با قطع برق یا کرش سیستم هم از بین نره. این کار معمولا با Write-Ahead Logging‏ (WAL) انجام می‌شه.

تو دنیای واقعی گاهی باید بین این خصوصیات تعادل برقرار کرد. مثلا NoSQL‌ها معمولا از مدل BASE استفاده می‌کنن که Basically Available, Soft State, Eventually Consistent هستش و سازگاری کمتری داره ولی در عوض مقیاس‌پذیری (Scalability) بیشتری داره.

‏PostgreSQL یکی از بهترین پیاده‌سازی‌های ACID رو داره و می‌تونه همه سطوح Isolation رو ساپورت کنه. MySQL هم ACID رو پشتیبانی می‌کنه ولی فقط با موتور InnoDB، موتور MyISAM این قابلیت رو نداره.

یه نکته جالب اینه که پیاده‌سازی ACID روی عملکرد (Performance) دیتابیس تاثیر منفی می‌ذاره. به همین خاطر بعضی سیستم‌ها مثل Redis از تکنیک‌های خاصی مثل AOF‏ (Append-Only File) استفاده می‌کنن تا تعادل بهتری بین کارایی و تضمین‌های ACID برقرار کنن.

#نرم_افزار #علوم_کامپیوتر #نوشته
~> @PinkOrca 🩷
  • 👍 26
  • ❤ 5
  • 🔥 4
More from @cleverdevs
  1. Oct 2, 2026کلاینت ZedSecure رو روی AUR منتشر کردم. الان می‌تونید از اونجا نصبش کنید. https://aur.arch…
  2. Oct 1, 2026🔎 #وبینار عملی ریشه‌یابی خطا با Sentry 🔮 در وبینار «از گزارش خطای کاربر تا ریشه‌یابی مشک…
  3. Oct 1, 2026یکی از کامند‌های بدرد بخور لینوکس که برای دیباگ کردن میتونه کمکتون کنه strace (مخفف system…
  4. Sep 24, 2026شرکت کوالکام اعلام کرده قرار هست پشتیبانی رسمی لپتاپهای مجهز به چیپ Snapdragon X2 از لینوک…
  5. Sep 23, 2026توی کدای کرنل برای سیستم‌کال reboot شما باید دوتا magic value به تابع بدید تا کرنل برای ای…
  6. Sep 21, 2026یه نفر اومده و یه موزیک پلیر لینوکس به اسم sung با cpp و qt نوشته که طراحی زیبا و ویژگی ها…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →