Utgivning av den relationsgrafiska DBMS EdgeDB 2.0

EdgeDB 2.0 har slÀppts, med en relations-grafdatabasmodell och EdgeQL-frÄgesprÄk, optimerade för komplexa hierarkiska data. Koden Àr skriven i Python och Rust (parser och prestandakritiska delar) och distribueras under Apache 2.0-licensen. Projektet utvecklas som en överbyggnad pÄ PostgreSQL. Klientbibliotek finns för Python, Go, Rust och TypeScript/Javascript. Ett kommandoradsverktyg erbjuds för att hantera databasen och för interaktiv körning av frÄgor (REPL).

IstÀllet för en tabellbaserad datamodell anvÀnder EdgeDB ett deklarativt system baserat pÄ objekttyper. IstÀllet för primÀrnycklar (foreign key) för att definiera relationen mellan typer, anvÀnds lÀnkbindningar (en objekt kan anvÀndas som en egenskap av ett annat objekt).

type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

För att pÄskynda bearbetningen av frÄgor kan index anvÀndas. Funktioner som strikt typning av egenskaper, vÀrdebegrÀnsningar, berÀknade egenskaper och lagrade procedurer stöds ocksÄ. En speciell egenskap hos EdgeDB:s objektlagringsschema, som liknar ORM, Àr möjligheten att blanda scheman, koppla egenskaper frÄn olika objekt och integrerat stöd för JSON.

Inbyggda verktyg för schema-migrering tillhandahĂ„lls — efter att schemat har Ă€ndrats i en separat esdl-fil, rĂ€cker det med att köra kommandot "edgedb migration create", sĂ„ analyserar databasen skillnaderna i schemat och genererar interaktivt ett script för att migrera till det nya schemat. Historiken för schemaĂ€ndringar spĂ„ras automatiskt.

För att skapa frÄgor stöds bÄde GraphQL-frÄgesprÄk och det egna EdgeDB-sprÄket, som Àr en anpassning av SQL för hierarkiska data. IstÀllet för listor presenteras frÄgeresultaten i en strukturerad form, och istÀllet för underfrÄgor och JOIN-operationer ges möjligheten att ange en EdgeQL-frÄga som ett uttryck inom en annan frÄga. Transaktioner och loopar stöds.

select Movie { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", actors := ( select Person filter .name in { 'Keanu Reeves', 'Carrie-Anne Moss', 'Laurence Fishburne' } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );

I den nya versionen:

  • En inbyggd webgrĂ€nssnitt för databashantering har lagts till, vilket gör det möjligt att visa och redigera data, köra EdgeQL-frĂ„gor och analysera den tillĂ€mpade lagringsschemat. GrĂ€nssnittet startas med kommandot "edgedb ui", efter vilket det Ă€r tillgĂ€ngligt via localhost.
    Utgivning av den relationsgrafiska DBMS EdgeDB 2.0
  • Uttrycket "GROUP" har implementerats, vilket möjliggör segmentering och aggregering av data och gruppering av data efter valfria EdgeQL-uttryck, liknande gruppering i SELECT-operationen.
  • Möjlighet att hantera Ă„tkomst pĂ„ objektiv nivĂ„. Åtkomstregler definieras pĂ„ lagringsschemanivĂ„ och gör det möjligt att begrĂ€nsa anvĂ€ndningen av en viss uppsĂ€ttning objekt i urval, insĂ€ttnings-, borttagnings- och uppdateringsoperationer. Till exempel kan man lĂ€gga till en regel som tillĂ„ter uppdatering av en publicering endast av författaren.
  • Möjlighet att anvĂ€nda globala variabler i lagringsschemat har lagts till. En ny global variabel, current_user, har föreslagits för att koppla till anvĂ€ndaren.
  • Stöd för typer som definierar vĂ€rdeintervall (range) har lagts till.
  • En officiell klientbibliotek för sprĂ„ket Rust har förberetts.
  • Det binĂ€ra protokollet EdgeDB har stabiliserats, vilket gör det möjligt att hantera flera olika sessioner inom en enda nĂ€tverksanslutning, vidarebefordran via HTTP, anvĂ€ndning av globala variabler och lokala tillstĂ„nd.
  • Stöd för aktivering via socket har lagts till, vilket gör att man inte behöver hĂ„lla serverhanteraren i minnet och bara startar den vid försök att etablera en anslutning (nyttigt för resursbesparing pĂ„ utvecklarens system).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster