Transcript Document

‫فصل دوم‪ :‬مفاهيمي از تئوري توالي‬
‫پذيري‬
‫تهیه کنندگان‪:‬‬
‫ساسان افروغ‬
‫رضا ارشدی‬
‫فاطمه عادلی پور‬
‫سیده الهه حسین پور ده بزرگ‬
‫مقدمه‪ :‬توالي پذيري يک طرح اجراي همروند تراکنش ها‪ ،‬ضابطه اصلي در تشخيص صحت اجراي يک طرح است‪.‬‬
‫طرح اجراي تراکنش‪:‬‬
‫زماني که تعدادي تراکنش به داده مشترک دسترس ي دارند ترتيب اجراي آنها بايد بر اساس يک طرح اجرا انجام شود‪.‬‬
‫طرح اجرا چيست؟‬
‫اگر }‪ t={T1,T2,…Ti‬باشد‪ ،‬طرح اجراي مجموعه تراکنش هاي ‪ t‬با ‪ s‬نشان داده مي شود‪ s .‬داراي دو شرط زير‬
‫است‪:‬‬
‫•هر عمل تراکنش دقيقا يکبار در ‪ s‬وجود دارد‬
‫•ترتيب عمل ها در ‪ s‬دقيقا همان ترتيب نسبي آن ها در تراکنش باشد‪.‬‬
‫طرح اجرا‬
‫متوالي ‪Serial Schedule:‬‬
‫همروند ‪Concurrent Schedule:‬‬
‫تعريف تراکنش‪:‬‬
‫دنباله ‪ T‬از عمل ها با شرايط زير‪:‬‬
‫‪ -1‬اعضاي دنباله )‪ Read(T,x) , Write(T,x) , Commit(T) , Abort(T‬که در آن ‪ x‬داده ذخيره‬
‫شده در پايگاه است‪.‬‬
‫‪ -2‬اگر )‪ Commit(T‬در دنباله موجود باشد‪ Abort ،‬موجود نيست و بالعکس‪.‬‬
‫‪ -3‬اگر ‪ Commit‬يا )‪ Abort(T‬در دنباله باشد‪ ،‬در انتهاي ‪ T‬مي آيد‪.‬‬
‫طرح اجراي متوالي‪:‬‬
‫ناکارآمدترين طريقه اجراي تراکنش‬
‫موارد استفاده‪:‬‬
‫•برنامه کوتاه‬
‫•مقيم بودن کل پايگاه در حافظه اصلي‬
‫•وجود يک پردازنده‬
‫•عدم امکان استفاده و يا افت کارايي اجراي همروند‬
‫در اجراي طرح متوالي‪:‬‬
‫•اجراي پشت سر هم تراکنش ها‬
‫•وجود سازگاري تضمين شده‬
‫•نتيجه اجراي درست طرح‬
‫•امکان اجراي !‪ n‬طرح با وجود ‪ n‬تراکنش با نتيجه متفاوت‬
‫طرح اجراي همروند‬
‫همروندي‪:‬‬
‫•اجراي نامتوالي دو يا بيش از دو تراکنش‬
‫•امکان دستيابي دو يا بيش از دو تراکنش به داده مشترک بطور همزمان‬
‫نکته‪:‬‬
‫•همروندي نياز به کنترل دارد و الزم است تا عمل تراکنش هايي که بطور نامتوالي اجرا مي شوند کنترل شود‪.‬‬
‫•در همروندي‪ ،‬توارد عمل ‪ Interleaving‬وجود دارد‪.‬‬
‫•در صورت عدم کنترل توارد‪ ،‬تداخل ‪ Interfrence‬بوجود مي آيد‪.‬‬
‫•تداخل‪ ،‬منجر به اجراي ناصحيح طرح اجرا مي شود‪.‬‬
‫داليل لزوم همروندي‪:‬‬
‫•ايجاد محيط چندبرنامه اي‬
‫•وجود چندين حافظه با چندين پردازنده (پايگاه توزيع شده)‬
‫عمل تراکنش‪:‬‬
‫•همروند متوارد‬
‫•همروند همزمان‬
‫نکته‪ :‬عدم کنترل همروندي مساوي است با از بين رفتن خاصيت انزوا‬
‫دو قاعده در اجراي همروندي‪:‬‬
‫•عدم ايجاد عملکرد نادرست برنامه هاي کاربردي‬
‫•عدم افت کارايي برنامه کاربردي‬
‫مثال‪:‬‬
T1
T2
T2
T1
R(D)
R(D)
R(D)
R(D)
D=D-N
D=D+M
D=D-N
D=D-N
W(D)
W(D)
R(E)
T1
T2
R(D)
T2
W(D)
D=D+M
R(D)
E=E+N
T1
R(D)
W(D)
D=D-N
D=D+M
R(E)
W(E)
R(D)
D=D+M
W(D)
a
W(D)
W(D)
W(D)
R(E)
R(E)
E=E+N
E=E+N
E=E+N
W(E)
W(E)
W(E)
b
c
.‫ نتايج يکسان دارند‬d ‫ و‬a ‫طرح هاي‬
d
‫نکته‪:‬‬
‫• هر همروندي درست نيست‬
‫•به هر طريقي نمي توان تراکنش ها را همروند نمود‬
‫•به علت توارد عمل در همروندي‪ ،‬امکان تداخل وجود دارد و نتيجه مي تواند معتبر نباشد‪.‬‬
‫مشکالت تداخل کنترل نشده‬
‫•نتيجه از دست رفته ‪Lost Update‬‬
‫•خواندن داده ناجور ‪Dirty Data Read‬‬
‫•تحليل ناسازگار ‪Inconsistent Analysis‬‬
‫•خواندن تکرار نشدني ‪Unrepeated Read‬‬
‫مشکل نتيجه از دست رفته‪:‬‬
‫زماني رخ مي دهد که تراکنش ي بالفاصله بعد از تراکنش ديگري که مقداري را براي داده اي نوشته‪ ،‬مقدار جديد‬
‫براي همان داده بنويسد‪.‬‬
‫مثال‪ :‬نتيجه عمل نوشتن تراکنش اول در‬
‫‪T2‬‬
‫لحظه ‪ t3‬از بين رفته‬
‫‪T1‬‬
‫زمان‬
‫)‪R(D‬‬
‫‪t1‬‬
‫‪t2‬‬
‫)‪R(D‬‬
‫)‪W(D‬‬
‫)‪W(D‬‬
‫‪t3‬‬
‫‪t4‬‬
‫‪T2‬‬
‫مثال‪:‬‬
‫ازدست رفتن نتيجه نوشتن تراکنش‬
‫اول در لحظه ‪t5‬‬
‫‪T1‬‬
‫زمان‬
‫)‪R(D1‬‬
‫‪t1‬‬
‫‪D1=D1-N‬‬
‫‪t2‬‬
‫)‪R(D1‬‬
‫‪t3‬‬
‫‪D1=D1+N‬‬
‫‪t4‬‬
‫)‪W(D1‬‬
‫‪t5‬‬
‫)‪R(D2‬‬
‫‪t6‬‬
‫)‪W(D1‬‬
‫مشکل خواندن داده ناجور‪:‬‬
‫‪t7‬‬
‫‪D2=D2+M‬‬
‫‪t8‬‬
‫)‪W(D2‬‬
‫‪t9‬‬
‫داده ناجور‪ :‬داده اي که توسط تراکنش ي که هنوز به مرحله تثبيت نرسيده‪ ،‬نوشته شده باشد‪.‬‬
‫نحوه ايجاد داده ناجور‪ :‬تراکنش ي مثل ‪ T2‬مقدار موقت بهنگام درآمده توسط تراکنش ي مثل ‪ T1‬را بخواند‪ .‬حال‬
‫اگر تراکنش ‪ T1‬دچار نقص شود آنگاه ‪ T2‬داده ناجور خوانده است‪.‬‬
‫مثال‪:‬‬
‫به مشکل خواندن داده ناجور‪ ،‬مشکل‬
‫وابستگي به تراکنش تثبيت نشده‬
‫‪T2‬‬
‫گويند‪.‬‬
‫‪T1‬‬
‫زمان‬
‫)‪R(D1‬‬
‫‪t1‬‬
‫‪D1=D1+N‬‬
‫)‪W(D1‬‬
‫‪t2‬‬
‫)‪R(D1‬‬
‫‪D1=D1+m‬‬
‫)‪W(D1‬‬
‫)‪R(D3‬‬
‫‪t3‬‬
‫مشکل تحليل ناسازگار‪:‬‬
‫به اين مشکل‪ ،‬مشکل حاصل جمع نادرست گويند‪.‬‬
‫زمان بروز مشکل‪ :‬زماني که تزاکنش ‪ T1‬دو مقدار داده ‪ D1‬و ‪ D2‬را بهنگام مي کند و تراکنش ‪ T2‬يکي از اين داده‬
‫مثال ‪ D1‬را پس از بهنگام سازي مي خواند و مقدار ‪ D2‬را پيش از بهنگام سازي‬
‫ زمان‬T1
T2
t1
SUM=0
R(D3)
SUM=SUM+D3
t2
R(D1)
D1=D1-N
W(D1)
t3
R(D1)
SUM=SUM+D1
R(D2)
SUM=SUM+D2
t4
R(D2)
D2=D2+N
W(D2)
T1
‫زمان‬
READ ACC1
t1
T2
SUM=40
READ ACC2
t2
SUM=90
t3
READ ACC3
UPDATE ACC3
30
20
.
.
t4
READ ACC1
UPDATE ACC1
40
50
COMMIT
READ ACC3
SUM=110
t5
‫مشکل خواندن تکرار نشدني‪:‬‬
‫به آن مشکل فازي هم گفته مي شود‪.‬‬
‫زمان بروز مشکل‪:‬‬
‫زماني که تراکنش مثل ‪ T1‬بخواهد ‪ D1‬را دوباره بخواند‪ ،‬اما ‪ D1‬توسط تراکنش ‪ T2‬بهنگام شده و نتيجه عمل‬
‫آن تثبيت گرديده لذا ‪ T1‬ديگر نمي تواند مثل قبل ‪ D1‬را بخواند‪.‬‬
‫‪T2‬‬
‫‪T1‬‬
‫زمان‬
‫)‪R(D1‬‬
‫‪t1‬‬
‫‪D1=D1+X‬‬
‫)‪W(D1‬‬
‫‪t2‬‬
‫‪D1=D1-X‬‬
‫)‪W(D1‬‬
‫‪COMMIT‬‬
‫)‪R(D1‬‬
‫‪Y=Y-D1‬‬
‫)‪W(Y‬‬
‫‪COMMIT‬‬
‫‪t3‬‬
‫طرح هاي توالي پذير‬
‫به ازاي تمام داده ها نه مقدار خاص الزم است تا‬
‫نتيجه اجراي همروند تراکنش ها= نتيجه اجراي متوالي آنها‬
‫تعريف طرح توالي پذير‪:‬‬
‫•طرح اجراي همروند ‪ Sc‬توالي پذير است اگر همان تاثير و نتيجه را در پايگاه داشته باشد که يک طرح اجراي متوالي‬
‫‪ n‬تراکنش‬
‫•يکساني نتيجه بايد براي هر تراکنش و نيز همه تراکنش ها تامين شود‪.‬‬
‫ضابطه درستي اجراي مجموعه اي از تراکنش هاي همروند‪ ،‬توالي پذيري است‪.‬‬
‫ضوابط درستي پايگاه داده‪:‬‬
‫تامين جامعيت پايگاه داده‬
‫توالي پذيري طرح اجرا‬
‫هر تراکنش به تنهايي درست است‪.‬‬
‫هر طرح اجراي متوالي تراکنش ها يعني اجراي درست يکي پس از‬
‫ديگري‬
‫طرح همروند زماني درست است که معادل با يک طرح اجراي متوالي‬
‫باشد‬
‫نمايش صوري طرح اجراي ‪ n‬تراکنش }‪{T1,T2,T3,…,Tn‬‬
‫توالي پذيري خصوصيت مجموعه اي از تراکنش هاست‪ .‬يعني اگر مجموعه اي از تراکنش ها به صورت توالي پذير‬
‫قابل اجرا باشند گفته مي شود که اين مجموعه خاصيت توالي پذيري دارند‪.‬‬
‫زمان‬
T1
T2
T1
T2
R(D1)
R(D1)
R(D1)
D1=D1-50
D1=D1-50
TEMP=D1*0.1
W(D1)
D1=D1-TEMP
R(D2)
W(D1)
R(D1)
D2=D2+50
R(D2)
W(D2)
D2=D2+TEMP
TEMP=D1*0.
1
W(D1)
D1=D1TEMP
W(D2)
W(D1)
S1=(T1,T2)
R(D2)
S2=(T2,T1)
D2=D2+50
W(D2)
S3
‫ نتيجه با‬.‫ توالي پذير است‬s3
‫ برابر است‬s1
R(D2)
D2=D2+TEM
P
W(D2)
‫طرح هاي معادل‪:‬‬
‫دو طرح اجراي ’‪ s, s‬از سه نظر معادلند‬
‫•معادل نتيجه اي ‪Result Equivalent‬‬
‫•معادل تعارض ي ‪Conflict Equivalent‬‬
‫•معادل نمايي ‪View Equivalent‬‬
‫معادل نتيجه اي‪:‬‬
‫دو طرح ’‪ s,s‬معادل نتيجه اي هستند اگر نتيجه اجراي يکساني داشته باشند‪.‬‬
‫نکته‪ :‬نتيجه اجراي دو طرح مختلف ممکن است به طور اتفاقي يکسان باشد( يک مقدار خاص آغازين) ولي به ازاي‬
‫جميع مقادير يکي نباشد‪.‬‬
‫مثال‪:‬‬
‫’‪S‬‬
‫‪S‬‬
‫)‪R(D‬‬
‫)‪R(D‬‬
‫‪D=D*1.1‬‬
‫‪D=D+10‬‬
‫)‪W(D‬‬
‫)‪W(D‬‬
‫معادل تعارض ي‪:‬‬
‫تعريف دستورات متعارض‪:‬‬
‫دو دستور ‪ Ii, Ij‬متعارضند اگر‬
‫•در دو تراکنش متفاوت بوده‬
‫•به داده واحد دستيابي داشته باشند‬
‫•اقال يکي از آن دو دستور‪ ،‬نوشتن باشد‪.‬‬
‫)‪Ii=W(D‬‬
‫)‪Ii=W(D‬‬
‫)‪Ii=R(D‬‬
‫)‪Ij=W(D‬‬
‫)‪Ij=R(D‬‬
‫)‪Ij=W(D‬‬
‫تعريف‪ :‬دو طرح ’‪ s,s‬معادل تعارض ي هستند اگر ترتيب اجراي هر دو دستور متعارض در آن دو طرح يکسان باشد‪.‬‬
‫نتيجه‪ :‬ممکن است ترتيب اجراي دستورات متعارض در دو طرح يکي نباشد ولي نتيجه دو طرح يکي باشد‪.‬‬
‫مثال‪:‬‬
‫‪T2‬‬
‫‪T1‬‬
‫)‪R(D1‬‬
‫‪D1=D1-50‬‬
‫)‪W(D1‬‬
‫)‪R(D2‬‬
‫‪D2=D2+10‬‬
‫)‪W(D2‬‬
‫)‪R(D2‬‬
‫‪D2=D2+50‬‬
‫)‪W(D2‬‬
‫)‪R(D1‬‬
‫‪D1=D1+10‬‬
‫)‪W(D1‬‬
‫دستورات )‪ R(D2), W(D2‬متعارضند ‪ .‬اين طرح با طرح ‪ s1‬متعارض نيست‬
‫ولي دستورات يکسان اجرا مي شوند‬
‫تعريف‪ :‬اگر طرح ‪ s‬با جابجايي دستورات نامتعارض به طرح ’‪ s‬با همان نتيجه تبديل شود آنگاه ’‪ s,s‬معادل‬
‫تعارض ي اند‪.‬‬
‫معادل نمايي‪ s,s’ :‬معادل نمايي هستند اگر‬
‫•مجموعه تراکنش هاي دو طرح يکسان باشند و تمام عمل هاي اين مجموعه از تراکنش ها در دو طرح موجود‬
‫باشد‪.‬‬
‫•اگر تراکنش ‪ Ti‬از طرح ‪ ، s‬مقدار اوليه اي براي ‪ D1‬بخواند همين تراکنش در طرح ’‪ s‬هم همان مقدار اوليه را‬
‫داشته باشد‪.‬‬
‫•اگر تراکنش ‪ Ti‬در طرح ‪ ، s‬عمل )‪ R(D1‬را اجرا کند و مقدار ‪ D1‬توسط تراکنش ‪ Tj‬توليد شده باشد تراکنش‬
‫‪ Ti‬در طرح ’‪ s‬هم همين عمل )‪ R(D1‬را اجرا کند‪.‬‬
‫•اگر عمل )‪ W(D2‬از تراکنش ‪ Tk‬آخرين عمل نوشتن ‪ D2‬در طرح ‪ s‬باشد‪ ،‬همين عمل‪ ،‬آخرين عمل در طرح ’‪s‬‬
‫باشد‪.‬‬
‫تعريف منبع عمل يک تراکنش‪:‬‬
‫اگر براي هر عمل)‪ Ri(D‬در يکي از طرحها بتوان يک )‪ Wj(D‬يافت که بالفاصله قبل از آن عمل خواندن باشد‬
‫آنگاه تراکنش ‪ Tj‬را منبع عمل )‪ Ti(D‬گويند‪.‬‬
‫تعريف‪ s,s’ :‬معادل نمايي هستند اگر براي هر عمل خواندن در يک طرح‪ ،‬منبع عمل خواندن همان باشد که در‬
‫طرح ديگر است‪.‬‬
‫مثال‪ :‬طرح ‪ s1,s3‬معادل نمايي هستند ولي ‪ s1,s2‬نيست‪.‬‬
‫قضيه‪ :‬اگر دو طرح معادل تعارض ي باشند‪ ،‬معادل نمايي هستند‪.‬‬
‫انواع طرح هاي توالي پذير‪:‬‬
‫با توجه به معادل بودن طرح ها ‪ 3‬طرح توالي پذير داريم‪:‬‬
‫•طرح توالي پذير نتيجه اي ‪Result Serializable‬‬
‫• طرح توالي پذير تعارض ي ‪Conflict Serializable‬‬
‫• طرح توالي پذير نمايي ‪View Serializable‬‬
‫طرح توالي پذير نتيجه اي‪:‬‬
‫طرح همروند ‪ Sc‬توالي پذير نتيجه اي است هر گاه معادل نتيجه اي طرح متوالي ‪ Ss‬باشد‪.‬‬
‫نکته‪ :‬احتمال اتفاقي بودنتوالي پذيري نتيجه اي وجود دارد‪ .‬لذا در تئوري توالي پذيري مورد توجه نيست‪.‬‬
‫طرح توالي پذيري تعارض ي‪:‬‬
‫طرح همروند ‪ Sc‬توالي پذير تعارض ي است اگر معادل تعارض ي با طرح متوالي ‪ Ss‬باشد ( با جابجاکردن دستورات‬
‫نامتعارض ‪ Sc ،‬به ‪ Ss‬برسيم)‬
S6
T1
T2
T1
.‫ است‬S1 ‫ توالي پذير تعارض ي با طرح متوالي‬S3 ‫ طرح‬:‫مثال‬
S7
S8
:‫مثال‬
T2
T1
T2
BEG TR
BEG TR
BEG TR
R(D1)
R(D1)
R(D1)
W(D1)
W(D1)
W(D1)
BEG TR
BEG TR
R(D2)
R(D1)
R(D1)
W(D2)
W(D1)
R(D2)
COMMIT
W(D1)
R(D2)
W(D2)
BEG TR
W(D2)
COMMIT
R(D1)
COMMIT
W(D1)
R(D2)
R(D2)
R(D2)
W(D2)
W(D2)
W(D2)
COMMIT
COMMIT
COMMIT
S6, ‫دو طرح‬
‫ معادلند و‬S7
‫هر دو توالي‬
‫پذير تعارض ي‬
S8 ‫با‬
‫دو طرح مي‬
‫توانند توالي پذير‬
‫باشند ولي توالي‬
‫پذير تعارض ي‬
.‫نباشند‬
‫طرح توالي پذير نمايي‪:‬‬
‫تعريف‪ :‬طرح ‪ Sc‬توالي پذير نمايي است‪ ،‬اگر معادل نمايي با يک طرح متوالي ‪ Ss‬باشد‬
‫مثال‪:‬‬
‫‪S9‬‬
‫نمايي طرح‬
‫اين طرح معادل‬
‫}‪ S’={T1,T2,T3‬مي باشد ولي‬
‫معادل تعارض ي آن نيست‪.‬‬
‫‪T3‬‬
‫‪T2‬‬
‫‪T1‬‬
‫‪BEG TR‬‬
‫)‪R(D‬‬
‫مي توان نشان داد هر طرح که توالي‬
‫پذير نمايي باشد ولي تعارض ي نباشد‬
‫داراي يک عمل نوشتن کور است‪.‬‬
‫‪BEG TR‬‬
‫)‪W(D‬‬
‫‪COMMIT‬‬
‫)‪W(D‬‬
‫‪COMMIT‬‬
‫‪BEG TR‬‬
‫)‪W(D‬‬
‫‪COMMIT‬‬
‫‪S10‬‬
‫‪T2‬‬
‫ممکن است طرحي توليد شود‬
‫که نسبت به طرح اوليه نه‬
‫تعارض ي باشد نه نمايي ولي‬
‫درست باشد‪ .‬مانند اين مثال‬
‫‪T1‬‬
‫‪T2‬‬
‫‪T1‬‬
‫)‪R(D1‬‬
‫)‪R(D1‬‬
‫‪D1=D1-10‬‬
‫‪D1=D1-10‬‬
‫)‪W(D1‬‬
‫)‪W(D1‬‬
‫)‪R(D2‬‬
‫)‪R(D2‬‬
‫‪D2=D2-20‬‬
‫‪D2=D2+10‬‬
‫)‪W(D2‬‬
‫)‪W(D2‬‬
‫)‪R(D2‬‬
‫)‪R(D2‬‬
‫‪D2=D2+10‬‬
‫‪D2=D2-20‬‬
‫)‪W(D2‬‬
‫)‪W(D2‬‬
‫)‪R(D1‬‬
‫)‪R(D1‬‬
‫‪D1=D1+20‬‬
‫‪D1=D1+20‬‬
‫)‪W(D1‬‬
‫)‪W(D1‬‬
‫•نتيجه درج ‪ B‬توسط دو تراکنش اول ناديده گرفته مي شود‬
‫•اين طرح توالي پذير تعارض ي نيست‪ .‬چرا که‬
‫‪ .1‬تراکنش دوم ‪ A‬را مي نويسد قبل از آنکه تراکنش اول آن را‬
‫بخواند‪ .‬الزم است تا ‪ T2‬قبل از ‪ T1‬بيايد‪.‬‬
‫‪ .2‬ولي تراکنش اول ‪ B‬را مي نويسد قبل از آنکه تراکنش دوم آن را‬
‫بنويسد‪ .‬پس الزم است تا ‪ T1‬قبل از ‪ T2‬بيايد‪.‬‬
‫‪ .3‬اثر )‪ W1(B) , W2(B‬در پايگاه درازمدت نيست‪.‬‬
‫‪T3‬‬
‫‪T2‬‬
‫‪T1‬‬
‫)‪R2(B‬‬
‫)‪W2(A‬‬
‫)‪R1(A‬‬
‫)‪R3(A‬‬
‫)‪W1(B‬‬
‫بررس ي منبع عمل ها‪:‬‬
‫•منبع عمل )‪ R2(B‬تراکنش ‪T0‬‬
‫•منبع عمل )‪ R1(A‬تراکنش ‪T2‬‬
‫•منبع عمل )‪ R3(A‬تراکنش ‪T2‬‬
‫•منبع عمل خواندن ‪ A‬توسط تراکنش ‪ ، Tf‬تراکنش ‪T2‬‬
‫•منبع عمل خواندن ‪ B‬توسط تراکنش ‪ ، Tf‬تراکنش ‪T3‬‬
‫)‪W2(B‬‬
‫)‪W3(B‬‬
‫آزمون توالي پذيري‬
‫گراف پيشايندي‬
‫•براي بررس ي آزمون توالي پذيري تعارض ي با توليد گراف تعارض يا پيشايندي ‪(Precedence‬تقدم)‬
‫•تقدم يعني تراکنش ‪ Ti‬عمل ‪ Oi‬را روي داده اي انجام داده قبل از آنکه تراکنش ‪ Tj‬عمل ‪ Oj‬را روي همان داده‬
‫انجام دهد و ‪ Oi , Oj‬متعارض باشند‪.‬‬
‫•گراف پيشايندي‪ ،‬گرافي است جهت دار )‪ G=(N,E‬که در آن }‪ N={T1,…,Tn‬مجموعه رئوس و‬
‫}‪ E={e1,…,em‬مجموعه يالها‪.‬‬
‫•در صورتي بين دو گره ‪Ti‬و ‪ Tj‬يالي موجود است اگر يک عمل از ‪ ، Ti‬پيش از يک عمل از ‪ Tj‬و متعارض با آن در‬
‫طرح باشد‪.‬‬
‫•طرح ‪ S‬توالي پذير تعارض ي است اگر و فقط اگر در اين گراف‪ ،‬دور وجود نداشته باشد‪.‬‬
T1
T2
T2
T1
T1
T2
R(D1)
R(D1)
R(D1)
D1=D1-50
D1=D1-10
D1=D1-50
W(D1)
W(D1)
W(D1)
R(D2)
R(D2)
R(D1)
D2=D2+50
D2=D2+10
D1=D1-10
W(D2)
W(D2)
W(D1)
S1
S2
R(D1)
R(D1)
R(D2)
D1=D1-10
D1=D1-50
D2=D2+50
W(D1)
W(D1)
W(D2)
R(D2)
R(D2)
R(D2)
D2=D2+10
D2=D2+50
D2=D2+10
W(D2)
W(D2)
W(D2)
T1
T2
T2
T1
S3
T1
T2
T1
T2
R(D1)
D1-D1-50
R(D1)
D1=D1-10
W(D1)
R(D2)
W(D1)
R(D2)
D2=D2+50
W(D2)
D2=D2+10
W(D2)
T1
T2
‫الگوريتم آزمون توالي پذيري‪:‬‬
‫•براي هر تراکنش ‪ Ti‬در ‪ ،S‬يک گره با برچسب ‪ Ti‬ايجاد مي شود‬
‫•اگر تراکنش ‪ Tj‬در ‪ S‬عمل )‪ R(D‬را بعد از عمل )‪ W(D‬از تراکنش ‪ Ti‬در ‪ ، S‬اجرا کند يالي از ‪ Ti‬به ‪ Tj‬ايجاد‬
‫مي شود‪.‬‬
‫•اگر تراکنش ‪ Tj‬در ‪ S‬عمل )‪ W(D‬را بعد از عمل )‪ R(D‬از تراکنش ‪ Ti‬در ‪ ، S‬اجرا کند يالي از ‪ Ti‬به ‪ Tj‬ايجاد‬
‫مي شود‪.‬‬
‫•اگر تراکنش ‪ Tj‬در ‪ S‬عمل )‪ W(D‬را بعد از عمل )‪ W(D‬از تراکنش ‪ Ti‬در ‪ ، S‬اجرا کند يالي از ‪ Ti‬به ‪Tj‬‬
‫ايجاد مي شود‪.‬‬
‫•طرح ‪ S‬توالي پذير است اگر و فقط اگر در گراف‪ ،‬دور وجود نداشته باشد‪.‬‬
T1
T2
T3
T1
T2
R(Z)
R(Y)
R(Y)
R(Z)
R(X)
W(Y)
R(Y)
W(X)
W(Y)
R(Z)
W(Z)
R(X)
R(Z)
W(X)
W(Y)
R(Y)
W(Z)
W(Y)
R(Y)
R(X)
R(Y)
W(Y)
W(Y)
R(X)
W(X)
W(X)
X
T1
T3
Y
T3
T2
Y,X
T1
T2
T3
‫يافتن ترتيب تراکنش ها در طرح متوالي معادل طرح همروند‪:‬‬
‫•به آن ترتيب توالي پذيري ‪ Serializability Order‬هم گفته مي شود‪.‬‬
‫•هر گاه در گراف پيشايندي طرح ‪ S‬يالي از ‪ Ti‬به ‪ Tj‬وجود داشت‪ ،‬اين يال بايد در گراف پيشايندي طرح ’‪ S‬که‬
‫طرح متوالي معادل طرح ‪ S‬است نيز وجود داشته باشد‪.‬‬
‫‪T1‬‬
‫‪T1‬‬
‫‪T1‬‬
‫‪T3‬‬
‫‪T2‬‬
‫‪T4‬‬
‫‪T2‬‬
‫‪T3‬‬
‫‪T4‬‬
‫‪T3‬‬
‫‪T2‬‬
‫‪T4‬‬
‫کاربرد تئوري توالي پذيري‪:‬‬
‫•طرح توالي پذيري‪ ،‬همروندي اجراي تراکنش ها را‪ ،‬در عين تضمين صحت اجرا‪ ،‬امکان پذير مي کند‪.‬‬
‫•آزمون توالي پذيري در عمل دشوار است‪.‬‬
‫•مديريت چگونگي توارد عمل ها توسط واحدي از مديريت تراکنش ها‪ ،‬موسوم به زمان بند‪ ،‬مديريت مي شود‪.‬‬
‫•براي تضمين توالي پذيري طرح اجرا‪ ،‬از پروتوکل هاي همروندي استفاده مي شود‬