Η πρώτη σταθερή έκδοση του σχεσιακού γραφήματος DBMS EdgeDB

Είναι διαθέσιμη η πρώτη σταθερή έκδοση του EdgeDB DBMS, η οποία είναι ένα πρόσθετο στην PostgreSQL με την υλοποίηση του μοντέλου δεδομένων σχεσιακού γραφήματος και της γλώσσας ερωτημάτων EdgeQL, βελτιστοποιημένη για εργασία με πολύπλοκα ιεραρχικά δεδομένα. Ο κώδικας είναι γραμμένος σε Python και Rust και διανέμεται με την άδεια Apache 2.0. Οι βιβλιοθήκες πελατών προετοιμάζονται για Python, Go, Rust και TypeScript/Javascript. Παρέχει εργαλεία γραμμής εντολών για διαχείριση DBMS και διαδραστική εκτέλεση ερωτημάτων (REPL).

Αντί για ένα μοντέλο δεδομένων που βασίζεται σε πίνακα, το EdgeDB χρησιμοποιεί ένα δηλωτικό σύστημα που βασίζεται σε τύπους αντικειμένων. Αντί για ξένα κλειδιά, η σύνδεση με αναφορά χρησιμοποιείται για τον καθορισμό της σχέσης μεταξύ των τύπων (ένα αντικείμενο μπορεί να χρησιμοποιηθεί ως ιδιότητα άλλου αντικειμένου). πληκτρολογήστε Person { απαιτούμενο όνομα ιδιοκτησίας -> str; } type Movie { απαιτούμενος τίτλος ιδιοκτησίας -> str; ηθοποιοί πολλαπλών συνδέσμων -> Πρόσωπο; }

Τα ευρετήρια μπορούν να χρησιμοποιηθούν για την επιτάχυνση της επεξεργασίας ερωτημάτων. Υποστηρίζονται επίσης δυνατότητες όπως ισχυρή πληκτρολόγηση ιδιοτήτων, περιορισμοί αξίας ιδιοκτησίας, υπολογισμένες ιδιότητες και αποθηκευμένες διαδικασίες. Τα χαρακτηριστικά του σχήματος αποθήκευσης αντικειμένων EdgeDB, που θυμίζει κάπως ORM, περιλαμβάνουν τη δυνατότητα μίξης σχημάτων, ιδιοτήτων σύνδεσης από διαφορετικά αντικείμενα και ενσωματωμένη υποστήριξη JSON.

Παρέχονται ενσωματωμένα εργαλεία για την αποθήκευση της μετεγκατάστασης σχήματος - μετά την αλλαγή του σχήματος που καθορίζεται σε ένα ξεχωριστό αρχείο esdl, απλώς εκτελέστε την εντολή "edgedb migration create" και το DBMS θα αναλύσει τις διαφορές στο σχήμα και θα δημιουργήσει διαδραστικά ένα σενάριο για μετεγκατάσταση στο νέο σχήμα. Το ιστορικό των αλλαγών σχήματος παρακολουθείται αυτόματα.

Για τη δημιουργία ερωτημάτων, υποστηρίζονται τόσο η γλώσσα ερωτημάτων GraphQL όσο και η γλώσσα του EdgeDB, η οποία είναι προσαρμογή της SQL για ιεραρχικά δεδομένα. Αντί για λίστες, τα αποτελέσματα ερωτημάτων μορφοποιούνται με δομημένο τρόπο και αντί για δευτερεύοντα ερωτήματα και JOIN, μπορείτε να καθορίσετε ένα ερώτημα EdgeQL ως έκφραση σε ένα άλλο ερώτημα. Υποστηρίζονται συναλλαγές και κύκλοι. επιλέξτε Ταινία { τίτλος, ηθοποιοί: { όνομα } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", ηθοποιοί := ( επιλέξτε Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } για τον αριθμό στην ένωση {0, 1, 2, 3} ( επιλέξτε { αριθμός, αριθμός + 0.5 } );

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο