اولین انتشار پایدار نمودار رابطه ای DBMS EdgeDB

اولین نسخه پایدار EdgeDB DBMS در دسترس است که یک افزودنی برای PostgreSQL با پیاده سازی مدل داده گراف رابطه ای و زبان پرس و جو EdgeQL است که برای کار با داده های سلسله مراتبی پیچیده بهینه شده است. کد به زبان Python و Rust نوشته شده و تحت مجوز آپاچی 2.0 توزیع شده است. کتابخانه های کلاینت برای Python، Go، Rust و TypeScript/Javascript آماده شده اند. ابزارهای خط فرمان را برای مدیریت DBMS و اجرای پرس و جو تعاملی (REPL) فراهم می کند.

به جای یک مدل داده مبتنی بر جدول، EdgeDB از یک سیستم اعلامی بر اساس انواع شی استفاده می کند. به جای کلیدهای خارجی، از پیوند با مرجع برای تعریف رابطه بین انواع استفاده می شود (یک شی می تواند به عنوان ویژگی یک شی دیگر استفاده شود). نوع Person { نام ملک مورد نیاز -> str; } نوع فیلم { عنوان ملک مورد نیاز -> str; بازیگران چند پیوندی -> شخص; }

از شاخص ها می توان برای سرعت بخشیدن به پردازش پرس و جو استفاده کرد. ویژگی‌هایی مانند تایپ ویژگی قوی، محدودیت‌های ارزش ویژگی، ویژگی‌های محاسبه‌شده و رویه‌های ذخیره‌شده نیز پشتیبانی می‌شوند. از ویژگی های طرح ذخیره سازی اشیاء EdgeDB که تا حدودی یادآور ORM است، می توان به ترکیب طرحواره ها، ویژگی های پیوند از اشیاء مختلف و پشتیبانی یکپارچه JSON اشاره کرد.

ابزارهای داخلی برای ذخیره مهاجرت طرحواره ارائه شده است - پس از تغییر طرح مشخص شده در یک فایل esdl جداگانه، فقط دستور "edgedb migration create" را اجرا کنید و DBMS تفاوت های موجود در طرح را تجزیه و تحلیل کرده و به صورت تعاملی یک اسکریپت برای مهاجرت به طرح واره جدید تاریخچه تغییرات طرح واره به طور خودکار ردیابی می شود.

برای تولید پرس و جو، هم زبان پرس و جو GraphQL و هم زبان اختصاصی EdgeDB که اقتباسی از SQL برای داده های سلسله مراتبی است، پشتیبانی می شود. به جای لیست ها، نتایج پرس و جو به روشی ساختاریافته قالب بندی می شوند، و به جای پرس و جوهای فرعی و JOIN، می توانید یک پرس و جو EdgeQL را به عنوان یک عبارت در پرس و جوی دیگر مشخص کنید. تراکنش ها و چرخه ها پشتیبانی می شوند. select Movie { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", بازیگران := ( Persona filter .name in { 'Keanu Reeves', 'Carrie- را انتخاب کنید Anne Moss', 'Laurence Fishburne' } ) } برای شماره در اتحادیه {0, 1, 2, 3} ( انتخاب کنید { number, number + 0.5 } );

منبع: opennet.ru

اضافه کردن نظر