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

рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ
Polyglot рджреГрдврддрд╛
рдорд╛рдерд┐рдХреЛ рддрдереНрдпрд▓рд╛рдИ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ рдХрд┐ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдПрдХ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдврд╛рдБрдЪрд╛ рднрд┐рддреНрд░ рдкрдирд┐ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдзреЗрд░реИ рдлрд░рдХ DBMSs рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╕рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рдЖрдлреНрдиреИ рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред M. Fowler рдХреЛ рд╣рд▓реНрдХрд╛ рд╣рд╛рдд рд╕рдВрдЧ, рдзреЗрд░реИ рдкреНрд░рд╕рд┐рджреНрдз рдкреБрд╕реНрддрдХрд╣рд░реВ рд░ рдПрдХ рдЪреБрд╕реНрдд рдШреЛрд╖рдгрд╛рдкрддреНрд░, рдпреЛ рдЕрд╡рд╕реНрдерд╛ рднрдирд┐рдиреНрдЫ рдмрд╣реБ-рд╡рд┐рд╡рд┐рдз рднрдгреНрдбрд╛рд░рдг ("рдкреЛрд▓рд┐рдЧреНрд▓реЛрдЯ рджреГрдврддрд╛")ред
рдлрд╛рдЙрд▓рд░рд╕рдБрдЧ рдИ-рд╡рд╛рдгрд┐рдЬреНрдпрдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рдкреВрд░реНрдг-рд╡рд┐рд╢реЗрд╖ рд░ рдЙрдЪреНрдЪ-рд▓реЛрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреЗ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдкрдирд┐ рдЫред

