במאמר הזה מוסבר איך Spanner Graph תומך בשפת השאילתות הבינלאומית ISO למסדי נתונים של גרפים.
Spanner Graph מבוסס על שני תקני ISO:
- ISO/IEC 9075-16:2023 - Information technology — Database languages SQL Property Graph Queries (SQL/PGQ), מהדורה 1, 2023
- ISO/IEC 39075:2024 - Information technology — Database languages — GQL, Edition 1, 2024
בטבלאות הבאות מתואר הקשר ברמה גבוהה בין SQL/PGQ, GQL ובין האופן שבו Spanner Graph תומך בתקנים האלה.
| רגילה | SQL/PGQ | GQL | Spanner Graph | |
|---|---|---|---|---|
| שאילתה | יכולות של התאמת דפוסי גרפים | משתפת את הפונקציות העיקריות של Graph Pattern Matching Language (GPML) עם GQL. | משתף את הפונקציות הבסיסיות של GPML עם SQL/PGQ. | יש תמיכה בשני התקנים. מידע נוסף זמין במאמר בנושא תבניות GQL ב-Spanner Graph. |
| שאילתה | תכונות נוספות של שפת השאילתות (לדוגמה, LIMIT, ORDER, צבירה) |
מבוסס על SQL. | בדומה ל-SQL, אבל התכונות של שאילתת GQL הן משפטי שאילתת גרף שניתנים להרכבה לינארית. | יש תמיכה בשני התקנים. מידע נוסף זמין במאמרים בנושא הצהרות של שאילתות GQL ב-Spanner Graph ותחביר של שאילתות ב-GoogleSQL. |
| שאילתה | יכולת פעולה הדדית של גרפים וטבלאות | יש תמיכה. | לא נתמך. | יש תמיכה בשני התקנים. מידע נוסף זמין במאמר בנושא האופרטור GRAPH_TABLE. |
| סוגים | סוגי הנתונים, הפונקציות והביטויים ב-SQL/PGQ וב-GQL דומים. | סוגי הנתונים, הפונקציות והביטויים ב-SQL/PGQ וב-GQL דומים. | תומך ברוב סוגי הנתונים והביטויים ב-SQL/PGQ וב-GQL. מידע נוסף זמין במאמר בנושא סוגי נתונים ב-GoogleSQL. | |
| DML | SQL/PGQ יורש את DML מ-SQL. | יש תמיכה ב-DML מבוסס-גרף. | תמיכה ב-DML שמבוסס על טבלאות SQL. מידע נוסף זמין במאמר בנושא שפת טיפול בנתונים (DML) ב-GoogleSQL. | |
| סכימה | אפשר להשתמש ב-CREATE PROPERTY GRAPH מתוך טבלאות. |
תמיכה בשימוש ב-CREATE PROPERTY GRAPH עם סוגים פתוחים וסוגים סגורים. |
יש תמיכה בשיטת SQL/PGQ. מידע נוסף זמין בהגדרה של CREATE PROPERTY GRAPH. |
תמיכה ב-SQL/PGQ
| רגילה | מזהה התכונה של SQL/PGQ | Spanner Graph |
|---|---|---|
| שאילתה (יכולת פעולה הדדית של גרפים וטבלאות) | תכונה G900: GRAPH_TABLE |
יש תמיכה. מידע נוסף זמין במאמר בנושא האופרטור GRAPH_TABLE. |
| סכימה | תכונה G924: סעיף מפתח מפורש לטבלאות רכיבים. המשמעות היא הצהרה על התאמה לתכונה G920: גרפים של מאפייני SQL מבוססי DDL. | יש תמיכה. מידע נוסף זמין בדף החשבון של CREATE_PROPERTY_GRAPH. |
| סכימה | תכונה G925: סעיף מפורש של תווית ומאפיינים לטבלאות של רכיבים. המשמעות היא הצהרה על התאמה לתכונה G920: גרפים של מאפייני SQL מבוססי DDL. | יש תמיכה. מידע נוסף זמין בדף החשבון של CREATE_PROPERTY_GRAPH. |
| שאילתה (GPML) | תכונה G001: מצב התאמה של רכיבים שניתן לחזור עליהם. | יש תמיכה. מצב ההתאמה של רכיבים שניתן לחזור עליהם הוא ברירת המחדל הסמנטית. אין תמיכה בתחביר של סעיף מצב התאמה של רכיבים חוזרים מפורשים. |
| שאילתה (GPML) | תכונה G008: סעיף של תבנית גרף WHERE. המשמעות היא הצהרה על התאמה לתכונה G000: תבנית גרף. |
יש תמיכה. מידע נוסף זמין במאמר בנושא דפוסים בגרף. |
| שאילתה (GPML) | תכונה G034: שרשור נתיבים. | יש תמיכה. מידע נוסף זמין במאמר בנושא דפוסים בגרף. |
| שאילתה (GPML) | תכונה G040: דפוס Vertex. | יש תמיכה. מידע נוסף מופיע במאמר בנושא תבנית רכיבים. |
| שאילתה (GPML) | תכונה G042: דפוסים בסיסיים של קצוות מלאים. | יש תמיכה. מידע נוסף מופיע במאמר בנושא תבנית רכיבים. |
| שאילתה (GPML) | תכונה G070: ביטוי תוויות: איחוד תוויות. | יש תמיכה. מידע נוסף זמין במאמר בנושא ביטויים של תוויות. |
| שאילתה (GPML) | תכונה G073: ביטוי של תווית: שם של תווית ספציפית. | יש תמיכה. מידע נוסף זמין במאמר בנושא ביטויים של תוויות. |
| שאילתה (GPML) | תכונה G090: הפניה לנכס. | יש תמיכה. |
תמיכה ב-GQL
| רגילה | מזהה התכונה של GQL | Spanner Graph |
|---|---|---|
| סכימה | תכונה GG02: תרשים עם סוג תרשים סגור. תאימות לפחות לאחד מהתקנים GG20, GG21, GG22 או GG23:
|
יש תמיכה. אפשר לבחור תמיכה ב-GQL מתוך GG01: Graph with an open type או GG02. Spanner Graph לא תומך באותה הצהרת CREATE_GRAPH_TYPE בדיוק כמו GQL. עם זאת, ההצהרה CREATE_PROPERTY_GRAPH שנתמכת על ידי Spanner Graph קשורה קשר הדוק ל-GG02 (עם תמיכה דומה ב-GG20, GG21, GG22 ו-GG23). |
| מבנה לקסיקלי | "הצהרה על תאימות לגרסה ספציפית של תקן Unicode® ולגרסאות הסינכרוניות של התקן הטכני של Unicode מס' 10, נספח תקן Unicode מס' 15 ונספח תקן Unicode מס' 31. הגרסה שצוינה של תקן Unicode® לא יכולה להיות נמוכה מ-13.0.0". | ל-Spanner Graph GQL יש מבנה לקסיקלי זהה לזה של GoogleSQL. לעיון בערכי escape של Unicode, אפשר לעבור אל Escape sequences for string and bytes literals (רצפי escape עבור מחרוזות וליטרלים של בייטים). |
| סוגי נתונים | "A claim of conformance to the set of all value types that are supported as the types of property values. לכל הפחות, המארז צריך לכלול:
|
יש תמיכה. מידע נוסף זמין ברשימה המלאה של סוגי הנתונים שנתמכים על ידי Spanner Graph GQL. |
תכונות נוספות
התכונות שמפורטות בקטעים הקודמים הן התכונות המינימליות של התקנים. Spanner Graph תומך בתכונות נוספות בתקני ISO. מידע נוסף זמין במאמרים סקירה כללית על סכימת גרף ב-Spanner וסקירה כללית על GQL.