DBMS EdgeDB 2.0 relyasiya qrafikinin buraxılışı

Mürəkkəb iyerarxik verilənlərlə işləmək üçün optimallaşdırılmış relational qrafik məlumat modelini və EdgeQL sorğu dilini həyata keçirən EdgeDB 2.0 DBMS-nin buraxılışı təqdim olunur. Kod Python və Rust dillərində yazılmışdır (parser və performans baxımından kritik hissələr) və Apache 2.0 lisenziyası altında paylanır. Layihə PostgreSQL üçün əlavə olaraq hazırlanır. Müştəri kitabxanaları Python, Go, Rust və TypeScript/Javascript üçün hazırlanmışdır. DBMS idarə edilməsi və interaktiv sorğu 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ın 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ğu yaratmaq üçün həm GraphQL sorğu dili, həm də iyerarxik məlumatlar üçün SQL-in uyğunlaşdırılması olan EdgeDB-nin öz 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ə, rəqəm + 0.5 } seçin);

Yeni versiyada:

  • Verilənlərə baxmaq və redaktə etmək, EdgeQL sorğularını yerinə yetirmək və istifadə olunan yaddaş sxemini təhlil etmək imkanı verən verilənlər bazası administrasiyası üçün daxili veb interfeysi əlavə edilmişdir. İnterfeys “edgedb ui” əmri ilə işə salınır, bundan sonra localhost-a daxil olduqda əlçatan olur.
    DBMS EdgeDB 2.0 relyasiya qrafikinin buraxılışı
  • “QRUP” ifadəsi həyata keçirildi ki, bu da SEÇİM əməliyyatında qruplaşdırmaya bənzər ixtiyari EdgeQL ifadələrindən istifadə edərək verilənləri və məlumatları bölməyə və birləşdirməyə imkan verir.
  • Obyekt səviyyəsində girişə nəzarət etmək imkanı. Giriş qaydaları saxlama sxemi səviyyəsində müəyyən edilir və sizə gətirmə, daxil etmə, silmə və yeniləmə əməliyyatlarında müəyyən obyekt dəstindən istifadə imkanını məhdudlaşdırmağa imkan verir. Məsələn, yalnız müəllifə nəşri yeniləməyə icazə verən bir qayda əlavə edə bilərsiniz.
  • Saxlama sxemində qlobal dəyişənlərdən istifadə etmək imkanı əlavə edildi. İstifadəçiyə qoşulmaq üçün yeni qlobal dəyişən current_user təklif edilmişdir.
  • Dəyər diapazonunu təyin edən növlər üçün əlavə dəstək.
  • Rust dili üçün rəsmi müştəri kitabxanası hazırlanmışdır.
  • EdgeDB binar protokolu sabitləşdi, bu da qlobal dəyişənlərdən və yerli vəziyyətlərdən istifadə edərək HTTP vasitəsilə yönləndirməni, eyni şəbəkə bağlantısı daxilində eyni vaxtda bir neçə fərqli sessiyanı emal etməyə imkan verdi.
  • Soketin aktivləşdirilməsi üçün əlavə dəstək, server işləyicisini yaddaşda saxlamamağa və onu yalnız əlaqə qurmağa çalışarkən işə salmağa imkan verir (developer sistemlərində resurslara qənaət etmək üçün faydalıdır).

Mənbə: opennet.ru

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