Transcript طرح S 2
Slide 1
مدل های اجرای سريال و
همروند تراکنش ها
Dr. Fatemeh Ahmadi-Abkenari
February 2013
Advanced Database
Slide 2
اجرای سريال و همروند تراکنش ها
2
تعاريف
برای اجرای چند تراکنش ،ساده ترين راهکار اجرای متوالی و سريال تراکنش ها به صورت پشت سرهم است .اين
مدل از اجرا هرگز پايگاه داده را در وضعيت ناسازگار قرار نمی دهد و نتيجه ی اجرای يک طرح که از اجرای متوالی دو
يا چند تراکنش بدست آمده است هميشه درست است.
اجرای سريال (متوالی) تراکنش ها علی رغم مزيت سادگی ،زمان بر و فاقد کارايی است .البته در موارد چندی ،اجرای
سريال تراکنش ها بهترين گزينه است مانند شرايطی که در آن تراکنش ها کوتاه باشند ،پايگاه به تمامی مقيم
حافظه اصلی باشد ،ماهيت کاربرد مانع از اجرای همروند تراکنش ها شود... ،
همروندی ( )Concurrencyاجرای تراکنش ها ،به معنی اجرای نامتوالی و تودرتوی تراکنش های مزبور است.
بديهی است زمانی که چند تراکنش به داده های يکسانی دسترس ی دارند اجرای همروند آنها بايد کنترل شود چراکه
در غير اين صورت تداخل ( )Interferenceعمل ها موجب عملکرد ناصحيح و افت کارايی برنامه کاربردی می
گردد.
پايگاه داده پيشرفته
Slide 3
مثال
3
دو تراکنش T1و T2برروی دو فقره داده ی Dو Fعملياتی به صورت طرح های زير انجام می دهند:
T2
T1
T2
)R(D
D:=D-N
)W(D
)R(D
D:=D+M
)W(D
T1
)R(D
D:=D-N
)R(D
D:=D+M
)W(D
)R(F
)W(D
F:= F+N
)W(F
)R(F
F:= F+N
)W(F
طرح S4
پايگاه داده پيشرفته
طرح S3
T2
T1
T2
)R(D
D:=D-N
)W(D
)R(F
F:= F+N
)W(F
)R(D
D:=D+M
)W(D
)R(D
D:=D-N
)W(D
)R(F
F:= F+N
)W(F
T1
)R(D
D:=D+M
)W(D
طرح S1
طرح S2
در اين مثال طرح های S1و S2سريال و
طرح های S3و S4همروند هستند.
Slide 4
مشکالت ناش ی از عدم کنترل تراکنش های همروند
1- Lost Update
(بهنگام شدن از دست رفته)
2- Dirty Data Read
(خواندن داده ی ناجور)
3- Inconsistent Analysis
(تحليل ناسازگار)
)4- Unrepeatable Read (Fuzzy Read
(خواندن تکرار نشدنی (خواندن فازی))
پايگاه داده پيشرفته
Slide 5
بهنگام شدن از دست رفته
)(Lost Update
5
زمانی که تراکنش ی درست پس از يک تراکنش ديگر اقدام به نوشتن داده ای کند که تراکنش قبل نيز آن را نوشته
بود اين مشکل بروز می کند که منجر به از دست رفتن مقدار نوشته شده و بهنگام شده توسط تراکنش نخست می
شود.
طرح S
T2
در طرح ،Sمقدار نوشته شده
توسط تراکنش T1در لحظه t3از
دست می رود.
T1
)R(D1
D1:=D1-N
)R(D1
)W(D1
D1:=D1+N
)W(D1
)R(D2
D2:=D2+M
)W(D2
پايگاه داده پيشرفته
t1
t2
t3
t4
t5
Slide 6
خواندن داده ی ناجور
)(Dirty Data Read
6
اين مشکل زمانی بروز می کند که تراکنش دومی داده ی نوشته شده و تغيير يافته توسط تراکنش ی را که هنوز
تثبيت نشده ،بخواند .چرا که در صورت ناکامل تمام شدن تراکنش اول و واگرد آن ،تراکنش دوم از نتايج ميانی آن
استفاده کرده است.
طرح S
در طرح ،Sمقدار نوشته شده توسط
تراکنش T1بر روی داده ی D1در
لحظه t2توسط تراکنش T2خوانده
می شود.
T2
T1
)R(D1
D1:=D1+N
)W(D1
)R(D1
D1:=D1+M
)W(D1
t2
)R(D3
پايگاه داده پيشرفته
t1
t3
Slide 7
خواندن تکرار نشدنی (فازی)
))(Unrepeatable Read (Fuzzy Read
7
اين مشکل زمانی بروز می کند که تراکنش اول ،دو بار داده ای را می خواند اما مابين اين دوبار خواندن ،تراکنش
دوم داده مزبور را بهنگام نموده و تثبيت نيز شده است .بنابراين مقدار اوليه داده مزبور ،ديگر قابل دسترس ی
نخواهد بود.
طرح S
T2
در طرح ،Sتراکنش T1دو بار داده ی D1را در
لحظات t1و t3می خواند داده ی D1مابين دو بار
خوانده شدن ،توسط تراکنش T2تغيير يافته و
تراکنش T2تثبيت نيز شده است.
پايگاه داده پيشرفته
D1:= D1 – X
)W(D1
COMMIT
T1
)R(D1
D1:=D1+X
)W(D1
t1
t2
)R(D1
Y:=Y – D1
)W(Y
COMMIT
t3
Slide 8
تحليل ناسازگار
)(Inconsistent Analysis
8
اين مشکل زمانی بروز می کند که تراکنش اول ،دو داده ی متفاوت را بهنگام می کند و تراکنش دوم اقدام به
خواندن يکی از دو داده قبل از بهنگام شدن و خواندن ديگری پس از بهنگام شدن می نمايد .در نتيجه ،حاصل
محاسبه ای که در آن دو داده ی ذکر شده در تراکنش دوم حضور داشته باشند ناصحيح خواهد شد.
طرح S
T2
T1
)R(D1
D1:=D1-N
)W(D1
در طرح ،Sمقدار نوشته شده
توسط تراکنش T1بر روی داده ی
D1در لحظه t2توسط تراکنش
T2خوانده می شود.
پايگاه داده پيشرفته
)R(D1
SUM:=SUM + D1
)R(D2
SUM:=SUM + D2
t1
t2
)R(D2
D2:=D2 + N
)W(D2
t3
Slide 9
طرح های با قابليت اجرای سريال
9
با توجه به مشکالت مطرح شده در اساليدهای قبل ،مالحظه می شود که اجرای همروند تراکنش ها در صورت
کنترل نشدن منجر به نتايج نادرست می گردد.
آنچه که بر صحت و درستی نتايج حاصل از اجرای همروند تراکنش ها صحه می گذارد يکی بودن نتايج حاصل از
اجرای همروند تراکنش ها با نتيجه حاصل از اجرای متوالی و سريال آنهاست .بنابراين برای nتراکنش مفروض،
طرح )S Schedule( Sکه به صورت همروند اجرا می شود قابليت سريال شدن ( )Serializableدارد اگر
همان نتيجه توليد شود و تاثير آن بر روی پايگاه همان باشد که طرح حاصل از اجرای متوالی و سريال اين n
تراکنش.
بنابراين اجرای همروند مجموعه ای از تراکنش ها در صورتی درست است که طرح اجرا ،قابليت سريال شدن
داشته باشد.
پايگاه داده پيشرفته
Slide 10
طرح های با قابليت اجرای سريال
10
مثال
تراکنش های T1و T2به صورت روبرو مفروضند:
اگر تراکنش های T1و T2را همروند و به صورت
طرح S3اجرا کنيم بررس ی می کنيم که آيا اين طرح
همروند ،قابليت سريال شدن دارد يا خير؟
حل :دو طرح متوالی برای تراکنش های T1و T2به صورت زير است:
) S1: (T1, T2و )S2: (T2, T1
با شروع تست با مقادير اوليه D1= 100و D2=200خواهيم داشت:
پس از اجرای همروند تراکنش ها در قالب طرح S3مقدار داده ی D1= 45و
داده ی D2=255خواهد بود که اين مقادير برابر با نتيجه ی حاصل از اجرای
متوالی دو تراکنش در قالب طرح S1هستند .از اين رو ،طرح S3را
Serializableيا يک طرح همروند با قابليت سريال شدن می دانيم که اين
امر ،بر صحت مدل همروندی مطرح شده در طرح S3صحه می گذارد.
T1
T2
)R(D1
TEMP:=D1* 0.1
D1:=D1-TEMP
)W(D1
)R(D2
D2:= D2+TEMP
)W(D2
T2
T1
)R(D1
D1:=D1-50
)W(D1
)R(D1
TEMP:=D1* 0.1
D1:=D1 - TEMP
)W(D1
t1
t2
)R(D2
D2:=D2 + 50
)W(D2
)R(D2
D2:=D2 + TEMP
)W(D2
پايگاه داده پيشرفته
)R(D1
D1:=D1 - 50
)W(D1
)R(D2
D2:= D2+50
)W(D2
t3
t4
Slide 11
طرح های معادل
()Equivalent Schedules
11
دو طرح مختلف حاصل از اجرای دو تراکنش (به صورت همروند و يا سريال) معادل نتيجه ای ( Result
)Equivalentهستند اگر نتيجه ی حاصل از اجرای آن دو يکسان باشد .اين يکسان بودن نتايج بايد به ازای
همه ی حاالت و مقادير اوليه باشد و اگر فقط به ازای بعض ی از مقادير اوليه و يا به صورت اتفاقی صورت گيرد دو
طرح ( )Scheduleمعادل نتيجه ای نيستند .در مثال مطرح شده در اساليد قبل ،طرح های S1و S3معادل
نتيجه ای هستند.
`S
)R(D
D:=D* 1.1
)W(D
S
)R(D
D:=D + 10
)W(D
در مثال باال دو طرح Sو ` Sکه تنها شامل يک تراکنش هستند معادل نتيجه ای نمی باشند .چراکه به ازای تمامی
مقادير Dنتيجه ی يکسان بدست نمی آيد.
پايگاه داده پيشرفته
Slide 12
طرح های معادل
()Equivalent Schedules
12
دو طرح مختلف حاصل از اجرای دو تراکنش (به صورت همروند و يا سريال) معادل تعارض ی ( Conflict
)Equivalentهستند اگر نتيجه ی حاصل از اجرای آن دو يکسان باشد و ترتيب اجرای هر دو دستور متعارض
در آن دو طرح نيز يکسان باشد.
دو دستور متعارض ( )Conflicting Operationsدستوراتی هستند که بر روی يک فقره داده ای عمل کرده و
الاقل يکی ازآن دو ،دستور نوشتن باشد .در غير اين صورت ،دو دستور نامتعارض ()Commute Operations
هستند.
)(4
)(3
)(2
)(1
)W(D
)W(D
)W(D
)R(D
)R(D
)W(D
)R(D
)R(D
در حاالت ( )3( ،)2و ( )4دو دستور متعارضند و در حالت ( )1دو دستور نامتعارضند.
پايگاه داده پيشرفته
Slide 13
طرح های معادل
()Equivalent Schedules
13
مثال
طرح S2با طرح سريال ) S1: (T1, T2معادل نتيجه ای است
حال آنکه دو دستور ) W(D2از تراکنش T2و ) R(D2از
تراکنش T1متعارضند و ترتيب اجرای آنها در طرح های S1و S2
مانند هم نيست .بنابراين ،اين دو طرح معادل تعارض ی نيستند.
معادل نتيجه ای بودن طرح سريال ) S1: (T1, T2و طرح S2با
تست مقادير داده ای D1و D2پس از اجرای کامل S1و S2و با
تست چند مقدار اوليه برای اين دو فقره ی داده ای قابل
دستيابی است.
پايگاه داده پيشرفته
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
Slide 14
گراف تعارض
()Conflicting Graph
14
گراف تعارض به گراف پيشايندی ( )Precedence Graphو يا گراف سريال شدن ( Serialization
)Graphنيز معروف است .از اين گراف ،برای آزمون قابليت سريال شدن يک طرح استفاده می شود .بر مبنای
اين گراف ،يک طرح همروند که گراف بر اساس آن رسم می شود در صورتی قابليت اجرا به صورت سريال را دارد
و يا درست است و معادل تعارض ی طرح سريال خود می شود که در گراف دور به وجود نيايد.
در رسم اين گراف ،به ازای هر تراکنش Tiدر طرح ،Sيک گره ( )Nodeدر نظر گرفته می شود .در صورتی از گره
Tiبه گره Tjيک مسير وجود دارد که
-1عمل ) R(Dدر تراکنش Tjپس از عمل ) W(Dاز تراکنش Tiصورت گيرد.
-2عمل ) W(Dدر تراکنش Tjپس از عمل ) R(Dاز تراکنش Tiصورت گيرد.
-3عمل ) W(Dدر تراکنش Tjپس از عمل ) W(Dاز تراکنش Tiصورت گيرد.
پايگاه داده پيشرفته
Slide 15
گراف تعارض
()Conflicting Graph
مثال 1
15
طرح S1
Y
T3
T1
T2
)R(Z
)R(Y
)W(Y
X
Y
Z,
Y
T2
T1
)R(Y
)R(Z
)R(X
)W(X
T3
)W(Y
)W(Z
)R(X
گراف بدست آمده از طرح S1به علت وجود دور در گراف قابليت سريال
شدن ندارد بنابراين طرح S1طرح سريال معادل ندارد.
پايگاه داده پيشرفته
)R(Y
)W(Y
)W(X
Slide 16
گراف تعارض
()Conflicting Graph
مثال 2
16
طرح S2
X, Y
T3
T2
T1
Z,
Y
Y
T2
T1
)R(Y
)R(Z
)R(X
)W(X
)W(Y
)W(Z
)R(Z
T3
گراف بدست آمده از طرح S2قابليت سريال شدن دارد بنابراين طرح S2
طرح سريال معادل دارد که به صورت T3 T1 T2است .
پايگاه داده پيشرفته
)R(Y
)W(Y
)R(Y
)W(Y
)R(X
)W(X
Slide 17
مفهوم قابليت سريال شدن
()Serializability
17
مفهوم قابليت سريال شدن يک طرح همروند به معنای تبديل آن به يک طرح سريال نيست چراکه طرح های
سريال و متوالی عموما ناکارامد هستند.
مفهوم قابليت سريال شدن يک طرح همروند که با رسم گراف تعارض می توان به آن رسيد اين است که آيا اين
طرح همروند دارای يک طرح معادل سريال از نوع تعارض ی هست و يا خير.
مفهوم قابليت سريال شدن يک طرح همروند که با رسم گراف تعارض می توان به آن رسيد اين است که آيا اجرای
اين طرح به صورت همروند صحت اجرا را تضمين می نمايد و يا خير.
به علت دشوار بودن آزمون قابليت سريال شدن در عمل ،واحد مديريت تراکنش ها به مديريت امکان اجرای
همروند تراکنش ها می پردازد و برای اين منظور از پروتکل های همروندی به منظور کنترل اجرای همروند تراکنش
ها استفاده می کند که اين پروتکل ها در درس آينده مورد بررس ی قرار خواهند گرفت.
پايگاه داده پيشرفته
Slide 18
18
برای مطالعه بيشتر
1- Database Systems An Application Oriented Approach
Chapter 20, Implementing Isolation.
Michael Kifer, Arthur Bernstein, Philip M. Lewis
Pearson Addison Wesley Publication, 2006.
-2سيستم مديريت پايگاه داده ها (مفاهيم و تکنيک ها).
فصل دوم ،مفاهيمی از تئوری توالی پذيری.
تاليف :سيد محمد تقی روحانی رانکوهی.
انتشارات جلوه ،مجموعه دانش و فن کامپيوتر .1386 ،13
پايگاه داده پيشرفته
مدل های اجرای سريال و
همروند تراکنش ها
Dr. Fatemeh Ahmadi-Abkenari
February 2013
Advanced Database
Slide 2
اجرای سريال و همروند تراکنش ها
2
تعاريف
برای اجرای چند تراکنش ،ساده ترين راهکار اجرای متوالی و سريال تراکنش ها به صورت پشت سرهم است .اين
مدل از اجرا هرگز پايگاه داده را در وضعيت ناسازگار قرار نمی دهد و نتيجه ی اجرای يک طرح که از اجرای متوالی دو
يا چند تراکنش بدست آمده است هميشه درست است.
اجرای سريال (متوالی) تراکنش ها علی رغم مزيت سادگی ،زمان بر و فاقد کارايی است .البته در موارد چندی ،اجرای
سريال تراکنش ها بهترين گزينه است مانند شرايطی که در آن تراکنش ها کوتاه باشند ،پايگاه به تمامی مقيم
حافظه اصلی باشد ،ماهيت کاربرد مانع از اجرای همروند تراکنش ها شود... ،
همروندی ( )Concurrencyاجرای تراکنش ها ،به معنی اجرای نامتوالی و تودرتوی تراکنش های مزبور است.
بديهی است زمانی که چند تراکنش به داده های يکسانی دسترس ی دارند اجرای همروند آنها بايد کنترل شود چراکه
در غير اين صورت تداخل ( )Interferenceعمل ها موجب عملکرد ناصحيح و افت کارايی برنامه کاربردی می
گردد.
پايگاه داده پيشرفته
Slide 3
مثال
3
دو تراکنش T1و T2برروی دو فقره داده ی Dو Fعملياتی به صورت طرح های زير انجام می دهند:
T2
T1
T2
)R(D
D:=D-N
)W(D
)R(D
D:=D+M
)W(D
T1
)R(D
D:=D-N
)R(D
D:=D+M
)W(D
)R(F
)W(D
F:= F+N
)W(F
)R(F
F:= F+N
)W(F
طرح S4
پايگاه داده پيشرفته
طرح S3
T2
T1
T2
)R(D
D:=D-N
)W(D
)R(F
F:= F+N
)W(F
)R(D
D:=D+M
)W(D
)R(D
D:=D-N
)W(D
)R(F
F:= F+N
)W(F
T1
)R(D
D:=D+M
)W(D
طرح S1
طرح S2
در اين مثال طرح های S1و S2سريال و
طرح های S3و S4همروند هستند.
Slide 4
مشکالت ناش ی از عدم کنترل تراکنش های همروند
1- Lost Update
(بهنگام شدن از دست رفته)
2- Dirty Data Read
(خواندن داده ی ناجور)
3- Inconsistent Analysis
(تحليل ناسازگار)
)4- Unrepeatable Read (Fuzzy Read
(خواندن تکرار نشدنی (خواندن فازی))
پايگاه داده پيشرفته
Slide 5
بهنگام شدن از دست رفته
)(Lost Update
5
زمانی که تراکنش ی درست پس از يک تراکنش ديگر اقدام به نوشتن داده ای کند که تراکنش قبل نيز آن را نوشته
بود اين مشکل بروز می کند که منجر به از دست رفتن مقدار نوشته شده و بهنگام شده توسط تراکنش نخست می
شود.
طرح S
T2
در طرح ،Sمقدار نوشته شده
توسط تراکنش T1در لحظه t3از
دست می رود.
T1
)R(D1
D1:=D1-N
)R(D1
)W(D1
D1:=D1+N
)W(D1
)R(D2
D2:=D2+M
)W(D2
پايگاه داده پيشرفته
t1
t2
t3
t4
t5
Slide 6
خواندن داده ی ناجور
)(Dirty Data Read
6
اين مشکل زمانی بروز می کند که تراکنش دومی داده ی نوشته شده و تغيير يافته توسط تراکنش ی را که هنوز
تثبيت نشده ،بخواند .چرا که در صورت ناکامل تمام شدن تراکنش اول و واگرد آن ،تراکنش دوم از نتايج ميانی آن
استفاده کرده است.
طرح S
در طرح ،Sمقدار نوشته شده توسط
تراکنش T1بر روی داده ی D1در
لحظه t2توسط تراکنش T2خوانده
می شود.
T2
T1
)R(D1
D1:=D1+N
)W(D1
)R(D1
D1:=D1+M
)W(D1
t2
)R(D3
پايگاه داده پيشرفته
t1
t3
Slide 7
خواندن تکرار نشدنی (فازی)
))(Unrepeatable Read (Fuzzy Read
7
اين مشکل زمانی بروز می کند که تراکنش اول ،دو بار داده ای را می خواند اما مابين اين دوبار خواندن ،تراکنش
دوم داده مزبور را بهنگام نموده و تثبيت نيز شده است .بنابراين مقدار اوليه داده مزبور ،ديگر قابل دسترس ی
نخواهد بود.
طرح S
T2
در طرح ،Sتراکنش T1دو بار داده ی D1را در
لحظات t1و t3می خواند داده ی D1مابين دو بار
خوانده شدن ،توسط تراکنش T2تغيير يافته و
تراکنش T2تثبيت نيز شده است.
پايگاه داده پيشرفته
D1:= D1 – X
)W(D1
COMMIT
T1
)R(D1
D1:=D1+X
)W(D1
t1
t2
)R(D1
Y:=Y – D1
)W(Y
COMMIT
t3
Slide 8
تحليل ناسازگار
)(Inconsistent Analysis
8
اين مشکل زمانی بروز می کند که تراکنش اول ،دو داده ی متفاوت را بهنگام می کند و تراکنش دوم اقدام به
خواندن يکی از دو داده قبل از بهنگام شدن و خواندن ديگری پس از بهنگام شدن می نمايد .در نتيجه ،حاصل
محاسبه ای که در آن دو داده ی ذکر شده در تراکنش دوم حضور داشته باشند ناصحيح خواهد شد.
طرح S
T2
T1
)R(D1
D1:=D1-N
)W(D1
در طرح ،Sمقدار نوشته شده
توسط تراکنش T1بر روی داده ی
D1در لحظه t2توسط تراکنش
T2خوانده می شود.
پايگاه داده پيشرفته
)R(D1
SUM:=SUM + D1
)R(D2
SUM:=SUM + D2
t1
t2
)R(D2
D2:=D2 + N
)W(D2
t3
Slide 9
طرح های با قابليت اجرای سريال
9
با توجه به مشکالت مطرح شده در اساليدهای قبل ،مالحظه می شود که اجرای همروند تراکنش ها در صورت
کنترل نشدن منجر به نتايج نادرست می گردد.
آنچه که بر صحت و درستی نتايج حاصل از اجرای همروند تراکنش ها صحه می گذارد يکی بودن نتايج حاصل از
اجرای همروند تراکنش ها با نتيجه حاصل از اجرای متوالی و سريال آنهاست .بنابراين برای nتراکنش مفروض،
طرح )S Schedule( Sکه به صورت همروند اجرا می شود قابليت سريال شدن ( )Serializableدارد اگر
همان نتيجه توليد شود و تاثير آن بر روی پايگاه همان باشد که طرح حاصل از اجرای متوالی و سريال اين n
تراکنش.
بنابراين اجرای همروند مجموعه ای از تراکنش ها در صورتی درست است که طرح اجرا ،قابليت سريال شدن
داشته باشد.
پايگاه داده پيشرفته
Slide 10
طرح های با قابليت اجرای سريال
10
مثال
تراکنش های T1و T2به صورت روبرو مفروضند:
اگر تراکنش های T1و T2را همروند و به صورت
طرح S3اجرا کنيم بررس ی می کنيم که آيا اين طرح
همروند ،قابليت سريال شدن دارد يا خير؟
حل :دو طرح متوالی برای تراکنش های T1و T2به صورت زير است:
) S1: (T1, T2و )S2: (T2, T1
با شروع تست با مقادير اوليه D1= 100و D2=200خواهيم داشت:
پس از اجرای همروند تراکنش ها در قالب طرح S3مقدار داده ی D1= 45و
داده ی D2=255خواهد بود که اين مقادير برابر با نتيجه ی حاصل از اجرای
متوالی دو تراکنش در قالب طرح S1هستند .از اين رو ،طرح S3را
Serializableيا يک طرح همروند با قابليت سريال شدن می دانيم که اين
امر ،بر صحت مدل همروندی مطرح شده در طرح S3صحه می گذارد.
T1
T2
)R(D1
TEMP:=D1* 0.1
D1:=D1-TEMP
)W(D1
)R(D2
D2:= D2+TEMP
)W(D2
T2
T1
)R(D1
D1:=D1-50
)W(D1
)R(D1
TEMP:=D1* 0.1
D1:=D1 - TEMP
)W(D1
t1
t2
)R(D2
D2:=D2 + 50
)W(D2
)R(D2
D2:=D2 + TEMP
)W(D2
پايگاه داده پيشرفته
)R(D1
D1:=D1 - 50
)W(D1
)R(D2
D2:= D2+50
)W(D2
t3
t4
Slide 11
طرح های معادل
()Equivalent Schedules
11
دو طرح مختلف حاصل از اجرای دو تراکنش (به صورت همروند و يا سريال) معادل نتيجه ای ( Result
)Equivalentهستند اگر نتيجه ی حاصل از اجرای آن دو يکسان باشد .اين يکسان بودن نتايج بايد به ازای
همه ی حاالت و مقادير اوليه باشد و اگر فقط به ازای بعض ی از مقادير اوليه و يا به صورت اتفاقی صورت گيرد دو
طرح ( )Scheduleمعادل نتيجه ای نيستند .در مثال مطرح شده در اساليد قبل ،طرح های S1و S3معادل
نتيجه ای هستند.
`S
)R(D
D:=D* 1.1
)W(D
S
)R(D
D:=D + 10
)W(D
در مثال باال دو طرح Sو ` Sکه تنها شامل يک تراکنش هستند معادل نتيجه ای نمی باشند .چراکه به ازای تمامی
مقادير Dنتيجه ی يکسان بدست نمی آيد.
پايگاه داده پيشرفته
Slide 12
طرح های معادل
()Equivalent Schedules
12
دو طرح مختلف حاصل از اجرای دو تراکنش (به صورت همروند و يا سريال) معادل تعارض ی ( Conflict
)Equivalentهستند اگر نتيجه ی حاصل از اجرای آن دو يکسان باشد و ترتيب اجرای هر دو دستور متعارض
در آن دو طرح نيز يکسان باشد.
دو دستور متعارض ( )Conflicting Operationsدستوراتی هستند که بر روی يک فقره داده ای عمل کرده و
الاقل يکی ازآن دو ،دستور نوشتن باشد .در غير اين صورت ،دو دستور نامتعارض ()Commute Operations
هستند.
)(4
)(3
)(2
)(1
)W(D
)W(D
)W(D
)R(D
)R(D
)W(D
)R(D
)R(D
در حاالت ( )3( ،)2و ( )4دو دستور متعارضند و در حالت ( )1دو دستور نامتعارضند.
پايگاه داده پيشرفته
Slide 13
طرح های معادل
()Equivalent Schedules
13
مثال
طرح S2با طرح سريال ) S1: (T1, T2معادل نتيجه ای است
حال آنکه دو دستور ) W(D2از تراکنش T2و ) R(D2از
تراکنش T1متعارضند و ترتيب اجرای آنها در طرح های S1و S2
مانند هم نيست .بنابراين ،اين دو طرح معادل تعارض ی نيستند.
معادل نتيجه ای بودن طرح سريال ) S1: (T1, T2و طرح S2با
تست مقادير داده ای D1و D2پس از اجرای کامل S1و S2و با
تست چند مقدار اوليه برای اين دو فقره ی داده ای قابل
دستيابی است.
پايگاه داده پيشرفته
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
Slide 14
گراف تعارض
()Conflicting Graph
14
گراف تعارض به گراف پيشايندی ( )Precedence Graphو يا گراف سريال شدن ( Serialization
)Graphنيز معروف است .از اين گراف ،برای آزمون قابليت سريال شدن يک طرح استفاده می شود .بر مبنای
اين گراف ،يک طرح همروند که گراف بر اساس آن رسم می شود در صورتی قابليت اجرا به صورت سريال را دارد
و يا درست است و معادل تعارض ی طرح سريال خود می شود که در گراف دور به وجود نيايد.
در رسم اين گراف ،به ازای هر تراکنش Tiدر طرح ،Sيک گره ( )Nodeدر نظر گرفته می شود .در صورتی از گره
Tiبه گره Tjيک مسير وجود دارد که
-1عمل ) R(Dدر تراکنش Tjپس از عمل ) W(Dاز تراکنش Tiصورت گيرد.
-2عمل ) W(Dدر تراکنش Tjپس از عمل ) R(Dاز تراکنش Tiصورت گيرد.
-3عمل ) W(Dدر تراکنش Tjپس از عمل ) W(Dاز تراکنش Tiصورت گيرد.
پايگاه داده پيشرفته
Slide 15
گراف تعارض
()Conflicting Graph
مثال 1
15
طرح S1
Y
T3
T1
T2
)R(Z
)R(Y
)W(Y
X
Y
Z,
Y
T2
T1
)R(Y
)R(Z
)R(X
)W(X
T3
)W(Y
)W(Z
)R(X
گراف بدست آمده از طرح S1به علت وجود دور در گراف قابليت سريال
شدن ندارد بنابراين طرح S1طرح سريال معادل ندارد.
پايگاه داده پيشرفته
)R(Y
)W(Y
)W(X
Slide 16
گراف تعارض
()Conflicting Graph
مثال 2
16
طرح S2
X, Y
T3
T2
T1
Z,
Y
Y
T2
T1
)R(Y
)R(Z
)R(X
)W(X
)W(Y
)W(Z
)R(Z
T3
گراف بدست آمده از طرح S2قابليت سريال شدن دارد بنابراين طرح S2
طرح سريال معادل دارد که به صورت T3 T1 T2است .
پايگاه داده پيشرفته
)R(Y
)W(Y
)R(Y
)W(Y
)R(X
)W(X
Slide 17
مفهوم قابليت سريال شدن
()Serializability
17
مفهوم قابليت سريال شدن يک طرح همروند به معنای تبديل آن به يک طرح سريال نيست چراکه طرح های
سريال و متوالی عموما ناکارامد هستند.
مفهوم قابليت سريال شدن يک طرح همروند که با رسم گراف تعارض می توان به آن رسيد اين است که آيا اين
طرح همروند دارای يک طرح معادل سريال از نوع تعارض ی هست و يا خير.
مفهوم قابليت سريال شدن يک طرح همروند که با رسم گراف تعارض می توان به آن رسيد اين است که آيا اجرای
اين طرح به صورت همروند صحت اجرا را تضمين می نمايد و يا خير.
به علت دشوار بودن آزمون قابليت سريال شدن در عمل ،واحد مديريت تراکنش ها به مديريت امکان اجرای
همروند تراکنش ها می پردازد و برای اين منظور از پروتکل های همروندی به منظور کنترل اجرای همروند تراکنش
ها استفاده می کند که اين پروتکل ها در درس آينده مورد بررس ی قرار خواهند گرفت.
پايگاه داده پيشرفته
Slide 18
18
برای مطالعه بيشتر
1- Database Systems An Application Oriented Approach
Chapter 20, Implementing Isolation.
Michael Kifer, Arthur Bernstein, Philip M. Lewis
Pearson Addison Wesley Publication, 2006.
-2سيستم مديريت پايگاه داده ها (مفاهيم و تکنيک ها).
فصل دوم ،مفاهيمی از تئوری توالی پذيری.
تاليف :سيد محمد تقی روحانی رانکوهی.
انتشارات جلوه ،مجموعه دانش و فن کامپيوتر .1386 ،13
پايگاه داده پيشرفته