lecture7 transactionmanagement concurrencycontrol

27
: لمعطياتيم قواعد ا تصملمادة اDBAR : تزامن الم والتحكممناقلت إدارة اللسابعفصل ا الTransaction Management and Concurrency Control :لمفتاحيةتاكلما ال مناقلةtransaction لمعطياتعدة ا ، قاdatabase د معطياتعععععععم إدارة قواع ، نظاDBMS لمعطيات ، صحة اdata correctness لمعطيات مل ا ، تكاdata integration ، لمعطياتق ا عساّ اتdata consistency عةّكتلي ، الatomicity ارية ، السعتمرdurability ، لتسعاق اconsistency عزل ، الIsolation غييراتأكيعد الت ، تCOMMIT عن ع ع ، التراجعغييرات التROLLBACK مناقلت ال ، سعععجلlog record تزامعععن الم ، التحكعععمconcurrency control تزامعععن ، التنفيعععذ المconcurrent execution مجدول ، الscheduled قفعععلت الرزميا ، خواlock algorithms الزمنيعععةلختاموكولت ا ، بروتtimestamp-based protocols ، قفعععل مشتركshared lock ، قفعععل حصعععريexclusive lock على مرحلتينقفال التوكول ، بروtwo-phase locking protocol ، متبادل القفال الdead lock زمنععي ، ختععمtimestamp افععيم التع ، نظاrecovery system لمعطياتاطععي لنسععخ الحتي ، الdata backup كتابععة سععجلتوكول ، برورة ، سعععجلت مناقلت مكرً ت أولمناقل الMultiplexing Log عععدت قواع ، خازنالمعطيات اMemory Buffers لمعطياتر قواعد اختباط ا ، نقاCheckpoints . : ملخصنة فيمازامية الم إدارة عملتم وكيف تمناقلتى الرف عل التعفصلتم في هذا ال يلمعطيات.ارة قواعد اها في أنظمة إد بين: أهداف تعليميةلي: على ما يفصللب في هذا اللطا يتعرف اي خصائصها؟ناقلة وما ه هي الم مالمعطيات؟قلت قواعد ارة مناتم إدا كيف ت1

Upload: guest800d4

Post on 15-Jul-2015

3.621 views

Category:

Technology


37 download

TRANSCRIPT

Page 1: Lecture7 Transactionmanagement Concurrencycontrol

المعطيات: قواعد تصميم DBARالمادة

: المتزامن والتحكم المناقلت إدارة السابع الفصل

Transaction Management and Concurrency Control

: المفتاحية الكلمات

، نظام إدارة قواعععععععععد معطياتdatabase، قاعدة المعطيات transactionمناقلة

DBMS صحة المعطيات ،data correctness تكامل المعطيات ،data integration،

،durability، السعتمرارية atomicity، الكتليّعة data consistencyاتّعساق المعطيات

، التراجعع ععنCOMMIT، تأكيعد التغييرات Isolation، العزل consistencyالتسعاق

log، سععععجل المناقلت ROLLBACKالتغييرات recordالتحكععععم المتزامععععن ،

concurrency control التنفيعععذ المتزامعععن ،concurrent executionالمجدول ،

scheduled خوارزميات القفعععل ،lock algorithmsبروتوكولت الختام الزمنيعععة ،

timestamp-based protocols قفعععل مشترك ،shared lockقفعععل حصعععري ،

exclusive lock بروتوكول القفال على مرحلتين ،two-phase locking protocol،

deadالقفال المتبادل lock ختععم زمنععي ،timestamp نظام التعافععي ،recovery

system النسعععخ الحتياطعععي للمعطيات ،data backupبروتوكول كتابععة سععجل ،

Multiplexingالمناقلت أولً، سععععجلت مناقلت مكررة Logخازنات قواعععععد ،

.Checkpoints، نقاط اختبار قواعد المعطيات Memory Buffersالمعطيات

ملخص:

يتم في هذا الفصل التعرف على المناقلت وكيف تتم إدارة عملية المزامنة فيما

بينها في أنظمة إدارة قواعد المعطيات.

: تعليمية أهداف

يتعرف الطالب في هذا الفصل على ما يلي:

ما هي المناقلة وما هي خصائصها؟ •

كيف تتم إدارة مناقلت قواعد المعطيات؟ •

1

Page 2: Lecture7 Transactionmanagement Concurrencycontrol

ما هو التحكم المتزامن وما هو الدور الذي يلعبه في تحقيق تكامل•

قواعد المعطيات؟

ما هي طرائق القفل وكيف يعمل؟ •

كيف تتم إدارة التعافي في صيانة قواعد المعطيات؟•

2

Page 3: Lecture7 Transactionmanagement Concurrencycontrol

مقدمة:.1 بفرض أننعا اسعتطعنا تصعميم قاعدة بيانات نظاميعة باسعتخدام الدوات والمنهجيات

التي استعرضناها في المحاضرات السابقة، ثم قمنا بتنفيذ هذا التصميم باستخدام

نظام إدارة قواععععد بيانات معععا. تصعععبح هذه القاعدة بععععد القيام بجميعععع عمليات

.operationalالصيانة جاهزة للعمل

تؤدي هذه الجاهزية إلى ظهور العديد من المور التي ينبغي أخذها بعين العتبار

والتعي تتناقعض أحيانا معع الغايعة الهعم فعي عمعل قواععد البيانات وهعي المحافظعة

consistentعلى حالة متوافقعة أو متسعقة لقاعدة البيانات stateأي ضمان صعحة

وسلمة وتكامل البيانات المخزنة.

من هذه المور:

