EdgeDB DBMS relyasiya qrafikinin ilk stabil buraxılışı

EdgeDB DBMS-nin ilk stabil buraxılışı mövcuddur, bu, mürəkkəb iyerarxik məlumatlarla işləmək üçün optimallaşdırılmış, relational qrafik məlumat modelinin və EdgeQL sorğu dilinin tətbiqi ilə PostgreSQL-ə əlavədir. Kod Python və Rust dillərində yazılmışdır və Apache 2.0 lisenziyası altında paylanır. Müştəri kitabxanaları Python, Go, Rust və TypeScript/Javascript üçün hazırlanmışdır. DBMS idarə edilməsi və interaktiv sorğunun icrası (REPL) üçün komanda xətti alətləri təmin edir.

Cədvəl əsaslı məlumat modelinin əvəzinə EdgeDB obyekt tiplərinə əsaslanan deklarativ sistemdən istifadə edir. Xarici açarlar əvəzinə növlər arasındakı əlaqəni müəyyən etmək üçün istinadla əlaqə istifadə olunur (bir obyekt digər obyektin mülkiyyəti kimi istifadə edilə bilər). type Person { tələb olunan əmlak adı -> küç; } type Movie { tələb olunan xüsusiyyət başlığı -> str; çox keçid aktyorları -> Şəxs; }

Sorğuların işlənməsini sürətləndirmək üçün indekslərdən istifadə edilə bilər. Güclü mülkiyyət yazmaq, mülkiyyət dəyəri məhdudiyyətləri, hesablanmış xüsusiyyətlər və saxlanılan prosedurlar kimi xüsusiyyətlər də dəstəklənir. ORM-i bir qədər xatırladan EdgeDB obyekt saxlama sxeminin xüsusiyyətlərinə sxemləri qarışdırmaq, müxtəlif obyektlərdən xassələri əlaqələndirmək və inteqrasiya olunmuş JSON dəstəyi daxildir.

Sxem miqrasiyasının saxlanması üçün quraşdırılmış alətlər təmin edilmişdir - ayrıca esdl faylında göstərilən sxemi dəyişdirdikdən sonra "edgedb migration create" əmrini yerinə yetirmək kifayətdir və DBMS sxemdəki fərqləri təhlil edəcək və interaktiv şəkildə köçürmə üçün skript yaradacaqdır. yeni sxem. Sxem dəyişikliklərinin tarixi avtomatik olaraq izlənilir.

Sorğuları yaratmaq üçün həm GraphQL sorğu dili, həm də iyerarxik məlumatlar üçün SQL-in uyğunlaşdırılması olan xüsusi EdgeDB dili dəstəklənir. Siyahılar əvəzinə sorğu nəticələri strukturlaşdırılmış şəkildə formatlaşdırılır və alt sorğular və QOŞULMALAR əvəzinə bir EdgeQL sorğusunu digər sorğuda ifadə kimi təyin edə bilərsiniz. Əməliyyatlar və dövrlər dəstəklənir. Film seçin { başlıq, aktyorlar: { ad } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", aktyorlar := ( { 'Keanu Reeves', 'Carrie-də Şəxs filtri .adını seçin. Anne Moss', 'Laurence Fishburne' } ) } {0, 1, 2, 3} birliyindəki nömrə üçün ( { nömrə, nömrə + 0.5 } seçin);

Mənbə: opennet.ru

Добавить комментарий