рд░рд┐рд▓реЗрд╢рдирд▓ рдЖрд▓реЗрдЦ DBMS EdgeDB рдЪреЗ рдкрд╣рд┐рд▓реЗ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд╢рди

рдПрдЬрдбреАрдмреА рдбреАрдмреАрдПрдордПрд╕рдЪреЗ рдкрд╣рд┐рд▓реЗ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд╢рди рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ, рдЬреЗ рд░рд┐рд▓реЗрд╢рдирд▓ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдЖрдгрд┐ рдПрдЬрдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рднрд╛рд╖реЗрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓рдордзреНрдпреЗ рдЕреЕрдб-рдСрди рдЖрд╣реЗ, рдЬрдЯрд┐рд▓ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдХреЛрдб Python рдЖрдгрд┐ Rust рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. Python, Go, Rust рдЖрдгрд┐ TypeScript/Javascript рд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. DBMS рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡реНрд╣ рдХреНрд╡реЗрд░реА рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди (REPL) рд╕рд╛рдареА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдЯреЗрдмрд▓-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рдРрд╡рдЬреА, рдПрдЬрдбреАрдмреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░рдгрд╛рд▓реА рд╡рд╛рдкрд░рддреЗ. рдкрд░рджреЗрд╢реА рдХреА рдРрд╡рдЬреА, рд╕рдВрджрд░реНрднрд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдВрдХ рдХрд░рдгреЗ рдкреНрд░рдХрд╛рд░рд╛рдВрдордзреАрд▓ рд╕рдВрдмрдВрдз рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ (рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рджреБрд╕рд░реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреА рдорд╛рд▓рдорддреНрддрд╛ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ). рд╡реНрдпрдХреНрддреА { рдЖрд╡рд╢реНрдпрдХ рдорд╛рд▓рдорддреНрддреЗрдЪреЗ рдирд╛рд╡ -> str; } рдкреНрд░рдХрд╛рд░ рдЪрд┐рддреНрд░рдкрдЯ { рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгрдзрд░реНрдо рд╢реАрд░реНрд╖рдХ -> str; рдорд▓реНрдЯреА рд▓рд┐рдВрдХ рдХрд▓рд╛рдХрд╛рд░ -> рд╡реНрдпрдХреНрддреА; }

рдХреНрд╡реЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдЧрддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдордЬрдмреВрдд рдорд╛рд▓рдорддреНрддрд╛ рдЯрд╛рдпрдкрд┐рдВрдЧ, рдорд╛рд▓рдорддреНрддрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдмрдВрдз, рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдирд╛ рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерди рджрд┐рд▓реЗ рдЬрд╛рддреЗ. EdgeDB рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрдХреАрдордЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ, рдЬреА рдХрд╛рд╣реА рдкреНрд░рдорд╛рдгрд╛рдд ORM рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЗ, рддреНрдпрд╛рдд рд╕реНрдХреАрдорд╛ рдорд┐рдХреНрд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рднрд┐рдиреНрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреАрд▓ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдПрдХрд╛рддреНрдорд┐рдХ JSON рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.

рд╕реНрдХреАрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддрд╛рдд - рд╡реЗрдЧрд│реНрдпрд╛ esdl рдлрд╛рдИрд▓рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реА рд╕реНрдХреАрдорд╛ рдмрджрд▓рд▓реНрдпрд╛рдирдВрддрд░, рдлрдХреНрдд "edgedb migration create" рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛ рдЖрдгрд┐ DBMS рд╕реНрдХреАрдорд╛рдордзреАрд▓ рдлрд░рдХрд╛рдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрд▓ рдЖрдгрд┐ рдкрд░рд╕реНрдкрд░рд░рд┐рддреНрдпрд╛ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░реЗрд▓. рдирд╡реАрди рдпреЛрдЬрдирд╛. рд╕реНрдХреАрдорд╛ рдмрджрд▓рд╛рдВрдЪрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЖрдкреЛрдЖрдк рдЯреНрд░реЕрдХ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдХреНрд╡реЗрд░реА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, GraphQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЖрдгрд┐ рдкреНрд░реЛрдкреНрд░рд╛рдпрдЯрд░реА EdgeDB рднрд╛рд╖рд╛, рдЬреА рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛рд╕рд╛рдареА SQL рдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдЖрд╣реЗ, рджреЛрдиреНрд╣реА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд. рд╕реВрдЪреАрдРрд╡рдЬреА, рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рд╕рдВрд░рдЪрд┐рдд рдкрджреНрдзрддреАрдиреЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕рдмрдХреНрд╡реЗрд░реАрдЬ рдЖрдгрд┐ рдЬреЙрдЗрдиреНрд╕рдРрд╡рдЬреА, рддреБрдореНрд╣реА рдПрдХ EdgeQL рдХреНрд╡реЗрд░реА рджреБрд╕рд░реНтАНрдпрд╛ рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдореНрд╣рдгреВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдгрд┐ рдЪрдХреНрд░ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд. рдЪрд┐рддреНрд░рдкрдЯ рдирд┐рд╡рдбрд╛ { рд╢реАрд░реНрд╖рдХ, рдЕрднрд┐рдиреЗрддреЗ: { рдирд╛рд╡ } } рдлрд┐рд▓реНрдЯрд░ .рд╢реАрд░реНрд╖рдХ = "рдж рдореЕрдЯреНрд░рд┐рдХреНрд╕" рдШрд╛рд▓рд╛ рдЪрд┐рддреНрд░рдкрдЯ { рд╢реАрд░реНрд╖рдХ := "рдж рдореЕрдЯреНрд░рд┐рдХреНрд╕ рдкреБрдирд░реБрддреНрдерд╛рди", рдЕрднрд┐рдиреЗрддреЗ := ( рд╡реНрдпрдХреНрддреА рдлрд┐рд▓реНрдЯрд░ рдирд┐рд╡рдбрд╛ . { 'рдХреЗрдиреВ рд░реАрд╡реНрд╣реНрд╕', 'рдХреЕрд░реА- рдЕреЕрди рдореЙрд╕', 'рд▓реЙрд░реЗрдиреНрд╕ рдлрд┐рд╢рдмрд░реНрди' } ) } {0, 1, 2, 3} рдпреБрдирд┐рдпрдирдордзреАрд▓ рд╕рдВрдЦреНрдпреЗрд╕рд╛рдареА ( { рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛ + 0.5 } рдирд┐рд╡рдбрд╛);

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