nemrég bejelentették az „EdgeDB 2.0” DBMS kiadását, amely a relációs gráf relációs adatmodellt és az EdgeQL lekérdezési nyelvet valósítja meg, összetett hierarchikus adatokkal való munkára optimalizálva.
Az EdgeDB egy nyílt forráskódú adatbázis, amelyet az SQL és a relációs paradigma szellemi utódjaként terveztek. Célja néhány bonyolult tervezési probléma megoldása, amelyek a meglévő adatbázisok használatát szükségtelenül megterhelővé teszik.
A burkolat alatt található Postgres lekérdezőmotorral működtetett EdgeDB ugyanúgy gondolkodik a sémáról, mint te: olyan objektumokként, amelyek tulajdonságait kötések kapcsolják össze. Olyan ez, mint egy relációs adatbázis egy objektumorientált adatmodellel vagy egy gráfadatbázis szigorú sémával. Nevezzük gráfok relációs adatbázisának.
Az EdgeDB-ről
A projektet a PostgreSQL bővítményeként fejlesztik. Az ügyfélkönyvtárak a Python, Go, Rust és a TypeScript/Javascript nyelvekhez készültek.
Tábla alapú adatmodell helyett EdgeDB objektumtípusokon alapuló deklaratív rendszert használ. Az idegen kulcsok (idegen kulcs) helyett a típusok közötti kapcsolat meghatározásához referenciakötést használnak (egy objektum egy másik objektum tulajdonságaként is használható).
Az indexek segítségével felgyorsítható a lekérdezések feldolgozása. Is olyan funkciókat támogat, mint például az erős tulajdonságok beírása, tulajdonságérték megszorítások, számított tulajdonságok és tárolt eljárások. Az EdgeDB objektumtárolási séma néhány, az ORM-re emlékeztető funkciója magában foglalja a sémák keverésének lehetőségét, a különböző objektumok tulajdonságainak összerendelését és a beágyazott JSON támogatását.
A migrációhoz beépített eszközök állnak rendelkezésre a tárolási séma: A külön esdl fájlban megadott séma megváltoztatása után csak futtassa az „edgedb migration create” parancsot, és a DBMS elemzi a séma különbségeit, és interaktívan generál egy parancsfájlt. áttérni az új sémára. A rendszer automatikusan nyomon követi a sémamódosítási előzményeket.
A lekérdezéshez mind a GraphQL lekérdezési nyelv, mind a az EdgeDB saját nyelveként, amely az SQL adaptációja hierarchikus adatokhoz. A listák helyett a lekérdezések eredményei strukturált formátumúak, az allekérdezések és JOIN-ok helyett pedig egy EdgeQL-lekérdezés adható meg kifejezésként egy másik lekérdezésben. A tranzakciók és ciklusok támogatottak.
Az EdgeDB 2.0 fő újdonságai
A bemutatott új verzióban integrált webes felülettel bővült adatbázis adminisztrációhoz lehetővé teszi az adatok megtekintését és szerkesztését, EdgeQL lekérdezések futtatását és elemezze a használt tárolási sémát. Az interfész az "edgedb ui" paranccsal indul, majd a localhost elérésével elérhető.
A kifejezés A „GROUP” az adatok particionálásának és összesítésének lehetővé tétele érdekében került megvalósításra és az adatok csoportosítása tetszőleges EdgeQL kifejezésekkel, hasonlóan a SELECT műveletben történő csoportosításhoz.
Objektum szintű hozzáférés szabályozásának képessége, A hozzáférési szabályok a tárolási séma szintjén vannak meghatározva, és lehetővé teszik egy adott objektumkészlet használatának korlátozását a kijelölési, beszúrási, törlési és frissítési műveletekben. Hozzáadhat például egy olyan szabályt, amely csak a szerző számára engedélyezi a bejegyzés frissítését.
Azt is kiemelik hozzáadott képesség a globális változók használatához a tárolási sémában. A felhasználóhoz való kötődéshez új globális változót javasoltak.
A többi kiemelkedő változás közül:
- Elkészült a hivatalos ügyfélkönyvtár a Rust nyelvhez.
- Stabilizálódott az EdgeDB bináris protokoll, melyben lehetővé vált több különböző munkamenet egyidejű feldolgozása ugyanazon a hálózati kapcsolaton belül, HTTP-n keresztüli továbbítással, globális változók és lokális állapotok felhasználásával.
- Hozzáadott támogatás az értéktartományokat (tartomány) meghatározó típusokhoz.
- Hozzáadott támogatás a socket aktiváláshoz, amely lehetővé teszi, hogy a kiszolgáló illesztőprogramja ne maradjon a memóriában, és csak akkor induljon el, amikor megpróbálja létrehozni a kapcsolatot (hasznos a fejlesztői rendszerek erőforrásainak megtakarításához).
Végül azok számára, akik többet szeretnének tudni róla, tudniuk kell, hogy a kód Python és Rust nyelven íródott, és az Apache 2.0 licenc alatt került kiadásra.
Erről többet megtudhat a címen következő link.