انجام پایان نامه

درخواست همکاری انجام پایان نامه  بانک مقالات رایگان انجام پایان نامه

سفارش پایان نامه

|

انجام پایان نامه ارشد

 پایان نامه 

مشاور پایان نامه|پایان نامه - تریگر های فازی در پایگاه داده فعال 100 ص

بخش اول



مفاهيم و تعاريف

کارهاي انجام شده




فصل اول: كليات
1-1 مقدمه
با ايجاد سيستم‌هاي مديريت پايگاه داده عمده مشكلات ساختار، پشتيباني و مديريت داده‌هاي حجيم در سيستم‌هاي فايلي برطرف شد اما توجهي به جنبه‌هاي رفتاري پايگاه داده نشد. به اين معنا كه با استفاده از قيود جامعيت   شايد بتوان از منفي شدن مبلغ حقوق كارمندان جلوگيري نمود اما نمي‌توان مانع از بيشتر شدن حقوق آن‌ها از مديرانشان شد. در چنين مواردي كاربران پايگاه داده با اجراي يك پرس و جو   موارد نقض محدوديت‌هايي از اين قبيل را پيدا نموده و خود اقدام به اصلاح آن‌ها مي‌نمايند.
مواردي اين چنين و نيز گزارشات مديريتي در آغاز ماه از جمله كارهاي مشخص و داراي ضابطه‌اي مي‌باشند كه انجام آن‌ها تكراري و قابل تفويض به سيستم است.
كاربران غيرمجاز با استفاده از يك سري گزارشات، غيرمستقيم به اطلاعات كليدي دست يافته و اقدام به تغيير آن‌ها مي‌نمايند. پيدا نمودن چنين تغييراتي كه معمولاً بعد از گزارشات اتفاق مي‌افتند، به راحتي امكان‌پذير نيست. همانطور كه مشاهده مي‌شود در يك پايگاه داده معمولي رديابي رويدادهايي كه در سيستم اتفاق افتاده‌اند (رخدادها) نيز ممكن نبوده و نياز به يك سيستم با پشتيباني جنبه‌هاي رفتاري مي‌باشد.
يک پايگاه داده فعال نظير Oracle قادر به تشخيص رويدادهاي نظير اضافه، حذف و تغيير مقادير در پايگاه داده مي‌باشند. به عبارت ديگر اين سيستم‌ها با ايجاد تغيير در يك قلم داده عكس‌العمل نشان مي‌دهند.
پايگاه دادة فعال با افزودن قوانين به پايگاه‌هاي داده امكان تعامل (كنش و واكنش) بين سيستم و پايگاه داده را ايجاد نمود. اين نوع پايگاه داده داراي دو بخش مديريت داده و مديريت قوانين مي‌باشد. بخش مديريت داده مسئول حفظ خواص پايگاه داده در سيستم‌هاي كاربردي بوده و بخش دوم با مديريت قوانين مسئول واكنش به رويدادهاي سيستم مي‌باشد. در اين نوع پايگاه داده طراحان سيستم قادرند با تعريف قوانين كه نزديكترين بيان به زبان طبيعي مي‌باشد، سيستم را وادار به عكس‌العمل مناسب در مقابل رويدادهاي مهم نمايند [13].
پايگاه داده فعال با استفاده از قوانين قادر به «پشتيباني گسترده‌تر قيود جامعيت و سازگاري داده‌ها، واكنش در مقابل رخدادهاي سيستم كاربردي، عدم اجراي تقاضاهاي مشكوك، رديابي رويدادها، گزارشات ماهانه و...» مي‌باشد.
همانطور كه گفته شد آن‌چه كه به طور معمول باعث مي‌شود يك پايگاه داده را فعال بدانيم، عكس‌العمل سيستم در مقابل وضعيت‌هايي است كه در پايگاه داده و يا حتي خارج از آن به وجود مي‌آيد. اين وضعيت‌ها مي‌تواند شامل يك حذف غيرمجاز و يا تغيير وضعيت پايگاه داده باشد. بايد توجه داشت كه داشتن تعامل براي يك پايگاه داده لازم اما كافي نيست. بسياري از سيستم‌هاي پايگاه داده بدون رعايت اصول پايه‌اي كه در زير به آن اشاره مي‌شود به طور عام پايگاه دادة فعال ناميده شوند [14].
اينگونه سيستم‌ها بايد يك پايگاه داده باشند، يعني در صورتي كه كاربر فراموش كرد، سيستم مورد نظر پايگاه دادة فعال است بتواند از آن به عنوان يك پايگاه داده معمولي استفاده نمايد (در صورت لزوم بتوان به عنوان يك پايگاه دادة معمولي از آن استفاده نمود).
در اينگونه سيستم‌ها بايد امكان تعريف و مديريت قوانين وجود داشته باشد. اين قوانين در پايگاه داده فعال داراي سه جزء رويداد ، شرط  و واكنش  مي‌باشند.
اين سيستم‌ها بايد داراي يك مدل اجرايي باشند. به اين ترتيب كه با بروز رويداد و صحت شرط، واكنش قانون اجرا شود. يك پايگاه داده فعال بايد قادر به آشكارسازي رويدادها و بررسي شرط قوانين فعال و اجراي فرامين واكنش باشد.
علاوه بر موارد فوق، بهتر است در اين سيستم‌ها محيط مناسبي براي تعريف و امكان كامپايل كردن قوانين فراهم شود كه به كاربر در تعريف قوانين كمك كند.
فازي‌سازي پايگاه‌هاي داده فعال با هدف نزديكتر نمودن زبان بيان قوانين به زبان طبيعي طراحان مطرح شد. اغلب تقاضاهاي كاربران پايگاه داده فعال، فازي مي‌باشد. به عنوان نمونه در تقاضاهايي نظير عدم تعلق پاداش به كارمندان «كم‌كار»، «افزايش» فشارخون، محاسبة حقوق كارمندان در «پايان» هر ماه و... از كلمات فازي استفاده شده است كه عدم پشتيباني مفاهيم فازي و به كار بردن مقادير دقيق منجر به حصول نتايج نامطلوب در برخي سيستم‌هاي كاربردي مي‌شود.
تفاوت اصلي در فازي‌سازي پايگاه دادة فعال با ساير سيستم‌هاي فازي، در نوع تعريف قوانين مي‌باشد. به اين ترتيب كه در تعريف قوانين در اينجا از سه جزء اصلي رويداد، شرط و واكنش استفاده مي‌شود در صورتي كه سيستم‌هاي مبتني بر قانون عموماً از دو جزء شرط و واكنش تشكيل شده‌اند اما فازي نمودن شرط و واكنش قوانين در پايگاه‌هاي داده فعال تفاوت چنداني با شرط و واكنش فازي در سيستم‌هاي مبتني بر قانون ندارد و در فازي نمودن رويداد نيز مي‌توان از همان سياق رويدادهاي فازي استفاده نمود اين بحث توسط ولسكي و بوازيز در [7] مطرح شده است.
در اين پايان‌نامه سعي شده است بحث‌هاي مطرح شده در پايگاه‌هاي داده فعال فازي، با يك نمونه پياده‌سازي شده بطور خلاصه بررسي شود. همچنين در ادامه با معرفي عمل رونوشت برداري و بکار گيري قوانين فازي(تريگرهاي فازي) در عمل رونوشت برداري روش بهبود يافته جديدي معرفي شود..
1-2 مروري بر فصول پايان‌نامه
در ادامه اين پايان‌نامه در فصل دوم مفاهيم پايگاه دادة فعال ارائه شده است. همچنين مدل اجرايي، نمونه‌هايي از اين نوع پايگاه داده و برخي كاربردهاي پايگاه دادة فعال در ادامة اين فصل آمده است.
در فصل سوم مختصري از مفاهيم فازي ارائه شده است.
فصل چهارم شامل چگونگي پشتيباني مفاهيم فازي در بخش‌هاي مختلف يك پايگاه داده فعال مي‌باشد.
فصل پنجم به بيان طرح استفاده از تريگرهاي فازي در پايگاه دادة فعال جهت ارائه روش جديد رونوشت برداري فازي مي‌پردازد و مزايا استفاده از روش رونوشت برداري فازي نسبت به روشهاي مرسوم قديمي با يك نمونه پياده‌سازي شده و مقايسة آن با نمونة غيرفازي ارائه شده است.
فصل ششم به بيان چگونگي پياده سازي تريگرهاي فازي در پايگاه دادة فعال غير فازي و نيز پياده سازي رونوشت برداري فازي بوسيله آن مي پردازد.



