سفارش تبلیغ
صبا ویژن
خدا خرد را نزد کسى به ودیعت ننهاد ، جز که روزى او را بدان نجات داد . [نهج البلاغه]
خدا خرد را نزد کسى به ودیعت ننهاد ، جز که روزى او را بدان نجات داد . [نهج البلاغه]
Semantic Web
 
شنبه 90 دی 10 , ساعت 5:0 عصر

تریگر  مکانیسمی است برای پیاده  سازی قاعده فعال و بر اساس مدل   ECA (Event-Condition-Action) در سیستم های رابطه ای  ارائه شده است . تریگر یک رویه ذخیره شده است که در واکنش به یک تغییر مشخص در  پایگاه داده ها توسط سیستم فراخوانده می شود . بنابراین راه انداز مکانیسمی است  برای کنترل جامعیت پایگاه داده ها از طریق انجام خودکار عملیات منتشر شونده   .

 

مزایای تریگرها   :
اجرای آن تحت کنترل متمرکز است ( سیستم یا مدیر  پایگاه داده   )
نیازی به اعمال محدودیت ها در برنامه کاربردی نیست   .
در  معماری پایگاهی مشتری / خدمتگزار و بطور کلی در معماری پایگاه داده های توزیع شده  بسیار سودمند است   .

کاربردهای تریگر :
1- اعمال محدودیت های جامعیتی .
2-
اعمال قواعد ایمنی مبتنی بر مقادیر .
3-
درج رکوردها در فایل ثبت .
4-
بهنگام سازی منتشر شونده ( بویژه در پایگاه داده های توزیع شده وقتی چند نسخه از داده داشته باشیم ) .
5-
ساختن ( و ذخیره کردن ) دید کاربر .
6-
اعمال قواعد و فعالیت های محیط کاری .
7-
اعمال قواعد مدیریت جریان کاری .
-
کاربردهای 1 تا 5 را اصطلاحا کاربردهای داخلی و کاربردهای 6 و 7 را کاربردهای خارجی گویند .

 

تعریف تریگر در SQL3

 


CREATE          TRIGGER         name
{BEFOR | AFTER  |  UPDATE   OF  column}
ON  TABLE  name  [ORDER  value]
[REFERENCING  {NEW  |  OLD  |  NEW-TABLE  |  OLD-TABLE }  AS  name]
{WHEN  condition(n)}
(SQL3  procedure
[FOR  EACH {ROW  |  STATEMENT}])

 

 

 

 

مشکلات تریگر :

1.     وجود تریگرهای بازگشتی ، یعنی نوعی تریگر که اجرای آن منجر به فعال کردن خود تریگر می شود .

2.     ترتیب غیرقابل پیش بینی برای اجرای تریگرها وقتی که مجموعه ای از تریگرها باید اجرا شوند .

3.     وجود زنجیره تریگرها،یعنی اجرای یک تریگر سبب اجرای تریگر دیگری می شود. در عمل طراحان سیستم های کاربردی بزرگ چندان تمایلی به استفاده از تکنیک تریگرها ندارند ، زیرا این تکنیک بویژه در سیستم های کاربردی بزرگ ، مشکلاتی را ایجاد میکند .


           برخی از این مشکلات عبارتند از :

            الف) عدم امکان بیان ECA ها (Event-Condition-Action) بطور مستقیم در برخی موارد ، که خود ناشی از محدودیت زبان هایی است که برای نوشتن تریگر در سیستم های پایگاه داده ها وجود دارد.

          ب) بروز مشکلات ایمنی پایگاه داده ها و کاهش قابلیت اطمینان سیستم کاربردی .

           ج) تاثیر منفی در کارایی سیستم کاربردی ، بویژه جدایی بین تراکنش ها و تریگرها ، بهینه سازی سراسری برنامه کاربردی را با مشکل مواجه می کند .

4.     کاستی های تریگرها در سیستم های رابطه ای :

     الف) امکان تعریف داده های پیچیده وجود ندارد .

     ب) دستیابی مستقیم به زبان های برنامه نویسی و یا به سیستم عامل زیرین امکان پذیر نیست .

    پ) تنها مقادیر اتومیک را می توان به عنوان پارامتر به رویه ذخیره شده داد .

ت) یک تریگر را نمی توان روی بیش از یک رابطه (جدول) اعمال کرد .

ج) اگر روی یک رابطه ، تریگر جدیدی با همان عملیات که در تریگر قبلی وجود دارد ، تعریف شود، تریگر قبلی جایگزین می شود و اخطاری هم داده نمی شود .

د) رویداد نمی تواند نامدار باشد و دوباره به کار برده شود .

ه) امکان تعریف رویداد مرکب وجود ندارد .

 

 منبع :

 

http://pcpedia.ir/ViewArticle.aspx?ID=152

 

 



لیست کل یادداشت های این وبلاگ