מסד נתונים יחסי

מתוך ויקיפדיה, האנציקלופדיה החופשית
(הופנה מהדף בסיס נתונים טבלאי)
איור המדגים את הקשר בין שלוש טבלאות במסד נתונים יחסי: לטבלת ההזמנות (Orders) יש קישור לטבלת מוצרים (Parts), ולטבלת המוצרים יש קישור לטבלת הספקים (Supplier)

מסד נתונים יחסי, מסד נתונים רלציוניאנגלית Relational DataBase או RDB, ומערכת הניהול שלו: RDBMS), או מסד נתונים טבלאי, הוא מודל נפוץ של מסד נתונים (בסיס נתונים) שדחק הצידה את המודלים שקדמו לו: מסד נתונים רשתי ומסד נתונים היררכי והיווה סטנדרט למסדי נתונים במשך עשרות שנים עם שליטה מוחלטת בשוק מסדי הנתונים, עד להתפתחות תחום ה-NoSQL (משנת 2009).

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

מסד הנתונים הטבלאי הוצג לראשונה בשנת 1970 במאמרו החלוצי של אדגר קוד מחברת IBM בשם A Relational Model of Data for Large Shared Data Banks.

מרכיבי מסד הנתונים הטבלאי[עריכת קוד מקור | עריכה]

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

אוסף כל השדות המתארים את האזרח הוא הרשומה (record) של אותו אזרח, ואוסף הרשומות של כל האזרחים הוא טבלה (table).

דוגמה לטבלת אזרח:

מספר תעודת זהות שם משפחה שם פרטי תאריך לידה שם האב
05674856 כהן לאה 20.08.77 ישראל
06777777 אמזלג רות 12.10.99 שלמה
02775877 יעקובוביץ דנה 06.12.57 יהושע

עמודה בטבלה היא שדה, ושורת נתונים היא רשומה. שדה תעודת זהות הוא שדה המפתח הייחודי שעל פיו, יקושרו רשומות בטבלאות אחרות לטבלה זו.

מפתחות[עריכת קוד מקור | עריכה]

לכל רשומה יש מפתח ראשי (primary key), המשמש לזיהוי חד-משמעי שלה. לכל רשומה יכול להיות רק מפתח ראשי אחד, שערכיו חייבים להיות ייחודיים ואסור שיהיו ריקים.

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

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

יחסים בין הטבלאות[עריכת קוד מקור | עריכה]

מסד נתונים מכיל בדרך כלל טבלאות רבות, המקושרות באמצעות מפתחות. לתרשים שמבטא את כל הקשרים בין הטבלאות השונות קוראים דיאגרמה, מבנה חשוב בהגדרת מסד הנתונים הוא "תרשים קשרי ישויות" (ERD - Entity Relationship Diagrams) שבו מתארים את כל הטבלאות והיחסים שהם מקיימים. תרשים זה נעשה בדרך כלל בשלב הניתוח והתכנון של המסד ומהווה בסיס למימוש.

היחסים בין טבלאות יכולים להיות מכמה סוגים:

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

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

טבלת ילדים שמתייחסת לטבלת אזרח

מספר תעודת זהות של האם שם משפחה שם פרטי תאריך לידה
05674856 כהן דוד 20 באוגוסט 2000
05674856 כהן עדי 12 באוקטובר 2003
05674856 כהן קרן 12 באוקטובר 2005

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

יישומים מסחריים של המודל הטבלאי[עריכת קוד מקור | עריכה]

ראו גם[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]