เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™ DBMS EdgeDB

เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ EdgeDB DBMS เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เป€เบชเบตเบกเบ‚เบญเบ‡ PostgreSQL เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบŸเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบฅเบฐเบžเบฒเบชเบฒเปเบšเบšเบชเบญเบšเบ–เบฒเบก EdgeQL, เป€เบซเบกเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Python เปเบฅเบฐ Rust เปเบฅเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบš Python, Go, Rust เปเบฅเบฐ TypeScript / Javascript. เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡ DBMS เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบชเบญเบšเบ–เบฒเบกเปเบšเบšเป‚เบ•เป‰เบ•เบญเบš (REPL).

เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, EdgeDB เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเป€เบžเบ”เบงเบฑเบ”เบ–เบธ. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฐเปเบˆเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เป‚เบ”เบเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ›เบฐเป€เบžเบ” (เบงเบฑเบ”เบ–เบธเบซเบ™เบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบŠเบฑเบšเบชเบดเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบญเบทเปˆเบ™). เบ›เบฐเป€เบžเบ”เบšเบธเบเบ„เบปเบ™ {เบŠเบทเปˆเบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ -> str; } เบ›เบฐเป€เบžเบ”เบฎเบนเบšเป€เบ‡เบปเบฒ { เบซเบปเบงเบ‚เปเป‰เบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ -> str; multi link actors -> เบšเบธเบเบ„เบปเบ™; }

เบ”เบฑเบ”เบŠเบฐเบ™เบตเบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบšเบชเบญเบšเบ–เบฒเบก. เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบžเบดเบกเบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบกเบนเบ™เบ„เปˆเบฒเบŠเบฑเบšเบชเบดเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆ, เปเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบงเบฑเบ”เบ–เบธ EdgeDB, เป€เบŠเบดเปˆเบ‡เบกเบตเบ„เบงเบฒเบกเบˆเบทเปˆเบˆเปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡ ORM, เบ›เบฐเบเบญเบšเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบก schemas, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบˆเบฒเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ JSON เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™.

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปƒเบ™เบ•เบปเบงเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ schema migration - เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ schema เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ esdl เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "edgedb migration create" เปเบฅเบฐ DBMS เบˆเบฐเบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™ schema เปเบฅเบฐเป‚เบ•เป‰เบ•เบญเบšเบชเป‰เบฒเบ‡ script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ›เบซเบฒ. schema เปƒเบซเบกเปˆ. เบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡ schema เปเบกเปˆเบ™เบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบšเบšเบชเบญเบšเบ–เบฒเบก, เบ—เบฑเบ‡เบžเบฒเบชเบฒเปเบšเบšเบชเบญเบšเบ–เบฒเบก GraphQL เปเบฅเบฐเบžเบฒเบชเบฒ EdgeDB เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบ‚เบญเบ‡ SQL เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฅเบฒเบเบเบฒเบ™, เบœเบปเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ–เบทเบเบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเปƒเบ™เปเบšเบšเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเปเบฅเบฐ JOIN, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบ–เบฒเบก EdgeQL เป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบžเบฒเบเปƒเบ™เบ„เปเบฒเบ–เบฒเบกเบญเบทเปˆเบ™. เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเบฎเบญเบšเบงเบฝเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เป€เบฅเบทเบญเบเบฎเบนเบšเป€เบ‡เบปเบฒ { title, เบ™เบฑเบเบชเบฐเปเบ”เบ‡: { name } } filter .title = "The Matrix" เปƒเบชเปˆเบฎเบนเบšเป€เบ‡เบปเบฒ { title := "The Matrix Resurrections", เบ™เบฑเบเบชเบฐเปเบ”เบ‡ := (เป€เบฅเบทเบญเบ Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบเปƒเบ™ {0, 1, 2, 3} union (เป€เบฅเบทเบญเบ { number, number + 0.5 } );

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™