به نام خدا
فصل پنجم :
جامعیت پایگاه داده وسیستم فعال
(برگرفته از کتاب دکتر رانکوهی )
1
جامعیت پایگاه داده وسیستم فعال
2
تعریف جامعیت
عوامل نقض جامعیت
مسئولیت کنترل جامعیت
انواع محدودیت های جامعیتی
توصیف محدودیت های جامعیتی
مثال های توصیف محدودیت
زمان اعمال محدودیت
جامعیت:
3
عناصر مدل پایگاه اطلاعاتی
ساختمان های داده (ساختار داده ای)
عملیات (عملگرهای عمل کننده بر روی داده ها)
جامعیت (قواعد عام برای جامعیت داده ها)
4
جامعیت پایگاه داده یعنی صحت، دقت و سازگاری داده های ذخیره شده در پایگاه داده در تمامی لحظات.
پایگاه داده در حالت جامعیت است اگر وفقط اگر از محدودیت های جامعیت تخطی نکند(یعنی اگر و فقط اگر سازگار باشد)
در واقع حصول اطمینان از اینکه داده ها در پایگاه داده (حتی الامکان)صحیح باشند.
جامعیت در پایگاه داده
5
ارائه تعاریفی از جامعیت
جامعیت مجموعه ای است از امکانات برای انجام کنترل داده های ذخیره شده درپایگاه داده .
مثال:یکسری کنترلها وجود دارد که دانشجوی مشروط شده نمی تواند
بیشتر از 14 واحد اخذ کند.
مجمعه قوانین و مقرراتی که دقت ، صحت ،سازگاری داده در پایگاه داده تضمین می شود .
6
دو مفهوم جامعیت و سازگاری مترادف یکدیگر بیان شده اند.
INTEGRITY=COMPLETENESS+VALIDITY
اعتبار + کامل بودن =جامعیت
بیشتر مولفین مفهوم جامعیت را با مفهوم سازگاری مترادف می دانند و گاها بعضی مفهوم جامعیت را معادل با درستی داده می دانند که سازگار بودن را هم ایجاب می کند.
نظریه های مولفین در مورد جامعیت
7
در هر محیط عملیاتی همیشه مجموعه از قواعد معنایی(Semantic rule) موسوم به محدودیت های جامعیتی وجود دارند.
بنابراین برای اینکه پایگاه داده همیشه حاوی داده های صحیح باشد باید قواعد معنایی محیط به درستی اعمال و رعایت شود.
با توجه به اینکه پایگاه داده یک محیط ذخیره و بازیابی اشتراکی چند کاربری است DBMSباید بتواند ،ضمن اعمال تغییرات مورد نظر کاربران مجاز،جامعیت پایگاه داده در تمام لحظات را تضمین کند.
اهمیت جامعیت زمانی بیشتر می شود که به نقش اطلاعات صحیح در تصمیم گیری در سازمانها توجه شود.تصمیماتی که براساس اطلاعات ناصحیح اتخاذ شوند قطعا تصمیمات درست نبوده و ای بسا پیامدهای جبران ناپذیر به بار آورند.
اهمیت جامعیت پایگاه داده
8
جامعیت پایگاه داده ممکن است توسط عوامل متعددی نقض شوند از جمله:
اشتباه در برنامه های کاربردی
بویژه اشتباهات معنایی که خود از عدم دقت کاربران و یا نبود شناخت کافی از قواعد ومحدودیت های معنایی خرد جهان واقع وعدم اعمال آنها ناشی می شود.
اشتباه در وارد کردن داده ها توارد کنترل شده تراکنش ها
وجود افزونگی کنترل نشده اشتباه در تراکنش
خرابی های نرم افزاری و سخت افزاری
تمامی این عوامل چه بطور مستقیم و چه غیر مستقیم بر روی نقض قواعد جامعیتی تاثیر دارد.
اما عامل اصلی دراین عوامل همان اشتباهات معنایی است.
عوامل نقض جامعیت
9
محدودیت جامعیتی (INTEGRITY CONSTRAINT) باید به نحوی اعمال شوند،این
اعمال بر عهده:
-1طراح برنامه های کاربردی:
در اینجا این مسئولیت بر عهده Application designer یا User می باشند،برنامه های کاربردی باید از نظر رعایت محدودیت جامعیت و اعمال آنها صحیح باشد.
در این روش کنترل جامعیت از اطمینان و انسجام لازم برخوردار نیست به علاوه اگر برخی از محدودیت های جامعیتی تغییر کنند باید برنامه ها متعاقبا اصلاح شوند و نیز احتمال اعمال محدودیت های جامعیتی نامناسب و احیانا ناهماهنگ وجود دارد.
مسئولیت کنترل جامعیت
10
2-طراح تراکنش ها Transaction designer:
در این روش برنامه های کاربردی می توانند فقط از تراکنش های از پیش تعریف شده استفاده کنند،به علاوه اگر بعضی از محدودیت های جامعیتی تغییر کنند ،تراکنش ها نیزباید متناسبا اصلاح شوند .
اگرتعداد محدودیت ها زیاد باشد تراکنش پیچیده می شود.
چنانچه نرخ تراکنش های موردی بالا باشد به کارگیری این روش دشوار است.
11
3- سیستم مدیریت پایگاه داده:
کنترل جامعیت می تواند برعهده خود سیستم مدیریت پایگاه داده باشد در این صورت تراکنش های دلخواه کاربران می تواند روی سیستم اجراشوند.
جامعیت پایگاه داده بر اساس مجموعه ای از محدودیت ها ی به دقت تعریف شده (توسط تیم مدیر پایگاه داده ) تضمین می شود .
12
انتخاب یکی از سه روش یا ترکیبی از آنها به عوامل زیر بستگی دارد:
کاربردی که پایگاه داده برای آن طراحی و ایجاد شده است.
ماهیت پردازش ها در برنامه های کاربردی
کارایی مورد انتظار سیستم
ماهیت داده های محیط
قابلیت های سیستم مدیریت پایگاه داده
میزان پیچیدگی محدودیت های جامعیتی
میزان تنوع و گوناگونی محدودیت های جامعیتی
13
دو رده محدودیت جامعیتی وجود دارد:
1- محدودیت های ساختاری(Structural constraint)
( Non Structural constraint2- محدودیت های نا ساختاری(رفتاری)(
دسته بندی دیگر نیز وجود دارد که شامل محدودیت های خاص (قواعد کاربری )و محدودیت های عام (متا قواعد )مطرح است که مدودیت های خاص خود دو گونه دارد :محدودیت نوع وپایگاهی
انواع محدودیت های جامعیتی:
14
این نوع محدودیت خاص یک مدل داده ای است و خاصیتی در مورد عناصر ساختار
اساسی و سایر عناصر ساختاری مدل داده ای را بیان می کند ،این محدودیت ها حالت
ایستا دارد و جزء مدل داده ای است.
قواعد ساختاری را میتوان در تعریف رابطه ها (در شمای ادراکی ) به سیستم داد .
(Structural constraint) محدودیت های ساختاری
15
1) محدودیت میدانی(دامنه ای)(Domain constraint)
2) محدودیت هیچ مقدار ناپذیری کلید (قاعده جامعیت موجودیتی )(Enttity Integrity rule )
3) محدودیت ارجاعی(Referential constraint )(قاعده جامعیت ارجاعی ).
4)محدودیت ستونی(صفتی)
بعضی از محدودیت های ساختاری
16
این نوع محدودیت، قاعده ای است از خرد جهان واقع که باید در عملیات روی پایگاه داده رعایت شود می توان آن راجزء محدودیت های کاربری محسوب کرد.
این محدودیت جزء مدل داده ای نیست و از این رو به آن محدودیت نا ساختاری گفته میشود.
محدودیت ناساختاری (رفتاری)
17
وابستگی تابعی بین صفات
وابستگی چند مقداری بین صفات
وابستگی شمول : مقادیر یک (چند) صفت از یک رابطه ، زیر مجموعه ای از مقادیر یک (چند) صفت از رابطه ای دیگر باشد.
بعضی از محدودیتهای ناساختاری عبارتند از:
18
محدودیت گذار TRANSITION :
محدودیتی است ناظر به تغییر حالت DB بعد از اجرای یک تراکنش در واقع در گذار از یک حالت سازگار به حالت سازگار دیگر
با عنوان مثال " مقدار صفت سن افراد هرگز کاهش نمی یابد "
محدودیت معادله ای EQUATIONAL:
مقدار دو عبارت محاسبه شده براساس داده های ذخیره شده در پایگاه ، باید مساوی باشند .
مثلا مقدار صفت موجودی انبار در هر لحظه برای یک جنس برابر است با کل تعداد خریداری شده از آن جنس منهای کل تعداد فروخته شده از آن .
19
محدودیت زمانی :
به نوعی از محدودیت گفته می شود که در آن از قید زمان استفاده شود ، مثل همیشه ، هرگز ، گاهی . اعمال این نوع محدودیت ها در عمل دشوار است.
محدودیت مدیریتی:
محدودیتی است جاری در خرد جهان واقع و ناظر به داده های آن و معمولا از رویه ها و قواعد و آئین نامه های مدیریتی ناشی می شود .
مثلا در محیط آموزشی ، دانشجوی مشروط در یک ترم نمیتواند در ترم بعد بیش از N واحد درس انتخاب کند.
20
روشهای توصیف :
محدودیت های جامعیتی باید به نحوی به سیستم داده شوند .
براین اساس چهارروش وجوددارد:
توصیف محدودیت جامعیتی
21
روش زبانی : Language oriented method) )
در این روش محدودیت جامعیتی به کمک دستورهای یک زبان و به یکی از دو صورت زیر بیان میشود.
الف) اعلانی :
در این حالت از دستورهای DDL, DCL برای اعلان محدودیت های جامعیتی استفاده می شود . این زبان ممکن است مبتنی بر جبر رابطه ای ، حساب رابطه ای و یا منطق مستندات مرتبه اول باشد.
ب) اجرایی :
در حالت اجرایی میتوان با نوشتن رویه ادغام شده و رهانا محدودیت جامعیتی را اعمال کرد .
22
روش فرمی Form oriented method :
در این روش محدودیت از طریق پرکردن یک فرم تولید شده توسط سیستم، به سیستم داده می شوند.غالبا این فرم ها همان نمایش جداول رابطه ای هستند .
روش جعبه ابزاریTool box oriented method :
در این روش محدودیت به کمک جعبه ابزار به سیستم داده میشود.
گرافیکی Graphics:
در این روش محدودیت جامعیتی به کمک نماد های گرافیکی به سیستم داده میشود.
23
رابطه دانشجو STT(STID,STNAME,STDEG,STMJR,DEID)
رابطه درس COT(COID,COTITLE,CREDIT,COTYPE,DEID)
رابطه انتخاب STCOT(STID ,COID,TR,YRYR,GRADE)
DEPT(DEID,DTITLE,DEPHON,DEMGID) رابطه گروه آموزشی
رابطه استاد PROF(PRID,PRNAME,PSPECIAL,RANK,PRSALARY,DEID)
رابطه استاد – درس PRSO (PRID,COID,SECN,TR,YRYR)
مثال های توصیف محدودیت
24
CONSTRAINT CREDCONST 1
FOR ALL CREDIT( 0 < CREDIT <= 4 )
براساس این محدودیت ، مقادیر صفت CREDIT از میدان CREDIT باید بزرگتر از صفرو حداکثر برابر چهار باشد. (تعداد واحد های درس )
مثال محدودیت میدانی:
25
CONSTRAINT COTCONST 2
FOR ALL COTTUP( IF COTTUP .COTYPE=‘LAB’
THEN COTTUP.CREDIT =1 )
محدودیت اگر درس آزمایشگاهی باشد تعداد واحد آن یک (1)است .
مثال محدودیت رابطه ای :
26
CONSTRAINT STTCONST 3
FOR ALL STTTUP1(FOR ALL STTTUP2
( IF STTTUP1.STID=STTTUP2.STID
THEN STTTUP1.STMAJ=STTUP2.STMJR))
هستند ) STT دو متغیر تاپلی تعریف شده روی STTTUP2 و STTTUP1(
:این محدودیت وابستگی تابعی زیر را بیان میکند
STTD.STID STT.STMJR
27
را اتنخاب کنندC121 باید درس D111 همه دانشجویان گروه آموزشی
CONSTRAINT EDUCDB CONST9 IS-EMPTY
((STT WHERE STDEID=‘D111’) { STID}
MINUS
(STCOT WHERE COID=‘C121’) {STID});
28
نمره دانشجو دوره کارشناسی ارشد در هیچ درسی نباید کمتر از 12 باشد.
CONSTRAINT EDUCDB CONST10
FOR ALL ST FOR ALL SCT
(IF ST.STID=SCT.STID
THEN ST.STDEG=‘ms’ OR
SCT.GRADE>12 END IF)
و STCOT دو متغیر تاپلی هستند که به ترتیب روی رابطه های ST و SCTدر اینجا
تعریف شده اند .STT
29
محدودیت جامعیتی ممکن است بلافاصله اعمال شود یا با تاخیر.
زمان اعمال محدودیت: چه زمانی باید محدودیت اعمال شود؟
30
مهمترین دلیل چنین است:
پایگاه داده مجموعه ای است از گزاره های درست و اگر قرار باشد به علت اعمال با تاخیر محدودیت جامعیتی ، ناسازگاری در پایگاه داده پدید آید ، در این صورت با توجه به خاصیت جدایی ، همیشه یک تراکنش DB را ناسازگار میبیند ودر نتیجه پاسخ های نادرست برای پرسش ها تولید میکند.
وقتی یک پایگاه داده ناسازگار باشد این ناسازگاری تنها توسط یک تراکنش خاص دیده نمیشود ، بلکه بیش از یک تراکنش با آن مواجه میشوند.
31
(ADBMS) سیستم فعال
تعاریف
ECA قاعده فعال (قاعده تولید )
معماری سیستم فعال
مدل اجرا
32
33
برخلاف سیستم غیر فعال که داده ها را ذخیره بازیابی و مدیریت میکند،
سیستم فعال سیستمی است که در قبال رویدادهای در پایگاه داده ویا در محیط سیستم پایگاهی واکنش مناسب ،بلافاصله بدون دخالت کاربر نشان میدهد .
در سیستم غیر فعال چنانچه رویدادی درسیتم بروز کند سیستم قادر به واکنش مناسب نیست ،اما سیستم فعال جامعیت پایگاه داده را در هر لحظه کنترل می نماید
در سیستم غیر فعال ،پایگاه داده هیچگونه ابتکار عملی را درهنگام رخداد شرایط خاص از خود بروز نمیدهد
و عملیات درست در زمانی انجام میشود که کاربر درخواست کرده باشد.
مانند کنترل موجودی انبار
استقلال دانشی
در سیستم فعال برای اینکه خود سیستم بتواند در موقع بروز رویداد پاسخ مناسب را اعمال نمائید نیازمند مجموعه ای از قوانین پویا برای کنترل عملکرد سیستم است .
این قوانین باید به نحوی به سیستم داده ودر سیستم ذخیره شود که دانش لازم برای ادامه پردازش در صورت بروز یک رویداد درون خود سیستم و بدون نیاز به مراجعه سیستم کاربردی ،روند پردازش انجام می شود .
این دانش به صورت مجموعه ای ازقواعد موسوم به قواعد تولید در شمای پایگاه داده نگهداری می شود و بین برنامه کاربردی متعدد مشترک است.
34
ECAقاعده فعال (رویداد ،شرط،اقدام )
این قوانین از سه بخش رویداد، شرط و عمل تشکیل شده اند.( قوانین ECA)
ON EVENT IF CONDITION THEN ACTION
با فعال شدن هر رویداد
قانون مربوط به آن فعال شده
بخش شرط آن ارزیابی میشود
در صورتی که دارای ارزش درست باشد عملیات آمده در بدنه قانون به اجرا در خواهدآمد.
اجرای این قانون ممکن است منجر به ایجاد شدن رویدادهای دیگر شود که در این صورت این رویدادها نیز به لیست رویدادهای فعال اضافه میشود.
اجرای قوانین تا خالی شدن صف ذخیره سازی رویدادهای فعال ادامه مییابد.
35
DEFINE RULE MonitorName
ON INSERT TO Employee
IF Employee.Name="John"
THEN…
با هر عمل درج در جدول Employee قانون بالا فعال میشود و اگر مقدار فیلد نام برابر "John" باشد اجرا خواهدشد.
مثالی از نحوه تعریف و فعال شدن قوانین
36
DEFINE RULE MonitorName
IF Employee.Name="John"
THEN…
در حالت دوم این قانون همیشه فعال بوده و اگر شرط دارای مقدار درست باشد اجرا خواهدشد.
37
رویداد
عبارت است از پدیده ای که در یک لحظه مشخص در بیرون یا درون سیستم رخ میدهد
موقعیت و وضعیتی که باید قوانین آنها را کنترل کنند.
38
رویداد میتواند اختیاری یا اجباری یاشد
در حالت اختیاری قاعده فعال فقط به صورت شرط -کنش است
مشکل :ایجاد سربار پردازشی
When C then A
C شرطی است که ارزیابی شده و در صورتی که دارای ارزش درست باشد عمل A انجام میشود. برای رفع این سربار پردازشی از قالبهای رویداد-شرط-عمل به جای قالبهای شرط-عمل استفاده میشود.
on E if C then A
در قالب بالا در حالت کلی قوانین در سیستم به صورت فعال نیستند و رویدادها هستند که وقوع آنها موجب فعال شدن قوانین میشود.
39
انواع رویداد
دو نوع رویداد وجود دارد:
رویدادهای (ساده)منفرد
رویدادهای مرکب (ترکیبی ) ترکیبی
40
رویدادهای ساده
رویدادهای داخلی
رویدادهایی که به دلیل انجام شدن اعمال مختلف بر روی داده ها ایجاد می شوند
عملیات درج، حذف، به روزرسانی و بازیابی داده
رویدادهای تراکنشی
رویدادهای خارجی
رویدادهای زمانی
41
رویدادهای ترکیبی
عملگرهای منطقی: ترکیب AND و OR و …
دنباله ای از رویدادها: یک قانون می تواند در صورتی فعال شود که چند رویداد با ترتیب معینی رخ دهند.
عملگرهای وابسته به زمان: یک قانون می تواند بر اساس ترکیبی از رویدادهای زمانی و غیر زمانی فعال شود.
به عنوان نمونه "یک ساعت بعد از رخداد رویداد الف" و یا "هر یک دقیقه بعد از اولین رخداد رویداد الف" نوعی رویداد ترکیب زمانی محسوب می شود.
42
مثال یک رویداد مرکب
((1 h after update )or(after insert then before delete)and (5time before insert )and commit not in [10 h , 12 h]))
43
44
45
شرط
شرط به صورت یک گزاره یا به صورت یک پرسش روی پایگاه داده است
دادن شرط در قاعده فعال اختیاری است
E a
اگر شرط داده شود کنش در صورتی انجام میشود که نتیجه ارزیابی شرط درست باشد
46
شروط
47
ACTION کنش (اقدام )
بخش عمل در بدنه قانون، نحوه رفتار واکنشی آن قانون نسبت به رویدادها میباشد.
انواع عملیاتی که در این بخش میتوانند قرار گیرند عبارتند از:
عملیات اصلاح و بازیابی داده در پایگاه داده رابطه ای
عملیات تراکنشی مثل اتمام یا شروع تراکنش در پایگاه داده شئ گرا
عملیات فراخوانی رویه در پایگاه داده رابطه ای
48
مثال
CREATE RULE SALARY CONTROL ON PROF
WHEN INSERTED,DELETED,UPDATED(PRSALARY)
IF (SELECT AVG(PRSALARY )FROM PROF )<150,000
THEN UPDATE PROF
SET PRSALARY =1.2*PRSALARY
49
معماری سیستم فعال
این سیستم از نظر اجزا تشکیل دهنده هنوز معماری استانداردی ندارد
یک معماری ممکن برای این سیستم میتواند به شرح ذیل باشد :
تحلیلگر قواعد موتور قواعد
پایشگر رویدادها ارزیاب شرط
اجرا کننده کنش دیکشنری قواعد
50
51
معماری سیستم فعال
سیستم فعال
اولا باید خود یک سیستم مدیریت پایگاه داده باشد
ثانیا باید مکانیسم ها و امکانات لازم برای فعال کردن قواعد جامعیتی را داشته باشد
52
پیاده سازی معماری
روش سیستم یکپارچه
روش میانجی
درروش یکپارچه واحدهای لازم برای یک سیستم فعال به خود سیستم مدیریت پایگاه داده افزوده می شود
در روش میانجی یک زیر سیستم فعال به عنوان میانجی با سیستم مدیریت پایگاه داده ایجاد میشود و این زیر سیستم روی سیستم مدیریت پایگاه داده اجرا میشود
53
مزایا ی روش یکپارچه
نیازی به تغییر دادن برنامه های کاربردی نیست
بهینه سازی قواعد ECA بر عهده خود سیستم مدیریت پایگاه داده است
قابلیتهای سیستم مدیریت پایگاه داده گسترش می یابد
واحد مندی برنامه های کاربردی بهتر و نگهداری آنها آسانتر است
اما لازمه یکپارچه سازی این است که دستیابی به لایه های درونی سیستم مدیریت پایگاه داده امکان پذیر باشد و برای این کارلازم است که کد مبدا سیستم در دسترس باشد
54
مزایای روش میانجی
نامرئی بودن میانجی برای برنامه کاربران
محفوظ ماندن قابلیتهای سیستم مدیریت پایگاه داده
گسترش قابلیتهای سیستم مدیریت پایگاه داده
سیستم جابجائی پذیر میشود
باین اوصاف این روش بسیار وابسته به یک سیستم مدیریت پایگاه داده خاص است و تطبیق دادن آن با یک سیتم مدیریت پایگاه داده دیگر مشکلاتی دارد
واینکه این لایه افزوده به سیستم نمی تواند به طور منفرد خدمات خود را ارائه کند و این زمانی برآورده می شود که سیستم فعال به صورت چند پارچه و دارای واحد های مجزا و در عین حال همکاری کننده با هم طراحی شود
55
مدل اجرا
هر سیستم فعال باید داری یک مدل اجرا باشد اگر چه این مدل در سیستم ها ی موجود یکسان نمی باشد ولی باید به گونه ای باشد تا به سولات زیر پاسخ مناسب همرا با عملکرد کارا داشته باشد
رویداد را چه زمانی دخالت داد ؟
در لحظه بروز رویدادیا وقتی که قاعده دیگری فعال نباشد
قواعد براساس چه اولویتی اعمال شود ؟
ترتیب معرفی قواعد به سیستم یا تعیین اولویت توسط سیستم
اقدام چه زمانی انجام شودوبه چه صورت در نظر گرفته شود ؟
برای پاسخ به این سوال باید دید که رویداد چگونه با ارزیابی شرط داده شده مرتبط است
56
ارتباط بین قسمتهای شرط و عمل میتواند دارای سه حالت متفاوت باشد
57
:
پس از ارزیابی شرط ودر صورت احراز آن اقدام به سه صورت بلافاصله با تاخیر یا منفک انجام میشود اگرچه در اکثر سیستم ها اقدام بلا فاصله انجام میشود .
فوری
در این حالت عمل ارزشیابی شرط بلافاصله پس از اتمام دستوری که موجب رخ دادن رویداد مورد نظر شده است انجام میشود.
برای حالت اجرای عمل نیز دقیقا به همین صورت عمل میشود.
در این حالت عمل بلافاصله پس از اتمام ارزشیابی قانون در صورتی که شرط دارای ارزش درست باشد اجرا خواهد شد.
در حالت فوری ارزشیابی شرط و اجرای عمل در یک تراکنش واحد انجام میشوند.
58
با تاخیر و مستقل
درروش باتاخیر این حالت کنترل شرط و یا اجرای عمل تا پایان تراکنش جاری به تاخیر می افتد.
در برخی موارد کنترل شرط و یا اجرای عمل تا رخ دادن رویداد خاصی به تاخیرخواهد افتاد.
اما در روش مستقل کنترل شرط در یک تراکنش مستقل و جداگانه اما ایجاد شده توسط تراکنش موجود رویدادپس از اتمام تراکنش جاری انجام میشود.
59
پایان اجرای قاعده
اگر انجام عمل موجود در یک قاعده منجر به بروز شرایطی نشود که اعمال قواعد دیگری را لازم سازد در این صورت اجرای قاعده پایان می پذیرد
حال اگر شرایطی پیش بیاید که اعمال قواعد دیگری لازم شود
با استفاده از دو روش ذیل با اجرای قاعده برخورد میشود :
بعد از اولین اقدام اجرای قاعده توقف یابد
اعمال تمام قواعد دیگر وسپس توقف اجرا قاعده واعلان پایان قاعده
در حالت دوم ممکن است قاعده انتشار پیش آید با صورت که یعنی اعمال یک قاعده موجب اعمال قاعده دیگر شود و ممکن است که سبب بروز مشکل پایان ناپذیری شود یعنی ممکن است که قواعد به صورت تسلسلی ونامحدود یکدیگر را فعال کنند.
60
راه حل مشکل پایان ناپذیری
دوروش مطرح است :
اینکه تعیین یک حد برای قواعدی که در پی هم فعال میشوند
تحلیل پایان پذیری به صورت ایستا و پویا
در روش ایستا پایان پذیری در زمان کامپایل بررسی میشود تا زیر مجموعای از قواعد که می توانند یکدیگر را به صورت مستقیم یا غیر مستقیم فعال کنند بررسی میشود ودر صورت چنین زیر مجموعه هایی طراح قواعد باید تغییرات لازم را در قواعد اعمال کند
در روش پویا پایان پذیری قاعده در زمان اجرای آن بررسی میشو د
روش دیگری نیز وجود دارد که بااستفاده از گراف جهت دار و درصورت عدم وجود حلقه اجرای قواعد تضمین میشود .
61
مدل اجرا قاعده فعال
در یک سیستم پایگاه داده فعال، در ابتدای امر برنامه کاربردی در حال اجراست.
تا زمانی که هیچ رویداد از پیش تعریف شده ای در سیستم رخ نداده است اجرای برنامه کاربردی ادامه پیدا میکند.
به محض اینکه رویدادی در سیستم رخ داد، یک سری قوانین که با این رویداد مرتبط هستند فعال شده و وارد لیست رویدادهای فعال میشوند.
حال با توجه به مکانیزم انتخاب، یکی از قوانین فعال موجود در لیست، انتخاب شده و شرط موجود در بدنه قانون ارزیابی میشود.
در صورت درست بودن شرط، اجرای بخش عمل قانون مربوطه انجام میشود.
اگر اجرای این عمل موجب رخ دادن رویدادهای دیگری در سیستم شد، این قوانین جدید نیز به لیست رویدادهای فعال سیستم اضافه میشوند.
ارزیابی و اجرای قوانین تا زمانیکه صف قوانین فعال خالی شود ادامه پیدا میکند.
در ادامه نیز کنترل به برنامه کاربردی منتقل میشود.
62
پردازش اشتباه
درصورت بروز اشتباه سیستم چه کار میکند ؟
حذف داده مورد نیاز یا به بن بست رسیدن تراکنها و یا اشتباهی که در خود سیستم رخ میدهد باعث به وجود آمدن اشتباه میشود
اگرچه در اکثر سیستم ها با بروز اشتباه در هنگام اجرای قاعده فعال تراکنش لغو میشود اما این راهحل مناسبی نیست
راه حل دیگر این است که سیستم به اجرای قاعده پایان دهد ولی پایگاه به وضعیت قبل از اجرای قاعده برگردد (ترمیم )
ودر صورت لزوم از سرگرفته شود.
63
با تشکر از صبر و شکیبائی شما عزیزان
64