معالجععة الخطاء المختلفععة التععي يمكععن أن تحصععل أثناء العمععل مثععل•

Hardwareأعطال التجهيزات Failureوأعطال النظععععم البرمجيععععة

Software Failure.

التنفيذ المتزامن لمجموعة من العمليات على البيانات.•

:Transactionsالمناقلت .21 : المناقلة. تعريف

مجموععة معن التعليمات البرمجيعة التعي يتعم تنفيذهعا سعويةً (بشكعلالمناقلة هعي

متكامعل)، يمكعن لهذه التعليمات أن تقوم بالتعديعل أو الوصعول إلى مجموععة معن

المعطيات، ويجري بواسععطتها نقععل قاعدة البيانات مععن حالة متوافقععة إلى حالة

متوافقة أخرى.

تلغغغى تعتععبر المناقلة وحدة عمععل منطقيععة، أن أو بالكامغغل تتغغم أن إمغغا

. بالتالي فالحعل الوسعيط ل يمكعن أن يعرّف مناقلة أو أن يكون مقبولً.بالكامغل

consistentوالمناقلة الناجحعة هعي التعي تنقعل قاعدة المعطيات معن حالة متّعسقة

إلى حالة متّععسقة أخرى، - يقال عععن قاعدة المعطيات بأنهععا متّععسقة إذا مععا كانععت

تحقععق كافععة شروط تكامععل المعطيات- بالتالي، ولضمان الحفاظ على اتّععساق

قاعدة المعطيات ينبغي على المناقلة أن تنطلق اعتمادا على حالة أوليّة متّسقة.

3

Page 4: Lecture7 Transactionmanagement Concurrencycontrol

مستودع للبضائع يتعامل مع زبائن وباعة.مثال:

نلحظ من المخطط أننا نقوم بتخزين حساب الزبون في جدول "زبون" بحيث تتم

زيادة ذلك الحقل كلما تمت عملية إضافة لذلك الحساب، كما يتم إنقاصه عند كل

عمليععة دفععع؛ ويعععبر الجدول "سععجل معاملت الزبون" عععن كافععة عمليات الشراء

لكافعةLOGوعمليات البيعع التعي قام بهعا زبون معيعن، فهعو إذا عبارة ععن سعجل

مناقلت الزبون.

سعنناقش فيمعا يلي سعير أحداث (سعيناريو) معيعن لكعي نفهعم ماذا تعنعي المناقلة،

بحيعث نفترض أن الزبون يقوم بشراء منتعج معيعن ثعم يدفعع ثمعن ذلك المنتعج معن

حسابه. يمكن التعبير عن هذه المناقلة كما يلي:

تخزين فاتورة جديدة للزبون؛•

تخزين طلبية جديدة للبائع؛•

إنقاص كمية المواد المتوافرة في المستودع بما يعادل كمية الطلب؛•

تعديل رصيد الزبون؛•

إضافة سطر جديد إلى سجل المعاملت؛•

ينبغي تأكيد التغيرات.•

4

Page 5: Lecture7 Transactionmanagement Concurrencycontrol

إذا تتكون المناقلة في المثال السابق من مجموعة من عبارات الضافة والتحديث.

لنفترض أن نظام إدارة قواععد المعطيات قعد نفعذ العمليات الثلثعة الولى فقعط و

أن التيار الكهربائي قد انقطع أثناء تنفيذ العملية الرابعة مثلً (أي عند تعديل رصيد

الزبون)، بالتالي نكون قد قمنا بإضافة فاتورة وطلبية، كما تم إنقاص كمية المواد

الموجودة فععي المسععتودع ولكععن دون تحديععث رصععيد الزبون أو تسععجيل العمليات

التععي تمععت. بالتالي فإذا لم يكععن لنظام إدارة قواعععد المعطيات نظام اسععترجاع

مناسب فإن قاعدة المعطيات ستصبح غير متّسقة وغير متماسكة.

تدعععم العديععد مععن أنواع أنظمععة إدارة قواعععد المعطيات إدارة مناسععبة للمناقلت،

هذا النوعMS Access في حين ل يدعم DB2 أو SQL Server أو Oracleكنظام

من الدارة.

٢ : المناقلت. خصائص

، وهي:ACID propertiesتتميز المناقلت بأربعة خصائص رئيسية تدعى

: Atomicityالكتليّة

وهعي تعنعي وجوب تنفيعذ كافعة أجزاء المناقلة -أي طلبات قاعدة المعطيات- ككتلة

واحدة، فإذا لم يتعم تنفيذهعا بالكامعل فينبغعي التراجعع عنهعا بالكامعل، -أو بطريقعة

أخرى- ينبغعي التعامعل معع المناقلة على أنهعا كتلة عمعل منطقيعة وحيدة وغيعر قابلة

للتجزئة.

التوافق أو : Consistencyالتساق

يحافظ تنفيذ المناقلة الوحيدة (أي عندما ل توجد مناقلة أخرى متزامنة معها) على

إبقاء قاعدة المعطيات صعحيحة (متسعقة، متماسعكة، أو متناغمعة). يوضعح الشكعل

التالي ظاهرة تزامن المناقلت:

5

Page 6: Lecture7 Transactionmanagement Concurrencycontrol

:Isolationالعزل

يمكن أن يسمح النظام بتنفيذ عدة مناقلت تنفيذا متزامنا، وبمعزل عن بعضها. أي

أنعه ل يمكعن اسعتخدام معطيات معن قبعل مناقلة معا إذا معا كان هناك مناقلة أخرى

تستخدم تلك المعطيات.

:Durabilityالستمرارية

