La primera versió estable del gràfic relacional DBMS EdgeDB

Hi ha disponible la primera versió estable del SGBD EdgeDB, que és un complement a PostgreSQL amb la implementació del model de dades de gràfics relacionals i el llenguatge de consulta EdgeQL, optimitzat per treballar amb dades jeràrquiques complexes. El codi està escrit en Python i Rust i es distribueix sota la llicència Apache 2.0. Les biblioteques de client estan preparades per a Python, Go, Rust i TypeScript/Javascript. Proporciona eines de línia d'ordres per a la gestió de SGBD i l'execució de consultes interactives (REPL).

En lloc d'un model de dades basat en taules, EdgeDB utilitza un sistema declaratiu basat en tipus d'objectes. En lloc de claus forasteres, l'enllaç per referència s'utilitza per definir la relació entre els tipus (un objecte es pot utilitzar com a propietat d'un altre objecte). tipus Persona { nom de propietat obligatori -> str; } type Movie { títol de propietat obligatori -> str; actors multi-enllaç -> Persona; }

Els índexs es poden utilitzar per accelerar el processament de consultes. També s'admeten funcions com ara l'escriptura de propietats forta, les restriccions del valor de la propietat, les propietats calculades i els procediments emmagatzemats. Les característiques de l'esquema d'emmagatzematge d'objectes EdgeDB, que recorda una mica a un ORM, inclouen la capacitat de barrejar esquemes, enllaçar propietats de diferents objectes i suport JSON integrat.

Es proporcionen eines integrades per emmagatzemar la migració de l'esquema: després de canviar l'esquema especificat en un fitxer esdl independent, només cal que executeu l'ordre "edgedb migration create" i el SGBD analitzarà les diferències en l'esquema i generarà de manera interactiva un script per migrar a l'esquema. nou esquema. L'historial de canvis d'esquema es fa un seguiment automàtic.

Per generar consultes, s'admeten tant el llenguatge de consulta GraphQL com el llenguatge propietari EdgeDB, que és una adaptació d'SQL per a dades jeràrquiques. En lloc de llistes, els resultats de la consulta tenen un format estructurat i, en lloc de subconsultes i JOIN, podeu especificar una consulta EdgeQL com a expressió dins d'una altra consulta. S'admeten transaccions i cicles. seleccioneu la pel·lícula { title, actors: { nom } } filter .title = "The Matrix" inseriu la pel·lícula { title := "The Matrix Resurrections", actors := ( seleccioneu el filtre de persona .name a { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } per al número en {0, 1, 2, 3} unió (seleccioneu { nombre, número + 0.5 });

Font: opennet.ru

Afegeix comentari