מפתחות ב-MySQL הם העמודה או קבוצת העמודות המשמשות לבניית קשר בין טבלאות אחת או יותר משתי טבלאות. הם משמשים גם לגישה לרשומות מהטבלה. שני המפתחות מספקים ייחודיות מובטחת עבור עמודה או קבוצה של עמודות בטבלה או ביחס. ההבדל העיקרי ביניהם הוא שהמפתח הראשי מזהה כל רשומה בטבלה, והמפתח הייחודי מונע ערכים כפולים בעמודה למעט ערך NULL . במאמר זה, אנו הולכים להשוות הבדלים מהותיים בין מפתחות ראשיים וייחודיים על סמך פרמטרים שונים. לפני ביצוע השוואה, נדון בקצרה במפתחות אלו.
np.unique
מהו מפתח ראשי?
המפתח העיקרי הוא א ייחודי או לא ריק מפתח שמזהה באופן ייחודי כל רשומה בטבלה או בקשר זה. עמודת המפתח הראשי אינה יכולה לאחסן ערכים כפולים, כלומר ערכי עמודת המפתח הראשי הם תמיד ייחודיים. זה נקרא גם א מפתח סופר מינימלי ; לכן, איננו יכולים לציין יותר ממפתח ראשי אחד בכל מערכת יחסים. ניתן להפנות לעמודת מפתח ראשי של טבלה אחת על ידי עמודת מפתח זר של טבלה אחרת.
לדוגמה , יש לנו טבלה בשם תלמידים עם מאפיינים כגון Stud_ID, Roll_No, Name, Mobile ו-Email.
כאן רק ה רול_לא העמודה לעולם לא יכולה להכיל ערך זהה ו-NULL. אנו יודעים שלכל תלמיד יש מספר רול ייחודי. לכן שני תלמידים לעולם לא יכולים לקבל את אותו מספר גליל. תכונה זו עוזרת לזהות כל רשומה במסד הנתונים באופן ייחודי. לפיכך, אנו יכולים להפוך את התכונה Roll_No למפתח ראשי.
תכונות של מפתח ראשי
להלן תכונות המפתח העיקריות החיוניות:
מספרים רומאים 1 עד 100
- עמודת המפתח הראשי אינה יכולה להכיל ערכים כפולים.
- המפתח הראשי מיישם את שלמות הישות של הטבלה.
- טבלה לא יכולה לכלול יותר מעמודת מפתח ראשי אחת.
- אנו יכולים ליצור את המפתח הראשי משדות טבלה אחד או יותר.
- עמודת המפתח הראשי צריכה לכלול אילוצי NOT NULL.
מהו מפתח ייחודי?
ה מפתח ייחודי הוא עמודה בודדת או שילוב של עמודות בטבלה לזיהוי ייחודי של רשומות מסד נתונים. מפתח ייחודי מונע מאחסון ערכים כפולים בעמודה. טבלה יכולה להכיל מספר עמודות מפתח ייחודיות, שלא כמו עמודת מפתח ראשי. מפתח זה דומה למפתח הראשי, אלא שניתן לאחסן ערך NULL אחד בעמודת המפתח הייחודי. המפתח הייחודי נקרא גם אילוצים ייחודיים וניתן להתייחס אליו באמצעות מפתח זר של טבלה אחרת.
לדוגמה , הבה נשקול את אותה טבלה בשם תלמידים עם מאפיינים כגון Stud_ID, Roll_No, Name, Mobile ו-Email.
כאן Stud_ID ניתן להקצות כאילוץ ייחודי מכיוון שלכל תלמיד חייב להיות מספר זיהוי ייחודי. אם סטודנט משנה את המכללה, אזי לא תהיה לו שום תעודת סטודנט. במקרה כזה, הערך עשוי להכיל א ריק ערך כי אילוץ מפתח ייחודי מאפשר אחסון NULL, אך הוא צריך להיות רק אחד.
תכונות של מפתח ייחודי
להלן תכונות המפתח הייחודיות החיוניות:
- אנו יכולים לבנות את המפתח הייחודי משדה טבלה אחד או יותר.
- טבלה יכולה להגדיר מספר עמודות מפתח ייחודיות.
- כברירת מחדל, מפתח ייחודי נמצא באינדקסים ייחודיים שאינם מקובצים.
- עמודת האילוץ הייחודית יכולה לאחסן ערך NULL, אך רק NULL אחד מותר null לכל עמודה.
- המפתח הזר יכול להתייחס לאילוץ הייחודי בשימור הייחודיות של טבלה.
הבדלים עיקריים בין מפתח ראשי למפתח ייחודי
הנקודות הבאות מסבירות את ההבדלים העיקריים בין מפתחות ראשוניים למועמדים:
- מפתח ראשי יכול להוות שדה אחד או יותר בטבלה כדי לזהות רשומות בטבלה באופן ייחודי. מצד שני, מפתח ייחודי מונע משתי שורות לכלול ערכים כפולים בעמודה.
- לטבלה לא יכול להיות יותר ממפתח ראשי אחד במסד נתונים יחסי, בעוד שיכולים להיות מספר מפתחות ייחודיים לכל טבלה.
- עמודת מפתח ראשי לא יכולה להכיל ערכי NULL, בעוד שלמפתח ייחודי יכולים להיות ערכי NULL, אבל רק NULL אחד מותר בטבלה.
- מפתח ראשי צריך להיות ייחודי, אבל מפתח ייחודי לא בהכרח יכול להיות המפתח הראשי.
- המפתח הראשי כברירת מחדל הוא אינדקס מקובץ שבו הנתונים מאורגנים פיזית באינדקס הרציף. לעומת זאת, המפתח הייחודי הוא אינדקס ייחודי שאינו מקובץ.
- המפתח הראשי מיישם את שלמות הישות, ואילו המפתח הייחודי אוכף נתונים ייחודיים.
תרשים השוואת מפתח ראשי לעומת מפתח ייחודי
טבלת ההשוואה הבאה מסבירה את ההבדלים העיקריים ביניהם בצורה מהירה:
צג שפופרת קרן קתודית
בסיס השוואה | מפתח ראשי | מפתח ייחודי |
---|---|---|
בסיסי | המפתח הראשי משמש כמזהה ייחודי עבור כל רשומה בטבלה. | המפתח הייחודי הוא גם מזהה ייחודי לרשומות כאשר המפתח הראשי אינו קיים בטבלה. |
ריק | איננו יכולים לאחסן ערכי NULL בעמודת המפתח הראשי. | אנו יכולים לאחסן ערך NULL בעמודת המפתח הייחודי, אך מותר רק NULL אחד. |
מַטָרָה | זה אוכף את שלמות הישות. | הוא אוכף נתונים ייחודיים. |
אינדקס | המפתח הראשי, כברירת מחדל, יוצר אינדקס מקובץ. | המפתח הייחודי, כברירת מחדל, יוצר אינדקס לא מקובץ. |
מספר מפתח | כל טבלה תומכת רק במפתח ראשי אחד. | שולחן יכול לכלול יותר ממפתח ייחודי אחד. |
שינוי ערך | איננו יכולים לשנות או למחוק את ערכי המפתח הראשי. | אנו יכולים לשנות את ערכי עמודת המפתח הייחודיים. |
שימושים | הוא משמש לזיהוי כל רשומה בטבלה. | זה מונע אחסון ערכים כפולים בעמודה למעט ערך NULL. |
תחביר | אנו יכולים ליצור עמודת מפתח ראשי בטבלה באמצעות התחביר שלהלן:CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) ) | אנו יכולים ליצור עמודת מפתח ייחודית בטבלה באמצעות התחביר שלהלן:CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) ) |
סיכום
במאמר זה, ערכנו השוואה בין מפתח ראשי לאילוצי מפתח ייחודיים. כאן הגענו למסקנה שמפתח ייחודי שימושי כאשר אנו רוצים שהעמודות לא יכילו ערכים כפולים. והמפתח הראשי שימושי כאשר איננו רוצים לשמור על ערך NULL בטבלה. זה יכול להיות גם אידיאלי כשיש לנו מפתח זר בטבלה אחרת כדי ליצור קשר בין טבלאות.