ื”ืžื”ื“ื•ืจื” ื”ื™ืฆื™ื‘ื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ื’ืจืฃ ื”ื™ื—ืกื™ DBMS EdgeDB

ื”ืžื”ื“ื•ืจื” ื”ื™ืฆื™ื‘ื” ื”ืจืืฉื•ื ื” ืฉืœ EdgeDB DBMS ื–ืžื™ื ื”, ืฉื”ื™ื ืชื•ืกืคืช ืœ-PostgreSQL ืขื ื”ื˜ืžืขืช ืžื•ื“ืœ ื ืชื•ื ื™ ื”ื’ืจืฃ ื”ื”ืชื™ื™ื—ืกื•ืชื™ ื•ืฉืคืช ื”ืฉืื™ืœืชื•ืช EdgeQL, ื”ืžื•ืชืืžืช ืœืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ื”ื™ืจืจื›ื™ื™ื ืžื•ืจื›ื‘ื™ื. ื”ืงื•ื“ ื›ืชื•ื‘ ื‘-Python ื•-Rust ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0. ืกืคืจื™ื•ืช ืœืงื•ื— ืžื•ื›ื ื•ืช ืขื‘ื•ืจ Python, Go, Rust ื•-TypeScript/Javascript. ืžืกืคืง ื›ืœื™ ืฉื•ืจืช ืคืงื•ื“ื” ืœื ื™ื”ื•ืœ DBMS ื•ื‘ื™ืฆื•ืข ืฉืื™ืœืชื•ืช ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ื•ืช (REPL).

ื‘ืžืงื•ื ืžื•ื“ืœ ื ืชื•ื ื™ื ืžื‘ื•ืกืก ื˜ื‘ืœื”, EdgeDB ืžืฉืชืžืฉ ื‘ืžืขืจื›ืช ื”ืฆื”ืจืชื™ืช ื”ืžื‘ื•ืกืกืช ืขืœ ืกื•ื’ื™ ืื•ื‘ื™ื™ืงื˜ื™ื. ื‘ืžืงื•ื ืžืคืชื—ื•ืช ื–ืจื™ื, ืงื™ืฉื•ืจ ืœืคื™ ื”ืคื ื™ื” ืžืฉืžืฉ ืœื”ื’ื“ืจืช ื”ื™ื—ืก ื‘ื™ืŸ ื˜ื™ืคื•ืกื™ื (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืื•ื‘ื™ื™ืงื˜ ืื—ื“ ื›ืžืืคื™ื™ืŸ ืฉืœ ืื•ื‘ื™ื™ืงื˜ ืื—ืจ). ื”ืงืœื“ ืื“ื { ืฉื ืžืืคื™ื™ืŸ ื ื“ืจืฉ -> str; } ื”ืงืœื™ื“ื• ืกืจื˜ { ื›ื•ืชืจืช ืžืืคื™ื™ืŸ ื ื“ืจืฉ -> str; ืฉื—ืงื ื™ื ืžืจื•ื‘ื™ ืงื™ืฉื•ืจื™ื -> ืื“ื; }

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืื™ื ื“ืงืกื™ื ื›ื“ื™ ืœื”ืื™ืฅ ืืช ืขื™ื‘ื•ื“ ื”ืฉืื™ืœืชื•ืช. ืชื›ื•ื ื•ืช ื›ืžื• ื”ืงืœื“ื” ื—ื–ืงื” ืฉืœ ื ื›ืกื™ื, ื”ื’ื‘ืœื•ืช ืขืœ ืขืจืš ื ื›ืกื™ื, ืžืืคื™ื™ื ื™ื ืžื—ื•ืฉื‘ื™ื ื•ื ื”ืœื™ื ืžืื•ื—ืกื ื™ื ื ืชืžื›ื•ืช ื’ื ื›ืŸ. ื”ืชื›ื•ื ื•ืช ืฉืœ ืกื›ื™ืžืช ืื—ืกื•ืŸ ื”ืื•ื‘ื™ื™ืงื˜ื™ื EdgeDB, ืฉืžื–ื›ื™ืจื” ืžืขื˜ ORM, ื›ื•ืœืœื•ืช ืืช ื”ื™ื›ื•ืœืช ืœืขืจื‘ื‘ ืกื›ืžื•ืช, ืงื™ืฉื•ืจ ืžืืคื™ื™ื ื™ื ืžืื•ื‘ื™ื™ืงื˜ื™ื ืฉื•ื ื™ื ื•ืชืžื™ื›ื” ืžืฉื•ืœื‘ืช ื‘-JSON.

ื›ืœื™ื ืžื•ื‘ื ื™ื ืžืกื•ืคืงื™ื ืœืื—ืกื•ืŸ ื”ืขื‘ืจืช ืกื›ื™ืžื” - ืœืื—ืจ ืฉื™ื ื•ื™ ื”ืกื›ื™ืžื” ืฉืฆื•ื™ื ื” ื‘ืงื•ื‘ืฅ esdl ื ืคืจื“, ืคืฉื•ื˜ ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” "edgedb migration create" ื•ื”-DBMS ื™ื ืชื— ืืช ื”ื”ื‘ื“ืœื™ื ื‘ืกื›ื™ืžื” ื•ื™ืคื™ืง ื‘ืื•ืคืŸ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ืกืงืจื™ืคื˜ ืœื”ืขื‘ืจื” ืœ- ืกื›ื™ืžื” ื—ื“ืฉื”. ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘ืกื›ื™ืžื” ืžืชื‘ืฆืขืช ื‘ืžืขืงื‘ ืื•ื˜ื•ืžื˜ื™.

ื›ื“ื™ ืœื™ืฆื•ืจ ืฉืื™ืœืชื•ืช, ื ืชืžื›ื•ืช ื”ืŸ ืฉืคืช ื”ืฉืื™ืœืชื•ืช GraphQL ื•ื”ืŸ ืฉืคืช EdgeDB ื”ืงื ื™ื™ื ื™ืช, ืฉื”ื™ื ื”ืชืืžื” ืฉืœ SQL ืœื ืชื•ื ื™ื ื”ื™ืจืจื›ื™ื™ื. ื‘ืžืงื•ื ืจืฉื™ืžื•ืช, ืชื•ืฆืื•ืช ื”ืฉืื™ืœืชื” ืžืขื•ืฆื‘ื•ืช ื‘ืฆื•ืจื” ืžื•ื‘ื ื™ืช, ื•ื‘ืžืงื•ื ืฉืื™ืœืชื•ืช ืžืฉื ื” ื•-JOIN, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืฉืื™ืœืชืช EdgeQL ืื—ืช ื›ื‘ื™ื˜ื•ื™ ื‘ืชื•ืš ืฉืื™ืœืชื” ืื—ืจืช. ืขืกืงืื•ืช ื•ืžื—ื–ื•ืจื™ื ื ืชืžื›ื™ื. ื‘ื—ืจ ืกืจื˜ { title, actors: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", ืฉื—ืงื ื™ื := (ื‘ื—ืจ Person filter .name ื‘-{ 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } ืขื‘ื•ืจ ืžืกืคืจ ื‘ืื™ื—ื•ื“ {0, 1, 2, 3} (ื‘ื—ืจ { ืžืกืคืจ, ืžืกืคืจ + 0.5 } );

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”