מהי יושרה וכיצד מתכנת יכול למנוע בעיות אלה?
כלל שלמות הפניה
ביסודו של דבר, שלמות מתייחסת כי מסד נתונים לא יכול להיות unaired ערכי מפתח זרים. מפתח חיצוני הוא עמודה בטבלת מסד נתונים הכוללת ערכים המופיעים בעמודת המפתח הראשי, מזהה ייחודי שמזהה שורה בטבלה, בטבלה אחרת. לדוגמה, שקול טבלת מסד נתונים בשם "מחלקה", שבה יש עמודה בשם "מספר המחלקה" כמפתח הראשי. זה קשור לטבלה אחרת בשם "עובד", שם "מספר המחלקה" הוא מפתח חיצוני. העובד אינו יכול להיות שייך למחלקה מסוימת אם המקביל "מספר המחלקה" אינו קיים כבר בטבלה "מחלקת". אם התוכנית המוסיפה עובדים מחזקת את השלמות הייחוסית, כל ניסיון להכניס עובד במחלקה לא ידועה לא יהיה אפשרי.
יתרונות
בנוסף לכך שהפניות אלו בין הנתונים תקינות ותקינות, להגדרת השלמות הייחוסית של מסד נתונים יש יתרונות רבים. שלמות התייחסות משתמשת בקוד הקיים במנוע מסד נתונים במקום לשאול מתכנתים לכתוב קוד תוכנית מותאמת אישית מאפס. כתוצאה מכך, פיתוח של תוכניות הוא מהיר יותר, פחות נוטה שגיאות ועקבית בין כמה תוכניות יישום לגשת למסד הנתונים.
ההשלכות
למרבה הצער, לשפות התכנות אין לעתים קרובות את המנגנונים ליישם שלמות רלוונטיות, ואפילו כאשר מערכת ניהול מסדי נתונים תומכת במנגנונים אלה, מתכנתים אינם משתמשים בהם. תוצאת ההתעלמות מהשלמות הייחוסית היא קוד תכנות בעל פגמים, או שגיאות, תקלות וקשה להאריך.
יישום
מתכנתים יכולים ליישם שלמות התייחסות, ולהימנע מרשומות "יתומות" במסד נתונים, על ידי הפעלתו במערכת יחסים בין שני טבלאות. ב- Microsoft Access, לדוגמה, החלת השלמות הייחוסית פירושה שכל פעולה המפר אותה נדחית. סוגים אלה של פעולות כוללים עדכונים למסד הנתונים שמשנים את האובייקט של הפניה או מחיקות שמחקות את האובייקט של הפניה. בנוסף, Microsoft Access יש גם קבוצה של אפשרויות, הידוע בשם "מפל" אפשרויות. אפשרויות אלה מאפשרות להפיץ את העדכונים הרלוונטיים והמחוקים באמצעות מסד הנתונים, כך שכל השורות הקשורות ישתנו באותו אופן.