فصل دوم: پايگاه داده فعال

پايگاه داده فعال با هدف افزودن تعامل به پايگاه داده و با استفاده از تعريف قوانين ايجاد شد. اولين پايگاه داده فعال، توسط Dayal و همكارانش در يك پروژه دانشگاهي به نام [15]Hipac مطرح شد. پايگاه داده اين نرم‌افزار همانند [16]Samos شي‌ءگرا مي‌باشد. علاوه بر پايگاه‌هاي داده فعال شي‌ءگرا سيستم‌هايي با پايگاه داده‌ي فعال رابطه‌اي نيز ايجاد شده‌اند كه از جملة آن‌ها مي‌توان [17]Starburst و [18]Arial را نام برد، اين نوع پايگاه‌هاي داده به جاي واكنش در مقابل فراخواني متد يا تغيير خصيصه‌ها به تغيير، حذف و اضافه در جداول پايگاه داده حساس مي‌باشند [19].

پايگاه داده فعال داراي دو بخش مديريت داده و مديريت قوانين مي‌باشد. بخش مديريت داده مسئول حفظ خواص پايگاه داده نظير سازماندهي، مديريت و پشتيباني داده‌ها مي‌باشد. بخش دوم يا مديريت قوانين مسئول واكنش به رويدادهايي است كه در سيستم اتفاق مي‌افتند.

2-1 مديريت داده
اين بخش مسئول حفظ خواص پايگاه داده مي‌باشد، به طوري كه طراحان مي‌توانند از قابليت‌هاي پايگاه داده فعال همانند يك پايگاه داده معمولي استفاده نمايند. ضمن اينكه مي‌توان خواص پايگاه داده را در يك پايگاه داده فعال به صورت مطلوب‌تري ايجاد نمود.
برقراري قيود جامعيت پشرفته تر در پايگاه داده: اين قيود در يك پايگاه داده معمولي فقط روي يك جدول قابل تعريف مي‌باشند در حالي كه با استفاده از قوانين پايگاه داده فعال، امكان تعريف محدوديت بر روي چندين جدول نيز وجود دارد.
سازگاري بيشتر: سازگاري بين داده‌ها با استفاده از قوانين به صورت گسترده‌تري پشتيباني مي‌شود.

