טריגרים לעומת סמנים
בבסיס נתונים, טריגר הוא פרוצדורה (קטע קוד) שמתבצע באופן אוטומטי כאשר אירועים ספציפיים מתרחשים בטבלה/תצוגה. בין שאר השימושים שלו, טריגרים משמשים בעיקר לשמירה על שלמות במסד נתונים. סמן הוא מבנה בקרה המשמש במסדי נתונים כדי לעבור על רשומות מסד הנתונים. זה דומה מאוד לאיטרטור שמספק שפות תכנות רבות.
מהם טריגרים?
טריגר הוא הליך (קטע קוד) שמתבצע באופן אוטומטי כאשר אירועים ספציפיים מתרחשים בטבלה/תצוגה של מסד נתונים. בין שאר השימושים שלו, טריגרים משמשים בעיקר לשמירה על שלמות במסד נתונים.טריגרים משמשים גם לאכיפת כללים עסקיים, ביקורת שינויים במסד הנתונים ושכפול נתונים. הטריגרים הנפוצים ביותר הם טריגרים של Data Manipulation Language (DML) המופעלים כאשר הנתונים עוברים מניפולציה. מערכות מסד נתונים מסוימות תומכות בטריגרים שאינם נתונים, המופעלים כאשר מתרחשים אירועי Data Definition Language (DDL). כמה דוגמאות הן טריגרים המופעלים כאשר טבלאות נוצרות, במהלך פעולות commit או rollback מתרחשות וכו'. טריגרים אלו יכולים לשמש במיוחד לביקורת. מערכת מסד הנתונים של Oracle תומכת בטריגרים של רמת הסכימה (כלומר טריגרים המופעלים כאשר סכימות מסד נתונים משתנות) כגון After Creation, Before Alter, After Alter, Before Drop, After Drop וכו'. ארבעת הסוגים העיקריים של טריגרים הנתמכים על ידי Oracle הם Row Level Triggers, מפעילי רמת עמודה, כל סוג שורה מפעילים ועבור כל סוג הצהרה מפעילים.
מהם סמנים?
סמן הוא מבנה בקרה המשמש במסדי נתונים כדי לעבור על רשומות מסד הנתונים.זה דומה מאוד לאיטרטור שמספק שפות תכנות רבות. בנוסף למעבר בין רשומות במסד נתונים, הסמנים גם מקלים על אחזור נתונים, הוספה ומחיקה של רשומות. על ידי הגדרת הדרך הנכונה, ניתן להשתמש בסמנים גם כדי לעבור אחורה. כאשר שאילתת SQL מחזירה קבוצה של שורות, אלו למעשה מעובדות באמצעות סמנים. יש להצהיר על סמן ולהקצות לו שם, לפני שניתן יהיה להשתמש בו. לאחר מכן יש לפתוח את הסמן באמצעות הפקודה OPEN. פעולה זו תציב את הסמן ממש לפני השורה הראשונה של ערכת התוצאות של רשומות. לאחר מכן על הסמן לבצע את פעולת ה-FETCH כדי להכניס למעשה שורה של נתונים לאפליקציה. לבסוף, יש לסגור את הסמן באמצעות פעולת CLOSE. ניתן לפתוח שוב סמנים סגורים.
מה ההבדל בין טריגרים לסממנים?
טריגר הוא פרוצדורה (קטע קוד) שמתבצע באופן אוטומטי כאשר אירועים ספציפיים מתרחשים בטבלה/תצוגה של מסד נתונים, בעוד שסמן הוא מבנה בקרה המשמש בבסיסי נתונים כדי לעבור על רשומות מסד הנתונים.ניתן להכריז על סמן ולהשתמש בו בתוך טריגר. במצב כזה, הצהרת ההצהרה תהיה בתוך הדק. אז היקף הסמן יהיה מוגבל לאותו טריגר. בתוך טריגר, אם סמן מוצהר על טבלה שהוכנסה או נמחקה, סמן כזה לא יהיה נגיש מטריגר מקונן. לאחר השלמת הפעלה, כל הסמנים שנוצרו בתוך הדק יבוטלו.