בסיס נתונים

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
סכמה של בסיס הנתונים של מדיה ויקי
מנהל בסיס נתונים Hsql
תוכנת PhppgAdmin לניהול בסיס נתונים
מסך ניהול של בסיס נתונים MySQL

בסיס נתונים (או מסד נתונים, ובאנגלית database או בקיצור DB) הוא אמצעי המשמש לאחסון מסודר של נתונים במחשב, לשם אחזורם ועיבודם. בסיס נתונים מאוחסן באמצעי אחסון מגנטי, בדרך כלל דיסק קשיח, המאפשר גישה ישירה לנתונים. הגישה לבסיס הנתונים נעשית באמצעות תוכנה ייעודית - מערכת לניהול בסיס נתונים (DBMS - Database Management System). בסיס הנתונים בנוי לפי מודל לאחסון הנתונים, כמו מנגנונים פנימיים למיון ולחיפוש.

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

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

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

  • מסדי נתונים אקטיביים (Active Databases).
  • מסדי נתונים עתיים (Temporal Databases).
  • מסדי נתונים שיתופיים (Cooperative/Federated Databases).
  • מסדי נתונים מבוזרים (Distributed Databases).
  • מסדי נתונים הסתברותיים (Probabilistic Databases).

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

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

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

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

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

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

קטלוג מערכת
בקטלוג רשום המידע אודות בסיס הנתונים. כמו הגדרת הרשומות והשדות, שמותיהם וסוגיהם, ברירות המחדל וחוקי האימות של השדות. המפתחות הראשיים והזרים של כל רשומה. מהם הכללים של אימות היחוסים. הרשאות של משתמשים ופעולות שמותר להם לבצע. כל המידע הזה מאוחסן בטבלאות מערכת אינטגרליות של בסיס הנתונים.
Query Optimizer
רכיב במסד הנתונים האחראי לתכנון ביצוע השאילתות במסד הנתונים והמבצע מיטוב שאילתות.
Storage Manager
מנגנון המנהל את האחסון הפיסי של הנתונים על גבי הדיסק.
Cache Manager
מנגנון המנהל את השימוש בזיכרון מטמון. ההחלטה אילו פריטים להכניס למטמון מתבססת בדרך כלל על היקף השימוש. לדוגמה טבלה אשר נמצאת בשימוש רב תוכנס למטמון על מנת לקצר את זמן הגישה למידע שבה.
יומן האירועים
מנגנון הרושם את כל העדכונים המבוצעים בתוכן של בסיס הנתונים כדי לתמוך בהתאוששות ושחזור של בסיס הנתונים במקרה של תקלה בנתונים הנובעת מהפסקה של תנועה או של בעיה אחרת. במקרה של תקלה ניתן לשחזר את הנתונים אחורה למצב שהיה לפני התחלת התנועה, אפשרות נוספת היא לבצע שיחזור לפנים, באמצעות שיחזורו מאמצעי גיבוי קדימה אל המצב המתבקש.
מנגנון בקרת המקביליות (Concurrency Control)
מנגנון זה אחראי לביצוע התקין של תנועות במסד הנתונים (Transactions). מנגנון בקרת המקביליות אחראי לקיום תכונות ACID במסד הנתונים. תנועה (טרנזקציה) היא אבסטרקציה של אוסף פעולות קריאה וכתיבה אטומיות לאובייקטים במסד הנתונים. היסטוריה מגדירה יחס סדר חלקי בין תנועות הרצות במקביל במסד הנתונים. כאשר שתי תנועות שונות ניגשות לאותו אובייקט ייתכן מצב של חוסר עקביות במסד כתוצאה מכך ששתי התנועות מתנגשות. שתי תנועות נקראות מתנגשות כאשר לפחות אחת מהן מבצעת פעולת כתיבה לאותו אובייקט. מנגנון בקרת המקביליות דואג שביצוע התנועות יהיה נכון ושקיף למשתמש. אחת מהמנגנונים הנפוצים לבקרת מקביליות הינו מנגנון הנעילות (Lock Based Mechanism). האלגוריתם הנפוץ ביותר נקרא 2PL ‏(Two Phase Locking). חיסרון בשימוש במנגנון נעילות כגון 2PL הינו האפשרות להגיע למצב של חבק (Deadlock). מנגנונים מבוססי נעילות נוספים שבשימוש הם: STRICT 2PL ו Conservative 2PL. כמו כן ישנם מנגנוני בקרת מקביליות המשתמשים בתגיות זמן (Timestamps).
מנגנון שכפול (Replica Control)
מנגנון המאפשר ליצור כמה מופעים של בסיס הנתונים באתרים שונים ולבצע סינכרון בין הנתונים שבהם באופן שכל שינוי בבסיס נתונים אחר מועבר לכל היתר. באמצעות מנגנון השכפול אפשר להעביר גם שינוי הגדרות של בסיס הנתונים לכל הבסיסים האחרים.

בסיסי נתונים נפוצים[עריכת קוד מקור | עריכה]

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

מודל רשתי[עריכת קוד מקור | עריכה]

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

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

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

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


בסיס נתונים

שדהרשומהטבלהמפתח ראשימפתח מורכבקובץבסיס נתוניםנרמולמודל ישויות קשרים