לחפור עמוק יותר במושגי NoSQL

מְחַבֵּר: Judy Howell
תאריך הבריאה: 1 יולי 2021
תאריך עדכון: 11 מאי 2024
Anonim
לחפור עמוק יותר במושגי NoSQL - טכנולוגיה
לחפור עמוק יותר במושגי NoSQL - טכנולוגיה

תוֹכֶן


להסיר:

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

אמנם אין מסד נתונים רגיל של NoSQL, אך הוא עולה במהירות כתחליף בר-קיימא למודל בסיסי הנתונים השולט בתעשייה. מושגי NoSQL מייצגים כמה מהחשיבה הבסיסית ביותר של מושגי מסד נתונים מאז שנייר E.F. Codd על מסדי נתונים יחסיים פרץ למקום בשנת 1970.

מאמר זה מתעמק מעט במושגי NoSQL המתקדמים יותר. בסיסי נתונים אלה, כולל CouchDB, MongoDB ו- SimpleDB, הופכים למערכות ניהול מסדי הנתונים לפי בחירתם עבור אתרים שצריכים להגיש נתונים רבים במהירות. (קבל מבוא ל- NoSQL ב- NoSQL 101.)

האם NoSQL עובר את מבחן החומצה?

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

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


ענף בסיסי הנתונים הגדיר ארבעה מדדים עיקריים המרכיבים בסיס נתונים אמין (הידוע ביחד בשם ראשי התיבות ACID):

  • אטומיות
  • עקביות
  • בידוד
  • עמידות

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

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

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

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

אתה לא יכול לשפר את כישורי התכנות שלך כאשר לאף אחד לא אכפת מאיכות התוכנה.

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


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

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

דגמי נתונים

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

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

לשותפות הרופפת של מסדי נתונים מבוססי NoSQL שהתרבו מאז סוף שנות ה -90 יש רק דבר אחד משותף: הם אינם משתמשים במודלים קשורים מסורתיים.

ישנם כמה סוגים שונים של דגמים מרכזיים שמנהלים שמתכננים בסיס נתונים של NoSQL יכולים לבחור מהם:

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

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

סריג מול שכפול

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

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

דנורמליזציה

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

פונקציות מצטברות

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

MapReduce

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

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