היסודות של מסדי נתונים NoSQL - ומדוע אנו זקוקים להם

מדריך למתחילים לעולם ה- NoSQL

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

אפשרות אחת היא RDBMS הוא כמו גיליון Excel - אתה מסווג נתונים בצורת טבלאות. אתה יכול ליצור קשרים בין הטבלאות.

שאילתה שאלות מסד הנתונים, אשר נותן לך תשובה רלוונטית בתמורה. שפת שאילתות זו היא SQL או שפת שאילתות מובנית.

לדוגמה,

select * from Employee_Data;

בוחר את כל נתוני העובד מהטבלה Employee_Data.

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

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

זה המקום שבו SQL לא יכול היה לעבוד .

החסרונות של RDBMS

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

אני אראה לך דוגמאות כדי שתהיה לך הבנה ברורה.

1. RDBMS לא יכול להתמודד עם 'מגוון נתונים'.

כמות הנתונים הבלתי מובנים ממשיכה לגדול מדי שנה והניהול קשה. RDBMS אינו יכול לאלץ את כל סוגי הנתונים תחת סכימה מאוחדת של טבלאות.

ממגורות נתונים מהווים גם בעיה עבור מפתחים.

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

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

עליית הנתונים משנת 2013 עד 2020 ניכרת בתמונה למטה.

כ- 44 בתים של זטה ייווצרו בשנת 2020.

טיפול בנתונים כה מגוונים שאינם קשורים זה לזה יכול להיות הרבה יותר קשה ב- RDBMS.

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

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

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

שינוי הסכימה יהיה כמו לחסל את הקיים ולתכנן סכמה חדשה.

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

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

3. RDBMS עוקבים אחר מאפייני ה- ACID של מסד הנתונים.

מאפייני ה- ACID של מסד נתונים הם אטומיות, עקביות, בידוד ועמידות. ‌

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

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

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

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

מאפייני ה- ACID אינם גמישים.

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

משפט CAP

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

עקביות: כמו ה- C בחומצה.

זמינות : מקורות צריכים להיות תמיד זמינים. צריכה להיות תגובה שאינה שגיאה.

סובלנות למחיצה : אין נקודה אחת (או צומת) של כשל.

קשה להשיג את כל שלושת התנאים. חייבים להתפשר בין השלושה.

בסיס להצלה!

‌NoSQL מסתמך על מודל רך יותר המכונה מודל BASE. BASE ( B asically A vailable, S oft state, E עקביות אווראלית).

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

מצב רך : מצב המערכת עשוי להשתנות עם הזמן.

עקביות בסופו של דבר: המערכת תהיה בסופו של דבר עקבית ברגע שהיא תפסיק לקבל קלט.

מאגרי מידע NoSQL מוותרים על דרישות A, C ו / או D, ובתמורה הם משפרים את המדרגיות.

NoSQL

זה היה כאשר NoSQL נחלץ להצלה. ‌ זהו מאגרי מידע " לא רק SQL" או "לא-יחסיים".

מאפייני NoSQL:

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

סוגי מאגרי מידע NoSQL

מאגרי מידע NoSQL מתחלקים לארבע קטגוריות עיקריות:

חנויות ערכי מפתח - ריאק, וולדמורט ורדיס

חנויות עמוד רחבות - קסנדרה ו- HBase.

מאגרי מסמכים - MongoDB

מאגרי גרפים - Neo4J ו- HyperGraphDB.

המילים בצד ימין הן דוגמאות לסוגי סוגי מסדי הנתונים NoSQL.

1. חנויות ערך מרכזיות

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

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

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

יישומים : שימושי לאחסון הערות ומידע על מושב. ‌Pinterest משתמש ב- Redis כדי לאחסן רשימות של משתמשים, עוקבים, לא עוקבים, לוחות.

2. חנויות עמודים רחבות

במסד נתונים של חנויות עמודות, העמודות בכל שורה כלולות בשורה זו.

כל משפחת עמודות היא מיכל של שורות בטבלת RDBMS. המפתח מזהה בשורה מורכבת עמודות מרובות.

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

איך מאגר נתונים עמודיים מאוחסן?

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

3. מאגרי מסמכים

Stores חנויות מסמכים משתמשות במסמכי JSON, XML או BSON (קידוד בינארי של JSON) כדי לאחסן נתונים.

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

מסמך יחיד אמור לאחסן רשומות ונתוניו.

זה לא תומך ביחסים או מצטרף.

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

יישומים: SEGAמשתמש ב- MongoDB לטיפול ב -11 מיליון חשבונות בתוך המשחק שנבנו על MongoDB.

4. מאגרי גרפים

Odes צמתים וקשרים הם המרכיבים החיוניים של מאגרי גרפים. צומת מייצג ישות. יחסים מייצגים איך שני צומת מקושרים.

‌ ב- RDBMS, הוספת קשר נוסף גורמת להרבה שינויים בסכימה.

מאגר גרפים דורש אחסון נתונים רק פעם אחת (צמתים). סוגי היחסים השונים (קצוות) מוגדרים לנתונים המאוחסנים.

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

חציית מערכות יחסים מתמשכות מהירה יותר.

קשה לשנות קשר בין שני צמתים. זה יביא לשינויים רגרסיביים במסד הנתונים.

דוגמה : תמונה זו היא כיצד MySQL עובד במקום בו עליו לבצע פעולות רבות בכדי למצוא תוצאה נכונה עבור אליס.

מסד נתונים גרף , אשר קובע מראש יחסים.

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

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

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