EdgeDB, DBMS של נתונים יחסיים גרפים

לאחרונה הוכרזה שחרור ה-DBMS «EdgeDB 2.0», המיישמת את מודל הנתונים ההתייחסותיים של הגרף ההתייחסותי ושפת השאילתות EdgeQL, מותאמת לעבודה עם נתונים היררכיים מורכבים.

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

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

על EdgeDB

הפרויקט מפותח כתוסף עבור PostgreSQL. ספריות הלקוח מוכנות לשפות Python, Go, Rust ו-TypeScript/Javascript.

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

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

כלים מובנים מסופקים למעבר סכימת האחסון: לאחר שינוי הסכימה שצוינה בקובץ esdl נפרד, פשוט הפעל את הפקודה "edgedb migration create" וה-DBMS ינתח את ההבדלים בסכימה וייצור סקריפט באופן אינטראקטיבי. כדי לעבור לסכימה החדשה. היסטוריית שינויי הסכימה מתבצעת במעקב אוטומטי.

עבור שאילתות, הן שפת השאילתה GraphQL והן כשפה משלה EdgeDB, שהיא התאמה של SQL לנתונים היררכיים. במקום רשימות, לתוצאות השאילתה יש פורמט מובנה, ובמקום שאילתות משנה ו-JOIN, ניתן לציין שאילתת EdgeQL כביטוי בתוך שאילתה אחרת. עסקאות ומחזורים נתמכים.

תכונות חדשות עיקריות של EdgeDB 2.0

בגרסה החדשה שהוצגה, התווסף ממשק אינטרנט משולב לניהול מסדי נתונים מאפשר להציג ולערוך נתונים, להריץ שאילתות EdgeQL ולנתח את ערכת האחסון שבה נעשה שימוש. הממשק מתחיל עם הפקודה "edgedb ui", ולאחר מכן הוא זמין על ידי גישה ל-localhost.

ההבעה "GROUP" הוטמע כדי לאפשר חלוקת נתונים וצבירה וקיבוץ נתונים באמצעות ביטויי EdgeQL שרירותיים, בדומה לקיבוץ בפעולת SELECT.

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

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

משאר השינויים הבולטים:

  • ספריית הלקוחות הרשמית לשפת Rust הוכנה.
  • הפרוטוקול הבינארי EdgeDB יוצב, ובו התאפשר לעבד מספר הפעלות שונות בו-זמנית בתוך אותו חיבור רשת, העברה דרך HTTP, באמצעות משתנים גלובליים ומצבים מקומיים.
  • נוספה תמיכה בסוגים המגדירים טווחי ערכים (טווח).
  • נוספה תמיכה בהפעלת socket, המאפשרת לא לשמור את מנהל ההתקן של השרת בזיכרון ולהפעיל אותו רק בעת ניסיון ליצור חיבור (שימושי לחיסכון במשאבים במערכות פיתוח).

בסופו של דבר למעוניינים לדעת יותר על כך, עליהם לדעת שהקוד כתוב ב-Python ו-Rust ומשוחרר תחת רישיון Apache 2.0.

תוכל לברר על כך עוד בכתובת הקישור הבא.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם.

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.