وهعي تعنعي اسعتمرارية اتّعساق قاعدة المعطيات، أي أن قاعدة المعطيات ينبغعي

أن تنتقععل بعععد تنفيععذ المناقلة مععن حالة متّععسقة إلى حالة متّععسقة أخرى ل يمكععن

فقدانهععا حتععى ولو فشععل النظام ككععل. أي أن التغييرات الناتجععة تصععبح جزءا مععن

القاعدة.

مثال:

إلى حسعابA ليرة معن حسعاب ٥٠٠لتكعن لدينعا المناقلة التعي تسعمح بتحويعل مبلغ

B:1. Read(A)2. A := A - 5003. Write(A)4. Read(B)5. B := B + 5006. Write(B)

يجب أن يحقق التنفيذ الخصائص التالية:

6

Page 7: Lecture7 Transactionmanagement Concurrencycontrol

الكتليعة: يتعم تنفيعذ جميعع العمليات المتضمنعة فعي المناقلة•

ككتلة واحدة فإذا حصل خطأ أثناء التنفيذ في مرحلة ما،

ل يتم تفعيل العمليات التي أجريت قبل هذه المرحلة.

,Aالتسععاق: ل يتغيععر مجموع الحسععابين المصععرفيين • B

بعد تنفيذ المناقلة.

العزل: عنععععد السععععماح بتنفيععععذ مناقلة أخرى تحتاج إلى•

. فإن هذه٦ و ٣المعطيات المعدلة بيعععععن الخطوتيعععععن

أقل بعAالمناقلة لن تتعامل مع المعطيات النتقالية (أي

على حاله).B و ٥٠٠

السعتمرارية: التعديلت الناتجعة معن تنفيعذ المناقلة تبقعى•

حتى ولو تعرضت القاعدة إلى أعطال.

لغة. ٣ باستخدام المناقلت :SQLإدارة

المناقلت من خلل تعليمتين أساسيتين هما:SQLتدعم لغة التغييرات : COMMITتأكيد

عندما يتم تنفيذ هذه التعليمة فإنه يتم تخزين كافة التغيرات التي تمت على قاعدة

المعطيات. التغييرات عن : ROLLBACKالتراجع

عندمعا يتعم تنفيعذ هذه التعليمعة فإنعه يتعم التراجعع ععن كافعة التغيرات التعي حصعلت

