תבניות מידול למסדי מסמכים, מפתח-ערך, עמודות רחבות, גרפים ווקטורים — מתי להטמיע, להפנות ב-reference, לבצע דה-נורמליזציה או לאגד לדליים.
מסדי NoSQL מחליפים סכימות קבועות ואיחודים (joins) בסקיילות אופקית. כל משפחה ממדלת קשרים בדרכה שלה, ולכן תבנית הגישה — לא הצורה הנורמלית — קובעת את המבנה.
טבלת עיון · 28 ערכים
מידול נתונים ב-NoSQLExplained
28 of 28 rows
Document
תת-מסמכים מקוננים חיים בתוך מסמך אב אחד במקום בטבלאות נפרדות.
קשרי אחד-למעטים שנקראים יחד. הזמנה עם פריטיה. משתמש עם שלוש כתובות.
שומרים מזהה זר, לא את הנתונים. מבצעים אותו בקריאה שנייה או ב-$lookup.
תת-יישויות גדולות, משותפות או מתעדכנות באופן עצמאי. קישורי רבים-לרבים בין אוספים.
האב מטמיע מערך קצר של ילדים; כל הסט נכנס ונטען כמסמך אחד.
קבוצה קטנה של מספרי טלפון או העדפות בפרופיל. קריאה אחת מחזירה אב וילדים.
הילדים חיים באוסף משלהם; כל ילד נושא את מזהה האב, או שהאב מחזיק מערך מזהים חסום.
סטים גדולים מדי או עצמאיים מדי להטמעה. שליפת ילדים לפי מזהה אב.
הילד מאחסן את מזהה האב; האב לעולם אינו מונה את ילדיו כי הסט בלתי חסום.
אירועים, לוגים או הצבעות הקשורים למארח או למשתמש. סינון ילדים לפי מזהה אב ועימוד.
מסמכים של סוגי יישויות שונים חולקים אוסף אחד, ומובחנים זה מזה בשדה type.
תגובות או התראות המחוברות להורים מסוגים רבים, כולן נשלפות בדרך אחת.
כמה יישויות קיצוניות מופרדות מהצורה המשותפת כדי שגודלן או התעבורה שלהן לא יעוותו את השאר.
חשבונות ידוענים שרשימות העוקבים או המונים שלהם היו עולים על גודל המסמך הרגיל.
כל גרסה היא מסמך חדש עם אותו מזהה ומספר גרסה עולה; השאילתה בוחרת את האחרונה.
שובלי ביקורת והיסטוריית עריכה שבהן גרסאות ישנות נשארות ניתנות לשליפה.
ערכים נגזרים מחושבים בזמן הכתיבה ומאוחסנים לצד הנתונים שהם מסכמים.
סכומים, דירוגים ו-top-N שאחרת היו מריצים אגרגציה בכל קריאה.
Key-value ו-wide-column
מונח תכנון ב-DynamoDB: כיווץ סוגי יישויות רבים לטבלה אחת עם מפתחות partition ו-sort עמוסים.
שליפת פריטים הטרוגניים בשאילתה אחת בלי join.
תכונת מפתח אחת משרתת סוגי יישויות רבים, מסומנת בקידומות כמו USER# או ORDER#.
תכנוני single-table. קיבוץ פריטים קשורים תחת partition אחד ושליפתם בשאילתה אחת.
מפתח partition מפזר שורות בין צמתים; מפתח sort מסדר כל partition.