Relatsioonilise-graafilise andmebaasi EdgeDB 5.0 vÀljalaskmine

On saanud vÀljalaske relatsioonilis-graafilise andmebaasi EdgeDB 5.0, mis rakendab EdgeQL pÀringukeelt ja on optimeeritud keerukate hierarhiliste andmete töötlemiseks. Projekt areneb PostgreSQL peal, mille kood on kirjutatud Pythonis ja Rustis (parser ja jÔudlus-spetsiifilised osad) ning levitatakse Apache 2.0 litsentsi alusel. Kliendi raamatukogud on valmis keeles Python, Go, Rust, .NET, Elixir ja TypeScript/Javascript. Pakutakse kÀsurea tööriistu andmebaasi haldamiseks ja interaktiivsete pÀringute teostamiseks (REPL).

EdgeDB-s kasutatakse deklaratiivset sĂŒsteemi, mis pĂ”hineb objektitĂŒĂŒpidel, mitte tabelipĂ”hist andmemudelit. Suhete mÀÀramiseks tĂŒĂŒpide vahel kasutatakse viidete sidumist (ĂŒks objekt vĂ”ib olla teise objekti omadus) selle asemel, et kasutada vĂ€liseid vĂ”tmeid.

type Person { required name: str; } type Movie { required title: str; multi actors: Person; }

Toetatakse selliseid funktsioone nagu range tĂŒĂŒbistamine, vÀÀrtuste piirangud, arvutatavad omadused ja salvestatud protseduurid. EdgeDB objekti salvestusskeemi eripĂ€ra, mis sarnaneb ORM-iga, muudab skeemide segamise, omaduste sidumise erinevatest objektidest ja integreeritud JSON-i toe vĂ”imalikkuse. PĂ€ringute töötlemise kiirus vĂ”ib suurendada indeksite rakendamisega.

Pakutakse sisseehitatud tööriistu salvestamise skeemi migreerimiseks — pĂ€rast skeemi muutmist, mis on mÀÀratud eraldi esdl-failis, piisab kĂ€su „edgedb migration create” tĂ€itmisest ning DBMS analĂŒĂŒsib skeemi erinevusi ja genereerib interaktiivses reĆŸiimis skripti uue skeemi juurde ĂŒleminekuks. Skeemi muudatuste ajalugu jĂ€lgitakse automaatselt.

PĂ€ringute vormimiseks toetatakse GraphQL pĂ€ringukeelt ja EdgeDB enda keelt, mis on SQL-i kohandamine hierarhiliste andmete jaoks. Tulemustena esitatakse andmed struktureeritud kujul, mitte loenditena, ning alampĂ€ringute ja JOIN töötlemise asemel on vĂ”imalik mÀÀrata ĂŒks EdgeQL pĂ€ring teise pĂ€ringu vĂ€ljendina. Toetatakse tehinguid ja silmasid.

valige Film { pealkiri, nĂ€itlejad: { nimi } } filtrige .pealkiri = «The Matrix» sisestage Film { pealkiri := «The Matrix Resurrections», nĂ€itlejad := ( valige Isik filtrige .nimi sees { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }

Uues versioonis:

  • On lisatud toetust harudele ('branching'), vĂ”imaldades andmete ja skeemidega töötamisel kasutada versioonihalduse sĂŒsteemides rakendatud harude kontseptsiooni. Uues vĂ€ljaandes on termini 'andmebaas' asemel pakutud mĂ”isted 'haru' (branch), samas kui kĂ€sud 'create database' ja 'drop database' on kuulutatud vananenuks ning nende asemel on soovitatav kasutada uusi kĂ€ske 'create empty branch' ja 'drop branch'. Lisaks tĂŒhjadele harudele saab kĂ€skude 'create schema branch' ja 'create data branch' abil luua olemasolevatest harudest ja andmebaasidest eraldusi, kopeerides nende salvestusstruktuuri ja andmed.

    Praktilisest vaatepunktist vĂ”imaldab harude tugi sĂŒnkroonida andmeid nende töötlemiseks kasutatava koodiga, sĂ€ilitades samas ĂŒhilduvuse vanema koodiga. NĂ€iteks pĂ€rast koodi uuendamist saab sellele siduda uue andmeharu, mis arvestab koodis tehtud muudatustega salvestamise skeemis. Sellist funktsionaalsust on mugav kasutada tarkvaraversioonide arendamise ja testimise lihtsustamiseks, mille valmisoleku korral on piisav lĂŒlituda juba testitud harule.

  • Laienemises pgvector, mis on mĂ”eldud vektorite efektiivseks salvestamiseks ja pĂ€ringute tegemiseks, on lisatud uus indeksitĂŒĂŒp HNSW (Hierarchical Navigable Small Worlds), mis on, sarnaselt indeksile IVFFlat, saadaval kolmes variandis: ext::pgvector::hnsw_euclidean, ext::pgvector::hnsw_ip ja ext::pgvector::hnsw_cosine. Lisaks on pgvectoris laienenud vĂ”imalused indeksite tĂ€iendavaks kohandamiseks objekti ext::pgvector::Config kaudu.
  • Lisandunud on tĂ€iendavad autentimisvĂ”imalused. Auth-laienemises on rakendatud paroolivaba autentimise skeemide WebAuthn (Passkeys) ja „magic links“ (e-posti pĂ”hjal) toimetamine. Lisatud on ka platvormide Slack ja Discord kasutamine OAuth-teenuse pakkujatena.
  • Suurendatud on jĂ”udluse optimeerimist. PĂ€ringute kompileerimise tulemuste vahemĂ€lu rakenduses on tagatud oleku sĂ€ilitamine taaskĂ€ivituste vahel ja lisatud automaatne uuesti kompileerimine migratsiooni jĂ€rel. Suurenenud on töökiirus suurte salvestusskeemidega.
  • Keeles EdgeQL on 'for' vĂ€ljendis lubatud mitte kasutada vĂ”tmesĂ”na 'union' pĂ”hikĂŒsimustes, kus kasutatakse vĂ€ljendeid insert, update vĂ”i delete.
  • Lisatud kĂ€sk vacuum() andmebaasi sisu puhastamiseks, optimeerimiseks ja pakkimiseks.
  • Lubatud on andmete konverteerimine tĂŒĂŒbilt bytes tĂŒĂŒpideks int16, int32, int64 ja uuid, kasutades funktsioone to_bytes(), to_uuid() ja to_int*().
  • Lisatud on vĂ”imalus sulgeda kĂ”ik andmebaasi ĂŒhendused pĂ€rast operatsiooni 'drop database' tĂ€itmist.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster