הבדל בין מפתח זר למפתח ראשי

תוכן עניינים:

הבדל בין מפתח זר למפתח ראשי
הבדל בין מפתח זר למפתח ראשי

וִידֵאוֹ: הבדל בין מפתח זר למפתח ראשי

וִידֵאוֹ: הבדל בין מפתח זר למפתח ראשי
וִידֵאוֹ: Primary & Foreign Keys 2024, נוֹבֶמבֶּר
Anonim

הבדל המפתח בין מפתח זר למפתח ראשי הוא שמפתח זר הוא עמודה או קבוצה של עמודות המתייחסות למפתח ראשי או מפתח מועמד של טבלה אחרת בעוד שהמפתח הראשי הוא עמודה או קבוצה של עמודות שיכול לשמש לזיהוי ייחודי של שורה בטבלה.

עמודה או קבוצה של עמודות שניתן להשתמש בהן כדי לזהות או לגשת לשורה או לקבוצה של שורות במסד נתונים נקראים מפתח. מפתח ראשי במסד נתונים יחסי הוא שילוב של עמודות בטבלה המזהים באופן ייחודי שורה בטבלה. מפתח זר במסד נתונים יחסי הוא שדה בטבלה התואם למפתח הראשי של טבלה אחרת.המפתח הזר משמש להצלבת טבלאות הפניות.

ההבדל בין מפתח זר למפתח ראשי - סיכום השוואה
ההבדל בין מפתח זר למפתח ראשי - סיכום השוואה
ההבדל בין מפתח זר למפתח ראשי - סיכום השוואה
ההבדל בין מפתח זר למפתח ראשי - סיכום השוואה

מהו מפתח זר?

מפתח זר הוא אילוץ התייחסות בין שתי טבלאות. הוא מזהה עמודה או קבוצה של עמודות בטבלה אחת, הנקראת טבלת הפניות המתייחסת לקבוצת עמודות בטבלה אחרת, הנקראת הטבלה המופנית. המפתח הזר או העמודות בטבלת ההפניה חייבות להיות המפתח הראשי או מפתח מועמד (מפתח שיכול לשמש כמפתח ראשי) בטבלה שאליה יש התייחסות. יתר על כן, מפתחות זרים מאפשרים קישור נתונים על פני מספר טבלאות.לכן, המפתח הזר אינו יכול להכיל ערכים שאינם מופיעים בטבלה שאליה הוא מתייחס. אז ההפניה שמספק מפתח הזר עוזרת לקשר מידע במספר טבלאות וזה יהפוך חיוני עם מסדי נתונים מנורמלים. שורות מרובות בטבלת ההפניות עשויות להתייחס לשורה בודדת בטבלה שאליה יש התייחסות.

ההבדל בין מפתח זר למפתח ראשי
ההבדל בין מפתח זר למפתח ראשי
ההבדל בין מפתח זר למפתח ראשי
ההבדל בין מפתח זר למפתח ראשי

איור 01: מיפוי מפתח זר

בתקן ANSI SQL, אילוץ FOREIGN KEY מגדיר מפתחות זרים. יתר על כן, ניתן להגדיר את המפתחות הזרים בעת יצירת הטבלה עצמה. לטבלה יכולה להיות מפתחות זרים מרובים, והם יכולים להפנות לטבלאות שונות.

מהו מפתח ראשי?

מפתח ראשי הוא עמודה או שילוב של עמודות המגדירים באופן ייחודי שורה בטבלה של מסד נתונים יחסי. לטבלה יכולה להיות לכל היותר מפתח ראשי אחד. מפתח ראשי אוכף את האילוץ המרומז NOT NULL. לכן, עמודה עם מפתח ראשי לא יכול לכלול ערכי NULL. מפתח ראשי יכול להיות תכונה רגילה בטבלה שמובטחת שהיא ייחודית כמו מספר תעודת זהות, או שזה יכול להיות ערך ייחודי שנוצר על ידי מערכת ניהול מסד הנתונים כגון מזהה גלובלי ייחודי (GUID) ב-Microsoft SQL Server.

הבדל מפתח בין מפתח זר למפתח ראשי
הבדל מפתח בין מפתח זר למפתח ראשי
הבדל מפתח בין מפתח זר למפתח ראשי
הבדל מפתח בין מפתח זר למפתח ראשי

איור 02: מפתח ראשי

יתר על כן, האילוץ PRIMARY KEY ב-ANSI SQL Standard מגדיר מפתחות ראשיים. ניתן גם להגדיר מפתח ראשי בעת יצירת הטבלה. בנוסף לכך, SQL מאפשר למפתח ראשי להיות מורכב מעמודה אחת או יותר, וכל עמודה שנכללת במפתח הראשי מוגדרת באופן מרומז כ- NOT NULL. אבל חלק ממערכות ניהול מסדי הנתונים דורשות להפוך את עמודות המפתח הראשי במפורש לא NULL.

מה ההבדל בין מפתח זר למפתח ראשי?

מפתח זר לעומת מפתח ראשי

מפתח זר הוא עמודה או קבוצת עמודות בטבלת מסד נתונים רלציונית המספקת שיוך בין נתונים בשתי טבלאות. מפתח ראשי הוא עמודת טבלת מסד נתונים יחסית מיוחדת או שילוב של מספר עמודות המאפשר לזהות באופן ייחודי את כל רשומות הטבלה.
NULL
מפתח זר מקבל ערך NULL. ערך מפתח ראשי לא יכול להיות NULL.
מספר המפתחות
טבלה יכולה לכלול מפתחות זרים מרובים. טבלה יכולה לכלול מפתח ראשי אחד בלבד.
שכפול
Tuples יכול לקבל ערך כפול עבור תכונת מפתח זר. לשתי tuples בקשר לא יכולים להיות ערכים כפולים עבור תכונת מפתח ראשי.

סיכום – מפתח זר לעומת מפתח ראשי

ההבדל בין מפתח זר למפתח ראשי הוא שמפתח זר הוא עמודה או קבוצה של עמודות המתייחסות למפתח ראשי או מפתח מועמד של טבלה אחרת בעוד שהמפתח הראשי הוא עמודה או קבוצה של עמודות יכול לשמש לזיהוי ייחודי של שורה בטבלה.

מוּמלָץ: