เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจ—เฉเจฐเจพเจซ DBMS EdgeDB เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ

ะ”ะพัั‚ัƒะฟะตะฝ ะฟะตั€ะฒั‹ะน ัั‚ะฐะฑะธะปัŒะฝั‹ะน ั€ะตะปะธะท ะกะฃะ‘ะ” EdgeDB, ะฟั€ะตะดัั‚ะฐะฒะปััŽั‰ัƒัŽ ัะพะฑะพะน ะฝะฐะดัั‚ั€ะพะนะบัƒ ะฝะฐะด PostgreSQL ั ั€ะตะฐะปะธะทะฐั†ะธะตะน ั€ะตะปัั†ะธะพะฝะฝะพ-ะณั€ะฐั„ะพะฒะพะน ะผะพะดะตะปะธ ะดะฐะฝะฝั‹ั… ะธ ัะทั‹ะบะฐ ะทะฐะฟั€ะพัะพะฒ EdgeQL, ะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะฝั‹ั… ะดะปั ั€ะฐะฑะพั‚ั‹ ัะพ ัะปะพะถะฝั‹ะผะธ ะธะตั€ะฐั€ั…ะธั‡ะตัะบะธะผะธ ะดะฐะฝะฝั‹ะผะธ. ะšะพะด ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทั‹ะบะฐั… Python ะธ Rust ะธ ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝัะตั‚ัั ะฟะพะด ะปะธั†ะตะฝะทะธะตะน Apache 2.0. ะšะปะธะตะฝั‚ัะบะธะต ะฑะธะฑะปะธะพั‚ะตะบะธ ะฟะพะดะณะพั‚ะพะฒะปะตะฝั‹ ะดะปั ัะทั‹ะบะพะฒ Python, Go, Rust ะธ TypeScript/Javascript. ะŸั€ะตะดะพัั‚ะฐะฒะปัะตั‚ัั ะธะฝัั‚ั€ัƒะผะตะฝั‚ะฐั€ะธะน ะบะพะผะฐะฝะดะฝะพะน ัั‚ะพะบะธ ะดะปั ัƒะฟั€ะฐะฒะปะตะฝะธั ะกะฃะ‘ะ” ะธ ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะพะณะพ ะฒั‹ะฟะพะปะฝะตะฝะธั ะทะฐะฟั€ะพัะพะฒ (REPL).

ะ’ะผะตัั‚ะพ ะผะพะดะตะปะธ ะดะฐะฝะฝั‹ั… ะฝะฐ ะพัะฝะพะฒะต ั‚ะฐะฑะปะธั† ะฒ EdgeDB ะฟั€ะธะผะตะฝัะตั‚ัั ะดะตะบะปะฐั€ะฐั‚ะธะฒะฝะฐั ัะธัั‚ะตะผะฐ ะฝะฐ ะพัะฝะพะฒะต ะพะฑัŠะตะบั‚ะฝั‹ั… ั‚ะธะฟะพะฒ. ะ’ะผะตัั‚ะพ ะฒะฝะตัˆะฝะธั… ะบะปัŽั‡ะตะน (foreign key) ะดะปั ะพะฟั€ะตะดะตะปะตะฝะธั ัะฒัะทะธ ะผะตะถะดัƒ ั‚ะธะฟะฐะผะธ ะฟั€ะธะผะตะฝัะตั‚ัั ัะฒัะทั‹ะฒะฐะฝะธะต ััั‹ะปะบะฐะผะธ (ะพะดะธะฝ ะพะฑัŠะตะบั‚ ะผะพะถะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั ะบะฐะบ ัะฒะพะนัั‚ะฒะพ ะดั€ัƒะณะพะณะพ ะพะฑัŠะตะบั‚ะฐ). type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจธเฉฐเจชเจคเฉ€ เจŸเจพเจˆเจชเจฟเฉฐเจ—, เจธเฉฐเจชเฉฑเจคเฉ€ เจฎเฉเฉฑเจฒ เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚, เจ—เจฃเจจเจพ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจตเฉ€ เจธเจฎเจฐเจฅเจฟเจค เจนเจจเฅค EdgeDB เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเจ•เฉ€เจฎ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจœเฉ‹ เจ•เฉเจ เจนเฉฑเจฆ เจคเฉฑเจ• เจ‡เฉฑเจ• ORM เจฆเฉ€ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจตเจฟเฉฑเจš เจธเจ•เฉ€เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ, เจตเฉฑเจ–-เจตเฉฑเจ– เจ†เจฌเจœเฉˆเจ•เจŸเจธ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค JSON เจธเจนเจพเจ‡เจคเจพ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจฌเจฟเจฒเจŸ-เจ‡เจจ เจŸเฉ‚เจฒ เจธเจ•เฉ€เจฎเจพ เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ - เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ esdl เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจจเจฟเจฐเจงเจพเจฐเจค เจธเจ•เฉ€เจฎเจพ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ•เฉ‡เจตเจฒ "edgedb เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ เจฌเจฃเจพเจ“" เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“ เจ…เจคเฉ‡ DBMS เจธเจ•เฉ€เจฎเจพ เจตเจฟเฉฑเจš เจ…เฉฐเจคเจฐเจพเจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจชเจฐเจตเจพเจธ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเฉ‡เจ—เจพเฅค เจจเจตเฉ€เจ‚ เจธเจ•เฉ€เจฎเจพเฅค เจธเจ•เฉ€เจฎเจพ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ เจ†เจชเจฃเฉ‡ เจ†เจช เจŸเฉเจฐเฉˆเจ• เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

ะ”ะปั ั„ะพั€ะผะธั€ะพะฒะฐะฝะธั ะทะฐะฟั€ะพัะพะฒ ะฟะพะดะดะตั€ะถะธะฒะฐะตั‚ัั ะบะฐะบ ัะทั‹ะบ ะทะฐะฟั€ะพัะพะฒ GraphQL, ั‚ะฐะบ ะธ ัะพะฑัั‚ะฒะตะฝะฝั‹ะน ัะทั‹ะบ EdgeDB, ะฟั€ะตะดัั‚ะฐะฒะปััŽั‰ะธะน ัะพะฑะพะน ะฐะดะฐะฟั‚ะฐั†ะธัŽ SQL ะดะปั ะธะตั€ะฐั€ั…ะธั‡ะตัะบะธั… ะดะฐะฝะฝั‹ั…. ะ’ะผะตัั‚ะพ ัะฟะธัะบะพะฒ ั€ะตะทัƒะปัŒั‚ะฐั‚ั‹ ะทะฐะฟั€ะพัะฐ ะพั„ะพั€ะผะปััŽั‚ัั ะฒ ัั‚ั€ัƒะบั‚ัƒั€ะธั€ะพะฒะฐะฝะฝะพะผ ะฒะธะดะต, ะฐ ะฒะผะตัั‚ะพ ะฟะพะดะทะฐะฟั€ะพัะพะฒ ะธ ะพะฟะตั€ะฐั†ะธะน JOIN ะฟั€ะตะดะพัั‚ะฐะฒะปัะตั‚ัั ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัƒะบะฐะทะฐะฝะธั ะพะดะฝะพะณะพ ะทะฐะฟั€ะพัะฐ EdgeQL ะฒ ะบะฐั‡ะตัั‚ะฒะต ะฒั‹ั€ะฐะถะตะฝะธั ะฒะฝัƒั‚ั€ะธ ะดั€ัƒะณะพะณะพ ะทะฐะฟั€ะพัะฐ. ะŸะพะดะดะตั€ะถะธะฒะฐัŽั‚ัั ั‚ั€ะฐะฝะทะฐะบั†ะธะธ ะธ ั†ะธะบะปั‹. select Movie { title, actors: { name } } filter .title = ยซThe Matrixยป insert Movie { title := ยซThe Matrix Resurrectionsยป, actors := ( select Person filter .name in { โ€˜Keanu Reevesโ€™, โ€˜Carrie-Anne Mossโ€™, โ€˜Laurence Fishburneโ€™ } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