تریگرها در مقابل مکاننماها
در یک پایگاه داده، یک ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در یک جدول/نما رخ می دهد، اجرا می شود. در میان کاربردهای دیگر آن، تریگرها عمدتاً برای حفظ یکپارچگی در پایگاه داده استفاده می شوند. مکان نما یک ساختار کنترلی است که در پایگاه داده برای عبور از رکوردهای پایگاه داده استفاده می شود. این بسیار شبیه به تکرار کننده ارائه شده توسط بسیاری از زبان های برنامه نویسی است.
محرک ها چیست؟
ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در جدول/نمای یک پایگاه داده رخ می دهد، اجرا می شود. در میان کاربردهای دیگر آن، تریگرها عمدتاً برای حفظ یکپارچگی در پایگاه داده استفاده می شوند.ماشه ها همچنین برای اجرای قوانین تجاری، ممیزی تغییرات در پایگاه داده و تکرار داده ها استفاده می شوند. رایج ترین محرک ها، محرک های زبان دستکاری داده ها (DML) هستند که هنگام دستکاری داده ها فعال می شوند. برخی از سیستمهای پایگاه داده از محرکهای غیردادهای پشتیبانی میکنند، که با رخ دادن رویدادهای زبان تعریف داده (DDL) فعال میشوند. برخی از نمونه ها تریگرهایی هستند که هنگام ایجاد جداول، در حین انجام عملیات commit یا rollback و غیره فعال می شوند. از این تریگرها می توان به ویژه برای ممیزی استفاده کرد. سیستم پایگاه داده اوراکل از محرکهای سطح طرح (یعنی تریگرهایی که هنگام اصلاح طرحهای پایگاه داده فعال میشوند) مانند After Creation، Before Alter، After Alter، Before Drop، After Drop و غیره پشتیبانی میکند. راهاندازهای سطح ستون، محرکهای نوع هر ردیف و محرکهای نوع بیانیه.
نشانگرها چیست؟
یک مکان نما یک ساختار کنترلی است که در پایگاه داده برای عبور از رکوردهای پایگاه داده استفاده می شود.این بسیار شبیه به تکرار کننده ارائه شده توسط بسیاری از زبان های برنامه نویسی است. نشانگرها علاوه بر پیمایش از میان رکوردها در پایگاه داده، بازیابی داده ها، افزودن و حذف رکوردها را نیز تسهیل می کنند. با تعریف روش صحیح می توان از مکان نماها برای پیمایش به عقب نیز استفاده کرد. هنگامی که یک پرس و جوی SQL مجموعه ای از ردیف ها را برمی گرداند، آن ها در واقع با استفاده از مکان نما پردازش می شوند. قبل از استفاده، مکان نما باید اعلام شود و نامی به آن اختصاص داده شود. سپس مکان نما باید با استفاده از دستور OPEN باز شود. این عملیات مکان نما را درست قبل از اولین ردیف از مجموعه نتایج رکوردها قرار می دهد. سپس مکان نما باید عملیات FETCH را انجام دهد تا در واقع یک ردیف از داده ها را وارد برنامه کند. در نهایت، مکان نما باید با استفاده از عملیات CLOSE بسته شود. نشانگرهای بسته را می توان دوباره باز کرد.
تفاوت بین Triggers و Cursors چیست؟
ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در جدول/نمای یک پایگاه داده رخ می دهد، اجرا می شود، در حالی که مکان نما یک ساختار کنترلی است که در پایگاه داده برای عبور از رکوردهای پایگاه داده استفاده می شود.یک مکان نما را می توان در یک ماشه اعلام کرد و استفاده کرد. در چنین شرایطی، عبارت declare داخل ماشه خواهد بود. سپس دامنه مکان نما به آن ماشه محدود می شود. در داخل یک ماشه، اگر یک مکان نما بر روی یک جدول درج شده یا حذف شده اعلان شود، چنین مکان نما از طریق یک ماشه تودرتو قابل دسترسی نخواهد بود. پس از تکمیل یک ماشه، همه مکاننماهای ایجاد شده در ماشه حذف میشوند.