מסד נתונים יחסי הוא סוג של מסד נתונים המאחסן ומספק גישה לנקודות נתונים הקשורות זו לזו. מסדי נתונים יחסיים מבוססים על המודל ההתייחסותי, דרך אינטואיטיבית ופשוטה לייצוג נתונים בטבלאות. במסד נתונים יחסי, כל שורה בטבלה היא רשומה עם מזהה ייחודי הנקרא מפתח. העמודות של הטבלה מכילות תכונות של הנתונים, ולכל רשומה יש בדרך כלל ערך עבור כל תכונה, מה שמקל על ביסוס הקשרים בין נקודות הנתונים.
הנה דוגמה פשוטה לשתי טבלאות שעסק קטן עשוי להשתמש בו כדי לעבד הזמנות למוצריו. הטבלה הראשונה היא טבלת פרטי לקוח, כך שכל רשומה כוללת שם לקוח, כתובת, פרטי משלוח וחיוב, מספר טלפון ופרטים נוספים ליצירת קשר. כל פיסת מידע (כל תכונה) נמצאת בעמודה משלה, ומסד הנתונים מקצה מזהה ייחודי (מפתח) לכל שורה. בטבלה השנייה - טבלת הזמנת לקוחות - כל רשומה כוללת את תעודת הזהות של הלקוח שביצע את ההזמנה, המוצר שהוזמן, הכמות, המידה והצבע שנבחרו וכן הלאה - אך לא את שם הלקוח או פרטי הקשר.
לשתי הטבלאות הללו יש רק דבר אחד במשותף: עמודת הזיהוי (המפתח). אבל בגלל העמודה המשותפת הזו, מסד הנתונים היחסי יכול ליצור קשר בין שתי הטבלאות. לאחר מכן, כאשר יישום עיבוד ההזמנות של החברה מגיש הזמנה למסד הנתונים, המאגר יכול לעבור לטבלת הזמנת הלקוח, למשוך את המידע הנכון על הזמנת המוצר ולהשתמש במזהה הלקוח מאותה טבלה כדי לחפש את החיוב והמשלוח של הלקוח מידע בטבלת פרטי הלקוח. לאחר מכן המחסן יכול למשוך את המוצר הנכון, הלקוח יכול לקבל אספקה בזמן של ההזמנה, והחברה יכולה לקבל תשלום.
המודל היחסי אומר שמבני הנתונים הלוגיים - טבלאות הנתונים, התצוגות והאינדקסים - נפרדים ממבני האחסון הפיזיים. הפרדה זו פירושה שמנהלי מסד נתונים יכולים לנהל אחסון נתונים פיזי מבלי להשפיע על הגישה לנתונים אלה כמבנה לוגי. לדוגמה, שינוי שם של קובץ מסד נתונים אינו משנה את שמות הטבלאות המאוחסנות בו.
ההבחנה בין לוגית לפיזית חלה גם על פעולות מסד נתונים, שהן פעולות מוגדרות בבירור המאפשרות ליישומים לתפעל את הנתונים ומבנים של מסד הנתונים. פעולות לוגיות מאפשרות לאפליקציה לציין את התוכן שהוא צריך, ופעולות פיזיות קובעות כיצד יש לגשת לנתונים הללו ולאחר מכן לבצע את המשימה.
כדי להבטיח שהנתונים יהיו תמיד מדויקים ונגישים, מסדי נתונים יחסיים פועלים לפי כללי יושרה מסוימים. לדוגמה, כלל יושרה יכול לציין כי שורות כפולות אינן מותרות בטבלה על מנת לבטל את הפוטנציאל לכניסת מידע שגוי למסד הנתונים.
בשנים הראשונות של מסדי הנתונים, כל אפליקציה אחסנה נתונים במבנה הייחודי שלה. כאשר מפתחים רצו לבנות יישומים כדי להשתמש בנתונים האלה, הם היו צריכים לדעת הרבה על מבנה הנתונים המסוים כדי למצוא את הנתונים שהם צריכים. מבני נתונים אלה היו לא יעילים, קשים לתחזוקה וקשים לאופטימיזציה כדי לספק ביצועי אפליקציה טובים. מודל מסד הנתונים היחסי תוכנן לפתור את הבעיה של מבני נתונים שרירותיים מרובים.
מודל הנתונים ההתייחסותיים סיפק דרך סטנדרטית לייצוג ושאילתה של נתונים שיכולים לשמש כל יישום. מההתחלה, מפתחים זיהו שהחוזק העיקרי של מודל מסד הנתונים ההתייחסותי היה בשימוש שלו בטבלאות, שהיוו דרך אינטואיטיבית, יעילה וגמישה לאחסן ולגשת למידע מובנה.
עם הזמן, חוזק נוסף של המודל ההתייחסותי צץ כאשר מפתחים החלו להשתמש בשפת שאילתות מובנית (SQL) כדי לכתוב ולשאול נתונים במסד נתונים. במשך שנים רבות, נעשה שימוש נרחב ב-SQL כשפה לשאילתות מסד נתונים. בהתבסס על אלגברה רלציונית, SQL מספק שפה מתמטית עקבית פנימית המקלה על שיפור הביצועים של כל שאילתות מסד הנתונים. לשם השוואה, גישות אחרות חייבות להגדיר שאילתות בודדות.
המודל ההתייחסותי הפשוט אך החזק משמש ארגונים מכל הסוגים והגדלים למגוון רחב של צורכי מידע. מסדי נתונים יחסיים משמשים למעקב אחר מלאי, עיבוד עסקאות מסחר אלקטרוני, ניהול כמויות אדירות של מידע לקוח קריטי למשימה ועוד הרבה יותר. ניתן לשקול מסד נתונים יחסי לכל צורך מידע שבו נקודות נתונים קשורות זו לזו וחייבות להיות מנוהלות בצורה מאובטחת, מבוססת כללים ועקבית.
מסדי נתונים יחסיים קיימים מאז שנות ה-70. כיום, היתרונות של המודל היחסי ממשיכים להפוך אותו למודל המקובל ביותר עבור מסדי נתונים.
המודל היחסי הוא הטוב ביותר בשמירה על עקביות נתונים בין יישומים ועותקי מסד נתונים (הנקראים מופעים). לדוגמה, כאשר לקוח מפקיד כסף בכספומט ולאחר מכן מסתכל על יתרת החשבון בטלפון נייד, הלקוח מצפה לראות את ההפקדה הזו משתקפת מיד ביתרת חשבון מעודכנת. מסדי נתונים יחסיים מצטיינים בסוג זה של עקביות נתונים, ומבטיחים שלמספר מופעים של מסד נתונים יש את אותם נתונים כל הזמן.
קשה לסוגים אחרים של מסדי נתונים לשמור על רמה זו של עקביות בזמן עם כמויות גדולות של נתונים. כמה מסדי נתונים אחרונים, כגון NoSQL, יכולים לספק רק "עקביות בסופו של דבר". לפי עיקרון זה, כאשר מסד הנתונים מוגדל או כאשר משתמשים מרובים ניגשים לאותם נתונים בו-זמנית, הנתונים צריכים זמן מה כדי "להדביק את הקצב". עקביות בסופו של דבר מקובלת לשימושים מסוימים, כגון שמירה על רישומים בקטלוג מוצרים, אך עבור פעולות עסקיות קריטיות כגון עסקאות עגלת קניות, מסד הנתונים היחסי הוא עדיין תקן הזהב.
מסדי נתונים יחסיים מטפלים בכללים ומדיניות עסקיים ברמה מאוד מפורטת, עם מדיניות קפדנית לגבי מחויבות (כלומר, ביצוע שינוי במסד הנתונים קבוע). לדוגמה, שקול מסד נתונים של מלאי שעוקב אחר שלושה חלקים שתמיד משתמשים בהם יחד. כאשר חלק אחד נשלף מהמלאי, יש לשלוף גם את שני האחרים. אם אחד משלושת החלקים אינו זמין, אין למשוך אף אחד מהחלקים - כל שלושת החלקים חייבים להיות זמינים לפני שמסד הנתונים מתחייב. מסד נתונים יחסי לא יתחייב עבור חלק אחד עד שהוא יודע שהוא יכול לבצע commit עבור כל השלושה. יכולת מחויבות רב-גונית זו נקראת אטומיות. אטומיות היא המפתח לשמירה על דיוק הנתונים במסד הנתונים ולהבטחת התאימות לכללים, לתקנות ולמדיניות של העסק.
ארבעה מאפיינים מכריעים מגדירים עסקאות של מסד נתונים יחסי: אטומיות, עקביות, בידוד ועמידות - המכונה בדרך כלל ACID.
גישה לנתונים כרוכה בפעולות רבות שחוזרות על עצמן. לדוגמה, ייתכן שיהיה צורך לחזור על שאילתה פשוטה לקבלת מידע מטבלת נתונים מאות או אלפי פעמים כדי להפיק את התוצאה הרצויה. פונקציות גישה לנתונים אלו דורשות סוג כלשהו של קוד כדי לגשת למסד הנתונים. מפתחי אפליקציות לא רוצים לכתוב קוד חדש עבור הפונקציות הללו בכל אפליקציה חדשה. למרבה המזל, מסדי נתונים יחסיים מאפשרים פרוצדורות מאוחסנות, שהם בלוקים של קוד שניתן לגשת אליהם באמצעות קריאת אפליקציה פשוטה. לדוגמה, הליך מאוחסן יחיד יכול לספק תיוג עקבי של רשומות למשתמשים של מספר יישומים. נהלים מאוחסנים יכולים גם לעזור למפתחים להבטיח שפונקציות נתונים מסוימות באפליקציה מיושמות בצורה ספציפית.
קונפליקטים יכולים להיווצר במסד נתונים כאשר מספר משתמשים או יישומים מנסים לשנות את אותם נתונים בו-זמנית. טכניקות נעילה ומקיפות מפחיתות את הפוטנציאל להתנגשויות תוך שמירה על שלמות הנתונים.
נעילה מונעת ממשתמשים ויישומים אחרים לגשת לנתונים בזמן שהם מתעדכנים. במסדי נתונים מסוימים, נעילה חלה על כל הטבלה, מה שיוצר השפעה שלילית על ביצועי האפליקציה. מסדי נתונים אחרים, כגון מסדי נתונים יחסיים של Oracle, מיישמים נעילות ברמת הרשומה, ומשאירים את הרשומות האחרות בתוך הטבלה זמינות, ועוזרות להבטיח ביצועי יישומים טובים יותר.
מקביליות מנהלת את הפעילות כאשר מספר משתמשים או יישומים מפעילים שאילתות בו-זמנית באותו מסד נתונים. יכולת זו מספקת את הגישה הנכונה למשתמשים ולאפליקציות בהתאם למדיניות שהוגדרה לבקרת נתונים.
התוכנה המשמשת לאחסון, ניהול, שאילתות ואחזור נתונים המאוחסנים במסד נתונים יחסי נקראת מערכת לניהול מסד נתונים יחסי (RDBMS). ה-RDBMS מספק ממשק בין משתמשים ויישומים לבין מסד הנתונים, כמו גם פונקציות ניהוליות לניהול אחסון נתונים, גישה וביצועים.
מספר גורמים יכולים להנחות את ההחלטה שלך בעת הבחירה בין סוגי מסדי נתונים ומוצרי מסדי נתונים יחסיים. ה-RDBMS שתבחר יהיה תלוי בצרכי העסק שלך. שאל את עצמך את השאלות הבאות:
עם השנים, מסדי נתונים יחסיים השתפרו, מהירים יותר, חזקים יותר וקלים יותר לעבוד איתם. אבל הם גם נעשו מורכבים יותר, וניהול מסד הנתונים כבר מזמן עבודה במשרה מלאה. במקום להשתמש במומחיות שלהם כדי להתמקד בפיתוח יישומים חדשניים המביאים ערך לעסק, מפתחים נאלצו להשקיע את רוב זמנם בפעילות הניהול הדרושה כדי לייעל את ביצועי מסד הנתונים.
היום, טכנולוגיה אוטונומית בונה על נקודות החוזק של המודל ההתייחסותי, מסד נתונים בענן טכנולוגיה, ו למידת מכונה לספק סוג חדש של מסד נתונים יחסי. מסד הנתונים לנהיגה עצמית (המכונה גם מסד הנתונים האוטונומי) שומר על העוצמה והיתרונות של המודל ההתייחסותי אך משתמש בבינה מלאכותית (AI), למידת מכונה ואוטומציה כדי לנטר ולשפר את ביצועי השאילתות ומשימות הניהול. לדוגמה, כדי לשפר את ביצועי השאילתות, מסד הנתונים לנהיגה עצמית יכול להעלות השערות ולבדוק אינדקסים כדי להפוך את השאילתות למהירות יותר, ולאחר מכן לדחוף את הטובות ביותר לייצור - הכל לבד. מסד הנתונים לנהיגה עצמית מבצע את השיפורים הללו ללא הרף, ללא צורך במעורבות אנושית.
אוטונומי הטכנולוגיה משחררת מפתחים מהמשימות הרגילות של ניהול מסד הנתונים. למשל, הם כבר לא צריכים לקבוע מראש דרישות תשתית. במקום זאת, עם מסד נתונים לנהיגה עצמית, הם יכולים להוסיף משאבי אחסון ומחשוב לפי הצורך כדי לתמוך בצמיחת מסד הנתונים. בכמה שלבים בלבד, מפתחים יכולים ליצור בקלות מסד נתונים יחסי אוטונומי, ולהאיץ את הזמן לפיתוח יישומים.