נטישת חומצה לטובת BASE בהנדסת מסד נתונים

מסדי נתונים יחסיים נועדו עם אמינות ועקביות הליבה שלהם. המהנדסים שפיתחו אותם התמקדו במודל טרנזקציונלי המבטיח כי ארבעת העקרונות של מודל ה- ACID יישמרו תמיד. עם זאת, הופעתו של מודל מסד נתונים חדש לא מובנה הופך ACID על ראשו. מודל מסד הנתונים NoSQL דוחה את המודל היחסי מובנה לטובת גישה גמישה מפתח / ערך חנות. גישה בלתי מובנית זו לנתונים דורשת חלופה למודל ACID: מודל BASE.

יסוד טנטס של חומצה דגם

ישנם ארבעה עקרונות בסיסיים של מודל ACID:

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

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

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

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

עקרונות הליבה של הבסיס

מאגרי NoSQL, לעומת זאת, מאמצים מצבים שבהם מודל ACID הוא overkill או היה, למעשה, לעכב את הפעולה של מסד הנתונים. במקום זאת, NoSQL מסתמך על מודל רך יותר ידוע, כראוי, כמודל BASE. מודל זה תואם את הגמישות המוצעת על ידי NoSQL וגישות דומות לניהול ואוצרות של נתונים לא מובנים. הבסיס מורכב משלושה עקרונות:

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

מדינה רכה . בסיס הנתונים BASE לזנוח את הדרישות עקביות של מודל ACID די הרבה. אחד המושגים הבסיסיים מאחורי BASE הוא כי עקביות הנתונים היא בעיה של מפתח לא צריך להיות מטופלים על ידי מסד הנתונים.

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

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