دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۷
  • اردیبهشت

جلسه ۲۱ : موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

  • دسته‌بندی‌ها :
جلسه ۲۱ : موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )
    • جزئیات
    • نوع محتواآموزشی

      سلام به همه پی وی لرنی های عزیز!
      به دوره آموزش دوره آموزش سیستم مدیریت پایگاه داده DBMS خوش آمدید.
      Database Management System یا سیستم مدیریت پایگاه داده که به صورت خلاصه به آن DBMS می گویند؛ به فناوری ذخیره و بازیابی اطلاعات کاربران با حداکثر کارآیی در کنار اقدامات امنیتی مناسب اشاره دارد. در این آموزش اصول اولیه سیستم مدیریت پایگاه داده یا DBMS مانند معماری آن، مدل های داده، طرحواره داده ها، استقلال داده ها، مدل E-R، مدل رابطه، طراحی بانک اطلاعاتی رابطه ای، و ذخیره سازی و ساختار پرونده و موارد دیگر را می آموزیم.
      در جلسه گذشته به آشنایی با Transaction در سیستم مدیریت پایگاه داده ( DBMS ) پرداختیم؛ Transaction را می توان به عنوان گروهی از وظایف (tasks) تعریف کرد. یک وظیفه یا task واحد حداقل واحد پردازش است که نمی تواند بیشتر از آن چه هست تقسیم شود. می توان به زبانی دیگر یک transaction را یک واحد کوچک از یک برنامه در نظر گرفت که ممکن است وظایف یا tasks های سطح پایینی را دربر بگیرد. یک transaction در یک سیستم پایگاه داده باید شامل ظرفیت اتمی Atomicity، ثبات Consistency، جداسازی Isolation و دوام و ماندگاری Durability باشد تا از سلامت و کامل بودن و یکپارچه بودن داده ها در آن مطمئن شد.
      در این جلسه به بررسی موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS ) می پردازیم.

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      در یک محیط چند برنامه ای در آن چندین transactions به طور همزمان قابل اجرا هستند، کنترل همزمانی transactions ها بسیار مهم است. این جاست که از پروتکل های کنترل همزمانی یا Concurrency Control را برای اطمینان از ظرفیت اتمی atomicity و جداسازی isolation و قابلیت تسلسل serializability  برای transactions های همزمان استفاده می کنیم. پروتکل های کنترل همزمان می توانند به طور گسترده به دو دسته تقسیم شوند.

      • Lock based protocols پروتکل های مبتنی بر قفل
      • Time stamp based protocols پروتکل های مبتنی بر نشان زمان

      Lock-based Protocols – پروتکل های مبتنی بر قفل

      سیستم های پایگاه داده مجهز به پروتکل های مبتنی بر قفل از مکانیسمی استفاده می کنند که با استفاده از آن هر transactions ای قادر به خواندن یا نوشتن داده ها نیست تا زمانی که قفل مناسبی را روی آن بدست آورد قفل ها از دو نوع هستن:

      • Binary Locks (قفل های باینری) – این قفل می تواند در خصوص داده به صورت عمل کند : یا قفل باشد و یا قفل نباشد.
      • Shared/exclusive – این قفل ها بر اساس مکانیزمی که دارند از سایر قفل ها متمایز می شوند. اگر قفل در یک مورد داده برای انجام یک transactions نوشتن بدست آید، یک قفل اختصاصی است و مجاز به نوشتن بیش از یک transactions در همان مورد داده است . پایگاه داده را به حالت ناسازگار سوق می دهد. قفل خوانده شده به اشتراک گذاشته می شود زیرا هیچ مقدار داده ای تغییر نمی کند.

      چهار نوع پروتکل قفل در دسترس است:

      Simplistic Lock Protocol

      پروتکل های مبتنی بر قفل ساده اجازه می دهد تا transactions قبل از انجام کار نوشتن، قفل را روی هر شیء بدست آورند. transactions ممکن است بعد از انجام عملیات “نوشتن”، قفل داده را باز کنند.

      Pre-claiming Lock Protocol

      Pre-claiming Lock Protocol عملیات های خود را ارزیابی می نمایند و لیستی از موارد داده را که نیاز به قفل دارند، ایجاد می کنند. قبل از شروع اجرای این دستور، transactions از قبل سیستم را برای کلیه قفله ای مورد نیاز خود درخواست می کند. اگر به همه آنها قفل ها اعطا شود ، transactions تمام قفل ها را با تمام شدن کار خود آزاد می کند. اما اگر به همه آن ها قفل اعطا نشود، transactions برگشت می یابد و منتظر می ماند تا تمام قفل ها اعطا شوند.

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      Two-Phase Locking 2PL

      این پروتکل قفل کردن مرحله اجرای یک transactions را به سه قسمت تقسیم می کند. در قسمت اول ، هنگامی که transactions شروع به کار کرد ، به دنبال اجازه قفل های مورد نیاز خود می باشد. بخش دوم جایی است که transactions تمام قفل ها را بدست می آورد. به محض اینکه transactions قفل اول خود را آزاد کرد، مرحله سوم شروع می شود. در این مرحله، transaction نمی تواند قفل جدیدی را طلب کند و فقط قفل های اکتسابی را آزاد می کند.

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      این پروتکل دو مرحله دارد، یکی در حال رشد است یعنی جایی که همه قفل ها توسط transaction به دست می آیند. مرحله دوم در حال کاهش است یعنی جایی که قفل های transaction آزاد می شوند.

      Strict Two-Phase Locking

      مرحله اول Strict-2PL همان ۲PL است. پس از دستیابی به تمام قفل ها در مرحله اول، transactions همچنان به صورت عادی اجرا می شود. اما برخلاف ۲PL ، Strict-2PL پس از استفاده از آن، قفل را رها نمی کند. Strict-2PL تمام قفل ها را تا زمان تعهد نگه می دارد و همه قفل ها را به طور همزمان آزاد می کند.

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )

      پروتکل های مبتنی بر Timestamp

      متداول ترین پروتکل همزمانی پروتکل مبتنی بر timestamp است. این پروتکل از system time یا logical counter به عنوان زمان سنج استفاده می کند.

      پروتکل های مبتنی بر قفل Lock-based protocols، ترتیب بین جفت های متضاد را در بین transactions در زمان اجرای انجام می دهند در حالی که پروتکل های مبتنی بر Timestamp به محض ایجاد یک transactions شروع به کار می کنند.

      هر transaction دارای یک بازه زمانی همراه است و ثبت ها با توجه به سن transaction تعیین می شود. transaction ایجاد شده در ساعت ۰۰۰۲ از سایر transaction های متعاقب آن قدیمی تر خواهد بود. به عنوان مثال، هر transaction ‘y’ که وارد سیستم در ۰۰۰۴ می شود دو ثانیه جدیدتر محسوب می شود. ترتیب اولویت برای transaction قدیمی تر است.

      بعلاوه ، به هر مورد داده جدیدترین نشانگر زمان خواندن و نوشتن داده می شود. این به سیستم اجازه می دهد تا آخرین عملکرد “read and write” را در مورد داده انجام دهد.

      پروتکل ترتیب Timestamp

      پروتکل ترتیب Timestamp، مرتب سازی ، قابلیت اطمینان از serializability بودن transactions ها را در عملیات خواندن و نوشتن متناقض آنها تضمین می کند. این وظیفه سیستم پروتکل است که جفت متضاد task ها باید مطابق مقادیر زمانی transactions انجام شود.

      • علامت زمانی معامله Ti به عنوان TS (Ti) مشخص می شود.
      • خواندن نشان زمان از مورد داده X توسط (R-timestamp (X مشخص می شود.
      • نوشتن نشان زمان از داده های X توسط (W-timestamp (X مشخص می شود.

      پروتکل ثبت ترتیب Timestamp به شرح زیر عمل می کند:

      • اگر یک معامله Ti عملیاتی را بخواند (X):
        – اگر (TS (Ti) <W-timestamp (X
        – عملیات رد می شود
        – اگر (TS (Ti)> = W-timestamp (X
        – عملیات انجام می شود
        – همه هم زمانی های آیتم داده به روز می شود
      • اگر یک transaction Ti issues عملیات نوشتن (X) را صادر کند:
        – اگر (TS (Ti) <R-timestamp (X
        – عملیات رد می شود
        اگر (TS (Ti) <W-timestamp (X
        – عملیات رد می شود و Ti برگشت داده می شود.
        – در غیر این صورت عملیات اجرا می شود.

      قانون Thomas’ Write

      این قانون در صورت بیان (TS (Ti) <W-timestamp (X، پس از آن عملیات رد می شود و Ti به عقب برگردانده می شود.

      قوانین ترتیب Time-stamp را می توان اصلاح کرد تا نمای schedule مربوط به serializable شود.
      در این قانون به جای این که Ti را به عقب برگردد، عملیات “write” خود نادیده گرفته می شود.

      سخن پایانی

      در این جلسه به بررسی موضوع هم زمانی در سیستم مدیریت پایگاه داده پرداختیم؛ از پروتکل های کنترل همزمانی یا Concurrency Control را برای اطمینان از ظرفیت اتمی atomicity و جداسازی isolation و قابلیت تسلسل serializability  برای transactions های همزمان استفاده می کنیم.
      در جلسه بعدی می خواهیم به کار با Deadlock در DBMS بپردازیم.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۲۱ : موضوع هم زمانی در سیستم مدیریت پایگاه داده ( DBMS )
      به اشتراک بگذارید