Нашри графики реляционии DBMS EdgeDB 2.0

Нашри DBMS EdgeDB 2.0 муаррифӣ шудааст, ки модели додаҳои графикии релятсионӣ ва забони дархости EdgeQL-ро амалӣ мекунад, ки барои кор бо маълумоти мураккаби иерархӣ оптимизатсия шудааст. Рамз дар Python ва Rust (қисмҳои таҳлилгар ва иҷрои интиқодӣ) навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад. Лоиҳа ҳамчун замимаи PostgreSQL таҳия карда мешавад. Китобхонаҳои муштариён барои Python, Go, Rust ва TypeScript/Javascript омода карда шудаанд. Воситаҳои сатри фармонро барои идоракунии DBMS ва иҷрои интерактивии дархостҳо (REPL) таъмин мекунад.

Ба ҷои модели маълумот дар асоси ҷадвал, EdgeDB системаи декларативиро дар асоси намудҳои объект истифода мебарад. Ба ҷои калидҳои хориҷӣ, барои муайян кардани муносибати байни намудҳо (як объект метавонад ҳамчун моликияти объекти дигар истифода шавад) бо истинод истифода мешавад.

type Person { номи моликияти зарурӣ -> str; } type Movie { унвони хосияти зарурӣ -> str; фаъолони бисёрпайваст -> Шахс; }

Индексҳоро барои суръат бахшидан ба коркарди дархостҳо истифода бурдан мумкин аст. Хусусиятҳое ба монанди чопкунии пурқуввати амвол, маҳдудиятҳои арзиши амвол, хосиятҳои ҳисобшуда ва расмиёти захирашуда низ дастгирӣ карда мешаванд. Хусусиятҳои схемаи нигаҳдории объекти EdgeDB, ки то андозае ба ORM шабоҳат дорад, қобилияти омехта кардани схемаҳо, пайваст кардани хосиятҳои объектҳои гуногун ва дастгирии ҳамгирошудаи JSON-ро дар бар мегирад.

Асбобҳои дарунсохт барои нигоҳ доштани муҳоҷирати схема таъмин карда шудаанд - пас аз тағир додани схемаи дар файли алоҳидаи esdl нишондодашуда, танҳо фармони "edgedb migration create" -ро иҷро кунед ва DBMS фарқиятҳоро дар схема таҳлил мекунад ва ба таври интерактивӣ скриптро барои интиқол ба схемаи нав. Таърихи тағироти схема ба таври худкор пайгирӣ карда мешавад.

Барои тавлиди дархостҳо ҳам забони дархости GraphQL ва ҳам забони хусусии EdgeDB, ки мутобиқсозии SQL барои маълумоти иерархӣ мебошад, дастгирӣ карда мешавад. Ба ҷои рӯйхатҳо, натиҷаҳои дархост ба таври сохторӣ формат карда мешаванд ва ба ҷои зерпурсиҳо ва JOIN, шумо метавонед як дархости EdgeQL-ро ҳамчун ифода дар дохили дархости дигар муайян кунед. Муомилот ва давраҳо дастгирӣ карда мешаванд.

Филмро интихоб кунед { унвон, актёрҳо: { ном } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", actors := (-ро интихоб кунед Филтр .name Шахсе дар { 'Keanu Reeves', 'Carrie- Энн Мосс', 'Лоренс Фишберн' } ) } барои рақам дар {0, 1, 2, 3} иттифоқ (ро интихоб кунед { рақам, рақам + 0.5 } );

Дар версияи нав:

  • Барои идоракунии пойгоҳи додаҳо интерфейси дарунсохт илова карда шудааст, ки ба шумо имкон медиҳад, ки маълумотро бинед ва таҳрир кунед, дархостҳои EdgeQL-ро иҷро кунед ва нақшаи нигоҳдории истифодашударо таҳлил кунед. Интерфейс бо фармони "edgedb ui" оғоз мешавад, ки пас аз он ҳангоми дастрасӣ ба localhost дастрас мешавад.
    Нашри графики реляционии DBMS EdgeDB 2.0
  • Ифодаи "GROUP" амалӣ карда шуд, ки ба шумо имкон медиҳад, ки бо истифода аз ифодаҳои ихтиёрии EdgeQL, ба гурӯҳбандӣ дар амалиёти SELECT шабеҳи тақсимот ва ҷамъ кардани маълумот ва гурӯҳбандӣ кунед.
  • Имконияти назорати дастрасӣ дар сатҳи объект. Қоидаҳои дастрасӣ дар сатҳи схемаи нигоҳдорӣ муайян карда мешаванд ва ба шумо имкон медиҳанд, ки қобилияти истифодаи маҷмӯи муайяни объектҳоро дар амалиёти гирифтан, ворид кардан, нест кардан ва навсозӣ кунед. Масалан, шумо метавонед қоидаеро илова кунед, ки танҳо ба муаллиф имкон медиҳад, ки нашрияро навсозӣ кунад.
  • Қобилияти истифодаи тағирёбандаҳои глобалӣ дар нақшаи нигоҳдорӣ илова карда шуд. Тағйирёбандаи нави глобалии current_user пешниҳод шудааст, ки ба корбар пайваст шавад.
  • Дастгирии иловашуда барои намудҳое, ки диапазони арзишҳоро муайян мекунанд.
  • Китобхонаи расмии муштариён барои забони руст омода шудааст.
  • Протоколи бинарии EdgeDB мӯътадил карда шуд, ки имкон медиҳад, ки якчанд сессияҳои гуногунро ҳамзамон дар дохили як пайвасти шабакавӣ, интиқол тавассути HTTP, бо истифода аз тағирёбандаҳои глобалӣ ва ҳолати маҳаллӣ коркард кунанд.
  • Дастгирии иловашуда барои фаъолсозии розетка, ки ба шумо имкон медиҳад, ки коркардкунандаи серверро дар хотира нигоҳ надоред ва онро танҳо ҳангоми кӯшиши барқарор кардани пайваст иҷро кунед (барои сарфаи захираҳо дар системаҳои таҳиякунанда муфид аст).

Манбаъ: opennet.ru

Илова Эзоҳ