ืฉื—ืจื•ืจ ื”ื’ืจืฃ ื”ื™ื—ืกื™ DBMS EdgeDB 2.0

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

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

ื”ืงืœื“ ืื“ื { ืฉื ืžืืคื™ื™ืŸ ื ื“ืจืฉ -> str; } ื”ืงืœื“ Movie { required property title -> 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 } );

ื‘ื’ืจืกื” ื”ื—ื“ืฉื”:

  • ื”ืชื•ื•ืกืฃ ืžืžืฉืง ืื™ื ื˜ืจื ื˜ ืžื•ื‘ื ื” ืœื ื™ื”ื•ืœ ืžืกื“ ื ืชื•ื ื™ื, ื”ืžืืคืฉืจ ืœืš ืœื”ืฆื™ื’ ื•ืœืขืจื•ืš ื ืชื•ื ื™ื, ืœื”ืจื™ืฅ ืฉืื™ืœืชื•ืช EdgeQL ื•ืœื ืชื— ืืช ืขืจื›ืช ื”ืื—ืกื•ืŸ ืฉื‘ื” ื ืขืฉื” ืฉื™ืžื•ืฉ. ื”ืžืžืฉืง ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ื”ืคืงื•ื“ื” "edgedb ui", ื•ืœืื—ืจ ืžื›ืŸ ื”ื•ื ื”ื•ืคืš ืœื–ืžื™ืŸ ื‘ืขืช โ€‹โ€‹ื’ื™ืฉื” ืœ-localhost.
    ืฉื—ืจื•ืจ ื”ื’ืจืฃ ื”ื™ื—ืกื™ DBMS EdgeDB 2.0
  • ื”ื‘ื™ื˜ื•ื™ "GROUP" ื™ื•ืฉื, ื•ืžืืคืฉืจ ืœืš ืœื—ืœืง ื•ืœืฆื‘ื•ืจ ื ืชื•ื ื™ื ื•ืœืงื‘ืฅ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ื‘ื™ื˜ื•ื™ื™ EdgeQL ืฉืจื™ืจื•ืชื™ื™ื, ื‘ื“ื•ืžื” ืœืงื™ื‘ื•ืฅ ื‘ืคืขื•ืœืช SELECT.
  • ื™ื›ื•ืœืช ืœืฉืœื•ื˜ ื‘ื’ื™ืฉื” ื‘ืจืžืช ื”ืื•ื‘ื™ื™ืงื˜. ื›ืœืœื™ ื’ื™ืฉื” ืžื•ื’ื“ืจื™ื ื‘ืจืžืช ืกื›ื™ืžืช ื”ืื—ืกื•ืŸ ื•ืžืืคืฉืจื™ื ืœืš ืœื”ื’ื‘ื™ืœ ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืงื‘ื•ืฆื” ืžืกื•ื™ืžืช ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืคืขื•ืœื•ืช ืื—ื–ื•ืจ, ื”ื•ืกืคื”, ืžื—ื™ืงื” ื•ืขื“ื›ื•ืŸ. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ื›ืœืœ ื”ืžืืคืฉืจ ืจืง ืœืžื—ื‘ืจ ืœืขื“ื›ืŸ ืคืจืกื•ื.
  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ื ื’ืœื•ื‘ืœื™ื™ื ื‘ืกื›ื™ืžืช ื”ืื—ืกื•ืŸ. ืžืฉืชื ื” ื’ืœื•ื‘ืœื™ ื—ื“ืฉ current_user ื”ื•ืฆืข ืœื”ื™ืงืฉืจ ืœืžืฉืชืžืฉ.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืกื•ื’ื™ื ื”ืžื’ื“ื™ืจื™ื ื˜ื•ื•ื—ื™ ืขืจื›ื™ื.
  • ื”ื•ื›ื ื” ืกืคืจื™ื™ืช ืœืงื•ื—ื•ืช ืจืฉืžื™ืช ืœืฉืคืช Rust.
  • ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื‘ื™ื ืืจื™ EdgeDB ื™ื•ืฆื‘, ืžื” ืฉืžืืคืฉืจ ืœืขื‘ื“ ืžืกืคืจ ื”ืคืขืœื•ืช ืฉื•ื ื•ืช ื‘ื•-ื–ืžื ื™ืช ื‘ืชื•ืš ืื•ืชื• ื—ื™ื‘ื•ืจ ืจืฉืช, ื”ืขื‘ืจื” ื‘ืืžืฆืขื•ืช HTTP, ื‘ืืžืฆืขื•ืช ืžืฉืชื ื™ื ื’ืœื•ื‘ืœื™ื™ื ื•ืžืฆื‘ื™ื ืžืงื•ืžื™ื™ื.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ืคืขืœืช ืฉืงืขื™ื, ื”ืžืืคืฉืจืช ืœืš ืœื ืœืฉืžื•ืจ ืืช ื”ืžื˜ืคืœ ื‘ืฉืจืช ื‘ื–ื™ื›ืจื•ืŸ ื•ืœื”ืคืขื™ืœ ืื•ืชื• ืจืง ื›ืืฉืจ ืžื ืกื™ื ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ (ืฉื™ืžื•ืฉื™ ืœื—ื™ืกื›ื•ืŸ ื‘ืžืฉืื‘ื™ื ื‘ืžืขืจื›ื•ืช ืžืคืชื—ื™ื).

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

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