2-2 مديريت قوانين
پايگاه دادة فعال با استفاده از قوانين تعامل را به پايگاه داده مي‌افزايند. اين امر باعث مي‌شود بدون استفاده از كدهاي نرم‌افزارهاي خارجي به رويدادهاي سيستم در درون پايگاه داده پاسخ داده شود، در نتيجه تغيير در ضوابط سيستم كاربردي با كمترين هزينه و با تغيير قوانين به راحتي امكان‌پذير است.
در اين فصل انواع تعريف و پيچيدگي‌هاي رفتاري قوانين در اين نوع سيستم‌ها و مدل‌هاي اجرايي متفاوت (با توجه به تعريف يك قانون) ارائه خواهد شد.
2-2-1 تعريف قانون
در پايگاه داده فعال هر قانون داراي سه بخش رويداد، شرط و واكنش مي‌باشد و قانوني داراي هر سه جزء فوق باشد اصطلاحاً ECA  ناميده مي‌شود.
Rule     Rule_Name
[ON    Event]
[IF    Condition]
THEN    Action
به طور كلي وجود دو جزء رويداد و شرط در تعريف قوانين مي‌تواند اختياري  و يا اجباري  باشد. در برخي نمونه‌هاي پياده‌سازي شده پايگاه داده فعال تنها تعريف يكي از دو جزء اختياري است يعني امكان عدم تعريف رويداد در قانون وجود دارد و حضور شرط اجباري است. در زبان‌هايي كه تعريف هر دو جزء اختياري باشد، تعريف يكي از آن‌ها در هر قانون الزامي است در غير اين صورت تبديل به يك قانون هميشه درست مي‌شود.
در صورت حذف شرط (EA  Rule) با بروز رويداد، واكنش آن اجرا مي‌شود و با حذف رويداد (CA  Rule) در صورت برقراري شرط، واكنش قانون مربوطه به اجرا درمي‌آيد.
در اين قسمت ابتدا به شرح مختصري از هر سه جزء قانون و نكاتي كه در استفاده از ECA بايد رعايت شوند مي‌پردازيم و سپس انواع رفتارهاي مدل اجرايي پايگاه داده فعال بيان مي‌شود.

2-2-1-1 رويداد
رويدادها در نقطه‌اي از زمان اتفاق مي‌افتند و به سه صورت تقسيم‌بندي مي‌شوند. در نوع اول با توجه به منبع به وجود آورندة خود به هفت گروه ساختاري، انتزاعي، تراكنش، كاربر، استثناء، زمان، خارجي تقسيم مي‌شوند.
در نوع دوم با توجه به اينكه از يك رويداد ساده تشكيل شده‌اند يا از تركيب جبري منطقي رويدادهاي ساده به وجود آمده‌اند به دو گروه ساده و مركب تقسيم مي‌شوند.
در نوع سوم با توجه به زمان بروز نمونه‌هاي يك رويداد به سه گروه آغازين، مباني و پاياني تقسيم مي‌شوند كه در ادامه به شرح مختصري از انواع رويدادها در اين سه گروه مي‌پردازيم.
انواع رويدادها با توجه به منبع به وجود آورندة آن‌ها عبارتند از [20][21]:
ساختاري: يك رويداد به دليل انجام عملياتي روي ساختار پايگاه داده فعال مي‌شود (در مدل رابطه‌اي تغيير و حذف و اضافة يك ركورد و در مدل شي‌ءگرا تغيير خصيصه‌ها، فراخواني متد و ارسال پيام).
ON Update emp.id
انتزاعي: رويداد به صورت واضح توسط طراح يا برنامة كاربردي فعال مي‌شود (طراح مي‌تواند گرفتن يك گزارش خاص را يك رويداد معرفي كند كه در صورتي كه يك مجموعة تهي توليد نكند يك رويداد انتزاعي است).
تراكنش: رويدادها، دستورالعمل‌هاي تراكنشي نظير Start و Abort و Commit مي‌باشند.
ON Begin Transaction Emergency
كاربر: رويداد به دليل عملكردها و مكانيزم‌هاي برنامه‌نويسي فعال مي‌شود (دادن پيام مناسب به كاربري كه مشغول وارد كردن داده مي‌باشد).
استثناء: انجام عمليات غيرمجاز در سيستم موجب بروز اين نوع رويداد مي‌شود (دستيابي غيرمجاز كاربران به اطلاعاتي كه مجوز مناسب آن را ندارند).
زمان: اين نوع رويدادها در نقطه‌اي از زمان فعال مي‌شوند (مثلاً اول هر ماه).
خارجي: رويدادهايي كه به دليل وقوع رويدادي در خارج از سيستم بروز مي‌كنند در اين گروه قرار مي‌گيرند (فشردن كليد).

