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

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 1 מאי 2024
Anonim
Concept of Keys in DBMS - Super, Primary, Candidate, Foreign Key, etc
וִידֵאוֹ: Concept of Keys in DBMS - Super, Primary, Candidate, Foreign Key, etc

תוֹכֶן


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

ישנם הבדלים רבים אחרים בין שני אלה, הבה נזהה את ההבדלים הללו בעזרת תרשים השוואה המוצג להלן.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

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


הגדרת המפתח העיקרי

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

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

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


בזמן מוחק קשור מקשר, יש לדאוג שערך המפתח העיקרי של הקשור שנמחק לא יהיה עדיין בעמודת המפתח הזרה של יחס ההפניה. ואילו החדרה אין מגבלות על מפתח ראשי.

המפתח הראשי של טבלה כאשר משתמשים בטבלה אחרת כלשהי, הוא הופך למפתח זר לטבלה זו. בהמשך נדונו אילוצי המפתח הזרים.

הגדרת מפתח זר

כאשר יחס R1, בין תכונותיו, יש א ראשוני מפתח של יחס אחר R2, אז נקראת תכונה זו מפתח זר ליחס R1. היחס R1 המכיל את המפתח הזר נקרא התייחסות מכיוון שהוא מתייחס למפתח הראשי של יחסי R2 וקשר R2 נקרא התייחסות.
שלא כמו המפתח הראשי, המפתח הזר יכול לקבל ריק כיוון שאין לה את המשימה לזהות רשומה באופן ברור ביחס, מכיוון שיש לנו את המפתח העיקרי לכך. באותו אופן גם המפתח הזר מקבל ערכים כפולים.

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

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

  1. ראשית היא מערכת של תכונות / מפתח מועמד המזהה באופן ברור את הרשומה בקשר. עם זאת, מפתח זר בטבלה מתייחס למפתח הראשי של טבלה אחרת.
  2. אין תכונות מפתח עיקריות יכולות להכיל ערכי NULL ואילו, תכונה של מפתח זר יכולה לקבל ערך NULL.
  3. מפתח ראשי צריך להיות בעל תכונות ייחודיות ואילו מפתח זר עשוי להכיל ערכי תכונות כפולים.
  4. יתכנו מספר מפתחות זרים ביחס, אך למערכת יחסים יש רק מפתח ראשי אחד.
  5. ניתן להחיל את אילוץ המפתח העיקרי על הטבלאות הזמניות. עם זאת, לא ניתן להחיל אילוץ מפתח זר על הטבלאות הזמניות.
  6. מפתח ראשי הוא כברירת מחדל באינדקס מקבץ, ואילו מפתח זר אינו צמוד לאינדקס באופן אוטומטי, אך ניתן לבצע אותו באופן ידני.
  7. בעת הכנסת ערך בעמודת מפתח זרה, וודא כי ערך התכונה להכנסת נמצא בעמודת המפתח העיקרית המופנית. עם זאת, אין הגבלה על הכניסה בעמודת המפתח הראשית.
  8. בעת מחיקת ערך מעמודת המפתח הראשית וודא כי ערך התכונה שנמחק אינו קיים בעמודת המפתח הזר המפנה. עם זאת, אין אילוץ למחוק ערך מעמודה של מפתח זר.

סיכום:

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