جمعه, ۱۴ اردیبهشت, ۱۴۰۳ / 3 May, 2024
مجله ویستا

اسید کامپیوتر


اسید کامپیوتر
در علوم کامپیوتر، اسید (Atomicity, Consistency, Isolation, Durability) یک سری مشخصات است که قابل اطمینان بودن پایگاه را ضمانت می کند. در تعاریف پاگاه داده، یک عملکرد منطقی روی داده را انتقال (Transaction) گویند.
مثالی از انتقال (Transaction) انتقال وجهی است از یک حساب به حساب دیگر، علیرغم اینکه ممکن است از تعداد زیادی عملکرد واحد تشکیل شده باشد ( مثل نقد کردن یک حساب یا ایجاد یک حساب جدید )
● اتمی بودن
اتمی بودن دلالت به قابلیتی از DBMS دارد که ضمانت می کند آیا تمام وظایف انتقال انجام شده است یا هیچ یک انجام نشده است. انتقال وجه ها ممکن است کاملاً انجام شود یا ممکن است به دلایل متعددی نا موفق باشد، ولی اتمی بودن ضمانت می‌کند که یک حساب نمی تواند نقد شود قبل از اینکه یک حساب دیگر ساخته شود.
● استحکام
استحکام دلالت بر این دارد که پایگاه داده در حالت قانونی قرار دارد وقتی که انتقال آغاز می شود یا پایان می یابد. پس انتقال نمی تواند قوانین پایگاه را بشکند. مثلاً وقتی قانونی بگوید که همه حساب ها باید دارای مقدلر مثبت باشند، هر انتقالی که از این قانون سرپیچی کند، متوقف می شود.
این قوانین در شکلهای مختلف عرضه می شوند، مثل حذف سطر، قوانین بین جدول ها و قوانین نامگذاری.
● ایزولاسیون
ایزولاسیون دلالت بر قابلیت برنامه برای ایجاد عملکردها یی مجزا از باقی عملکردها در انتقال دارد. یعنی هیچ عملکردی از بیرون انتقال نمیتواند داده را در سطح میانی ببیند; یک مدیر بانک می تواند وجه حساب را در یک حساب ببیند و بررسی کند و یا در حساب دیگر ببیند، وگر نه نمی تواند هر دو را حتی اگر آرایه ها و صف های خود را دستکاری کند و از خط قرمز خود رد شود نمی تواند در میانۀ پردازش زیر نظر داشته باشد. در واقع، ایزولاسیون یعنی تاریخ انتقال.
● دوام
دوام دلالت دارد بر تضمین این دارد که وقتی کاربر نسبت به موفقیت انتقال مطلع می شود، عملیات تمام نشود و تا چند سطح بالا تر با کاربر در تماس باشد و تا پایان عملیات جلو هر اتفاقی را بگیرد. یعنی جلو اشتباهات سیستم را بگیرد و جلو عملکرد انتقال را نگیرد. انتقال به سیستم اولویت دارد. بسیاری از پایگاه ها مساله دوام را با نوشتن گزارشی از انتقال ها و اجرای آنها قبل از ایجاد مشکل برای سیستم محیا می کنند. یک انتقال تنها وقتی میتواند واگذار شود که بدون مشکل گزارش شود.
● احیا
محیا کردن صحیح مشخصات اسید آسان نیست. پردازش یک انتقال نیاز به ایجاد تعدادی تغییرات شامل بروز رسانی برای سرعت بیشتر جست و جو دارد. این سری عملکردها موجب اختلال به دلایلی چند می شود. مثل نبودن فضا روی دیسک، یا در بافر یا میانگیر CPU.
اسید می خواهد که پایگاه یکباره تمام این عملکرد ها را انجام دهد. در حقیقت این امر کمی دشوار است. دو خانواده آشنا از تکنیکها وجود دارد: گزارش و صفحه بندی. در هر دو این موارد قفل ها باید در تمام اطلاعات بروزرسانی شده به کار گرفته شوند و بسته به احیا شاید به تمام داده ها. در خانواده گزارش، اتمی بودن تضمین می شود چرا که اطلاعات مربوط به هر تغییر قبل از افزوده شدن و نوشته شدن روی محیط پایگاه داده در یک گزارش می آید و اگر مشکلی داشته باشد حل می شود. این به پایگاه اجازه می دهد تا قوانینی را که وضع کرده در زمان ایجاد اختلال اجرا کند. در بحث سایه و صفحه بندی، تغییرات در یک کپی از پایگاه ایجاد می شوند. و هنگامی که انتقال به مرحله واگذاری می رسد، آن کپی با اصل جایگزین می شود. کپی تنها دلالت بر قسمت‌های تغییر نیافته از نسخه قدیمی پایگاه داده دارد، بجای آنکه دلالت بر یک پایگاه داده کامل داشته باشد.
تا حالا تقریباً تمام پایگاه ها این ۴ مشخصه و قابلیت های اسید را اجرا می کردند. این یعنی یک قفل باید برای پایگاه قبل از انجام هر عملیاتی وجود داشته باشد، حتی برای بازیابی و خواندن مطالب پایگاه. نگهداری مقدار زیاد قفل ها هرچند که نتیجه گیری را دشوار می سازد، هر چقدر سری تر باشد همان قدر برای امنیت پایگاه بهتر است. مثلاً وقتی کاربر A می خواهد سطری از داده ها را که کاربر B می خواهد تغییر دهد را بخواند، کاربر B باید منتظر بماند تا عملیات انتقال مربوط به کاربر A مبنی بر خواندن آن سطر تمام شود.
جایگزینی برای قفل سازی می تواند چند نسخه ای کردن عملیات کنترل باشد، طوری که پایگاه کپی های منحصر به فردی را از هر داده تغییر یافته نگهداری کند. این به کاربران این امکان را می دهد تا بدون مواجهه با مسدود شدن مسیر کارشان را انجام دهند. مثلاً در مورد A و B در زمانی که یک کاربر در حال ایجاد تغییرات در داده ای خاص می باشد، و هم‌زمان کاربری دیگر قصد خواندن آن را دارد، تا قبل از کپی گرفتن از تغییرات موجود، داده را با شکل قبلی نشان می دهد. این خود نوعی از ایزولاسیون است به نام “Snapshot Isolation”.
در محیط شبکه این بسیار دشوار است که مشخصات اسید را تضمین کنیم. ارتباطات ممکن است از میان بروند و یا ۲ کاربر در آن واحد بخواهند از یک قسمت استفاده کنند.
واگذاری دوفازه به صورت عمده در انتقال های توزیعی استفاده می شوند برای تضمین اینکه هر جزء از انتقال امر اینکه انتقال باید واگذاری بشود یا نشود را تایید کند.
مراقبت به هنگامی که دو انتقال بصورت موازی صورت می گیرد بسیار واجب است. قفل دو فازه برای ایجاد و تضمین ایزولاسیون کامل بکار گرفته می شود.
منبع : میکرو رایانه