در نوع دوم رويدادها به دو دستة ساده و مركب تقسيم مي‌شوند. رويدادي كه تنها از يك جزء تشكيل شده است ساده و رويدادهايي كه از تركيب جبري و منطقي رويدادهاي ساده به دست مي‌آيند مركب ناميده مي‌شوند.
اين عمليات‌هاي جبري عبارتند از [14]:
And : رخ دادن هر دو رويداد (E1 And E2)
OR : رخ دادن يكي از دو رويداد (E1 Or E2)
Not : عدم رخ دادن رويداد در فاصلة زماني معين.
(E1; not E2;E3) به معني عدم بروز رويداد دوم در فاصلة زماني بين بروز رويداد اول و سوم
SEQ : نشان‌دهندة ترتيب اجراي دو رويداد مي‌باشد.
(Seq (E1,E2) : به اين معنا است كه رخ دادن رويداد دوم بايد پس از رويداد اول انجام يافته باشد از نماد ":" نيز استفاده مي‌شود.
Times : بيانگر نمونة معين يك رويداد مي‌باشد
Times (n.E) يعني نمونة nام رويداد E
رويدادها در پايگاه دادة فعال ممكن است به دفعات رخ دهند. به رويدادهايي كه اتفاق افتاده‌اند و از يك نوع مي‌باشند، نمونه‌هاي يك رويداد گفته مي‌شود.
در نوع سوم تقسيم‌بندي، بسته به زمان رخ دادن يك نمونه از رويداد، نمونه‌ها به سه نوع آغازين ، مياني  و پاياني  تقسيم مي‌شوند.
نمونه‌اي از يك رويداد كه داراي كمترين مرتبة زماني در بين نمونه‌هاي همان رويداد باشد نمونة آغازين و نمونه‌اي كه داراي بيشترين مرتبة زماني باشد نمونة نهايي رويداد ناميده مي‌شود به ساير نمونه‌ها، نمونه‌هاي مياني گفته مي‌شود [20].
در مثال زير E1(1) يك نمونة آغازين و E1(4) يك نمونة پاياني رويداد E1 مي‌باشند.
E1(1); E1(2); E1(3); E1(4)
امكان وقوع همزمان نمونه‌هاي يك رويداد موجب ايجاد ناسازگاري در تعيين نوع نمونه‌ها مي‌شود. بحث همزماني رويدادها در يك سيستم متمركز تنها در دو صورت امكان‌پذير است.
يكي از رويدادها زماني و ديگري غيرزماني باشد.
يك رويداد ساده با حداقل يك رويداد مركب مي‌توانند همزمان رخ دهند.
لازم به ذكر است دو رويداد ساختاري همزمان اتفاق نمي‌افتند به عبارت ديگر رخ دادن رويداد اضافه همزمان با رويداد حذف امكانپذير نيست [22].
Exclusive و Shared :  علاوه بر مرتبة رخ دادن نمونه‌ها ترتيب رخ دادن نمونه‌هاي يك نوع رويداد و نمونه‌هاي رويدادهاي ديگر نيز قابل توجه است كه آغازين و نهايي شدن نمونه‌ها را تحت تأثير قرار مي‌دهد. مثلاً در توالي دو رويداد، انتخاب نمونة نهايي رويداد اول، مي‌تواند نمونه رويداداول ديگري باشد كه قبل از كلية نمونه‌هاي رويداد دوم اتفاق افتاده است: Exclusive و يا نمونه رويداد اولي باشد كه به عنوان آخرين نمونة رويداد اول اتفاق افتاده است حتي اگر بن آن رويداد اول آخر و رويداد اول آغازين رويدادهاي دوم و سوم ديگري اتفاق افتاده باشد: Shared [20].
E1(1); E1(2); E2(1); E1(3)
E1(2)     Last Exclusive
E(3)     Last Shared
2-2-1-2 شرط
بخش دوم قانون شرط مي‌باشد. پس از بروز يك رويداد نوبت به بررسي شرط قوانين رويداد مربوطه مي‌رسد و در صورت صحت شرط، قانون مربوط در صف اجرا قرار مي‌گيرد.
در قسمت شرط، يك مقايسه و يا يك پرس و جو  مي‌تواند قرار بگيرد، در صورتي كه نتيجة پرس و جو تهي نباشد، شرط برقرار است.
انتخاب زمان بررسي شرط يك قانون پس از بروز رويداد آن از سياست‌هايي است كه توسط سيستم تعيين مي‌شود. اين زمان مي‌تواند فوري ، تأخيري  و يا مجزا  باشد. برخي سيستم‌ها تنها يك سياست را پشتيباني مي‌كنند (نظير NAOS) و برخي نيز همة سياست‌ها را پشتيباني مي‌كنند (Hipac). در چنين سيستم‌هايي در هر قانون سياست مورد نظر طراح تعريف مي‌شود و در صورت عدم تعريف، يك سياست به عنوان پيش‌فرض براي همة قوانين در نظر گرفته مي‌شود.
در تعيين شرط هر قانون، طراح بايد بتواند براي ارزيابي شرط از مقادير قبل و يا بعد از رويداد استفاده نمايد. نام تراكنشي كه رويداد در آن اتفاق افتاده است و يا نام كاربري كه باعث بروز رويداد شده نيز ممكن است در قسمت شرط استفاده شود. اين مقادير به همراه رويداد ارسال مي‌شود و پارامترهاي رويداد ناميده مي‌شود [23].

2-2-1-3 واكنش
واكنش هر قانون كلية عملياتي است كه در صورت وقوع رويداد و صحت شرط بايد اجرا شود. اين عمليات عبارتند از اضافه، حذف و تغيير داده‌ها در پايگاه داده، تغيير مجموعه‌اي از قوانين، فراخواني خارجي، ارسال پيام به مسئول و يا كاربران سيستم، انصراف از اتمام كار يك تراكنش و در نهايت به جاي فرامين واكنش يك سري فرامين ديگر اجرا شود (به عنوان نمونه به جاي انجام عمليات حذف پيامي به مسئول سيستم ارسال شود).
برخي زبان‌ها قادر به تعريف دو نوع متفاوت از اجراي واكنش يك قانون مي‌باشند. در نوع اول، ارزيابي و اجرا قبل از اجراي فرمان رويداد صورت مي‌گيرد به عنوان مثال در SAMOS با استفاده از كلمة كليدي Before انجام رويداد به بعد از اجراي فرامين واكنش موكول مي‌شود و كلمة كليدي After به معناي اجراي واكنش پس از اجراي رويداد مي‌باشد [19]. به عنوان مثال با رسيدن فرمان حذف يك ركورد ابتدا يك پشتيبان تهيه و سپس عمل حذف انجام شود.
قابل ذكر است كه تشخيص بروز يك رويداد قبل از رخ دادن آن در برخي از حالات نظير تقاضاي تغيير يك مقدار امكانپذير است و در صورتي كه يك رويداد خارجي باشد غيرممكن است (دادن اخطار قبل از فشرده شدن يك كليد).
انتخاب زمان اجراي واكنش يك قانون پس از ارزيابي شرط آن از سياست‌هايي است كه توسط سيستم تعيين مي‌شود. اين زمان مي‌تواند فوري، تأخيري و يا مجزا باشد. برخي سيستم‌ها تنها يك سياست را پشتيباني مي‌كنند و برخي نيز همة سياست‌ها را پشتيباني مي‌كنند که در اين صورت مي بايد براي هر قانون اين سياست تعيين مي‌شود. هر يك از اين سياست‌ها در بخش بعد تشريح خواهد شد [14].

2-2-2 مدل اجرايي
اين مدل چگونگي اجراي مجموعة قوانين را در زمان اجرا نشان مي‌دهد. اگرچه اين مدل با جنبه‌هاي زيربنايي پايگاه داده (ساختار، محيط و مديريت اجرايي) مرتبط است اما به طور كلي چندين مرحله در ارزيابي عمومي قوانين وجود دارد كه در ادامه شرح داده خواهد شد.
سيگنال : يك منبع بروز رويداد، منجر به وقوع رويداد مي‌شود.
فعال‌سازي : بررسي رويدادها و يافتن قوانين نظير رويدادي كه در مرحلة قبل سيگنال داده شده است.
ارزيابي : بررسي شرط قوانين فعال در اين مرحله انجام مي‌شود. قوانيني كه شرط آن‌ها برقرار است، مجموعه‌اي به نام Rule Conflict را تشكيل مي‌دهند. واكنش كلية قوانين اين مجموعه بايد اجرا شود.
اجرا : واكنش قوانين مجموعة RC دراين مرحله اجرا مي‌شود. اجراي فرامين واكنش منجر به بروز رويدادهاي جديدي شده و به مرحلة سيگنال وارد مي‌شوند و اين روند به صورت آبشاري ادامه خواهد داشت.
زمانبندي  : زمان بررسي شرط و اجراي واكنش قوانين مجموعة RC در اين مرحله تعيين مي‌شود. براي زمانبندي قوانين سياست‌هاي متفاوتي وجود دارد كه در ادامه شرح داده خواهد شد.
مراحل بالا الزاماً نبايد پشت سر هم اجرا شوند اما به بروز رويداد و صحت شرط وابسته مي‌باشند. يعني براي ارزيابي شرط لزوماً بايد رويداد قانون اتفاق افتاده و براي اجراي واكنش مربوط به قانون بايد ارزيابي شرط انجام شده باشد.
زمان بررسي و اجراي رويداد –شرط- واكنش بستگي به سياست اتخاذ شده توسط سيستم دارد. برخي سيستم‌هاي پايگاه دادة فعال همة اين سياست‌ها را پشتيباني نموده و طراح در تعريف قوانين خود زمان بررسي شرط و زمان اجراي فرامين واكنش را نيز تعريف مي‌نمايد. اين زمان و مقادير ارسالي به شرط و واكنش (نام تراكنش، نام كاربر، مقادير داده) از جمله موارد تمايز سيستم‌ها مي‌باشند.
اين سيستم‌ها (موقعيت‌هاي زمانبندي ) عبارتند از:
فوري: يعني بلافاصله بعد از بروز رويداد ، ارزيابي شرط و بعد از ارزيابي شرط، اعمال واكنش انجام مي‌شود.
تأخيري: در اين حالت ارزيابي شرط (اجراي فرامين و واكنش) در همان تراكنش مي‌باشد اما لزوماً در اولين فرصت نيست (معمولاً در پايان تراكنش)، اين زمان قابل تعريف توسط طراح نيز مي‌باشد.
مجزا: در اين حالت بروز رويداد و ارزيابي شرط (ارزيابي شرط و اجراي فرامين واكنش) در دو تراكنش مجزا صورت مي‌گيرد. در چنين حالتي اجراي واكنش مي‌تواند وابسته يا مستقل از به سرانجام رسيدن تراكنش باشد، ولي به هر حال رويداد اتفاق افتاده است و ارزيابي شرط انجام شده است و در صورت صحت شرط، فرامين واكنش در تراكنش ديگري اجرا مي‌شود.
ارتباط بين رويداد و قانون مي‌تواند يك به يك و يا يك به چند باشد. در حالت اول به ازاء هر رويداد فقط يك قانون فعال مي‌شود ولي در حالت دوم بروز يك رويداد مي‌تواند چند قانون را فعال نمايد.
از جمله مشكلاتي كه سيستم‌هاي مبتني بر قانون با آن مواجه هستند حصول نتايج متفاوت، در زمان‌هاي اجرايي مختلف مي‌باشد. اين امر ناشي از اجراي قوانين با توجه به ترتيب نوشته شدن آن‌ها مي‌باشد. مشكل ديگر فعال نمودن قوانين توسط يكديگر مي‌باشد. اين امر زماني مشكل‌آفرين مي‌شود كه يك سري از قوانين در يك حلقه، يكديگر را براي اجرا فعال نمايند
آخرين خصوصيتي كه در مدل اجرايي بايد در نظر گرفته شود پشتيباني مديريت خطا  توسط سيستم مي‌باشد. اكثر سيستم‌ها به راحتي سياست انصراف از تراكنش را در پيش مي‌گيرند. برخي سيستم‌ها نيز با حذف قانون به ادامة پردازش قوانين ديگر مي‌پردازند.
 
2-2-2-1 اولويت اجرايي قوانين
زماني كه چند قانون همزمان با هم فعال مي‌شوند سيستم بايد سياستي را براي ترتيب فعال نمودن آن‌ها اتخاذ نمايد. انواع اين سياست‌ها در يك پايگاه داده فعال همانند سياست‌هايي است كه معمولاً در سيستم‌هاي خبره استفاده مي‌شود. ساده‌ترين روش براي فعال نمودن قوانين، انتخاب آن‌ها با همان ترتيب نوشته شدن قوانين توسط طراح مي‌باشد.
امكان تعيين اولويت در هنگام تعريف قانون، روش ديگري است. در اين روش مقادير عددي به قوانين نسبت داده مي‌شوند و قوانين مهمتر داراي اولويت بالاتري هستند. در صورت عدم تعريف اولويت، براي قوانين پيش‌فرض صفر در نظر گرفته مي‌شود و براي انتخاب قوانين هم اولويت روش اول جايگزين مي‌شود.
حالت خاص ديگر دادن ارتباط است يعني اگر دو قانون R1 و R2 با هم فعال شوند ابتدا قانون R1 اجرا شود و سپس قانون R2. در غير اين صورت ترتيب مهم نيست. در واقع تعيين اولويت براي برخي از قوانين انجام مي‌شود.
مشخص كردن برخي قوانين كه حتماً قبل از هر قانون ديگري اجرا شوند از ديگر سياستها مي‌باشد[18].
2-2-2-2 معماري پايگاه دادة فعال
در اين بخش يك معماري ساده از پايگاه دادة فعال كه قادر به پردازش قوانين و پاسخ به تقاضاهاي كاربر باشد ارائه خواهد شد.
شكل 2-1 ساختار يك معماري ساده براي پايگاه دادة فعال مي‌باشد اين ساختار بر پاية ساختار ارائه شده در [19] مي‌باشد
 
اين سيستم شامل چهار بخش اصلي آشكارساز رويداد، بررسي شرط، زمانبند و اجرا مي‌باشد كه در ادامه به شرح هر يك از اين بخش‌ها مي‌پردازيم.
بخش آشكارساز رويداد خود شامل دو بخش مجزا براي تشخيص رويدادهاي «ساده»  و «مركب»  مي‌باشد. در بخش بررسي شرط به مقادير متفاوتي (قبل و بعد از وقوع رويداد نياز است). بخش اجرا شامل دو بخش اجراي واكنش قوانين و پاسخ به پرس‌وجوهاي پايگاه داده  مي‌باشد.
بخش زمانبندي نيز به دليل وجود تعيين دو زمان متفاوت براي ارزيابي شرط و اجراي واكنش قانون به دو بخش اصلي تقسيم مي‌شود. اين ساختار ساده پاية يك پايگاه دادة فعال مي‌باشد.
بخش زمانبندي نيز به دليل وجود تعيين دو زمان متفاوت براي ارزيابي شرط و اجراي واكنش قانون به دو بخش اصلي تقسيم مي‌شود. اين ساختار ساده پاية يك پايگاه دادة فعال مي‌باشد. در ادامه به شرح مختصر هر يك از اين بخش‌ها مي‌پردازيم. اين معماري بر پاية مدلي است كه در [19] ارائه شده است.

2-2-2-3 آشكارساز رويداد
رويداد قوانين را مي‌توان به صورت ساده يا مركب تعريف نمود. رويداد مركب از تركيب جبري رويدادهاي ساده به وجود مي‌آيد.
در قسمت آشكارسازي رويدادهاي ساده، مديريت كلية رويدادهاي ساده با اين قسمت است و  ثبت تاريخچة رويدادها براي استفادة آشكارساز رويداد مركب در همين بخش انجام مي‌شود.
بخش ديگر آشكارساز رويدادهاي مركب مي‌باشد كه با استفاده از تاريخچة رويدادهاي ساده، رويدادهاي مركبي كه همة آن‌ها به وقوع پيوسته‌اند شناسايي نموده و براي بررسي شرط معرفي مي‌شوند (معمولاً در يك صف براي بررسي شرط در زمان مناسب قرار مي‌گيرند). هر رويداد مركب نيز مي‌تواند بخشي از يك رويداد مركب ديگر باشد.
هر دو بخش آشكارساز رويداد (ساده و مركب) دو وظيفة عمده دارد. يكي ارسال پارامترها به رويداد آشكار شده و ديگري ثبت رويداد در تاريخچة رويدادها براي استفادة رويدادهاي مركب بعدي. البته پارامترها و نوع اطلاعاتي كه ثبت مي‌شود به سياست سيستم بستگي دارد. در سيستمي نظير starburst اين اطلاعات در يك جدول ثبت مي‌شود.
2-2-2-4 ارزيابي شرط
در قسمت بررسي شرط  (CD)، از جمله نيازهاي طراح دانستن مقادير صفات در وضعيت‌هاي متفاوت پايگاه داده مي‌باشد. در يك پايگاه دادة فعال چهار وضعيت براي داده‌ها در پايگاه داده به وجود مي‌آيد.
-    وضعيت پايگاه داده در شروع تراكنش (DBt)
-    وضعيت پايگاه داده در هنگام رخ دادن رويداد (DBe)
-    وضعيت پايگاه داده در هنگام ارزيابي شرط (DBc)
-    وضعيت پايگاه داده وقتي واكنش قانون اجرا شده است (DBa)
در يك پايگاه داده ممكن است هر يك از وضعيت‌هاي بالا صفر مرتبه يا بيشتر تغيير يابد. خروجي قسمت بررسي شرط، قوانيني هستند كه واكنش آن‌ها بايد اجرا شود و مجموعة Rule Conflict (RC) را تشكيل مي‌دهند.
در بررسي شرط امكان مقايسة مقادير صفات و يا يك پرس‌وجو از پايگاه داده مي‌باشد كه در صورت صحت مقايسه و يا تهي نبودن نتيجة پرس‌وجو، واكنش قانون اجرا مي‌شود [24].

2-2-2-5 زمانبندي
بخش زمانبندي مسئول تعيين زمان بررسي شرط و اجراي واكنش هر قانون مي‌باشد. در صورت وجود امكان تعريف موقعيت زمانبندي براي شرط، زمان بررسي شرط با توجه به زمانبندي تعريف شده خواهد بود در غير اين صورت سيستم يك سياست را براي همة قوانين اتخاذ مي‌نمايد.
از جمله اختياراتي كه به طراح داده شد، تعيين نوع زمانبندي (فوري، تاخيري، مجرا) براي اجراي واكنش بود. بخش زمانبند واكنش با توجه به نوع زمانبندي تعريف شده هر قانون، تعيين مي‌كند كه فرامين واكنش قانون فعال شده به صورت فوري، با تأخير (معمولاً در انتهاي تراكنش) و يا در تراكنش ديگري اجرا شود (البته ممكن است سيستم يك سياست را براي كلية قوانين اتخاذ كند و امكان انتخاب توسط طراح را پشتيباني نكند).  كلية قوانين در يك تراكنش كه شرط آنها بررسي شده و فعال شده اند و نوع زمانبنديشان مجزا نيست قبل از به سرانجام رسيدن آن تراكنش بايد اجرا شوند.
2-2-2-6 اجرا
در بخش اجرا دو دسته عمليات انجام مي‌شود كه براي سهولت، هر يك در بخش مجزايي انجام مي‌شوند. بخش اول مسئول كلية درخواست‌هاي كاربران در رابطه با پايگاه داده  (QE) و بخش دوم مسئول اجراي واكنش قوانين  (AE) در زمان تعيين شده مي‌باشد.
از جمله سياست‌هاي زمان اجرا انتخاب زمان اجراي قوانين قبل يا بعد از وقوع رويداد (Before, After) توسط طراح بود. به همين دليل زمانبند موظف است اجراي هر دو بخش  QEو  AEرا با توجه به سياست تعيين شده توسط طراح، معين نمايد.
2-3 نمونه‌هاي پياده‌سازي شده
در اين بخش به ارائه نمونه‌هايي از سيستم‌هاي پياده‌سازي شده از پايگاه دادة فعال مي‌پردازيم. اين سيستم‌ها با توجه به نوع محيط و پايگاه داده متفاوت مي‌باشند و در نتيجه سياست‌هاي متفاوتي را دنبال مي‌كنند. مثلاً در يك پايگاه دادة شي‌ءگرا رويدادهاي فراخواني متد و يا تغيير خصيصه‌ها اضافه مي‌شوند.
2-3-1 Starburst
پايگاه دادة سيستم StarBurst [17] رابطه‌اي مي‌باشد. در اين سيستم پس از تعريف قانون مي‌توان آن را فعال يا غيرفعال نمود و در صورت غيرفعال نمودن قوانين تا زمان فعال نمودن دوبارة آن‌ها. هيچگونه پردازشي روي قوانين صورت نمي‌گيرد و در صورت نياز امكان حذف قوانين نيز وجود دارد. تعريف قوانين به شكل زير مي‌باشد:
Create Rule name on table
When Triggering_operation
[If Condition]
Then action_list
[Precedes rule_list]
[Follows rule_list]
همانطور كه در قانون مشاهده مي‌شود، تنها تعريف قسمت شرط اختياري بوده و تعريف رويداد اجباري مي‌باشد.
از ديگر امكانات اين سيستم تغيير قوانين قابل اجرا قبل و بعد از قانون مربوطه مي باشد. اما امكان تغيير رويداد قوانين وجود ندارد و در صورت نياز قانون موجود بايد حذف شده و قانون جديدي تعريف شود.
در شرط قوانين از جمله امكاناتي كه براي طراح ذكر شد، استفاده نمودن از مقادير اضافه شده، حذف شده، مقدار قبل يا بعد از تغيير بود، اين سيستم با چهار كلمة كليدي deleted، inserted، old updated، new updated اين امكانات را در اختيار طراحان خود قرار مي‌دهد. اين سيستم كلية تغييرات را درون جدولي به نام Transition ثبت مي‌نمايد. اين جدول حاوي كلية اطلاعاتي است كه منجر به تغيير وضعيت پايگاه داده شده‌اند.
از جمله اختيارات ديگر طراحان در سيستم‌هاي پايگاه دادة فعال تعيين نوع زمانبندي در تعريف قانون توسط طراح بود. در اين سيستم چنين اختياري به طراح داده نشده است و كلية قوانين با سياست تأخيري اجرا مي‌شوند يعني پردازش كلية قوانين در انتهاي تراكنش صورت مي‌گيرد.
در اين سيستم يك صف از قوانين فعال شده و آمادة اجرا ايجاد مي‌شود ضمن اينكه براي هر تراكنش نيز دو سياست متفاوت، آمادة قطعي شدن و يا عقب‌گرد وجود دارد كه در نحوة اجرا و زمان اجراي قوانين تأثير مي‌گذارد.

2-3-2 Ariel
سيستم Ariel [18] نيز يك پايگاه دادة رابطه‌اي را پشتيباني مي‌كند، ويژگي كه اين سيستم را از ديگر سيستم‌ها متمايز ساخته است امكان تعريف اختياري رويداد در قوانين مي‌باشد. تعريف يك قانون در اين سيستم به شكل ذيل مي‌باشد.
Define Rule name [In Ruleset-name]
[Priority priority_val]
[On event]
[If Condition]
Then action
همانطور كه مشاهده مي‌شود، در تعريف قانون مي‌توان آن را عضو يك گروه از قوانين نمود. امكان عضويت، تغيير عضويت و يا حذف عضويت پس از تعريف نيز وجود دارد.
تعريف اولويت از ديگر اختياراتي است كه اين سيستم به طراحان خود مي‌دهد. اين اولويت‌ها به انتخاب قوانين براي اجرا كمك مي‌كنند و در صورت عدم تعريف اولويت براي يك قانون، اولويت صفر در نظر گرفته مي‌شود.
در تعريف قانون مشاهده مي‌شود که رويداد و شرط مي‌تواند تعريف نشود. رويدادها در اين سيستم به رويدادهاي از نوع ساختاري محدود مي‌شوند كه انواع اين رويدادها عبارتند از:
Append [to] relation_name
Delete [from] relation_name
Replace [to] relation_name [attribute_list]
پردازش قوانين بعد از هر تغيير وضعيت در پايگاه داده انجام مي‌شود و تنها سياست فوري در بررسي شرط و اجراي قوانين را دارا مي‌باشد. اين تغيير وضعيت‌ها مي‌توانند ناشي از يك مجموعه عمليات (de…end) و يا يك واكنش باشند.

2-3-3 NAOS
تعريف قوانين در NAOS [25] از مدل ECA پيروي مي‌كند و داراي يك پايگاه دادة شي‌ءگرا است. آن‌چه را به عنوان رويداد تشخيص مي‌دهد تغيير خصيصه‌ها بوده و پارامتر ارسالي رويداد اشاره‌گر به كلاس مي‌باشد.
از محدوديت‌هايي كه در تعريف نوع زمانبند توسط طراح وجود دارد الزام تعريف يك نوع سياست براي هر دو جزء رويداد و شرط مي‌باشد با اين وجود هر سه نوع سياست (فوري، تأخيري و مجاز) را پشتيباني مي‌نمايد. مقادير قابل استفاده در شرط توسط طراح، مقادير قبل و بعد از اجراي رويداد و با كلمات كليدي Oldو New مي‌باشد.
Create Rule name
Coupling (Immediate)
On [After/Befor] event
If Condition
Do action
همانطور كه مشاهده مي‌شود تعريف همة اجزاء قانون اجباري است و طراح امكان اجراي يك قانون قبل از بروز رويداد را دارا مي‌باشد.

2-4 نتيجه
پايگاه‌هاي دادة فعال به منظور ايجاد تعامل در پايگاه داده ايجاد شدند. در يك پايگاه دادة معمولي براي واكنش نسبت به رويدادهايي كه در سيستم اتفاق مي‌افتند طراحان سيستم از يك زبان برنامه‌نويسي در كنار پايگاه دادة خود استفاده مي‌نمايند و قوانين سازماني خود را به اين ترتيب بر پايگاه داده اعمال مي‌نمايند. تغيير و پشتيباني كدهاي نرم‌افزار مشكلات خود را دارد كه پايگاه داده را نيز متأثر مي‌كند. پايگاه‌هاي دادة فعال با استفاده از تعريف قوانين در كنار تعريف داده‌هاي كدنويسي را از قوانين سازماني بانك اطلاعات جدا مي‌نمايند. تعريف و تغيير قوانين مشكلات كدهاي نرم‌افزار را ندارد.











فصل سوم: مفاهيم فازي

مجموعه‌هايي نظير اعداد طبيعي كوچكتر از 20 را به راحتي و بدون ابهام مي‌توان بيان نمود. اما در بيان مجموعه‌هايي نظير اعداد بزرگ افراد مختلف تعابير متفاوتي با توجه به ديدگاه‌هاي خود (دانش‌آموزان، كسبه، حسابداران و...) دارند. چنين مجموعه‌هايي را كه تعلق/عدم تعلق مقداري را به آن‌ها نمي‌توان صريحاً بيان نمود مجموعه‌هاي فازي مي‌نامند كه در ادامه به شرح مختصري از آن خواهيم پرداخت. لازم به ذكر است مطالب اين فصل عمدتاً از [26] تهيه شده است.
مفاهيم فازي اولين بار در سال 1920 مطرح شد. پروفسور لطفي عسگرزاده با ارائه اولين مقاله خود در سال 1965 سعي در توصيف مفاهيم مبهم نمود و در اين راه بسيار موفق بود. او تلاش كرد ثابت نمايد، مي‌توان همه چيز را به صورت مطلق {1،0} نديد و از بينهايت ارزش بين اين دو مقدار در بيان تعلق استفاده نمود [0،1].
كلماتي نظير بلند قدي، گرمي، سردي و... كه مقادير مبهم و نامشخص را در زبان طبيعي بيان مي‌كنند متغيرهاي زباني  مي‌گويند. هدف منطق فازي كمي كردن متغيرهاي زباني مي‌باشد. هر صفت متغير زباني با يك زيرمجموعة مقادير فازي بيان مي‌شود. به عنوان نمونه متغير زباني سن داراي صفات فازي كودك، جوان، كهنسال مي‌باشد.
در سيستم‌هاي فازي مي‌توان در تعريف قوانين به متغيرهاي زباني، مقادير فازي نسبت داد. به عنوان نمونه در مثال زير به جاي مقايسه متغير زباني «سرعت» با يك مقدار دقيق از مقدار فازي «كم» استفاده شده است.
IF speed Is low
قوانين فازي يك متغير زباني در قسمت شرط را به يك متغير زباني در بخش نتيجه مرتبط مي‌نمايند.
If Speed Is Low Then Make The Acceleration High

هر متغير زباني داراي يك دامنه از مقادير مي‌باشد كه اصطلاحاً مجموعه جهاني  ناميده مي‌شود. هر يك از مقادير فازي اين متغير زباني نيز شامل زير مجموعه‌اي از اين مقادير مي‌باشند. به عنوان نمونه اگر متغير زباني «سن» داراي دامنة مقداري بين يك تا يكصد و پنجاه سال باشد مقادير فازي آن شامل «كودك» از يك تا ده سال بوده و «نوجوان» از هفت تا هفده سال مي‌باشد. ملاحظه مي‌شود كه در برخي از سنين بين مقادير فازي اشتراك وجود دارد. اما اين اشتراك بين كودك و جوان نمي‌تواند وجود داشته باشد.


انجام پایان نامه

برای دیدن ادامه مطلب از لینک زیر استفاده نمایید

سفارش پایان نامه