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, χρησιμοποιώντας καθολικές μεταβλητές και τοπικές καταστάσεις.
  • Προστέθηκε υποστήριξη για τύπους που ορίζουν εύρη τιμών (εύρος).
  • Προστέθηκε υποστήριξη για ενεργοποίηση υποδοχής, η οποία επιτρέπει τη μη διατήρηση του προγράμματος οδήγησης διακομιστή στη μνήμη και την εκκίνηση του μόνο όταν προσπαθείτε να δημιουργήσετε μια σύνδεση (χρήσιμο για εξοικονόμηση πόρων σε συστήματα ανάπτυξης).

Τελικά για όσους ενδιαφέρονται να μάθουν περισσότερα γι 'αυτό, θα πρέπει να γνωρίζουν ότι ο κώδικας είναι γραμμένος σε Python και Rust και κυκλοφορεί με την άδεια Apache 2.0.

Μπορείτε να μάθετε περισσότερα για αυτό στο παρακάτω σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.