سلام به همه پی وی لرنی های عزیز!
به دوره آموزش دوره آموزش سیستم مدیریت پایگاه داده DBMS خوش آمدید.
Database Management System یا سیستم مدیریت پایگاه داده که به صورت خلاصه به آن DBMS می گویند؛ به فناوری ذخیره و بازیابی اطلاعات کاربران با حداکثر کارآیی در کنار اقدامات امنیتی مناسب اشاره دارد. در این آموزش اصول اولیه سیستم مدیریت پایگاه داده یا DBMS مانند معماری آن، مدل های داده، طرحواره داده ها، استقلال داده ها، مدل E-R، مدل رابطه، طراحی بانک اطلاعاتی رابطه ای، و ذخیره سازی و ساختار پرونده و موارد دیگر را می آموزیم.
درر جلسه گذشته به آشنایی با Hashing در سیستم مدیریت پایگاه داده ( DBMS ) پرداختیم؛ برای یک ساختار بزرگ پایگاه داده؛ جستجو برای یافتن تمام مقادیر index از طریق تمام سطح آن و سپس رسیدن به بلوک داده مقصد برای بازیابی اطلاعات مورد نظر؛ تقریباً کار خیلی خیلی سختی است. اما دست ما آنچنان هم خالی نیست! Hashing یک تکنیک مؤثر برای محاسبه محل مستقیم رکورد داده بر روی دیسک بدون استفاده از ساختار index است.
این جلسه را به آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) اختصاص داده ایم.
Transaction را می توان به عنوان گروهی از وظایف (tasks) تعریف کرد. یک وظیفه یا task واحد حداقل واحد پردازش است که نمی تواند بیشتر از آن چه هست تقسیم شود.
بیایید با یک مثال ساده، Transaction را درک کنیم؛ فرض کنید یک کارمند بانک مبلغ ۵۰۰ تومان را از حساب A به حساب B منتقل کند. این معامله بسیار ساده و کوچک شامل چندین کار سطح پایین است.
A’s Account
1 2 3 4 5 | Open_Account(A) Old_Balance = A.balance New_Balance = Old_Balance - 500 A.balance = New_Balance Close_Account(A) |
B’s Account
1 2 3 4 5 | Open_Account(B) Old_Balance = B.balance New_Balance = Old_Balance + 500 B.balance = New_Balance Close_Account(B) |
به عنوان نخستین موضوع در ” آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) ” بیایید با ACDI آشنا شویم و بدانیم که ACDI چیست و از چه واژه هایی ساخته شده است.
می توان به زبانی دیگر یک transaction را یک واحد کوچک از یک برنامه در نظر گرفت که ممکن است وظایف یا tasks های سطح پایینی را دربر بگیرد. یک transaction در یک سیستم پایگاه داده باید شامل ظرفیت اتمی Atomicity، ثبات Consistency، جداسازی Isolation و دوام و ماندگاری Durability باشد تا از سلامت و کامل بودن و یکپارچه بودن داده ها در آن مطمئن شد.
موضوع بعدی که در آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) آن را بررسی می کنیم؛ Serializability یا قابلیت تسلسل است.
هنگامی که transaction های متعددی توسط یک سیستم عامل در یک محیط چند برنامه ریزی انجام می شود، این امکان وجود دارد که دستورالعمل های یک transaction با برخی transaction های دیگر در هم تنیده شود.
در یک محیط که در آن چندین transaction حاکم است؛ Serial Schedule ها به عنوان معیار در نظر گرفته می شوند. دنباله اجرای یک دستورالعمل در یک transaction قابل تغییر نیست، اما دو transactions می توانند دستورالعمل های خود را به روشی تصادفی اجرا کنند. اگر دو transactions مستقل از یکدیگر باشند و در بخشهای مختلفی از داده ها کار کنند، این اجرا هیچ ضرری ندارد. اما اگر این دو transactions بر روی داده های یکسان کار کنند، نتایج ممکن است متفاوت باشد. این نتیجه متغیر ممکن است پایگاه داده را به وضعیت ناسازگار برساند.
برای برطرف کردن این مشکل، اگر transactions به صورت سریالی serializable باشد یا بین آن ها رابطه معادل سازی و تعادل برقرار باشد؛ آنگاه ما اجزای اجرای، اجرای parallel execution یا اجرای موازی را می دهیم.
در ادامه آشنایی با Transaction در سیستم مدیریت پایگاه داده بیایید برنامه معادل سازی یا Equivalence Schedules را بشناسیم.
یک برنامه معادل سازی می تواند شامل موارد زیر باشد.
اگر دو schedule بعد از اجرا نتیجه یکسانی داشته باشند ، به آنها Result Equivalence می گویند. آنها ممکن است برای برخی از ارزش ها و نتایج متفاوت برای مجموعه ای دیگر از مقادیر نتیجه مشابه داشته باشند. به همین دلیل این معادل سازی آن ها معمولاً قابل توجه تلقی نمی شود.
اگر transactions در هر دو schedules ، اقدامات مشابه را با روشی مشابه انجام دهند، دو برنامه می توانند برابر باشند.
برای مثال :
در صورت داشتن ویژگی های زیر، دو schedules متناقض محسوب می شوند.
گفته می شود دو schedulesکه دارای چندین transactions با عملیات متضاد هستند، conflict equivalent (معادل تعارض) نامیده می شوند اگر و فقط اگر:
schedules های View equivalent در حقیقت view serializable هستند و schedules های conflict equivalent در حقیقت conflict serializable هستند. همه schedules های conflict serializable نیز می توانند view serializable محسوب شوند.
و به عنوان آخرین موضوع در آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) بیایید با States ها یا حالات در Transaction ها آشنا شویم.
یک transaction در پایگاه داده در یکی از استیت های زیر قرار بگیرد:
در این جلسه مفصلاً به آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) پرداختیم؛ Transaction را می توان به عنوان گروهی از وظایف (tasks) تعریف کرد. یک وظیفه یا task واحد حداقل واحد پردازش است که نمی تواند بیشتر از آن چه هست تقسیم شود. می توان به زبانی دیگر یک transaction را یک واحد کوچک از یک برنامه در نظر گرفت که ممکن است وظایف یا tasks های سطح پایینی را دربر بگیرد. یک transaction در یک سیستم پایگاه داده باید شامل ظرفیت اتمی Atomicity، ثبات Consistency، جداسازی Isolation و دوام و ماندگاری Durability باشد تا از سلامت و کامل بودن و یکپارچه بودن داده ها در آن مطمئن شد.
در جلسه بعدی قرار است شما را با مفهوم Concurrency Control یا کنترل هم زمانی در سیستم مدیریت پایگاه داده آشنا نماییم.
با پی وی لرن همراه باشید.