
_id, ו-MongoDB יוצר אותו אוטומטית. הוא לא מספור רץ, אלא קוד ייחודי שנבנה, בין השאר, מהשעה והתאריך המדויקים של יצירת הרשומה, והמסד מיועד ל-Big Data. אפשר להגדיר קוד בשם אחר.הטקסט המלא של הדקות הראשונות בהרצאה «מסד נתונים NoSQL MongoDB» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו בקורס Entity Framework מגיעים לנושא מאוד מעניין, וזה עבודה עם מסד נתונים מסוג NoSQL. מה זה בעצם NoSQL דאטאבייס? דבר ראשון, זה דאטאבייס רגיל.
זאת אומרת, אם אנחנו עובדים במערכת ווביט, יש לנו לקוח, הוא גולש לשרת, בשרת יש דאטאבייס. אנחנו יכולים שהדאטאבייס יהיה רלציוני, כמו שעבדנו עד עכשיו, לדוגמה SQL Server, ואנחנו יכולים שהדאטאבייס יהיה מסוג אחר, NoSQL, זה מוצר אחר לגמרי.
מה פירוש NoSQL? NoSQL מתאר Not Only SQL. מה זה אומר? זה אומר שהדאטאבייס יכול לשמור דברים מעבר לרק טבלאות וכישורים בין הטבלאות, ומעבר לשפת SQL. בפועל אין שם טבלאות ושפת SQL לא עובדת על דאטאבייס כזה, לכן אפשר להתייחס לזה גם כ-No SQL, כלומר לא שפת SQL. המידע בדאטאבייס הזה שמור בפורמטים אחרים לגמרי מאשר טבלאות וכישורים, תכף נראה דוגמאות לזה.
הפרפורמנס של דאטאבייסים כאלה הוא ברוב הרבה יותר גבוה ממסד נתונים רלציוני שמכיל טבלאות. אין לנו שם שפת SQL, אתה צריך לפרש אותה, לקמפל אותה, לבדוק האם המידע תקין מבחינת כישורים.
המידע פועל הרבה יותר מהר, המסדים האלה פועלים הרבה יותר מהר ברוב המקרים. איזה סוגי מידע יכולים להיות במסד נתונים של NoSQL?
דוקיומנט, לדוגמה, קבצי ג'ייסון. ג'ייסון נחשב דוקיומנט. יש לנו לדוגמה אובייקט שבתוכו יכול לשבת עוד אובייקט, שבתוכו יכול לשבת עוד אובייקט ובתוכו מערך וכדומה.
זה בעצם הקונספט של דוקיומנט. MongoDB לדוגמה, הוא מסד נתונים ידוע, הוא עובד על ידי דוקיומנטס. יכול להיות לנו גרף, גרף זה בעצם אובייקט שמצביע על אובייקט אחר, שיכולים להצביע אחד על השני. לדוגמה, אנחנו רוצים לשמור מידע לגבי צמתים וכבישים ביניהם, זה קלאסה לגבי גרפים.
יכול להיות לנו מסד נתונים שמחזיק Key Value Pairs, לדוגמה, קוד מוצר ומוצר, קוד מוצר ומוצר, זה סוג אחר של מידע שיכול להיות לי במוצר אחר של NoSQL, ויש לנו משהו שנקרא Wide Column, זה אולי נראה כמו טבלה, אבל זה לא באמת טבלה, זה לא מידע ממש טבלאי, כי הצבעים השונים מתארים שכל עמודה כאן
יכולה להחזיק מידע שונה. זאת אומרת, שזה לא שורות, שורות, שורות, כמו בטבלה רגילה שמכילות את אותם הנתונים בדיוק, יכול להיות פה מידע שונה בכל שורה לפי העמודות, או כמות גדולה יותר של נתונים בכל תא, גם יכול להיות.
זה בעצם נקרא Wide Column. שוב, שפת SQL לא באמת עובדת על דבר כזה. איזה מוצרים ידועים קיימים שהם מסדי נתונים NoSQL? אז כמובן אחד הנפוצים ביותר, וזה שאנחנו נעבוד איתו, נקרא MongoDB, מאוד מהיר, מאוד פופולרי.
יש לנו את קסנדרה, זה מסד נתונים שפייסבוק הוציאה לעולם באזור 2010, גם הוא NoSQL. יש לנו את Elasticsearch, הוא טוב בחיפושים, הוא יודע לבצע חיפושים נרחבים.
יש לנו Redis, Coachbase, Firestore של Firebase של גוגל ועוד הרבה אחרים. איזה שפת שאילתות עובדת על דאטאבייס כזה אם שפת SQL לא עובדת עליו?
וכל מסד נתונים כזה קיימת מעין שפה ייחודית משלו, משהו שהוא מעין dedicated כזה לדאטאבייס, היא בעצם מאפשרת לתשאל, להוסיף מידע, למחוק מידע, לעדכן מידע, לבחור מידע.
כל דאטאבייס יש לו את הסוג של קבוצת פקודות