على قاعدة المعطيات، والعودة إلى آخععر حالة متّععسقة تععم الوصععول إليهععا (آخععر

commit .(

المناقلت. ٤ : Log Recordسجل تسعتخدم أنظمعة إدارة قواععد المعطيات سعجل المناقلت لكعي تتبعع مسعير كافعة

العمليات التعي تقوم بهعا المناقلت وتغيّعر فيهعا حالة قاعدة المعطيات، ممعا يسعاعد

. إذ يمكن أنROLLBACKفي استرجاع حالت متّسقة سابقة باستخدام العبارة

7

Page 8: Lecture7 Transactionmanagement Concurrencycontrol

تؤثر بعض المشاكل على اتّساق قاعدة المعطيات كفشل غير متوقع في النظام

أو فشل في الشبكة أو في القرص الصلب.

كما يمكن أن تقوم تلك النظمة بتأكيد بعض المناقلت التي تم تأكيدها باستخدام

ولكعن لم يتعم بععد كتابتهعا إلى القرص الصعلب، كمعا فعي نظامCOMMITالتعليمعة

Oracle.

٤.١ : السجل محتويات

يحتوي السجل على المعلومات التالية:

إشارة إلى بداية المناقلة؛•

تفصيل حول كل طلب قاعدة معطيات محتوى في المناقلة؛•

نوع العملية المنفذة (إضافة، حذف، تعديل)؛•

اسم الغرض المتأثر بتلك العملية (الجدول)؛•

القيم السابقة واللحقة للحقول المتغيرة؛•

مؤشرات إلى القيم السابقة واللحقة، أي مداخل سجلت المناقلة؛•

إشارة إلى نهاية المناقلة.•

٤.٢ : السجل خصائص

نلحظ مما سبق أن بناء واستخدام السجل يمكن أن يزيد من العبء المفروض

على نظام إدارة قواعد المعطيات، ولكن يمكن تخطي ذلك مقارنةً بالمنفعة التي

يمكن الحصول عليها منه؛

يعتعبر السعجل بحعد ذاتعه، قاعدة معطيات يتعم إدارتهعا معن قبعل نظام إدارة قواععد

المعطيات كأيععة قاعدة معطيات أخرى، وهععو معرّض بالتالي إلى كافععة الخطار

التععي تتعرض لهععا قواعععد المعطيات كفشععل القرص الصععلب أو مشاكععل تتعلق

بالمساحة وامتلء سعة القرص.

على بععضROLLBACKيقوم نظام إدارة قواععد المعطيات باسعتدعاء تعليمعة

أجزاء السجل أي على المناقلت غير المنتهية.

فيمعا يلي عرض للسعجل الذي يععبر ععن المناقلة التعي تعم فيهعا شراء مادتيعن معن

منتج معين وتعديل لحساب الزبون.

8

Page 9: Lecture7 Transactionmanagement Concurrencycontrol

المتزامن .3 :Concurrency Controlالتحكم١: المتزامن. التحكم تعريف

عن الدارة والشراف على التنفيعذConcurrency Controlيعبر التحكعم المتزامن

Multiالمتزامععن للمناقلت فععي نظام إدارة قواعععد معطيات متعدد المسععتخدمين

User DBMS .

يعتعبر التحكعم المتزامعن مهما جدا وخاصعة فعي بيئة قاعدة معطيات تشاركيعة بيعن

عدّة مستخدمين وذلك لضمان تكامل واتّساق المعطيات.

٢ : للمناقلت. المتزامن التنفيذ مشاكل

هناك ثلثة أنواع رئيسية من المشاكل التي يمكن أن تحدث نتيجةً للتنفيذ المتزامن

للمناقلت وهي:

Lostمشكلة التعديلت الضائعععععة updates مشكلة التعديلت غيععععر المؤكّدة و

Uncommitted updates مشكلة القراءة المتسخة وDirty read .

الضائعة ٢.١ التعديلت : Lost updatesمشكلة

تحصععل مشكلة التعديلت الضائعععة عندمععا تقوم مناقلتان بإجراء مجموعععة مععن

التعديلت على نفس الحقل في قاعدة المعطيات بشكل متزامن.

مثال:

لنفترض وجود المناقلتين التاليتين:

T1 وحدة من منتج معين؛100 تقوم بشراء

T2 وحدة من نفس المنتج. 30 تقوم ببيع

9

Page 10: Lecture7 Transactionmanagement Concurrencycontrol

وحدة مععن ذلك المنتععج حاليا. يوضععح الشكععل35وأن جدول المنتععج يحتوي على

التالي التنفيذ المتسلسل للمناقلتين:

ولكن لنفترض أن التنفيذ السابق للمناقلتين قد تم كما يلي:

/ معن الجدول السعابق قعد حصعلت مشكلة تتعلق5نلحعظ أنعه فعي الخطوة رقعم /

وكانت النتيجة ضياع في التعديلت. T2 و T1بالتزامن بين المناقلتين

المؤكّدة ٢.٢ غير التعديلت : Uncommited updatesمشكلة

تحصعل ظاهرة التعديلت غيعر المؤكّدة عندمعا تُنفَعذ مناقلتان بشكعل متزامعن بحيعث

تقوم الولى بالتراجعع ععن التنفيعذ بععد أن تقوم الثانيعة بقراءة المعطيات المكتوبعة

من قبل الولى، مما يهدد خاصية العزل التي يجب أن تتحقق في المناقلت.

مثال:

سنطبق نفس المثال السابق لنشرح من خلله كيف يمكن أن تقع هذه المشكلة:

T1 وحدة من منتج معين؛ 100 تقوم بشراء

10

كأنالمناقلة

T1لم تقمبأي تعديل

Page 11: Lecture7 Transactionmanagement Concurrencycontrol

T2 وحدة من نفس المنتج.30 تقوم ببيع

وحدة مععن ذلك المنتععج حاليا. يوضععح الشكععل35وأن جدول المنتععج يحتوي على

التالي التنفيذ المتسلسل للمناقلتين:

ولكن لنفترض أن التنفيذ السابق للمناقلتين قد تم كما يلي:

/ معن الجدول السعابق قعد حصعلت مشكلة تتعلق4لحعظ أنعه فعي الخطوة رقعم /

وكانت النتيجة قراءة معطيات غير مؤكّدة. T2 و T1بالتزامن بين المناقلتين

المتسخة ٢.٣ القراءة :Dirty readمشكلة

dirtyتحصعععل ظاهرة القراءة المتسعععخة readعندمعععا تقوم مناقلة معععا بقراءة

مجموععة معطيات أثناء قيام مناقلت أخرى بتحديعث تلك المعطيات، وبالتالي فإن

القراءة يمكن أن تحصل قبل أو بعد التغيير.

مثال:

11

كأنالمناقلة

T1أكدتتعديلتها

Page 12: Lecture7 Transactionmanagement Concurrencycontrol

تقوم بحسعععاب مجموع كميات كافعععة المنتجات الموجودةT1لنفترض أن المناقلة

بنفعس الوقعت بتحديعث كميعة منتجيعنT2فعي الجدول "منتعج"، بينمعا تقوم المناقلة

محددين من ذلك الجدول.

لنفترض الن وجود القيم التالية في جدول "منتج":

، ولكعن يوجعد مناقلتان92نلحعظ معن الجدول أن المجموع قبعل التعديعل يسعاوي

وتنقعص46 وحدات إلى المنتعج 10تحدّثان فعي المعطيات بحيعث تضيعف إحداهمعا

، فبالتالي ينبغي أن يكون المجموع مساويا58 وحدات أيضا من المنتج 10الخرى

أيضا.92للقيمة

لنفترض الن السيناريو التالي:

التععي تقومT1/ مععن الجدول السععابق أن المناقلة 7نلحععظ فععي الخطوة رقععم /

قبعل التحديعث، ثعم معن58بتطعبيق التابعع التجميععي قعد قرأت قيمعة كميعة المنتعج

معن58/ تتعم عمليعة تحديعث قيمعة المنتعج 11/ إلى الخطوة رقعم /8الخطوة رقعم /

وتخزيعن القيمعة الجديدة، ممعا يؤدي إلى حالة عدم اتّعساق فعيT2قبعل المناقلة

12

Page 13: Lecture7 Transactionmanagement Concurrencycontrol

–أي نتيجعة تنفيعذ التابعع التجميععي-T1قاعدة المعطيات، لن نتيجعة تنفيعذ المناقلة

مخالفة لمحتويات قاعدة المعطيات الفعلية.

: Scheduleالمجدول. ٣ تظهعر مشكلة التضارب بيعن المناقلت بوضوح عندمعا تقوم عدّة مناقلت باسعتخدام

نفعس المعطيات، عندئذٍ ينبغعي حعل تلك المشكلة معن خلل تحديعد ترتيعب معيعن

يسعمح لكعل المناقلت باسعتخدام المعطيات بشكعل سعليم. ويوضعح الشكعل التالي

كيف يمكن أن يحدث التضارب في المعطيات فيما بين المناقلت:

يدعى الترتيب المنطقي الذي يتم فيه تنفيذ تعليمات المناقلت المتزامنة بالمجدول

(الترتيعب الزمنعي للتنفيعذ)، ويجعب أن يحتوي على جميعع التعليمات الموجودة فعي

جميعع المناقلت، وبنفعس الترتيعب الذي تظهعر فيعه هذه التعليمات فعي كعل مناقلة

على حدا.

:أمثلة

،B إلى الحسعاب A$ معن الحسعاب ٥٠ والتعي تقوم بتحويعل T1لتكعن لدينعا المناقلة

.B إلى الحساب A% من رصيد الحساب ١٠ تقوم بتحويل T2المناقلة

:serial scheduleنسمي المجدول التالي بالتسلسلي

13

Page 14: Lecture7 Transactionmanagement Concurrencycontrol

أما المجدول التالي فهو ليس تسلسليا ولكنه يكافئ السابق، حيث يحافظ الثنان

:A+Bعلى

14

Page 15: Lecture7 Transactionmanagement Concurrencycontrol

:A+Bأما المجدول التالي فل يحافظ على المجموع

يعالج نظام إدارة قواعععد المعطيات تلك المشكلة مععن خلل برنامععج خاص يقوم

بإدارة ترتيععب تنفيععذ المناقلت المتزامنععة بحيععث يضمععن تحقععق تسععلسل وعزل

المناقلت وبالتالي تجانعععععععععععس قاعدة البيانات وذلك بالعتماد على خوارزميات

وطرائق خاصة كخوارزميات القفل أو طرائق الختام الزمنية.

:Locksالقفال. ٤ يضمعن القفعل السعتخدام الحصعري للمعطيات معن قبعل مناقلة معينعة، حيعث يمكعن

أن تقوم مناقلة معا بقفعل معطيات معينعة بحيعث تمنعع مناقلت أخرى معن الحصعول

على تلك المعطيات إلى أن يتم تحرير القفل من قبل المناقلة التي وضعته.

تتععم إدارة القفال مععن خلل برنامععج خاص يتولّى منععح القفععل أو اسععترداده مععن

المناقلت. ويمكععععن أن يتععععم القفال على عدّة مسععععتويات: قاعدة المعطيات،

الجدول، الصفحة، السطر، الحقل.

15

Page 16: Lecture7 Transactionmanagement Concurrencycontrol

٤.١: القفال مستويات

يمكععن أن يتععم القفال على عدّة مسععتويات وهععي: قاعدة المعطيات، الجدول،

الصفحة، السطر، الحقل.

المعطيات قاعدة مستوى على : Database Lockingالقفل

يتعم فعي هذا المسعتوى قفعل قاعدة المعطيات ككعل معع كافعة جداولهعا ومنحهعا

لمناقلة معينععة فععي حيععن تمنععع كافععة المناقلت الخرى مععن الولوج إلى قاعدة

المعطيات ريثما يتم تحرير القفل.

يمكعن هنعا أن نسعتنتج عدم فعاليعة هذا النوع معن مسعتويات القفعل فعي نظعم إدارة

قواععد المعطيات متعددة المسعتخدمين وخاصعة إذا معا أخذنعا بعيعن العتبار البطعء

الشديد الذي يمكن أن ينتج كلما ازدادت المناقلت.

يوضح الشكل التالي كيف يتم إجراء القفل على مستوى قاعدة المعطيات:

الجدول مستوى على :Table Lockingالقفل

يتعم فعي هذا المسعتوى قفعل جدول بالكامعل بحيعث ُتمنعع مناقلة معا معن دخول ذلك

الجدول إذا ما كانت هناك مناقلة أخرى تستخدم معطيات منه.

16

Page 17: Lecture7 Transactionmanagement Concurrencycontrol

تبقععى نفععس المشكلة الموجودة فععي المسععتوى السععابق، أي فيمععا إذا كان هناك

العديد من المناقلت التي تحاول ولوج نفس الجدول في آن واحد.

يوضح الشكل التالي كيف يتم إجراء القفل على مستوى الجدول:

الصفحة مستوى على : Page Lockingالقفل

يقصد بالصفحة، الكتلة من القرص. يتم في هذا المستوى قفل الصفحة بالكامل

عندما يتم طلبها من مناقلة قفل معينة.

يعتععبر هذا النوع مععن القفال مناسععبا لبيئة نظععم إدارة قواعععد المعطيات متعددة

المسعتخدمين، ولكعن تتمثعل سعيئاته بأن الصعفحة يمكعن أن تحتوي على العديعد معن

السطر وبالتالي فإن قفل كل الصفحة يمكن أن يؤدي إلى حرمان مناقلت أخرى

من أسطر معينة ل يتم استخدامها من قبل المناقلة التي طلبت القفل.

يوضح الشكل التالي كيف يتم إجراء القفل على مستوى الصفحة:

17

Page 18: Lecture7 Transactionmanagement Concurrencycontrol

السطر مستوى على : Row Lockingالقفل

وهعو أسعلوب أقعل تقييدا معن المسعتويات السعابقة فعي القفعل، بحيعث يسعمح لعدّة

مناقلت بالولوج إلى عدّة أسععطر مختلفععة فععي جدول معيععن حتععى ولو كانععت تلك

السطر في نفس الصفحة.

تعععبرز سعععيئات هذه الطريقعععة معععن خلل العبعععء المتولد نتيجةً لكثرة المعالجعععة

المفروضة على كل سطر من أسطر الجداول.

يوضح الشكل التالي كيف يتم إجراء القفل على مستوى السطر:

: الحقل مستوى على القفل

18

Page 19: Lecture7 Transactionmanagement Concurrencycontrol

وهعو أكثعر أنواع مسعتويات القفعل ملءمعة للبيئة متعددة المسعتخدمين ولكعن -على

الرغععم مععن ذلك- نادرا مععا يتععم اسععتخدام هذه الطريقععة وذلك للعبععء الكععبير جدا

المتولد على الحاسب نتيجةً لتطبيقها.

القفال ٤.٢ : Locks Modesأنماط

الحصري :Exclusive Lockالقفل

Ti، فإن Q) على بيانات X على قفعععل حصعععري (يرمعععز بعععع Tiإذا حصعععلت مناقلة

.Qتستطيع القراءة والكتابة على

المشترك :Shared Lockالقفل

Ti، فإن Q) على بيانات S على قفعععل مشترك (يرمعععز بعععع Tiإذا حصعععلت مناقلة

.Qتستطيع القراءة ول تستطيع الكتابة على

يمنح القفل المشترك على عنصر إلى أية مناقلة تريد قراءة ذلك العنصر حتى ولو

وجد على العنصر قفل مشترك من قبل مناقلة أخرى. بينما يمنح القفل الحصري

على عنصر إلى مناقلة ما، إذا وفقط إذا لم يكن على ذلك العنصر أي قفل من أي

نمط. يعبر الجدول التالي عن ذلك:

٤.٣: القفال مشاكل بعض

اللنهائي Liveالنتظار Lock :أن يطلب حيعث معن الممكعنT1قفلً على

A عمله يقوم بتحريعر T2، وعندمعا ينهعي T2 المحجوز لتنفيعذ المناقلة Aعنصعر مثعل

،T2 التععي طلبععت القفععل عليععه أثناء تنفيععذ T3الذي يقوم النظام بحجزه للمناقلة

ينتظعر بشكعل لT1، ... نلحعظ أن T4وهكذا يمكعن أن يمنعح القفعل بععد ذلك لعع

نهائي للحصول على قفل لن النظام يفضل في كل مرة مناقلة أخرى.

19

Page 20: Lecture7 Transactionmanagement Concurrencycontrol

المتبادل Deadالقفال Lock : وذلك عنععد انتظار مناقلةxعنصععر معلومات

.x، التي بدورها تنتظر عنصر معلومات مقفول من المناقلة yمقفول من مناقلة

مثال:

لتكن لدينا المناقلتان التاليتان:T1 : Lock A; Lock B; ………; UnLock A; UnLock B;T ٢ : Lock B; Lock A; ………; UnLock B; UnLock A;

وبفرض أن المناقلتين تبدآن التنفيذ في وقت واحد، نجد أنهما ستنتظران بشكل ل

نهائي. وسنتحدث بالتفصيل عن هذه الظاهرة في الفقرات اللحقة.

مرحلتين ٤.٤ على القفال Two-Phase Lockingبروتوكول

Protocol :

نقول عن مناقلة أنها تحقق بروتوكول القفال على مرحلتين إذا كانت كل عمليات

القفال تسبق كل عمليات تحرير القفال.

: العمل طريقة

يتكون من مرحلتين رئيسيتين هما:

growing- المرحلة الصععاعدة (مرحلة النمععو phase(وفيهععا تقوم المناقلة بطلب

كافععة القفال على المعطيات التععي تحتاجهععا وبدون إجراء أي عمليععة تحريععر لي

عنصعر معطيات، إلى أن تصعل المناقلة إلى نقطعة القفعل، وهعو مصعطلح يدل على

أن المناقلة قد انتهت من مرحلة طلب القفال.

shrinking- المرحلة الهابطععة (مرحلة التقلص phase(والتععي تقوم فيهععا المناقلة

بتحرير كافة القفال التي كانت قد حجزتها، بحيث يتم ذلك من دون أن تقوم تلك

المناقلة بحجز أي قفل جديد.

يضمن بروتوكول القفال على مرحلتين تحقق ما يلي:

- ل يمكن أن تتضارب أقفال مناقلتين.

20

Page 21: Lecture7 Transactionmanagement Concurrencycontrol

- ل يمكعن أن يتعم إجراء أي عمليعة تحريعر قفعل معن قبعل أي عمليعة حجعز قفعل فعي

نفس المناقلة.

- ل تتأثر المعطيات حتى يتم حجز كافة أقفال المناقلة.

يوضح الشكل التالي مفهوم بروتوكول القفل على مرحلتين:

المتبادل ٤.٥ :Dead Lockالقفال

يحدث القفال المتبادل عندمعا تنتظعر مناقلتان كعل منهمعا الخرى لكعي تحرر قفلهعا

عن عنصر معطيات معين.

مثال:

ليكن لدينا المناقلتان التاليتان:

T1 تقوم بالولوج إلى عنصر المعطيات X وعنصر المعطيات Y .

T2 تقوم بالولوج إلى عنصر المعطيات Y وعنصر المعطيات X .

أن تبدأ، وبالمثعل، إذاT2 ل يمكعن للمناقلة Y قفلهعا على العنصعر T1فإذا لم تحرر

أن تبدأ. يطلق علىT1 ل يمكععععن للمناقلة X قفلهععععا على العنصععععر T2لم تحرر

القفال المتبادل أيضا تسمية "العناق المميت".

هناك عدة تقنيات أساسية تستخدم للتحكم بالقفال المتبادل:

المتبادل القفال حصول : Deadlock Preventionمنع

21

Page 22: Lecture7 Transactionmanagement Concurrencycontrol

يتععم منععع حصععول إقفال متبادل مععن خلل رفععض منععح قفععل لمناقلة إذا مععا وجععد

احتمال حصول إقفال متبادل، كما يتم التراجع عن كافة التغيرات التي أجرتها تلك

المناقلة، وبعد ذلك يتم إعادة جدولة تلك المناقلة للتنفيذ.

المتبادل القفال : Deadlock Detectionاكتشاف

يقوم نظام إدارة قواععععد المعطيات –وبشكعععل دوري- باختبار وجود حالت إقفال

"victimمتبادل، فإذا تم رصد إحداها فإنه يقوم باختيار مناقلة ما لتكون "الضحية

ويتعم التراجعع ععن التغيرات التعي أجرتهعا فعي سعبيل حعل مشكلة القفال المتبادل

المتولدة.

المتبادل القفال : Deadlock Avoidanceتجنب

يتعم تجنعب حصعول حالت إقفال متبادل إذا معا قامعت المناقلة باسعتحضار وتجهيعز

كافة القفال التي تحتاجها قبل البدء بالتنفيذ.

تعتمععد اسععتراتيجية اختيار طريقععة التحكععم بالقفال المتبادل على بيئة نظام إدارة

قواعععععععد المعطيات، فإذا كان احتمال حدوث إقفال متبادل قليلً نسععععععبيا يكون

استخدام طريقة اكتشاف القفال المتبادل هو الحل النسب، أما إذا كان الحتمال

كبيرا نسبيا فعندئذٍ ستكون طريقة منع حصول القفال المتبادل هي النسب، وفي

حالة نظام بطيعء السعتجابة فإن طريقعة تجنعب القفال المتبادل سعتكون الكثعر

تفضيلً.

الزمنية. ٥ الختام Timestamp-Basedبروتوكولت

Protocols: يعتمعد مفهوم الختعم بالزمعن على ربعط كعل المناقلة بمعرّف وحيعد خاص بهعا، -أو

بأسلوب آخر- بختمها زمنيا.

،والتزايدية، أي عدم التكرار، الوحدانيةتتميز أختام الزمن بخاصتين أساسيتين هما

أي أن قيمعة ختعم الزمعن تزداد باسعتمرار. وتملك العمليات التعي تنتمعي إلى نفعس

المناقلة نفعس الختعم الزمنعي، فإذا معا تضاربعت مناقلتان معع بعضهمعا، يقوم نظام

22

Page 23: Lecture7 Transactionmanagement Concurrencycontrol

إدارة قواععد المعطيات باختيار الضحيعة ليتراجعع ععن كافعة التغيرات التعي قامعت بهعا

ثم يسند إليها ختما زمنيا جديدا ويعدّها من جديد للتنفيذ.

تتجلى مسععاوئ طرائق الختام الزمنيععة فععي التحكععم بالتنفيععذ المتزامععن للمناقلت

التغي بأمريعن أسعاسيين همعا الضافيغة والذاكرة عنهغا المتولد العبغء

، ذلك لن كعل حقعل فعي قاعدة المعطيات سعيتطلب حقلي أختام زمنيعةتحتاجهغا

إضافيين أحدهما لتخزين آخر زمن قراءة والخر لتخزين آخر زمن تعديل.التعافي .4 :Recovery Systemنظام

١ : تعريف.

Recoveryنظام التعافععي Systemهععو النظام القادر على إعادة قاعدة البيانات

فيها.Failure لها قبل حصول الخطأ consistent stateإلى آخر حالة متسقة

لسعتردادBackup يسعتطيع نظام التعافعي تحقيعق ذلك باسعتخدام نسعخ احتياطيعة

المعطيات في الحالت التي يمكن أن تحصل فيها مشاكل أو أخطاء.

الخطاء. ٢ : Failure classificationتصنيف

برمجية :Softwareأخطاء

هعي تلك الخطاء المتولدة ععن البرامعج، كأنظمعة التشغيعل أو أنظمعة إدارة قواععد

المعطيات أو التطبيقات الخرى أو الفيروسات.

عتادية :Hardwareأخطاء

كالخطاء المتولدة عن الذاكرة أو فشل القرص الصلب أو بعض قطاعاته ...الخ.

التطغغبيقات عغغن الناتجغغة والسغغتثناءات Programmingالخطاء

Exemption:

كالخطاء الناتجعة ععن سعوء السعتخدام معن قبعل المسعتخدمين، كمشكلة القسعمة

على صفر مثلً؛

23

Page 24: Lecture7 Transactionmanagement Concurrencycontrol

المناقلت عن ناجمة :Transactionأخطاء

مثل حالت القفال المتبادل.

خارجية :Externalأخطاء

كالفيضانات أو الحرائق أو الزلزل أو السرقات وغيرها.

الحتياطي. ٣ النسخ :Backupمستويات

يمكن أن يتم نسخ المعطيات على عدّة مستويات وهي:

.Full backup of the databaseنسخ كامل لقاعدة المعطيات ككل •

Differentialنسعخ التغيرات فقعط • backup of the databaseأي يتعم ،

تحديث آخر نسخة احتياطية بالمعطيات الجديدة المتغيرة.

.Backup of the transaction log onlyحفظ سجل المناقلت •

ينبغي الحتفاظ بالنسخ الحتياطية في مكان آمن، غالبا في مبنى آخر، كما ينبغي

تأمينها من الخطار المختلفة كالحرائق أو السرقات أو الفيضانات... الخ.

٤: المناقلت. في التعافي إدارة

٤.١: المناقلت تعافي إدارة في المتبعة الستراتيجيات أنواع

: أولً المناقلت سجل كتابة بروتوكول

يعتمعد هذا البروتوكول على اسعتراتيجية التأكعد معن تخزيعن التغيرات -التعي تقوم بهعا

Logالمناقلت- فعي سعجل المناقلت recordsقبعل أن يتعم تخزيعن تلك التغيرات

فعليا، ممععا يضمععن إمكانيععة التراجععع عععن الخطاء إلى حالة متّععسقة فععي قاعدة

المعطيات.

مكررة مناقلت :Multiplexing Logسجلت

24

Page 25: Lecture7 Transactionmanagement Concurrencycontrol

وهو أسلوب تتبعه العديد من أنظمة إدارة قواعد المعطيات وذلك من خلل

تأمين عدّة نسخ من سجل المناقلت تحسبا للمشاكل التي يمكن أن تحصل على

القرص الصلب.

المعطيات قواعد :Memory Buffersخازنات

تسععتخدم معظععم أنظمععة إدارة قواعععد المعطيات خازنات فععي الذاكرة الرئيسععية

تحتوي المعطيات التعي يتعم تغييرهعا أو تعديلهعا معن قبعل المناقلت بحيعث تقوم تلك

المناقلت بإجراء التعديلت على المعطيات وتخزينهعا فعي تلك الخازنات -وذلك لن

التعامعل معع الذاكرة الرئيسعية أسعرع بكثيعر منعه فعي القرص الصعلب- بععد ذلك يتعم

نسخ تلك المعطيات إلى القرص الصلب، مما يساهم في تحسين الداء.

الختبار : Checkpointsنقاط

وهعي العمليعة التعي يقوم معن خللهعا نظام إدارة قواععد المعطيات بكتابعة خازنات

إلى القرص الصعلب، بحيعث يقوم نظام إدارة قواععد المعطياتbuffersالمعطيات

بإيقاف كافعة المناقلت ريثمعا ينتهعي معن إجراء كتابعة نقطعة الختبار. كما ويتعم أيضا

تخزين هذا الجراء في سجل المناقلت.

التعافي ٤.٢ :Recovery Proceduresإجرائيات

المؤجل التعديل أو المؤجلة : Deferred Modificationالكتابة

هعي عبارة ععن إجرائيعة للتعافعي تعتمعد على فكرة عدم تعديعل قاعدة المعطيات

(الفيزيائيعة) بشكعل مباشعر أثناء تنفيعذ المناقلت، بحيعث يتعم تسعجيل جميعع تعديلت

المناقلة في الذاكرة وتأجيل جميع عمليات الكتابة حتى نهاية المناقلة.

نععبين فيمععا يلي سععردا لخطوات اسععترجاع المعطيات (التعافععي) فععي نظام إدارة

قواعد المعطيات يستخدم الكتابة المؤجلة أو التعديل المؤجل:

معرّعععفة فعععي سعععجلcheckpointالتعرف على آخعععر نقطعععة اختبار .1

المناقلت.

قبل نقطة الختبار،committedإهمال كافة المناقلت التي تم تأكيدها .2

وذلك لن المعطيات التي غيرتها قد تم تخزينها بالتأكيد.

25

Page 26: Lecture7 Transactionmanagement Concurrencycontrol

إعادة تنفيعذ كافعة المناقلت المؤكدة والتعي تمعت بععد نقطعة الختبار معن.3

القدم إلى الحدث.

أو المتراجععع عنهععاuncommittedإهمال كافععة المناقلت غيععر المؤكدة .4

rolled backوالتعي تمعت أو يتعم تنفيذهعا بععد نقطعة الختبار، لنعه معن

المؤكد بأنه لم يتم تخزين تغييراتها في قاعدة المعطيات.

المباشر التعديل أو المباشرة : Immediate Modificationالكتابة

هععي عبارة عععن إجرائيععة للتعافععي تعتمععد على فكرة تعديععل قاعدة المعطيات

(الفيزيائية) بشكل مباشر أثناء تنفيذ المناقلت.

نععبين فيمععا يلي سععردا لخطوات اسععترجاع المعطيات (التعافععي) فععي نظام إدارة

قواعد المعطيات يستخدم الكتابة المباشرة أو التعديل المباشر:

معرّعععفة فعععي سعععجلcheckpointالتعرف على آخعععر نقطعععة اختبار .1

المناقلت.

إهمال كافعة المناقلت التعي تعم تأكيدهعا قبعل نقطعة الختبار، وذلك لن.2

المعطيات التي غيرتها قد تم تخزينها بالتأكيد.

إعادة تنفيعذ كافعة المناقلت المؤكدة والتعي تمعت بععد نقطعة الختبار معن.3

القدم إلى الحدث.

معن أجعل كافعة المناقلت غيعر المؤكدة أو المتراجعع عنهعا والتعي تمعت أو.4

يتعم تنفيذهعا بععد نقطعة الختبار، ينبغعي أن يتعم التراجعع عنهعا بالكامعل

باستخدام القيم المخزنة في سجل المناقلت، وبحيث يتم التراجع من

الحدث إلى القدم أي بترتيب معاكس.

المراجع:• Article: Concurrency&Transaction&Recovery.doc• Concurrency Control and Recovery in Database Systems:

http://research.microsoft.com/pubs/ccontrol/

• Introduction to Concurrency Control:http://www.agiledata.org/essays/concurrencyControl.html

• Concurrency control and locking:

26

Page 27: Lecture7 Transactionmanagement Concurrencycontrol

http://www.service-architecture.com/database/articles/concurrency_control_and_locking.html

27