Relatsioonilis-andmebaasiga grafita EdgeDB 5.0 vÀljaanne

On saadaval EdgeDB 5.0 andmebaasi uus versioon, mis rakendab suhete ja graafide mudelit ning EdgeQL pÀringukeelt, mis on optimeeritud keeruliste hierarhiliste andmete haldamiseks. Projekt areneb PostgreSQL-i peal, mille kood on kirjutatud keeltes Python ja Rust (parser ja jÔudlusele kriitilised osad), ning levitatakse Apache 2.0 litsentsi alusel. Klienditeegid on ette valmistatud keelte jaoks Python, Go, Rust, .NET, Elixir ja TypeScript/Javascript. Pakutakse kÀsurea tööriistu andmebaasi haldamiseks ja interaktiivseks pÀringute tÀitmiseks (REPL).

EdgeDB-s rakendatakse andmemudelit, mis pĂ”hineb deklaratiivsel objekttĂŒĂŒpidel, mitte tabelite andmemudelit. TĂŒĂŒpidevaheliste suhete mÀÀratlemiseks kasutatakse viidatud sidumisi (ĂŒks objekt vĂ”ib olla teise objekti omadus) asemel vĂ€liseid vĂ”tmeid (foreign key).

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

Toetatakse selliseid vĂ”imalusi nagu rangete tĂŒĂŒpkontrollide mÀÀramine, omaduste vÀÀrtuste piirangud, arvutatavad omadused ja salvestatud protseduurid. EdgeDB objektiandmeskeemi ĂŒks eripĂ€ra, mis meenutab ORM-i, on omaduste segamine erinevatest objektidest ja integreeritud JSON-i tugi. KĂŒsimuste töötlemise kiirus vĂ”ib olla suurendatud indeksite abil.

Sisseehitatud tööriistad andmebaasiskeemi migratsiooniks — pĂ€rast esdl-failis mÀÀratud skeemi muutmist piisab, kui kĂ€ivitada kĂ€sk "edgedb migration create" ning andmebaas analĂŒĂŒsib skeemi erinevusi ja genereerib interaktiivselt skripti uuele skeemile ĂŒlemiseks. Skeemi muutuste ajalugu jĂ€lgitakse automaatselt.

PĂ€ringute koostamiseks toetatakse GraphQL pĂ€ringukeelt ja oma EdgeDB keelt, mis on SQL-i kohandamine hierarhiliste andmete jaoks. Tulemused esitatakse struktureeritud kujul, mitte loenditena, ja alampĂ€ringute ja JOIN operatsioonide asemel on vĂ”imalik mÀÀrata ĂŒks EdgeQL pĂ€ring teise pĂ€ringu vĂ€ljendina. Toetatakse tehinguid ja tsĂŒkleid.

valige Film { pealkiri, nÀitlejad: { nimi } } filtri .pealkiri = «The Matrix» lisage Film { pealkiri := «The Matrix Resurrections», nÀitlejad := ( valige Inimene filtri .nimi kuulub { 'Keanu Reeves', 'Carrie-Anne Moss', 'Laurence Fishburne' } ) }

Uues versioonis:

  • On lisatud harude toetamine, mis vĂ”imaldab andmete ja skeemide haldamisel kasutada harude mĂ”istet, nagu seda rakendatakse versioonihaldussĂŒsteemides. Uues vĂ€ljaandes on traditsioonilise "andmebaasi" asemel kasutusele vĂ”etud mĂ”isted "haru" (branch), ning kĂ€sud "create database" ja "drop database" on dekaureeritud ning on soovitatav kasutada uusi kĂ€ske "create empty branch" ja "drop branch". Lisaks tĂŒhjadele harudele on kĂ€sud "create schema branch" ja "create data branch" abil vĂ”imalik luua haru olemasolevatest harudest ja andmebaasidest, kopeerides neist skeemi ja andmed.

    Praktiliselt tĂ€hendab harude toetamist, et andmeid saab sĂŒnkroniseerida töötlemiseks kasutatava koodiga, sĂ€ilitades samal ajal ĂŒhilduvuse vana koodiga. NĂ€iteks pĂ€rast koodi uuendamist on vĂ”imalik siduda uue andmeharu, mis arvestab muudetud skeemi. Seda funktsionaalsust on mugav kasutada uute tarkvaraversioonide arendamise ja testimise lihtsustamiseks; valmisoleku korral piisab lihtsalt lĂŒlitumisest juba testitud harule.

  • pgvector laienduses, mida kasutatakse vektorite tĂ”husaks salvestamiseks ja pĂ€rimiseks, on lisatud uus HNSW (Hierarchical Navigable Small Worlds) indeksite tĂŒĂŒp, mis, nagu IVFFlat indeks, on saadaval kolmes variandis: ext::pgvector::hnsw_euclidean, ext::pgvector::hnsw_ip ja ext::pgvector::hnsw_cosine. Lisaks on pgvectoris laiendatud indeksite peenhÀÀlestamise vĂ”imalusi objekti ext::pgvector::Config kaudu.
  • On lisatud tĂ€iendavad autentimismehhanismid. auth laienduses on rakendatud paroolita autentimise skeemide WebAuthn (Passkeys) ja "magic links" (e-posti alusel) tugi. On lisatud ka platvormide Slack ja Discord tugi OAuth-i pakkujatena.
  • On tehtud jĂ”udluse optimeerimisi. KĂŒsimuste kompileerimise tulemuste vahemĂ€lu rakenduses on tagatud oleku sĂ€ilitamine taaskĂ€ivituste vahel ja lisatud automaatne uuesti kompileerimine pĂ€rast migratsiooni. Suurendatud on töötlemiskiirus suurte andmeskeemide puhul.
  • EdgeQL pĂ€ringukeeles on „for” vĂ€ljendis lubatud mitte mÀÀrata vĂ”tmesĂ”na „union” pĂ”hikĂŒsimustes, kus on kasutatud insert, update vĂ”i delete vĂ€ljendeid.
  • On lisatud kĂ€sk vacuum() andmebaasi sisu puhastamiseks, optimeerimiseks ja pakendamiseks.
  • Lubatud on andmete konverteerimine tĂŒĂŒpide bytes ja int16, int32, int64 ning uuid vahel, kasutades funktsioone to_bytes(), to_uuid() ja to_int*().
  • On lisatud vĂ”imalus sulgeda kĂ”ik andmebaasi ĂŒhendused pĂ€rast kĂ€su „drop database” tĂ€itmist.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster