تریگرها در مقابل رویههای ذخیرهشده
در یک پایگاه داده، یک ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در یک جدول/نما رخ می دهد، اجرا می شود. در میان کاربردهای دیگر آن، تریگرها عمدتاً برای حفظ یکپارچگی در پایگاه داده استفاده می شوند. روش ذخیره شده روشی است که می تواند توسط برنامه هایی که به یک پایگاه داده رابطه ای دسترسی دارند استفاده شود. به طور معمول، رویه های ذخیره شده به عنوان روشی برای اعتبارسنجی داده ها و کنترل دسترسی به پایگاه داده استفاده می شود.
محرک ها چیست؟
ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در جدول/نمای یک پایگاه داده رخ می دهد، اجرا می شود.در میان کاربردهای دیگر آن، تریگرها عمدتاً برای حفظ یکپارچگی در پایگاه داده استفاده می شوند. ماشه ها همچنین برای اجرای قوانین تجاری، ممیزی تغییرات در پایگاه داده و تکرار داده ها استفاده می شوند. رایج ترین محرک ها، محرک های زبان دستکاری داده ها (DML) هستند که هنگام دستکاری داده ها فعال می شوند. برخی از سیستمهای پایگاه داده از محرکهای غیردادهای پشتیبانی میکنند، که با رخ دادن رویدادهای زبان تعریف داده (DDL) فعال میشوند. برخی از نمونه ها تریگرهایی هستند که هنگام ایجاد جداول، در حین انجام عملیات commit یا rollback و غیره فعال می شوند. از این تریگرها می توان به ویژه برای ممیزی استفاده کرد. سیستم پایگاه داده اوراکل از محرکهای سطح طرح (یعنی تریگرهایی که هنگام اصلاح طرحهای پایگاه داده فعال میشوند) مانند After Creation، Before Alter، After Alter، Before Drop، After Drop و غیره پشتیبانی میکند. راهاندازهای سطح ستون، محرکهای نوع هر ردیف و محرکهای نوع بیانیه.
رویه های ذخیره شده چیست؟
روش ذخیره شده روشی است که می تواند توسط برنامه ای که به یک پایگاه داده رابطه ای دسترسی دارد استفاده کند. به طور معمول، رویه های ذخیره شده به عنوان روشی برای اعتبارسنجی داده ها و کنترل دسترسی به پایگاه داده استفاده می شود. اگر برخی از عملیات پردازش داده نیاز به اجرای چندین دستور SQL داشته باشند، چنین عملیاتی به عنوان رویه های ذخیره شده پیاده سازی می شوند. هنگام فراخوانی یک رویه ذخیره شده، باید از دستور CALL یا EXECUTE استفاده شود. رویه های ذخیره شده می توانند نتایج را برگردانند (به عنوان مثال نتایج حاصل از عبارات SELECT). این نتایج را می توان توسط سایر رویه های ذخیره شده یا برنامه های کاربردی استفاده کرد. زبانهایی که برای نوشتن رویههای ذخیرهشده استفاده میشوند، معمولاً از ساختارهای کنترلی مانند if، while، for و غیره پشتیبانی میکنند. بسته به سیستم پایگاه داده مورد استفاده، میتوان از چندین زبان برای پیادهسازی رویههای ذخیرهشده استفاده کرد (مانند PL/SQL و java در Oracle، T- SQL (Transact-SQL) و. NET Framework در Microsoft SQL Server). علاوه بر این، MySQL از رویه های ذخیره شده خود استفاده می کند.
تفاوت بین محرک ها و رویه های ذخیره شده چیست؟
ماشه یک رویه (بخش کد) است که به طور خودکار زمانی که برخی رویدادهای خاص در یک جدول/نمای یک پایگاه داده رخ می دهد اجرا می شود، در حالی که یک رویه ذخیره شده روشی است که می تواند توسط یک برنامه کاربردی برای دسترسی به پایگاه داده رابطه ای استفاده شود.. هنگامی که رویدادی که تریگر قرار است به آن پاسخ دهد، تریگرها به طور خودکار اجرا می شوند. اما برای اجرای یک رویه ذخیره شده باید از دستور CALL یا EXECUTE خاصی استفاده شود. محرک های اشکال زدایی می توانند سخت تر و پیچیده تر از اشکال زدایی رویه های ذخیره شده باشند. وقتی میخواهید مطمئن شوید که وقتی یک رویداد خاص اتفاق میافتد، محرکها بسیار مفید هستند.