рд░рд┐рд▓реЗрд╢рдирд▓ рдЧреНрд░рд╛рдл DBMS EdgeDB 2.0 рдХреЛ рд░рд┐рд▓реАрдЬ

EdgeDB 2.0 DBMS рдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд░рд┐рд▓реЗрд╕рдирд▓ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓ рд░ EdgeQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рдЬрдЯрд┐рд▓ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдЕрдиреБрдХреВрд▓рд┐рддред рдХреЛрдб рдкрд╛рдЗрдерди рд░ рд░рд╕реНрдЯ (рдкрд╛рд░реНрд╕рд░ рд░ рдкреНрд░рджрд░реНрд╢рди-рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧрд╣рд░реВ) рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ Apache 2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛ PostgreSQL рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдПрдб-рдЕрдирдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рднрдЗрд░рд╣реЗрдХреЛ рдЫред рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкрд╛рдЗрдерди, рдЧреЛ, рд░рд╕реНрдЯ рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХрд╛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫрдиреНред DBMS рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд░ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (REPL) рдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рддрд╛рд▓рд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рдХреЛ рд╕рдЯреНрдЯрд╛, EdgeDB рд╡рд╕реНрддреБ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рд╡рд┐рджреЗрд╢реА рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛, рд╕рдиреНрджрд░реНрднрджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЩреНрдХ рдЧрд░реНрдиреЗ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдз рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ (рдПрдЙрдЯрд╛ рд╡рд╕реНрддреБ рдЕрд░реНрдХреЛ рд╡рд╕реНрддреБрдХреЛ рдЧреБрдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

рд╡реНрдпрдХреНрддрд┐ рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН { рдЖрд╡рд╢реНрдпрдХ рд╕рдореНрдкрддреНрддрд┐ рдирд╛рдо -> str; } рдкреНрд░рдХрд╛рд░ рдЪрд▓рдЪрд┐рддреНрд░ { рдЖрд╡рд╢реНрдпрдХ рд╕рдореНрдкрддреНрддрд┐ рд╢реАрд░реНрд╖рдХ -> str; рдмрд╣реБ рд▓рд┐рдЩреНрдХ рдЕрднрд┐рдиреЗрддрд╛рд╣рд░реВ -> рд╡реНрдпрдХреНрддрд┐; }

рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдХреНрд╡реЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдмрд▓рд┐рдпреЛ рд╕рдореНрдкрддреНрддрд┐ рдЯрд╛рдЗрдкрд┐рдЩ, рд╕рдореНрдкрддреНрддрд┐ рдореВрд▓реНрдп рдкреНрд░рддрд┐рдмрдиреНрдз, рдЧрдгрдирд╛ рдЧреБрдгрд╣рд░реВ, рд░ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкрдирд┐ рд╕рдорд░реНрдерд┐рдд рдЫрдиреНред EdgeDB рд╡рд╕реНрддреБ рднрдгреНрдбрд╛рд░рдг рдпреЛрдЬрдирд╛рдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ, рдЬреБрди рдХреЗрд╣реА рд╣рджрд╕рдореНрдо ORM рдХреЛ рд╕рдореНрдЭрдирд╛ рджрд┐рд▓рд╛рдЙрдиреЗ рдЫ, рдпрд╕рдорд╛ рдпреЛрдЬрдирд╛рд╣рд░реВ рдорд┐рд╢реНрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛, рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрд╣рд░реВрдмрд╛рдЯ рд▓рд┐рдЩреНрдХ рдЧреБрдгрд╣рд░реВ, рд░ рдПрдХреАрдХреГрдд JSON рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЫред

рдмрд┐рд▓реНрдЯ-рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕реНрдХрд┐рдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ - рдЫреБрдЯреНрдЯреИ esdl рдлрд╛рдЗрд▓рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕реНрдХреАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрдкрдЫрд┐, рдХреЗрд╡рд▓ "рдПрдЬреНрдбрдмреА рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╕рд┐рд░реНрдЬрдирд╛" рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рд░ DBMS рд▓реЗ рд╕реНрдХреАрдорд╛рдорд╛ рднрд┐рдиреНрдирддрд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреЗрдЫ рд░ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗрдЫред рдирдпрд╛рдБ рдпреЛрдЬрдирд╛ред рд╕реНрдХрд┐рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░рд┐рдиреНрдЫред

рдХреНрд╡реЗрд░реАрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди, рджреБрд╡реИ GraphQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ EdgeDB рднрд╛рд╖рд╛, рдЬреБрди рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ SQL рдХреЛ рдЕрдиреБрдХреВрд▓рди рд╣реЛ, рд╕рдорд░реНрдерд┐рдд рдЫрдиреНред рд╕реВрдЪреАрд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛, рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╕рдВрд░рдЪрд┐рдд рддрд░рд┐рдХрд╛рдорд╛ рдврд╛рдБрдЪрд╛рдмрджреНрдз рд╣реБрдиреНрдЫрдиреН, рд░ рд╕рдмрдХреНрд╡реЗрд░реАрд╣рд░реВ рд░ JOINs рдХреЛ рд╕рдЯреНрдЯрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ рдХреНрд╡реЗрд░реА рднрд┐рддреНрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХреЛ рд░реВрдкрдорд╛ рдПрдЙрдЯрд╛ EdgeQL рдХреНрд╡реЗрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд▓реЗрдирджреЗрди рд░ рдЪрдХреНрд░ рд╕рдорд░реНрдерд┐рдд рдЫрдиреНред

рдЪрд▓рдЪрд┐рддреНрд░ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН { рд╢реАрд░реНрд╖рдХ, рдЕрднрд┐рдиреЗрддрд╛рд╣рд░реВ: { рдирд╛рдо } } рдлрд┐рд▓реНрдЯрд░ .title = "рдж рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕" рд╕рдореНрдорд┐рд▓рд┐рдд рдЪрд▓рдЪрд┐рддреНрд░ { рд╢реАрд░реНрд╖рдХ := "рдж рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ рдкреБрдирд░реБрддреНрдерд╛рди", рдЕрднрд┐рдиреЗрддрд╛рд╣рд░реВ := ( рд╡реНрдпрдХреНрддрд┐ рдлрд┐рд▓реНрдЯрд░ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН .рдирд╛рдо { 'рдХреЗрдиреБ рд░рд┐рднреНрд╕', 'рдХреНрдпрд╛рд░реА- Anne Moss', 'Laurence Fishburne' } ) } {0, 1, 2, 3} union рдорд╛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ ( { number, number + 0.5 } рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН );

рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛:

  • рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд┐рдд рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдердкрд┐рдПрдХреЛ рдЫ, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд╛рдЯрд╛ рд╣реЗрд░реНрди рд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди, EdgeQL рдХреНрд╡реЗрд░реАрд╣рд░реВ рдЪрд▓рд╛рдЙрди рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рднрдгреНрдбрд╛рд░рдг рдпреЛрдЬрдирд╛рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЗрдиреНрдЯрд░рдлреЗрд╕ "edgedb ui" рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕ рдкрдЫрд┐ рдпреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд╣реБрдБрдЪ рдЧрд░реНрджрд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫред
    рд░рд┐рд▓реЗрд╢рдирд▓ рдЧреНрд░рд╛рдл DBMS EdgeDB 2.0 рдХреЛ рд░рд┐рд▓реАрдЬ
  • "GROUP" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рд░ рдбреЗрдЯрд╛ рд░ рд╕рдореВрд╣ рдбреЗрдЯрд╛рд▓рд╛рдИ рдордирдкрд░реНрдиреЗ EdgeQL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ, SELECT рдЕрдкрд░реЗрд╕рдирдорд╛ рд╕рдореВрд╣ рдмрдирд╛рдЙрдиреЗ рдЬрд╕реНрддреИред
  • рд╡рд╕реНрддреБ рд╕реНрддрд░рдорд╛ рдкрд╣реБрдБрдЪ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред рдкрд╣реБрдБрдЪ рдирд┐рдпрдорд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рд╕реНрдХрд┐рдорд╛ рд╕реНрддрд░рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд▓реНрдпрд╛рдЙрдиреБрд╣реЛрд╕реН, рдШреБрд╕рд╛рдЙрдиреБрд╣реЛрд╕реН, рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН, рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЕрдкрд░реЗрд╢рдирд╣рд░реВрдорд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓рд╛рдИ рд╕реАрдорд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ рдПрдХ рдирд┐рдпрдо рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рд▓реЗрдЦрдХрд▓рд╛рдИ рдорд╛рддреНрд░ рдкреНрд░рдХрд╛рд╢рди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • рднрдгреНрдбрд╛рд░рдг рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдЪрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛред рдирдпрд╛рдБ рдЧреНрд▓реЛрдмрд▓ рдЪрд░ current_user рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдмрд╛рдБрдзреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдорд╛рдирд╣рд░реВрдХреЛ рджрд╛рдпрд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • EdgeDB рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХрд▓рд▓рд╛рдИ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдпрд╕рд▓реЗ рдПрдЙрдЯреИ рдиреЗрдЯрд╡рд░реНрдХ рдЬрдбрд╛рди рднрд┐рддреНрд░ рдзреЗрд░реИ рдлрд░рдХ рд╕рддреНрд░рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрджреИ, HTTP рдорд╛рд░реНрдлрдд рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрджреИ, рдЧреНрд▓реЛрдмрд▓ рдЪрд░рд╣рд░реВ рд░ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред
  • рд╕рдХреЗрдЯ рд╕рдХреНрд░рд┐рдпрддрд╛рдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рд░реНрднрд░ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд▓рд╛рдИ рдореЗрдореЛрд░реАрдорд╛ рд░рд╛рдЦреНрди рд░ рдЬрдбрд╛рди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рдорд╛рддреНрд░ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА)ред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди