Нашри аввалини устувори графики реляционии DBMS EdgeDB

Нашри аввалини устувори DBMS EdgeDB дастрас аст, ки он илова ба PostgreSQL бо татбиқи модели додаҳои графикии релятсионӣ ва забони дархости EdgeQL мебошад, ки барои кор бо маълумоти мураккаби иерархӣ оптимизатсия шудааст. Рамз дар Python ва Rust навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад. Китобхонаҳои муштариён барои 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 } );

Манбаъ: opennet.ru

Илова Эзоҳ