рдпреЛ рдЙрджрд╛рд╣рд░рдг, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдХреЗрд╣реА рд╣рджрд╕рдореНрдо рдЕрддрд┐рд░рдВрдЬрд┐рдд рдЫ, рддрд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдХ рд╡рд╛ рдЕрд░реНрдХреЛ DBMS рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ рдкрдХреНрд╖рдорд╛ рдХреЗрд╣реА рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, .
рдпрд╕реНрддреЛ рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛рдорд╛ рд╕реЗрд╡рдХ рд╣реБрди рд╕рдЬрд┐рд▓реЛ рдЫреИрди рднрдиреНрдиреЗ рд╕реНрдкрд╖реНрдЯ рдЫред
- рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рдХреЛрдбрдХреЛ рдорд╛рддреНрд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ DBMS рдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдЕрдиреБрдкрд╛рддрдорд╛ рдмрдвреНрдЫ; рдХреЛрдб рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдбрд╛рдЯрд╛рдХреЛ рдорд╛рддреНрд░рд╛ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫ рдпрджрд┐ рдпреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╡рд░реНрдЧрд╕рдБрдЧ рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рдЫреИрдиред
- рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ DBMS рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдПрдХ рдЧреБрдгрд╛рдХреЛ рд░реВрдкрдорд╛, рдкреНрд░рддреНрдпреЗрдХ DBMS рд╣рд░реВрдХреЛ рдЙрджреНрдпрдо рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛, рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛) рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд▓рд╛рдЧрдд рдмрдвреНрдЫред
- рд╕рдордЧреНрд░ рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЙрджреНрдпрдо рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫ - рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд▓реЗрдирджреЗрдирд╢реАрд▓рддрд╛ред
рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛ рдирд┐рд░реНрджреЗрд╢рдХрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рд╕рдмреИ рдХреБрд░рд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
- DBMS рдирд┐рд░реНрдорд╛рддрд╛рдмрд╛рдЯ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рд░ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рд╣рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрддрдорд╛ рдмрд╣реБ рд╡реГрджреНрдзрд┐ред
- рдУрднрд░ рд╕реНрдЯрд╛рдлрд┐рдЩ рд░ рдореНрдпрд╛рдж рдердкрд┐рдпреЛред
- рдбреЗрдЯрд╛ рдЕрд╕рдВрдЧрддрд┐рдХреЛ рдХрд╛рд░рдг рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рддреНрддреАрдп рдШрд╛рдЯрд╛ рд╡рд╛ рджрдгреНрдбред
рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡рдХреЛ рдХреБрд▓ рд▓рд╛рдЧрдд (TCO) рдорд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рднрдПрдХреЛ рдЫред рдХреЗ рддреНрдпрд╣рд╛рдБ "рдмрд╣реБ рднрдгреНрдбрд╛рд░рдг рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ" рдХреЛ рд╕реНрдерд┐рддрд┐рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреЗ рдХреБрдиреИ рдЙрдкрд╛рдп рдЫ?
рдмрд╣реБ-рдореЛрдбреЗрд▓
"рдмрд╣реБрднрд┐рдиреНрди рднрдгреНрдбрд╛рд░рдг" рд╢рдмреНрдж 2011 рдорд╛ рдкреНрд░рдпреЛрдЧрдорд╛ рдЖрдпреЛред рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдЬрд╛рдЧрд░реВрдХрддрд╛ рд░ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЦреЛрдЬреАрдорд╛ рдзреЗрд░реИ рд╡рд░реНрд╖ рд▓рд╛рдЧреНрдпреЛ, рд░ 2015 рд╕рдореНрдо, рдЧрд╛рд░реНрдЯрдирд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВрдХреЛ рдореБрдЦрдмрд╛рдЯ, рдЬрд╡рд╛рдл рддрдпрд╛рд░ рднрдпреЛ:
- рдмрд╛рдЯ ""
DBMSs рдХреЛ рднрд╡рд┐рд╖реНрдп, рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдмрд╣реБ-рдореЛрдбреЗрд▓ рд╣реЛред
- рдмрд╛рдЯ ""
рдЕрдЧреНрд░рдгреА рдкрд░рд┐рдЪрд╛рд▓рди DBMSs рд▓реЗ рдПрдХрд▓ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдмрд╣реБрд╡рд┐рдз рдореЛрдбреЗрд▓рд╣рд░реВ - рд░рд┐рд▓реЗрд╢рдирд▓ рд░ рдЧреИрд░-рд░рд┐рд▓реЗрд╢рдирд▓ - рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫред
рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдпрд╕ рдкрдЯрдХ рдЧрд╛рд░реНрдЯрдирд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрдорд╛ рд╕рд╣реА рдерд┐рдПред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреГрд╖реНрдардорд╛ рдЬрд╛рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ DB-рдЗрдиреНрдЬрд┐рдирд╣рд░реВрдорд╛ DBMS, рддрдкрд╛рдИрдВрд▓реЗ рддреНрдпреЛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ╨╛рдпрд╕рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗрддрд╛рд╣рд░реВрд▓реЗ рдЖрдлреВрд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMSs рдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦреНрдЫрдиреНред рдЙрд╣реА рдХреБрдиреИ рдкрдирд┐ рдирд┐рдЬреА рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдкреГрд╖реНрдардорд╛ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред
рддрд▓рдХреЛ рддрд╛рд▓рд┐рдХрд╛рд▓реЗ DBMS рджреЗрдЦрд╛рдЙрдБрдЫ - рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдЬреА рдореВрд▓реНрдпрд╛рдЩреНрдХрдирдорд╛ рд▓рд┐рдбрд░рд╣рд░реВ, рдЬрд╕рд▓реЗ рдмрд╣реБ-рдореЛрдбреЗрд▓ рднрдПрдХреЛ рджрд╛рдмреА рдЧрд░реНрджрдЫред рдкреНрд░рддреНрдпреЗрдХ DBMS рдХреЛ рд▓рд╛рдЧрд┐, рдореВрд▓ рд╕рдорд░реНрдерд┐рдд рдореЛрдбреЗрд▓ (рдЬреБрди рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдерд┐рдпреЛ) рд░ рдпрд╕рдХреЛ рд╕рд╛рдердорд╛ рд╣рд╛рд▓ рд╕рдорд░реНрдерд┐рдд рдореЛрдбреЗрд▓рд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫред DBMS рд╣рд░реВ рдкрдирд┐ рд╕реВрдЪреАрдмрджреНрдз рдЫрдиреН рдЬрд╕рд▓реЗ рдЖрдлреВрд▓рд╛рдИ "рдореВрд▓ рд░реВрдкрдорд╛ рдмрд╣реБ-рдореЛрдбреЗрд▓" рдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦреНрдЫрдиреН рд░, рд╕рд┐рд░реНрдЬрдирд╛рдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рдХреБрдиреИ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдЧрдд рдореЛрдбреЗрд▓ рдЫреИрдиред
| DBMS | рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдореЛрдбреЗрд▓ | рдЕрддрд┐рд░рд┐рдХреНрдд рдореЛрдбреЗрд▓рд╣рд░реВ |
|---|---|---|
| рдмрдЬреЗрдЯ | рд╕рдореНрдмрдиреНрдзрдЧрдд | рдЧреНрд░рд╛рдл, рдХрд╛рдЧрдЬрд╛рдд |
| рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ | рд╕рдореНрдмрдиреНрдзрдЧрдд | рдЧреНрд░рд╛рдл, рдХрд╛рдЧрдЬрд╛рдд |
| PostgreSQL | рд╕рдореНрдмрдиреНрдзрдЧрдд | рдЧреНрд░рд╛рдл*, рдХрд╛рдЧрдЬрд╛рдд |
| MarkLogic | рд╡реГрддреНрддрдЪрд┐рддреНрд░ | рдЧреНрд░рд╛рдл, рд╕рд╛рдкреЗрдХреНрд╖ |
| MongoDB | рд╡реГрддреНрддрдЪрд┐рддреНрд░ | рдХреБрдЮреНрдЬреА-рдорд╛рди, рдЧреНрд░рд╛рдл* |
| рдбрд╛рдЯрд╛рд╕реНрдЯреНрдпрд╛рдХреНрд╕ | рдЪреМрдбрд╛ рд╕реНрддрдореНрдн | рд╡реГрддреНрддрдЪрд┐рддреНрд░, рдЧреНрд░рд╛рдл |
| Redis | рдХреБрдЮреНрдЬреА-рдорд╛рди | рд╡реГрддреНрддрдЪрд┐рддреНрд░, рдЧреНрд░рд╛рдл* |
| ArangoDB | - | рдЧреНрд░рд╛рдл, рдХрд╛рдЧрдЬрд╛рдд |
| рдУрд░рд┐рдПрдиреНрдЯрдбреАрдмреА | - | рдЧреНрд░рд╛рдл, рдХрд╛рдЧрдЬрд╛рдд, рд╕рд╛рдкреЗрдХреНрд╖ |
| Azure CosmosDB | - | рдЧреНрд░рд╛рдл, рдХрд╛рдЧрдЬрд╛рдд, рд╕рд╛рдкреЗрдХреНрд╖ |
рдЯреЗрдмреБрд▓рдорд╛ рдиреЛрдЯрд╣рд░реВ
рд░рд┐рдЬрд░реНрднреЗрд╕рдирд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рддрд╛рд░рд╛ рдЪрд┐рдиреНрд╣рд╣рд░реВ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдБрдЫрдиреН:
- PostgreSQL DBMS рд▓реЗ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рддрд░ рдпреЛ рдЙрддреНрдкрд╛рджрдирд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ , рдЬрд╕реНрддреИ AgensGraphред
- MongoDB рдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛, рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдорд╛ рдЧреНрд░рд╛рдл рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреБ рдмрдвреА рд╕рд╣реА рдЫ (, ) рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рднрдиреНрджрд╛, рдпрджреНрдпрдкрд┐, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрд░рд┐рдЪрдпрд▓реЗ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рджрд┐рд╢рд╛рдорд╛ рднреМрддрд┐рдХ рднрдгреНрдбрд╛рд░рдг рд╕реНрддрд░рдорд╛ рдХреЗрд╣реА рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред
- Redis рдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛, рд╣рд╛рдореНрд░реЛ рдорддрд▓рдм рд╡рд┐рд╕реНрддрд╛рд░ .
рдЕрд░реНрдХреЛ, рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдпреЛ рдХрдХреНрд╖рд╛рдмрд╛рдЯ DBMS рдорд╛ рдзреЗрд░реИ рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫреМрдВред рд╣рд╛рдореА рд░рд┐рд▓реЗрд╕рдирд▓, рдХрд╛рдЧрдЬрд╛рдд рд░ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд╣рд░реВрд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдорд╛рдиреНрдиреЗрдЫреМрдВ рд░ "рд╣рд░рд╛рдПрдХрд╛рд╣рд░реВ" рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫрдиреН рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ DBMS рд╣рд░реВрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред
рд░рд┐рд▓реЗрд╢рдирд▓ рдореЛрдбреЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS
рдкреНрд░рдореБрдЦ DBMSs рд╣рд╛рд▓ рд░рд┐рд▓реЗрд╢рдирд▓ рдЫрдиреН; рдЧрд╛рд░реНрдЯрдирд░рдХреЛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрд▓рд╛рдИ рд╕рддреНрдп рдорд╛рдиреНрди рд╕рдХрд┐рдБрджреИрди рдпрджрд┐ RDBMSs рд▓реЗ рдмрд╣реБ-рдореЛрдбрд▓рд┐рдВрдЧрдХреЛ рджрд┐рд╢рд╛рдорд╛ рдЖрдиреНрджреЛрд▓рди рджреЗрдЦрд╛рдЙрдБрджреИрди рднрдиреЗред рд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдЫрдиреНред рдЕрдм рдПрдХ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS рд╕реНрд╡рд┐рд╕ рдЪрдХреНрдХреБ рдЬрд╕реНрддреИ рд╣реЛ, рдЬреБрди рдХреЗрд╣рд┐ рд░рд╛рдореНрд░реЛ рдЧрд░реНрди рд╕рдХреНрджреИрди, рд╕реАрдзрд╛ рд▓реНрдпрд╛рд░реА рдПрд▓рд┐рд╕рдирд▓рд╛рдИ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рд▓реЗрдЦрдХ, рддрдерд╛рдкрд┐, Microsoft SQL рд╕рд░реНрднрд░рдорд╛ рдмрд╣реБ-рдореЛрдбрд▓рд┐рдВрдЧрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдиреНрдЫрдиреН, рдЬрд╕рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдХрд╛рдЧрдЬрд╛рдд рд░ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ RDBMS рд╕рдорд░реНрдерди рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫред
MS SQL рд╕рд░реНрднрд░рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓
MS SQL рд╕рд░реНрднрд░рд▓реЗ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ Habr├й рдорд╛ рджреБрдИрд╡рдЯрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦрд╣рд░реВ рдЫрдиреН; рдо рдЖрдлреИрд▓рд╛рдИ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░рд┐рдЯреЗрд▓рд┐рдЩ рд░ рдХрдореЗрдиреНрдЯрд░реАрдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрдиреЗрдЫреБ:
MS SQL рд╕рд░реНрднрд░рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рд░рд┐рд▓реЗрд╢рдирд▓ DBMSs рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрджрдо рд╕рд╛рдорд╛рдиреНрдп рдЫ: JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рда рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдпреЛ JSON рдкрд╛рд░реНрд╕ рдЧрд░реНрди рд╡рд┐рд╢реЗрд╖ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБ рд╣реЛ:
- рд╕реНрдХреЗрд▓рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдирд╣рд░реВ рдирд┐рдХрд╛рд▓реНрди,
- рдЙрдк-рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдирд┐рдХрд╛рд▓реНрдиред
рджреБрдмреИ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрдХреЛ рджреЛрд╕реНрд░реЛ рддрд░реНрдХ JSONPath-рдЬрд╕реНрддреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рдорд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛред
рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рд╣рд╛рдореА рднрдиреНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХрд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ "рдкреНрд░рдердо-рдХрдХреНрд╖рд╛ рд╕рдВрд╕реНрдерд╛рд╣рд░реВ" рд╕рдореНрдмрдиреНрдзрдорд╛ DBMS рдорд╛, рдЯрдкрд▓реНрд╕рдХреЛ рд╡рд┐рдкрд░реАрдд рд╣реЛрдЗрдирдиреНред рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, MS SQL рд╕рд░реНрднрд░рдорд╛ JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рдлрд┐рд▓реНрдбрд╣рд░реВрдорд╛ рд╣рд╛рд▓ рдХреБрдиреИ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдЫреИрдирдиреН, рдЬрд╕рд▓реЗ рдпреА рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрди рдЧрд╛рд╣реНрд░реЛ рдмрдирд╛рдЙрдБрдЫ рд░ рдпреА рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдкрдирд┐ рдЪрдпрди рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдпрд╕реНрддреЛ рдлрд┐рд▓реНрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╕реНрддрдореНрдн рд░ рдпрд╕рдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
рдердк рд░реВрдкрдорд╛, MS SQL рд╕рд░реНрднрд░рд▓реЗ рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реАрдмрд╛рдЯ JSON рдХрд╛рдЧрдЬрд╛рдд рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред - рдПрдХ рд╕рдореНрднрд╛рд╡рдирд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд░реНрдердорд╛, рдЕрдШрд┐рд▓реНрд▓реЛрдХреЛ рд╡рд┐рдкрд░реАрдд, рдкрд░рдореНрдкрд░рд╛рдЧрдд рднрдгреНрдбрд╛рд░рдгред рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ RDBMS рдЬрддрд┐рд╕реБрдХреИ рдЫрд┐рдЯреЛ рд╣реЛрд╕реН, рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдЧрдЬрд╛рдд DBMSs рдХреЛ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛рдХреЛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕рдкреВрд░реНрдг рдЫ, рдЬрд╕рд▓реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рддрдпрд╛рд░ рдЬрд╡рд╛рдлрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ, рд░ рд╡рд┐рдХрд╛рд╕рдХреЛ рд╕рд╣рдЬрддрд╛рдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫ, рддрд░ рдЧрддрд┐ рд╣реЛрдЗрдиред
рдЕрдиреНрддрдорд╛, MS SQL рд╕рд░реНрднрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд╛рдЧрдЬрд╛рдд рдирд┐рд░реНрдорд╛рдгрдХреЛ рд╡рд┐рдкрд░рд┐рдд рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ: рддрдкрд╛рдИрдВрд▓реЗ JSON рд▓рд╛рдИ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рд╡рд┐рдШрдЯрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ ред рдпрджрд┐ рдХрд╛рдЧрдЬрд╛рдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорддрд▓ рдЫреИрди рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ CROSS APPLY.
MS SQL рд╕рд░реНрднрд░рдорд╛ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓
рдЧреНрд░рд╛рдл (LPG) рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрдирд┐ Microsoft SQL Server рдорд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ : рдпреЛ рдиреЛрдбрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд░ рдЧреНрд░рд╛рдл рдХрд┐рдирд╛рд░рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред рддреНрдпрд╕реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ CREATE TABLE AS NODE ╨╕ CREATE TABLE AS EDGE рдХреНрд░рдорд╢рдГред
рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХрд╛рд░рдХрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд░реЗрдХрд░реНрдбрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬрд╕реНрддреИ рд╣реБрдиреНрдЫрдиреН, рдХреЗрд╡рд▓ рдмрд╛рд╣реНрдп рднрд┐рдиреНрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛рд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реЗрддреНрд░ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред $node_id - рдбрд╛рдЯрд╛рдмреЗрд╕ рднрд┐рддреНрд░ рдЧреНрд░рд╛рдл рдиреЛрдбрдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ред
рддреНрдпрд╕реНрддреИ, рджреЛрд╕реНрд░реЛ рдкреНрд░рдХрд╛рд░рдХрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЫрдиреН $from_id ╨╕ $to_id, рддреНрдпрд╕реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВрд▓реЗ рдиреЛрдбрд╣рд░реВ рдмреАрдЪрдХреЛ рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдореНрдмрдиреНрдзрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
рдпрд╕рд▓рд╛рдИ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдгрджреНрд╡рд╛рд░рд╛ рдмреБрдЭреМрдВред рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рд▓рд╛рдИ рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЬрд╕реНрддреИ рд▓реЗрдЖрдЙрдЯ рд╣реБрди рджрд┐рдиреБрд╣реЛрд╕реНред рддреНрдпрд╕рдкрдЫрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди DDL рдкреНрд░рд╢реНрдирд╣рд░реВ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
CREATE TABLE Person (
ID INTEGER NOT NULL,
name VARCHAR(100)
) AS NODE;
CREATE TABLE Cafe (
ID INTEGER NOT NULL,
name VARCHAR(100),
) AS NODE;
CREATE TABLE likes (
rating INTEGER
) AS EDGE;
CREATE TABLE friendOf
AS EDGE;
ALTER TABLE likes
ADD CONSTRAINT EC_LIKES CONNECTION (Person TO Cafe);рддреНрдпрд╕реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд┐рд░реБрджреНрдзрдХреЛ рдкреНрд░рд╢реНрдирд╣рд░реВрдорд╛ рд╕рд╛рдЗрдлрд░-рдЬрд╕реНрддреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рдХреЛ рд╕рд╛рде рдЧреНрд░рд╛рдл рдврд╛рдБрдЪрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ (рдпрджреНрдпрдкрд┐, "*"рдЗрддреНрдпрд╛рджрд┐ рдЕрдЭреИ рд╕рдорд░реНрдерд┐рдд рдЫреИрди)ред рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдорд╛рдкрдирдХреЛ рдЖрдзрд╛рд░рдорд╛, рдпреЛ рдкрдирд┐ рдорд╛рдиреНрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рдпреА рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рднрдиреНрджрд╛ рдлрд░рдХ рдЫ рд░ рддреНрдпрд╕реНрддрд╛ рдЧреНрд░рд╛рдл рдХреНрд╡реЗрд░реАрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдХреВрд▓рд┐рдд рдЫред
SELECT Cafe.name
FROM Person, likes, Cafe
WHERE MATCH (Person-(friendOf)-(likes)->Cafe)
AND Person.name = 'John';рдпрд╕рдмрд╛рд╣реЗрдХ, рдпрд╕реНрддреЛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рдпреА рдЧреНрд░рд╛рдл рдврд╛рдБрдЪрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрди рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рдЫ, рдХрд┐рдирдХрд┐ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рд╛рдорд╛рдиреНрдп SQL рдкреНрд░рд╢реНрдирд╣рд░реВрдорд╛ рдкреНрд░рдгрд╛рд▓реА "рдЧреНрд░рд╛рдл" рдиреЛрдб рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдердк рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред$node_id, $from_id, $to_id; рдПрдЙрдЯреИ рдХрд╛рд░рдгрд▓реЗ, рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╢реНрдирд╣рд░реВ рдпрд╣рд╛рдБ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫреИрди рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рдмреЛрдЭрд┐рд▓ рдЫрдиреН)ред
MS SQL рд╕рд░реНрднрд░рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рд░ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╡рд┐рд╡рд░рдгрд▓рд╛рдИ рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди, рдо рдиреЛрдЯ рдЧрд░реНрдЫреБ рдХрд┐ рдПрдЙрдЯрд╛ рдореЛрдбреЗрд▓рдХреЛ рдЕрд░реНрдХреЛ рдорд╛рдерд┐рдХреЛ рдпрд╕реНрддреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рдореБрдЦреНрдп рд░реВрдкрдорд╛ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрдирдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рд╕рдлрд▓ рджреЗрдЦрд┐рдБрджреИрдиред рдПрдХ рднрд╛рд╖рд╛рд▓рд╛рдИ рдЕрд░реНрдХреЛрд╕рдБрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рднрд╛рд╖рд╛рд╣рд░реВ рдкреВрд░реНрдгрддрдпрд╛ "рдЕрд░реНрдереЛрдЧреЛрдирд▓" рдЫреИрдирдиреН, рдЕрдиреБрдХреВрд▓рддрд╛ рдирд┐рдпрдорд╣рд░реВ рдзреЗрд░реИ рд╡рд┐рдЪрд┐рддреНрд░ рд╣реБрди рд╕рдХреНрдЫрдиреНред
рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдмрд╣реБ-рдореЛрдбрд▓ DBMS
рдпрд╕ рдЦрдгреНрдбрдорд╛, рдо рддреА рдордзреНрдпреЗ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдирднрдПрдХреЛ, MongoDB (рдЬрд╕реНрддреИ рднрдирд┐рдПрдХреЛ рдерд┐рдпреЛ, рдпрд╕рдорд╛ рдХреЗрд╡рд▓ рд╕рд╢рд░реНрдд рдЧреНрд░рд╛рдл рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рдЫрдиреНред $lookup ╨╕ $graphLookup, рд╢рд╛рд░реНрдбреЗрдб рд╕рдЩреНрдХрд▓рдирд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреИрди), рддрд░ рдЕрдЭ рдкрд░рд┐рдкрдХреНрд╡ рд░ "рдЙрджреНрдпрдо" DBMS рдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ .
рддреНрдпрд╕реЛрднрдП, рд╕рдВрдЧреНрд░рд╣рдорд╛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░рдХрд╛ XML рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реМрдВ (MarkLogic рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдкрдирд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ):
<Person INN="631803299804">
<name>John</name>
<surname>Smith</surname>
</Person>MarkLogic рдорд╛ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЛрдбреЗрд▓
рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рд╕рдЩреНрдХрд▓рдирдХреЛ рд╕рдореНрдмрдиреНрдзрдЧрдд рджреГрд╢реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рддрддреНрд╡рд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реА value рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рддреНрдпрд╣рд╛рдБ рдПрдХ рдордирдорд╛рдиреА XPath рд╣реБрди рд╕рдХреНрдЫ):
<template >
<context>/Person</context>
<rows>
<row>
<view-name>Person</view-name>
<columns>
<column>
<name>SSN</name>
<value>@SSN</value>
<type>string</type>
</column>
<column>
<name>name</name>
<value>name</value>
</column>
<column>
<name>surname</name>
<value>surname</value>
</column>
</columns>
</row>
<rows>
</template>рддрдкрд╛рдИрд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рджреГрд╢реНрдпрд▓рд╛рдИ SQL рдХреНрд╡реЗрд░реАрдХреЛ рд╕рд╛рде рд╕рдореНрдмреЛрдзрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, ODBC рдорд╛рд░реНрдлрдд):
SELECT name, surname FROM Person WHERE name="John"рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдкреНрд░рджрд░реНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд░рд┐рд▓реЗрд╢рдирд▓ рджреГрд╢реНрдп рдкрдвреНрди-рдорд╛рддреНрд░ рд╣реЛред рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛, MarkLogic рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫ ред рдкрд╣рд┐рд▓реЗ, MarkLogic рд╕рдБрдЧ рд╕реАрдорд┐рдд рд╕рдореНрдмрдиреНрдз рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдерд┐рдП, рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд░ рд▓реЗрдЦреНрди рдпреЛрдЧреНрдп, рддрд░ рдЕрдм рддреА рдмрд╣рд┐рд╖реНрдХреГрдд рдорд╛рдирд┐рдиреНрдЫрдиреНред
MarkLogic рдорд╛ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓
рдЧреНрд░рд╛рдл (RDF) рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде, рд╕рдмреИ рдХреБрд░рд╛ рдЙрд╕реНрддреИ рдЫред рд╕рд╛рдердорд╛ рдлреЗрд░рд┐ рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рд╕рдЩреНрдЧреНрд░рд╣рдХреЛ RDF рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
<template >
<context>/Person</context>
<vars>
<var>
<name>PREFIX</name>
<val>"http://example.org/example#"</val>
</var>
</vars>
<triples>
<triple>
<subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
<predicate><value>sem:iri( $PREFIX || surname )</value></predicate>
<object><value>xs:string( surname )</value></object>
</triple>
<triple>
<subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
<predicate><value>sem:iri( $PREFIX || name )</value></predicate>
<object><value>xs:string( name )</value></object>
</triple>
</triples>
</template>рддрдкрд╛рдИрдВрд▓реЗ SPARQL рдХреНрд╡реЗрд░реАрдХреЛ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореА RDF рдЧреНрд░рд╛рдлрд▓рд╛рдИ рд╕рдореНрдмреЛрдзрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
PREFIX : <http://example.org/example#>
SELECT ?name ?surname {
:631803299804 :name ?name ; :surname ?surname .
}рд░рд┐рд▓реЗрд╢рдирд▓ рдПрдХрдХреЛ рд╡рд┐рдкрд░реАрдд, MarkLogic рд▓реЗ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд▓рд╛рдИ рджреБрдИ рдЕрдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ:
- рдПрдХ DBMS RDF рдбрд╛рдЯрд╛рдХреЛ рдкреВрд░реНрдг-рдлреБрд▓рд┐рдПрдХреЛ рдЫреБрдЯреНрдЯреИ рднрдгреНрдбрд╛рд░рдг рд╣реБрди рд╕рдХреНрдЫ (рдпрд╕рдорд╛ рдЯреНрд░рд┐рдкрд▓реЗрдЯрд╣рд░реВ рднрдирд┐рдиреЗрдЫред рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдХреЛ рд╡рд┐рдкрд░реАрдд ).
- рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдордмрджреНрдзрддрд╛рдорд╛ RDF рд▓рд╛рдИ рдХреЗрд╡рд▓ XML рд╡рд╛ JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдорд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЯреНрд░рд┐рдкрд▓реЗрдЯрд╣рд░реВ рдмреЛрд▓рд╛рдЗрдиреЗрдЫред )ред рдпреЛ рд╕рдореНрднрд╡рддрдГ рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ
idrefрд░ рдЕрдиреНрдпред
MarkLogic рдорд╛ рдЪреАрдЬрд╣рд░реВ "рд╡рд╛рд╕реНрддрд╡рдорд╛" рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ рднрдиреНрдиреЗ рд░рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЗрдПрдХреЛ рдЫ , рдпрд╕ рдЕрд░реНрдердорд╛, рдпреЛ рдирд┐рдореНрди-рд╕реНрддрд░ рд╣реЛ, рдпрджреНрдпрдкрд┐ рдпрд╕рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рдкрд░рд┐рдд рд╣реЛ - рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рдмрд╛рдЯ рдЕрдореВрд░реНрдд рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди, рд╡рд┐рднрд┐рдиреНрди рдореЛрдбреЗрд▓рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛рд╕рдБрдЧ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рд▓реЗрдирджреЗрди, рдЖрджрд┐ред
рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS "рдореБрдЦреНрдп рдореЛрдбреЗрд▓ рдмрд┐рдирд╛"
рддреНрдпрд╣рд╛рдБ рдмрдЬрд╛рд░рдорд╛ DBMS рд╣рд░реВ рдкрдирд┐ рдЫрдиреН рдЬрд╕рд▓реЗ рдЖрдлреВрд▓рд╛рдИ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд░реВрдкрдорд╛ рдмрд╣реБ-рдореЛрдбрд▓рдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦреНрдЫрдиреН, рдХреБрдиреИ рдкрдирд┐ рд╡рдВрд╢рд╛рдиреБрдЧрдд рдореБрдЦреНрдп рдореЛрдбреЗрд▓ рдмрд┐рдирд╛ред рдпреА рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН , (реирежрезрео рджреЗрдЦрд┐ рд╡рд┐рдХрд╛рд╕ рдХрдореНрдкрдиреА SAP рдХреЛ рд╣реЛ) рд░ (Microsoft Azure рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рд╕реЗрд╡рд╛)ред
рд╡рд╛рд╕реНрддрд╡рдорд╛, рддреНрдпрд╣рд╛рдБ ArangoDB рд░ OrientDB рдорд╛ "рдХреЛрд░" рдореЛрдбреЗрд▓рд╣рд░реВ рдЫрдиреНред рджреБрдмреИ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рд╣рд░реВ рд╣реБрдиреН, рдЬреБрди рдХрд╛рдЧрдЬрд╛рддрдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдгрд╣рд░реВ рд╣реБрдиреНред рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдгрд╣рд░реВ рдореБрдЦреНрдпрддрдпрд╛ рдЧреНрд░рд╛рдл рд░ рд░рд┐рд▓реЗрд╢рдирд▓ рдкреНрд░рдХреГрддрд┐рдХрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓рд╛рдИ рд╕рд╣рдЬ рдмрдирд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реБрдиреНред
рдпреА рдореЛрдбреЗрд▓рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ DBMS рдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫрдиреН; рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдЖрдлреНрдиреИ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпрд╕реНрддрд╛ рдореЛрдбреЗрд▓рд╣рд░реВ рд░ DBMS рд╣рд░реВ рдЖрд╢рд╛рдЬрдирдХ рдЫрдиреН, рддрд░ рдорд╛рдирдХ рдореЛрдбреЗрд▓рд╣рд░реВ рд░ рднрд╛рд╖рд╛рд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛рдХреЛ рдЕрднрд╛рд╡рд▓реЗ рдпреА DBMS рд╣рд░реВ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрджрдЫ тАФ рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ DBMS рд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиред
Habr├й рдорд╛ ArangoDB рд░ OrientDB рдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдХ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдерд┐рдпреЛ: .
ArangoDB
ArangoDB рд▓реЗ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рджрд╛рдмреА рдЧрд░реНрджрдЫред
ArangoDB рдорд╛ рдЧреНрд░рд╛рдлрдХреЛ рдиреЛрдбрд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╣реБрдиреН, рд░ рдХрд┐рдирд╛рд░рд╣рд░реВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░рдХрд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╣реБрдиреН рдЬреБрди рдирд┐рдпрдорд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВрд╕рдБрдЧреИ, (_key, _id, _rev) рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВ _from ╨╕ _toред рдХрд╛рдЧрдЬрд╛рдд DBMS рдорд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдкрдорд╛ рд╕рдЩреНрдХрд▓рдирдорд╛ рдЬреЛрдбрд┐рдиреНрдЫрдиреНред рдХрд┐рдирд╛рд░рд╛рд╣рд░реВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрдиреЗ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдХреЛ рд╕рдЩреНрдХрд▓рдирд▓рд╛рдИ ArangoDB рдорд╛ рдПрдЬ рд╕рдЩреНрдХрд▓рди рднрдирд┐рдиреНрдЫред рд╡реИрд╕реЗ, рдХрд┐рдирд╛рд░рд╛ рд╕рдЩреНрдХрд▓рди рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдкрдирд┐ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╣реБрдиреН, рддреНрдпрд╕реИрд▓реЗ ArangoDB рдорд╛ рдХрд┐рдирд╛рд░рд╣рд░реВ рдкрдирд┐ рдиреЛрдбрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред
рд╕реНрд░реЛрдд рдбрд╛рдЯрд╛
рд╣рд╛рдореАрд▓рд╛рдИ рдПрдЙрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдЧрд░реМрдВ persons, рдЬрд╕рдХреЛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫрдиреН:
[
{
"_id" : "people/alice" ,
"_key" : "alice" ,
"name" : "╨Р╨╗╨╕╤Б╨░"
},
{
"_id" : "people/bob" ,
"_key" : "bob" ,
"name" : "╨С╨╛╨▒"
}
]рд╕рдВрдЧреНрд░рд╣ рдкрдирд┐ рд╣реЛрд╕реН cafes:
[
{
"_id" : "cafes/jd" ,
"_key" : "jd" ,
"name" : "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜"
},
{
"_id" : "cafes/jj" ,
"_key" : "jj" ,
"name" : "╨Ц╨░╨╜-╨Ц╨░╨║"
}
]рддреНрдпрд╕рдкрдЫрд┐ рд╕рдВрдЧреНрд░рд╣ likes рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
[
{
"_id" : "likes/1" ,
"_key" : "1" ,
"_from" : "persons/alice" ,
"_to" : "cafes/jd",
"since" : 2010
},
{
"_id" : "likes/2" ,
"_key" : "2" ,
"_from" : "persons/alice" ,
"_to" : "cafes/jj",
"since" : 2011
} ,
{
"_id" : "likes/3" ,
"_key" : "3" ,
"_from" : "persons/bob" ,
"_to" : "cafes/jd",
"since" : 2012
}
]рдкреНрд░рд╢реНрди рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ
ArangoDB рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ AQL рднрд╛рд╖рд╛рдорд╛ рдЧреНрд░рд╛рдл-рд╢реИрд▓реА рдХреНрд╡реЗрд░реА, рдХреБрди рдХреНрдпрд╛рдлреЗ рдордирдкрд░реНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдорд╛рдирд╡-рдкрдардиреАрдп рдлрд╛рд░рдо рдЬрд╛рдирдХрд╛рд░реА рдлрд░реНрдХрд╛рдЙрдБрджреИ, рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
FOR p IN persons
FOR c IN OUTBOUND p likes
RETURN { person : p.name , likes : c.name }рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рд╢реИрд▓реАрдорд╛, рдЬрд╣рд╛рдБ рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ "рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ" рд╕рдореНрдмрдиреНрдзрд╣рд░реВ рдЧрд░реНрджреИрдЫреМрдВ, рдпреЛ рдХреНрд╡реЗрд░реА рдпрд╕рд░реА рдкреБрди: рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ (рдпрд╕реИрд▓реЗ, рд╕рдЩреНрдХрд▓рди рдмрд┐рдирд╛ред likes рдмрд┐рдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫ):
FOR p IN persons
FOR l IN likes
FILTER p._key == l._from
FOR c IN cafes
FILTER l._to == c._key
RETURN { person : p.name , likes : c.name }рджреБрд╡реИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реБрдиреЗрдЫ:
[
{ "person" : "╨Р╨╗╨╕╤Б╨░" , likes : "╨Ц╨░╨╜-╨Ц╨░╨║" } ,
{ "person" : "╨Р╨╗╨╕╤Б╨░" , likes : "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜" } ,
{ "person" : "╨С╨╛╨▒" , likes : "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜" }
]рдердк рдкреНрд░рд╢реНрдирд╣рд░реВ рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ
рдпрджрд┐ рдорд╛рдерд┐рдХреЛ рдирддрд┐рдЬрд╛ рдврд╛рдБрдЪрд╛ рдХрд╛рдЧрдЬрд╛рдд DBMS рдХреЛ рддреБрд▓рдирд╛рдорд╛ рд░рд┐рд▓реЗрд╢рдирд▓ DBMS рдХреЛ рд▓рд╛рдЧреА рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпреЛ рдХреНрд╡реЗрд░реА рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рд╡рд╛ рддрдкрд╛рдЗрдБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ ):
FOR p IN persons
RETURN {
person : p.name,
likes : (
FOR c IN OUTBOUND p likes
RETURN c.name
)
}рдкрд░рд┐рдгрд╛рдо рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреЗрдЫ:
[
{ "person" : "╨Р╨╗╨╕╤Б╨░" , likes : ["╨Ц╨░╨╜-╨Ц╨░╨║" , "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜"] } ,
{ "person" : "╨С╨╛╨▒" , likes : ["╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜"] }
]рдУрд░рд┐рдПрдиреНрдЯрдбреАрдмреА
OrientDB рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдЖрдзрд╛рд░ рд╣реЛ рдХрд╛рдЧрдЬрд╛рдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ, рдЕрдзрд┐рдХ рд╡рд╛ рдХрдо рдорд╛рдирдХ рд╕реНрдХреЗрд▓рд░ рдорд╛рдирд╣рд░реВрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрдирд┐ рдорд╛рдирд╣рд░реВ рдЫрдиреН рдЬрд╕реНрддреИ LINK, LINKLIST, LINKSET, LINKMAP ╨╕ LINKBAGред рдпреА рдкреНрд░рдХрд╛рд░рдХрд╛ рдорд╛рдирд╣рд░реВ рд▓рд┐рдЩреНрдХ рд╡рд╛ рд▓рд┐рдЩреНрдХрд╣рд░реВрдХреЛ рд╕рдЩреНрдХрд▓рди рд╣реБрдиреН рдХрд╛рдЧрдЬрд╛рдд
рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рддреЛрдХрд┐рдПрдХреЛ рдХрд╛рдЧрдЬрд╛рдд рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ "рднреМрддрд┐рдХ рдЕрд░реНрде" рдЫ, рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд░реЗрдХрд░реНрдбрдХреЛ рд╕реНрдерд┐рддрд┐рд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджреИ, рд░ рдХреЗрд╣рд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ: @rid : #3:16ред рдпрд╕реИрд▓реЗ, рд╕рдиреНрджрд░реНрдн рдЧреБрдгрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ рд╕рд╛рдБрдЪреНрдЪреИ рд╕рдВрдХреЗрддрдХ рд╣реБрдиреН (рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдорд╛ рдЬрд╕реНрддреИ) рдЪрдпрди рд╕рд░реНрддрд╣рд░реВ рднрдиреНрджрд╛ (рд╕рдореНрдмрдиреНрдзрд┐рдд рдореЛрдбреЗрд▓рдорд╛ рдЬрд╕реНрддреИ)ред
ArangoDB рдЬрд╕реНрддреИ, OrientDB рдорд╛ рдХрд┐рдирд╛рд░рд╣рд░реВ рдЕрд▓рдЧ рдХрд╛рдЧрдЬрд╛рддрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░рд┐рдиреНрдЫ (рдпрджреНрдпрдкрд┐ рдпрджрд┐ рдХрд┐рдирд╛рд░рд╛рдХреЛ рдЖрдлреНрдиреИ рдЧреБрдгрд╣рд░реВ рдЫреИрдирдиреН рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рдмрдирд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред , рд░ рдпреЛ рдПрдХ рдЕрд▓рдЧ рдХрд╛рдЧрдЬрд╛рдд рд╕рдВрдЧ рдореЗрд▓ рдЦрд╛рдБрджреИрди)ред
рд╕реНрд░реЛрдд рдбрд╛рдЯрд╛
рдирдЬрд┐рдХрдХреЛ рдврд╛рдБрдЪрд╛рдорд╛ OrientDB рдбрд╛рдЯрд╛рдмреЗрд╕, ArangoDB рдХреЛ рд▓рд╛рдЧреА рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдХреЗрд╣рд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
[
{
"@type": "document",
"@rid": "#11:0",
"@class": "Person",
"name": "╨Р╨╗╨╕╤Б╨░",
"out_likes": [
"#30:1",
"#30:2"
],
"@fieldTypes": "out_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#12:0",
"@class": "Person",
"name": "╨С╨╛╨▒",
"out_likes": [
"#30:3"
],
"@fieldTypes": "out_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#21:0",
"@class": "Cafe",
"name": "╨Ц╨░╨╜-╨Ц╨░╨║",
"in_likes": [
"#30:2",
"#30:3"
],
"@fieldTypes": "in_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#22:0",
"@class": "Cafe",
"name": "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜",
"in_likes": [
"#30:1"
],
"@fieldTypes": "in_likes=LINKBAG"
},
{
"@type": "document",
"@rid": "#30:1",
"@class": "likes",
"in": "#22:0",
"out": "#11:0",
"since": 1262286000000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
},
{
"@type": "document",
"@rid": "#30:2",
"@class": "likes",
"in": "#21:0",
"out": "#11:0",
"since": 1293822000000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
},
{
"@type": "document",
"@rid": "#30:3",
"@class": "likes",
"in": "#21:0",
"out": "#12:0",
"since": 1325354400000,
"@fieldTypes": "in=LINK,out=LINK,since=date"
}
]рд╣рд╛рдореА рджреЗрдЦреНрди рд╕рдХреНрдЫреМрдВ, рдард╛рдбреЛрд╣рд░реВрд▓реЗ рдЖрдЧрдорди рд░ рдмрд╣рд┐рд░реНрдЧрдорди рдХрд┐рдирд╛рд░рд╣рд░реВ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдкрдирд┐ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред рдорд╛ рдХрд╛рдЧрдЬрд╛рдд API рд▓реЗ рд╕рдиреНрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдгреНрдбрддрд╛ рдЖрдлреИрдВрд▓рд╛рдИ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиреБрдкрд░реНрджрдЫ, рд░ рдЧреНрд░рд╛рдл API рд▓реЗ рдпреЛ рдХрд╛рдо рд▓рд┐рдиреНрдЫред рддрд░ рд╣реЗрд░реМрдВ OrientDB рдХреЛ рдкрд╣реБрдБрдЪ "рд╢реБрджреНрдз" рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдЬреБрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдПрдХреАрдХреГрдд рдЫреИрдиред
рдкреНрд░рд╢реНрди рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ
OrientDB рдорд╛ ArangoDB рдХреЛ рд▓рд╛рдЧрд┐ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдХреНрд╡реЗрд░реАрдХреЛ рдЙрджреНрджреЗрд╢реНрдпрдорд╛ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
SELECT name AS person_name, OUT('likes').name AS cafe_name
FROM Person
UNWIND cafe_nameрдирддрд┐рдЬрд╛ рдирд┐рдореНрди рдлрд╛рд░рдордорд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреЗрдЫ:
[
{ "person_name": "╨Р╨╗╨╕╤Б╨░", "cafe_name": "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜" },
{ "person_name": "╨Р╨╗╨╕╤Б╨░", "cafe_name": "╨Ц╨░╨╜-╨Ц╨░╨║" },
{ "person_name": "╨С╨╛╨▒", "cafe_name": "╨Ц╨░╨╜-╨Ц╨░╨║" }
]рдпрджрд┐ рдирддрд┐рдЬрд╛ рдврд╛рдБрдЪрд╛ рдлреЗрд░рд┐ рдзреЗрд░реИ "рд╕рдореНрдмрдиреНрдзрд┐рдд" рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд░реЗрдЦрд╛ рд╣рдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ :
[
{ "person_name": "╨Р╨╗╨╕╤Б╨░", "cafe_name": [ "╨Ф╨╢╨╛╨╜ ╨Ф╨╛╨╜╨╜", "╨Ц╨░╨╜-╨Ц╨░╨║" ] },
{ "person_name": "╨С╨╛╨▒", "cafe_name": [ "╨Ц╨░╨╜-╨Ц╨░╨║" ' }
]OrientDB рдХреЛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЧреНрд░реЗрдореНрд▓рд┐рди-рдЬрд╕реНрддреИ рд╕рдореНрдорд┐рд▓рд┐рддрд╣рд░реВрд╕рдБрдЧ SQL рдХреЛ рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╕рдВрд╕реНрдХрд░рдг 2.2 рдорд╛, рд╕рд╛рдЗрдлрд░-рдЬрд╕реНрддреЛ рдЕрдиреБрд░реЛрдз рдлрд╛рд░рдо рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ, :
MATCH {CLASS: Person, AS: person}-likes->{CLASS: Cafe, AS: cafe}
RETURN person.name AS person_name, LIST(cafe.name) AS cafe_name
GROUP BY person_nameрдирддрд┐рдЬрд╛рдХреЛ рдврд╛рдБрдЪрд╛ рдЕрдШрд┐рд▓реНрд▓реЛ рдЕрдиреБрд░реЛрдзрдорд╛ рдЬрд╕реНрддреИ рд╣реБрдиреЗрдЫред рдпрд╕рд▓рд╛рдИ рдердк "рд╕рдореНрдмрдиреНрдзрд┐рдд" рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреЗ рд╣рдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реН, рдЬрд╕реНрддреИ рдкрд╣рд┐рд▓реЛ рдкреНрд░рд╢реНрдирдорд╛ред
Azure CosmosDB
рдереЛрд░реИ рд╣рджрд╕рдореНрдо, ArangoDB рд░ OrientDB рдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рдерд┐ рднрдирд┐рдПрдХреЛ рдХреБрд░рд╛ Azure CosmosDB рдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред CosmosDB рд▓реЗ рдирд┐рдореНрди рдбреЗрдЯрд╛ рдкрд╣реБрдБрдЪ API рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ: SQL, MongoDB, Gremlin рд░ Cassandraред
SQL API рд░ MongoDB API рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдорд╛ рдбрд╛рдЯрд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред Gremlin API рд░ Cassandra API - рдХреНрд░рдорд╢рдГ рдЧреНрд░рд╛рдл рд░ рд╕реНрддрдореНрдн рдврд╛рдБрдЪрд╛рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ред рд╕рдмреИ рдореЛрдбреЗрд▓рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ CosmosDB рдЖрдиреНрддрд░рд┐рдХ рдореЛрдбреЗрд▓ рдврд╛рдБрдЪрд╛рдорд╛ рдмрдЪрдд рдЧрд░рд┐рдПрдХреЛ рдЫ: ("рдПрдЯрдо-рд░реЗрдХрд░реНрдб-рдЕрдиреБрдХреНрд░рдо"), рдЬреБрди рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдирдЬрд┐рдХ рдкрдирд┐ рдЫред

рддрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рд░реЛрдЬреЗрдХреЛ рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдПрдкреАрдЖрдИ рд╕реЗрд╡рд╛рдорд╛ рдЦрд╛рддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреНрдЫред рдПрдЙрдЯрд╛ рдореЛрдбреЗрд▓рдорд╛ рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛рд▓рд╛рдИ рдЕрд░реНрдХреЛ рдореЛрдбреЗрд▓рдХреЛ рдврд╛рдБрдЪрд╛рдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫреИрди, рдЬрд╕реНрддреЛ рдХрд┐ рдпреЛ рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ:

рдпрд╕реИрд▓реЗ, Azure CosmosDB рдорд╛ рдмрд╣реБ-рдореЛрдбреЗрд▓ рдЖрдЬ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛рдмрд╛рдЯ рд╡рд┐рднрд┐рдиреНрди рдореЛрдбреЗрд▓рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдорд╛рддреНрд░ рд╣реЛ, рдЬрд╕рд▓реЗ рдмрд╣реБ-рднреНрдпрд╛рд░рд┐рдПрдиреНрдЯ рднрдгреНрдбрд╛рд░рдгрдХрд╛ рд╕рдмреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджреИрдиред
рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS?
рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдмрдЬрд╛рд░рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS рд╣рд░реВ рдЫреИрдирдиреН рдЬреБрди рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН (рдПрдХреИ рд╕рд╛рде рджреБрдИ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБ-рдореЛрдбреЗрд▓ рд╕рдорд░реНрдерди рдмрд╛рд╣реЗрдХ: RDF рд░ LPG; рдпрд╕рд▓рд╛рдИ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред )ред рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖рд┐рдХ рднрдиреНрджрд╛ред
рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рд░рд┐рд▓реЗрд╕рдирд▓ рдореЛрдбреЗрд▓ рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдкреНрд░рд╢реНрди рдкрдЫрд┐рдХреЛ рдЧрдардирдХреЛ рд╕рдордпрдорд╛ рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдХрд╕рд░реА рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ :
рдЧреНрд░рд╛рдл рджреГрд╖реНрдЯрд┐рдХреЛрдгрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдЫреИрди рдЬрд╕рд▓реЗ рдЧреНрд░рд╛рдл рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рддрд╣ (рдЬрд╕реНрддреИ, рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рджреНрд╡рд╛рд░рд╛) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрдЫ рдЬрд╕рд▓реЗ (рез) рд╕рд╛рдорд╛рдиреНрдп рдХреБрдЮреНрдЬреА рдорд╛рди рдЬреЛрдбреАрд╣рд░реВрдмрд╛рдЯ рдЯреНрдпреБрдкрд▓рд╣рд░реВрдХреЛ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рд░ (реи) рд╕рдореВрд╣реАрдХрд░рдгрдХреЛ рд╕рд╛рде рдПрдХ рд╕рдореНрдмрдиреНрдзрд╛рддреНрдордХ рджреГрд╢реНрдп рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫред рд╕рдореНрдмрдиреНрдз рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ tuplesред
рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рджрд┐рдорд╛рдЧрдорд╛ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдирд┐рдореНрди:
- JSON рдПрд░реНрд░реЗрдХрд╛ рддрддреНрд╡рд╣рд░реВрд▓рд╛рдИ рдХреНрд░рдордмрджреНрдз рдорд╛рдирд┐рдиреНрдЫ, рддрд░ рдЧреНрд░рд╛рдлрдХреЛ рдХрд┐рдирд╛рд░рд╛рдХреЛ рд╢реАрд░реНрд╖рдмрд╛рдЯ рдирд┐рд╕реНрдХрдиреЗрд╣рд░реВ рд╣реЛрдЗрдирдиреН;
- рдХрд╛рдЧрдЬрд╛рдд рдореЛрдбреЗрд▓рдорд╛ рдбрд╛рдЯрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЕрд╕рдорд╛рдиреАрдХреГрдд рд╣реБрдиреНрдЫ; рддрдкрд╛рдИрдВ рдЕрдЭреИ рдкрдирд┐ рдПрдЙрдЯреИ рдЗрдореНрдмреЗрдбреЗрдб рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдзреЗрд░реИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрди, рд░ рдЙрдк-рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рд╣реБрдБрджреИрдирдиреН;
- рдЕрд░реНрдХреЛрддрд░реНрдл, рдХрд╛рдЧрдЬрд╛рдд DBMSs рдХреЛ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рддрдпрд╛рд░-рдмрдирд╛рдЗрдПрдХрд╛ "рд╕рдордЧреНрд░" рд╣реБрдиреН рдЬреБрди рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдирдпрд╛рдБ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред рд╕рдорд╛рдкреНрдд рдХрд╛рдЧрдЬрд╛рддрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмрдЧреНрд░рд╛рдл рджреНрд░реБрдд рд░реВрдкрдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдЧреНрд░рд╛рдл рдореЛрдбреЗрд▓ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рдПрдХ рд╕рд╛рдиреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди
рд▓реЗрдЦрдХреЛ рд▓реЗрдЦрдХ NitrosBase DBMS рдХреЛ рд╡рд┐рдХрд╛рд╕рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ, рдЬрд╕рдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдореЛрдбреЗрд▓ рдЧреНрд░рд╛рдл рд╣реЛ, рд░ рдмрд╛рд╣реНрдп рдореЛрдбреЗрд▓ - рд╕рдореНрдмрдиреНрдз рд░ рдХрд╛рдЧрдЬрд╛рдд - рдпрд╕рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛред рд╕рдмреИ рдореЛрдбреЗрд▓рд╣рд░реВ рдмрд░рд╛рдмрд░ рдЫрдиреН: рд▓рдЧрднрдЧ рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЯрд╛ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЙрдкрд▓рдмреНрдз рдЫ рдЬреБрди рдпреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реЛред рдпрд╕рдмрд╛рд╣реЗрдХ, рдХреБрдиреИ рдкрдирд┐ рджреГрд╢реНрдпрдорд╛, рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЖрдиреНрддрд░рд┐рдХ рдореЛрдбреЗрд▓рдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдиреЗрдЫрдиреН рд░, рддрджрдиреБрд╕рд╛рд░, рдЕрдиреНрдп рджреГрд╢реНрдпрд╣рд░реВрдорд╛ред
рдо рдЖрд╢рд╛ рдЧрд░реНрджрдЫреБ рдХрд┐ рдирд┐рдореНрди рд▓реЗрдЦрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдорд╛ NitrosBase рдорд╛ рдХрд╕реНрддреЛ рдореЛрдбреЗрд▓ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рджреЗрдЦрд┐рдиреНрдЫ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред
рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдмрд╣реБ-рдореЛрдбрд▓рд┐рдВрдЧ рднрдирд┐рдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрд░реЗрдЦрд╛ рдкрд╛рдардХрд╣рд░реВрд▓рд╛рдИ рдХрдо рд╡рд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рднрдПрдХреЛ рдЫред рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMSs рдПрдХрджрдо рдлрд░рдХ рдЫрдиреН, рд░ "рдмрд╣реБ-рдореЛрдбреЗрд▓ рд╕рдорд░реНрдерди" рдлрд░рдХ рджреЗрдЦрд┐рди рд╕рдХреНрдЫред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рд╕реНрдерд╛рдорд╛ "рдмрд╣реБ-рдореЛрдбреЗрд▓" рднрдирд┐рдиреНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрди, рдирд┐рдореНрди рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рдЙрдкрдпреЛрдЧреА рдЫ:
- рдХреЗ рд╣рд╛рдореА рдкрд░рдореНрдкрд░рд╛рдЧрдд рдореЛрдбреЗрд▓ рд╡рд╛ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ "рд╣рд╛рдЗрдмреНрд░рд┐рдб" рдореЛрдбреЗрд▓рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ?
- рдХреЗ рдореЛрдбреЗрд▓рд╣рд░реВ "рд╕рдорд╛рди" рдЫрдиреН, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдЕрд░реВрдХреЛ рд╡рд┐рд╖рдп рд╣реЛ?
- рдХреЗ рдореЛрдбреЗрд▓рд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рдкреНрд░рддрд┐ "рдЙрджрд╛рд╕реАрди" рдЫрдиреН? рдХреЗ рдПрдХ рдореЛрдбреЗрд▓рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рдЕрд░реНрдХреЛрдорд╛ рдкрдвреНрди рд╕рдХрд┐рдиреНрдЫ рд╡рд╛ рдУрднрд░рд░рд╛рдЗрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?
рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS рдХреЛ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХрддрд╛ рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдкреНрд░рд╢реНрди рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЬрд╡рд╛рдл рджрд┐рди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рдкреНрд░рд╢реНрди рдЫ рдХрд┐ рдХреБрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдорд╛ рдорд╛рдВрдЧ рдорд╛ рдЕрдзрд┐рдХ рд╣реБрдиреЗрдЫред рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMSs рдЬрд╕рд▓реЗ рдкрд░рдореНрдкрд░рд╛рдЧрдд рдореЛрдбреЗрд▓рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдореБрдЦреНрдп рд░реВрдкрдорд╛ рд╕рд╛рдкреЗрдХреНрд╖, рдмрдвреА рдорд╛рдЧрдорд╛ рд╣реБрдиреЗрдЫред рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMSs рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛, рдирдпрд╛рдБ рдореЛрдбреЗрд▓рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ рдЬреБрди рд╡рд┐рднрд┐рдиреНрди рдкрд░рдореНрдкрд░рд╛рдЧрддрдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджрдЫ, рдЕрдЭ рдЯрд╛рдврд╛рдХреЛ рднрд╡рд┐рд╖реНрдпрдХреЛ рдХреБрд░рд╛ рд╣реЛред
рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рдХреГрдкрдпрд╛
рдХреЗ рддрдкрд╛рдЗрдБ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?
рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВ, рд╣рд╛рдореА рд╕рдмреИ рдХреБрд░рд╛ рдПрдХ DBMS рд░ рдПрдЙрдЯрд╛ рдореЛрдбреЗрд▓рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдЫреМрдВ
рд╣рд╛рдореА рдкрд░рдореНрдкрд░рд╛рдЧрдд DBMS рдХреЛ рдмрд╣реБ-рдореЛрдбреЗрд▓ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ
рд╣рд╛рдореА рдкреЛрд▓рд┐рдЧреНрд▓реЛрдЯ рджреГрдврддрд╛ рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдЫреМрдВ
рд╣рд╛рдореА рдирдпрд╛рдБ рдмрд╣реБ-рдореЛрдбреЗрд▓ DBMS (Arango, Orient, CosmosDB) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВред
19 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред реи рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред
рд╕реНрд░реЛрдд: www.habr.com
