בסיס נתונים יחסי

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
איור המדגים את הקשר בין שלוש טבלאות במסד נתונים יחסי: לטבלת ההזמנות (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), המשמש לזיהוי חד-משמעי שלה. לכל טבלה יכול להיות רק מפתח ראשי אחד, שערכיו חייבים להיות ייחודיים ואסור שיהיו ריקים.

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

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

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

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

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

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

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

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

מספר תעודת זהות של האב שם משפחה שם פרטי תאריך לידה
05674856 כהן דוד 20.8.2000
05674856 כהן עדי 12.10.2003
05674856 כהן קרן 12.10.2005

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

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

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

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

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