הגדרת מפתח זר ותפקודו והבדלו עם מפתח ראשוני
הסביר בעבר את המפתח הראשי,הפעם המחבר ידון בתכונות החשובות לא פחות מהמפתח הראשי, כלומר המפתח הזר (מפתח זר). בהתבסס על שמו, תכונה זו אינה התכונה העיקרית שיש להכיל בטבלה. עם זאת, המפתח הזר הזה הוא שיש לו תפקיד לחבר בין טבלת המאסטר לטבלאות הנגזרות שלה.
במילים פשוטות, ניתן ליצור מפתח זרהקשר בין הרשומות הכלולות בשתי טבלאות שונות במסד נתונים. מפתח זר זה הוא העמודה המתייחסת לטור המפתח הראשי. הפניות אלה הופכות לחשובות מאוד בעיצוב בסיסי נתונים, זאת לצורך יצירת קשרים בין רשומות הממלאות תפקיד חשוב בנורמליזציה של מסדי נתונים יחסיים. בנורמליזציה, המפתח הזר הוא גישה לטבלאות אחרות ויכול למיין את בסיס הנתונים.
עם זאת, האם אתה יודע מהי הבנה באמתממפתח זר? פונקציה? למעשה, מה שמבדיל מפתח זר ומפתח ראשוני. לכן, במאמר זה, המחבר ידון בפירוט במשמעותו של מפתח זר, תפקודו של מפתח זר וגם בהבדל בין מפתח זר למפתח ראשוני. מייד, הדיון הראשון, העוסק בהבנת המפתח הזר למטה.
הגדרת מפתח זר
במילים פשוטות, ניתן לפרש מפתח זר כמפתח זר. הגדרה זו חלה גם בעיבוד מסדי נתונים יחסי. מפתח זר (מפתח זר) היא תכונה או שילוב של תכונות הכלולות בטבלה המשמשת ליצירת קשרים (יחסים) בין שני טבלאות.
במאגרי מידע יחסים, שימוש במפתחות זריםמתייחס למפתח ראשי הכלול בטבלה הראשונה או המכונה גם טבלת האב. לפרטים נוספים, שקול את התמונה למטה.
בתמונה למעלה העמודה Department_Id היאבטבלת העובדים הוא מפתח זר. מכיוון שהעמודה Department_Id מתייחסת לעמודה Department_Id שנמצאת בטבלת המחלקות. במקרה זה, העמודה Department_Id בטבלת המחלקות נקראת המפתח הראשי. להלן הסבר כיצד לקבוע מפתח זר (מפתח זר) ביצירת טבלת עובדים באמצעות MySQL:
(שכיר_Id CHAR (7),
שם CHAR (25),
BOOLEAN, מין
תאריך DATE,
Department_Id CHAR (3),
מפתח ראשוני (עובד_אידי),
מפתח חוץ (Department_Id) המחלקות למחשבים (Department_Id));
פונקצית מפתח זרה
בעיקרון משתמשים במפתח זרמציין את הקשר בין טבלה אחת לשנייה. או שזה יכול להיות ידוע כהורה וילד. הטבלה הראשונה פועלת כהורה שיש בה מפתח ראשי, הטבלה השנייה נקראת ילד המכיל מפתח זר.
אפשר לומר ששולחן הוא ילד אם הוא נמצאהטבלה מכילה עמודות המהוות הפניות לטבלה או להורה הראשון. בנוסף, ישנם מספר פונקציות הנמצאות בבעלות על מפתחות זרים. להלן יסבירו חלק מתפקידיו:
- קביעת מפתח זר היא אוטומטיתמסד הנתונים יהיה עקבי בשמירה על שלמות הפניה. ככה, מסד הנתונים יכול לפקח על כל הנתונים שהוזנו. לדוגמא בתמונת הדוגמה שלמעלה, כשאתה מנסה להזין רשומה חדשה בטבלת העובדים ("2010004", "Andi", "זכר", "10/03/1990", "PEN"). ואז באופן אוטומטי, מסד הנתונים יסרב להכנס לרשומה ולהציג הודעת שגיאה. כי, בטור Department_Id בטבלה המחלקה לא יודע "PEN".
- לאחר הגדרת מפתח ראשי ב-הטבלה הראשית והמפתח הזר בטבלה השנייה, ואז זה מקל עליך לראות את העיצוב של מסד הנתונים הפיזי עם רכיבים קשורים זה בזה. ככה, אינך צריך ליצור עיצוב מסד נתונים באופן ידני. ב- XAMPP, תוכלו לראות את עיצוב מסד הנתונים הפיזי שעוצב על ידי לחיצה על התפריט עוד -> מעצב.
- על ידי יצירת טור שמשמש כ-מפתח זר, זה יכול להקל עליך לבצע פעולות עיבוד עבור כל נתונים המאוחסנים בבסיס הנתונים. מכיוון שהנתונים המאוחסנים קשורים זה בזה.
ההבדל בין מפתח ראשוני לזרים
לאחר הכרת ההגדרה של המפתח הראשי ו-מפתח זר, אתה כבר יכול להסיק את ההבדל בין שני המונחים. במסד נתונים יחסי, לכל טבלה יכולה להיות מפתח ראשי בלבד. בניגוד למפתחות זרים, בכל שולחן יכולים להיות מפתחות זרים רבים.
ישנם עוד הרבה הבדלים הנמצאים בבעלות מפתח ראשוני ומפתח זר. להלן יסבירו את ההבדלים בין השניים.
א. מפתח ראשוני
- המפתח הראשי מגדיר את ערך הצבע בשולחן. ניתן לומר את המפתח הראשי כתכונה יחידה בטבלה. באופן זה, ייתכן שהערך של המפתח הראשי לא ישתנה. מכיוון ששינוי הערך של המפתח הראשי יביא למעשה לבלבול.
- זה ההבדל העיקרי בין ראשונימקש עם מפתח זר הוא ערך שמשמש במפתח הראשי אסור להיות NULL. העניין הוא שצריך למלא את הרשומה בערכים (יתכן שהיא אינה ריקה). אם הערך של מאפיין המפתח הראשי מכיל NULL, אינך יכול לזהות את הרשומה הכלולה בטבלה.
- במפתח הראשי, באפשרותך ליצור אינדקס מקבץ באופן אוטומטי. כלומר אתה יכול למיין את הנתונים שיש לאחסן במסד נתונים.
- המפתח העיקרי הוא שילוב של UNIQUE ו-לא אפס. זה לא גורם להגדרת ערכים כפולים שיכולים להיות בבעלות העמודה כמפתח הראשי, במיוחד בעיבוד מסדי נתונים יחסיים.
- אתה יכול להוסיף ערכים חדשים למאפיין המפתח הראשי, למרות שלמפתח הזר אין ערך חדש בעמודה שלו.
- לא ניתן למחוק ערך מהמפתח הראשי מהטבלה הראשונה (אב). לשם כך עליכם למחוק את המאפיין הנקרא מפתח זר בטבלה או בילד השני.
ב. מפתח זר
- מפתח זר הוא תחום באחדשולחן המשמש לחיבור שני שולחנות. באופן זה, מפתח זר מתייחס לטור ייחודי לזיהוי שורות מאותה טבלה או אחת.
- שלא כמו המפתח הראשי שערכו אינויכול להיות NULL. מפתח זר יכול לקבל ערכי NULL. לכן למפתח הזר אין פונקציה לזהות את הרשומות הכלולות בטבלה. בנוסף, מפתחות זרים יכולים לקבל גם ערכים כפולים.
- אין מפתח זר בפנים מדד מקבץ. עם זאת, אתה יכול לעשות זאת באופן ידני.
- אינך יכול להוסיף ערך למפתח זר, אם הערך אינו זמין בעמודת המפתח הראשי. מכיוון שערך התנאי במפתח זר הוא ערך ההתייחסות מעמודת המפתח הראשית.
- ניתן למחוק ערך שמקורומעמודת המפתח הזר מבלי להפריע לרשומות אחרות, וגם בלי צורך לדעת אם הערך הוא ערך שמפנים אליו מהמפתח הראשי או לא.
זה הסבר להגדרת תשחץמקש, תפקידו יחד עם ההבדלים בין המפתח הראשי למפתח הזר. הכותב מקווה שהמאמר שלמעלה יכול לעזור לך לדעת בבירור את המפתח הזר, כך שתוכל לציין את המפתח הזר שמקורו בהפניה הראשית למפתח.