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

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

рдпрд╣ рдЙрджрд╛рд╣рд░рдг, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреБрдЫ рд╣рдж рддрдХ рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ DBMS рдЪреБрдирдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ ред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ рдордВрддреНрд░реА рдмрдирдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
- рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП DBMS рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдмрдврд╝рддреА рд╣реИ; рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддреА рд╣реИ, рдпрджрд┐ рдЙрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рдирд╣реАрдВ рд╣реИ рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реИред
- рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ DBMS рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ DBMS рдХреЗ рд▓рд┐рдП рдЙрджреНрдпрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдорд╛рдкрдиреАрдпрддрд╛, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛, рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░ рд░рд╣рд╛ рд╣реИред
- рднрдВрдбрд╛рд░рдг рдЙрдкрддрдВрддреНрд░ рдХреА рдЙрджреНрдпрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ - рд╡рд┐рд╢реЗрд╖рдХрд░ рд▓реЗрди-рджреЗрдиред
рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЗ рдирд┐рджреЗрд╢рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- DBMS рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдФрд░ рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреА рд▓рд╛рдЧрдд рдореЗрдВ рдХрдИ рд╡реГрджреНрдзрд┐ред
- рдХрд░реНрдордЪрд╛рд░реА рдлреВрд▓реЗ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдиреЗрддреГрддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред
- рдЕрд╕рдВрдЧрдд рдбреЗрдЯрд╛ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рддреНрддреАрдп рдиреБрдХрд╕рд╛рди рдпрд╛ рджрдВрдбред
рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреА рдХреБрд▓ рд▓рд╛рдЧрдд (TCO) рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ "рдорд▓реНрдЯреАрд╡реЗрд░реЗрдЯ рд╕реНрдЯреЛрд░реЗрдЬ" рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реИ?
рдмрд╣реБ рдореЙрдбрд▓
"рдорд▓реНрдЯреАрд╡реЗрд░рд┐рдПрдЯ рд╕реНрдЯреЛрд░реЗрдЬ" рд╢рдмреНрдж 2011 рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрдпрд╛ред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХрддрд╛ рдФрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рд▓рдЧ рдЧрдП, рдФрд░ 2015 рддрдХ рдЬрд╡рд╛рдм рдЧрд╛рд░реНрдЯрдирд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреЗ рдореБрдВрд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рдЧрд╛рд░реНрдЯрдирд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдирд╣реАрдВ рдерд╛ред рдпрджрд┐ рдЖрдк DB-Engines рдкрд░ рдореБрдЦреНрдп DBMS рд░реЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдкреЗрдЬ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗрддрд╛ рдЦреБрдж рдХреЛ рдорд▓реНрдЯреАрдореЙрдбрд▓ DBMS рдХреЗ рд░реВрдк рдореЗрдВ рдареАрдХ-рдареАрдХ рдмрддрд╛рддреЗ рд╣реИрдВред рд╡рд╣реА рдкреГрд╖реНрда рдкрд░ рдХрд┐рд╕реА рднреА рдирд┐рдЬреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдЬреА рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдиреЗрддрд╛ рдЕрдкрдиреЗ рдмрд╣реБ-рдореЙрдбрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ DBMS рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерд┐рдд рдореЙрдбрд▓ (рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░) рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдЕрдм рд╕рдорд░реНрдерд┐рдд рдореЙрдбрд▓ред рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ DBMS рдХреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ "рдЖрд░рдВрдн рдореЗрдВ рдорд▓реНрдЯреАрдореЙрдбрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдореВрд▓ рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓рд╛ рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИред
рдЯреЗрдмрд▓ рдиреЛрдЯрдЖрд░рдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдЯреЗрдмрд▓ рдорд╛рд░реНрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рддрд╛рд░рд╛рдВрдХрди:
- PostgreSQL рдПрдХ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЙрддреНрдкрд╛рдж рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЬреИрд╕реЗ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, AggGraphред
- MongoDB рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рдСрдкрд░реЗрдЯрд░реЛрдВ (
$lookup
$graphLookup
, $graphLookup
) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмреЛрд▓рдирд╛ рд╕рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдирдХреЗ рдкрд░рд┐рдЪрдп рдиреЗ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рд╕рдорд░реНрдерди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рднреМрддрд┐рдХ рд╕реНрддрд░ рдкрд░ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреАред - Redis рдХреЗ рд▓рд┐рдП, рдпрд╣ RedisGraph рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╣рдо рдпрд╣ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрд╕ рдХрдХреНрд╖рд╛ рд╕реЗ DBMS рдореЗрдВ рдХрдИ рдореЙрдбрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдмрдВрдзрдкрд░рдХ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBMS рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ "рд▓рд╛рдкрддрд╛" рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд▓реНрдЯреАрдореЙрдбрд▓ рдбреАрдмреАрдПрдордПрд╕ рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
рдкреНрд░рдореБрдЦ DBMS рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рд▓реЗрд╢рдирд▓ рд╣реИрдВ; рдЧрд╛рд░реНрдЯрдирд░ рдХрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╕рд╣реА рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рдЕрдЧрд░ RDBMSs рдиреЗ рдорд▓реНрдЯреА-рдореЙрдбрд▓ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдВрджреЛрд▓рди рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ред рдФрд░ рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВред рдЕрдм, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдПрдХ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдбреАрдмреАрдПрдордПрд╕ рдПрдХ рд╕реНрд╡рд┐рд╕ рдЪрд╛рдХреВ рдХреА рддрд░рд╣ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓рд╛рд░рд┐рд╕ рдПрд▓рд┐рд╕рди рдХреЛ рддреБрд░рдВрдд рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдЦрдХ, рд╣рд╛рд▓рд╛рдВрдХрд┐, Microsoft SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдорд▓реНрдЯреАрдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП RDBMS рд╕рдорд░реНрдерди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
MS SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓
MS SQL рд╕рд░реНрд╡рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Habr├й рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рдереЗ, рдореИрдВ рдЦреБрдж рдХреЛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реАрдЯреЗрд▓рд┐рдВрдЧ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛:
MS SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ: JSON рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╕рд╛рджреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдЗрд╕ JSON рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ:
- рд╕реНрдХреЗрд▓рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
JSON_VALUE
, JSON_QUERY
рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рджреЛрдиреЛрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рддрд░реНрдХ JSONPath- рдЬреИрд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред
рдпрд╣ рдЕрдореВрд░реНрдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ "рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдирд┐рдХрд╛рдп" рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдЯреБрдкрд▓реНрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, MS SQL рд╕рд░реНрд╡рд░ рдореЗрдВ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрди рдорд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЪрдпрди рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдХрдореНрдкреНрдпреВрдЯреЗрдмрд▓ рдХреЙрд▓рдо рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, MS SQL рд╕рд░реНрд╡рд░, FOR JSON PATH
рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреЛ рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдкрд┐рдЫрд▓реЗ, рд╕рд╛рдзрд╛рд░рдг рднрдВрдбрд╛рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдХрд┐рддрдирд╛ рднреА рддреЗрдЬрд╝ рдХреНрдпреЛрдВ рди рд╣реЛ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбреАрдмреАрдПрдордПрд╕ рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХрд╛ рдЦрдВрдбрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЙрддреНрддрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрддрд┐ рдирд╣реАрдВред
рдЕрдВрдд рдореЗрдВ, MS SQL рд╕рд░реНрд╡рд░ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрд▓рдЯрд╛: рдЖрдк OPENJSON
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JSON рдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдкрд╛рдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ CROSS APPLY
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
MS SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдЧреНрд░рд╛рдл рдореЙрдбрд▓
Microsoft SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЧреНрд░рд╛рдл ( LPG ) рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдХрд╛рдлреА рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ : рдпрд╣ рдиреЛрдбреНрд╕ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХреНрд░рдорд╢рдГ CREATE TABLE AS NODE
рдФрд░ CREATE TABLE AS EDGE
рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдмрд▓ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрд╛рд░рдг рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб $node_id
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рдПрдХ рдЧреНрд░рд╛рдл рдиреЛрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЕрджреНрд╡рд┐рддреАрдпред
рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб $from_id
рдФрд░ $to_id
, рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╣реА рдЧрдИ рдмрд╛рддреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдмрддрд╛ рджреЗрдВ рдХрд┐ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЗрдВ рдПрдХ рд╕реНрдХреАрдо рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреАрдбреАрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
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;
рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕рд╛рдЗрдлрд░-рдЬреИрд╕реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рдл рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, " *
", рдЖрджрд┐, рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд╕рд╛рдзрд╛рд░рдг рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреНрд░рд╛рдл рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред
SELECT Cafe.name FROM Person, likes, Cafe WHERE MATCH (Person-(friendOf)-(likes)->Cafe) AND Person.name = 'John';
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрди рдЧреНрд░рд╛рдл рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрд╛рд░рдг рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо "рдЧреНрд░рд╛рдл" рдиреЛрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ ( $node_id
, $from_id
, $to_id
; рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЕрдиреБрд░реЛрдз рдпрд╣рд╛рдБ рднреА рдмреЛрдЭрд┐рд▓ рдирд╣реАрдВ рджрд┐рдП рдЧрдП рд╣реИрдВ)ред
MS SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдореЙрдбрд▓ рдХреЗ рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд▓рдЧрддреЗ рд╣реИрдВред рдПрдХ рднрд╛рд╖рд╛ рдХрд╛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рднрд╛рд╖рд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдСрд░реНрдереЛрдЧреЛрдирд▓" рдирд╣реАрдВ рд╣реИрдВ, рд╕рдВрдЧрддрддрд╛ рдХреЗ рдирд┐рдпрдо рдХрд╛рдлреА рд╡рд┐рдЪрд┐рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдорд▓реНрдЯреАрдореЙрдбрд▓ DBMS рдПрдХ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ DBMSs рдореЗрдВ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рди рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп MongoDB рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП (рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рдлрд╝ рдСрдкрд░реЗрдЯрд░ $lookup
рдФрд░ $graphLookup
рдЬреЛ $graphLookup
рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдкрд░ рдпрд╣ рдЕрдзрд┐рдХ рдкрд░рд┐рдкрдХреНрд╡ рд╣реИ рдФрд░ " рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ ┬╗DBMS рдорд╛рд░реНрдХрд▓реЛрдЧрд┐рдХ ред
рддреЛ, рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреЗ XML рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ (MarkLogic рднреА JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ):
<Person INN="631803299804"> <name>John</name> <surname>Smith</surname> </Person>
MarkLogic рдкрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓
рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ value
рддрддреНрд╡реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдордирдорд╛рдирд╛ XPath рд╣реЛ рд╕рдХрддреА рд╣реИ):
<template xmlns="http://marklogic.com/xdmp/tde"> <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 рдореЗрдВ рдЧреНрд░рд╛рдл рдореЙрдбрд▓
рдЧреНрд░рд╛рдл ( RDF ) рдореЙрдбрд▓ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде, рдЪреАрдЬреЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реИрдВред рдлрд┐рд░, рдкреНрд░рджрд░реНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ , рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ RDF рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
<template xmlns="http://marklogic.com/xdmp/tde"> <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>
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк RDF рдЧреНрд░рд╛рдлрд╝ рдХреЛ SPARQL рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
PREFIX : <http://example.org/example
рд░рд┐рд▓реЗрд╢рдирд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, MarkLogic рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рджреЛ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- DBMS RDF рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдкреВрд░реНрдг-рдкреГрдердХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ рдЯреНрд░рд┐рдкрд▓ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ , рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдЕрд░реНрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ)ред
- рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдорд╛рдВрдХрди рдореЗрдВ RDF рдХреЛ рдХреЗрд╡рд▓ XML рдпрд╛ JSON рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдлрд┐рд░ рдЯреНрд░рд┐рдкрд▓ рдХреЛ рдЕрдирд╡рд╛рдВрдЯреЗрдб рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛)ред рдпрд╣ рд╢рд╛рдпрдж
idref
рддрдВрддреНрд░ рдЗрддреНрдпрд╛рджрд┐ рдХрд╛ рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдСрдкреНрдЯрд┐рдХ рдПрдкреАрдЖрдИ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ" рд╕рдм рдХреБрдЫ MarkLogic рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдпрд╣ рдирд┐рдореНрди-рд╕реНрддрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ - рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрди-рджреЗрди рдФрд░ рдЬрдирд╕рдВрдкрд░реНрдХред
рдорд▓реНрдЯреАрдореЙрдбрд▓ DBMS "рдореБрдЦреНрдп рдореЙрдбрд▓ рдХреЗ рдмрд┐рдирд╛"
DBMS рдмрд╛рдЬрд╝рд╛рд░ рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╢реБрд░реВ рдореЗрдВ рдорд▓реНрдЯреА-рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреЛ рдкреЛрдЬрд╝рд┐рд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдмреЗрд╕рд┐рдХ рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реЛрддреЗред рдЗрдирдореЗрдВ рдЕрд░реЗрдВрдЬрдмреАрдбреАрдмреА , рдУрд░рд┐рдПрдВрдЯрдмреАрдбреА (2018 рд╕реЗ, рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдиреА рдПрд╕рдПрдкреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ) рдФрд░ рдХреЙрд╕реНрдореЛрд╕рдмрдбреА (рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдЬрд╝реНрдпреЛрд░ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдПрдХ рд╕реЗрд╡рд╛) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, ArangoDB рдФрд░ OrientDB рдореЗрдВ "рдмреБрдирд┐рдпрд╛рджреА" рдореЙрдбрд▓ рд╣реИрдВред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпреЗ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╣реИрдВ, рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рдл рдФрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред
рдпреЗ рдореЙрдбрд▓ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддрд┐рдд рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЙрдирдХреА рдЦреБрдж рдХреА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдРрд╕реЗ рдореЙрдбрд▓ рдФрд░ рдбреАрдмреАрдПрдордПрд╕ рдЖрд╢рд╛рдЬрдирдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдореЙрдбрд▓ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреА рдХрдореА рд╕реЗ рдЗрди рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред
Hran├й рдкрд░ ArangoDB рдФрд░ OrientDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдерд╛: NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ ред
ArangoDB
ArangoDB рдПрдХ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИред
ArangoDB рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рдиреЛрдбреНрд╕ рд╕рд╛рдзрд╛рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ, рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдлрд╝реАрд▓реНрдбреНрд╕ ( _key
, _rev
, _rev
), рд╕рд┐рд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб _from
рдФрд░ _to
ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ DBMS рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рдирд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрд░реЗрдВрдЬрдмреАрдбреАрдмреА рдореЗрдВ рдХрд┐рдирд╛рд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдПрдЬ рдХрд▓реЗрдХреНрд╢рди рдХреЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рднреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрд░рдВрдЧрдмреЛрдм рдореЗрдВ рдХрд┐рдирд╛рд░реЗ рднреА рдиреЛрдбреНрд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ 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 } ]
рдкреНрд░рд╢реНрди рдФрд░ рдкрд░рд┐рдгрд╛рдоAQL рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлрд╝-рд╕реНрдЯрд╛рдЗрд▓ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ ArangoDB рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рдХреМрди рд╕рд╛ рдХреИрдлреЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ:
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 рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдЖрдк COLLECT
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
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
ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрджрд░реНрдн рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╕реВрдЪрдХ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рдореЗрдВ), рдЪрдпрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп (рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ)ред
рдЬреИрд╕рд╛ рдХрд┐ рдУрд░рд╛рдирдмреАрдбреАрдмреА рдореЗрдВ, рдУрд░рд┐рдПрдВрдЯрдмреАрдбреА рдореЗрдВ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдЧреБрдг рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╣рд▓реНрдХрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрд▓рдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛рдУрд░рд┐рдПрдВрдЯрдмреАрдбреА рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдкреНрд░рд╛рд░реВрдк рдХреЗ рдХрд░реАрдм рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдЕрд░реЗрдВрдЬрдмреИрдВрдХ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
[ { "@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" } ]
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдиреЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп , рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЧреНрд░рд╛рдл рдПрдкреАрдЖрдИ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдУрд░рд┐рдПрдВрдЯрдбреАрдмреА рдХреЛ рдХреЙрд▓ "рдХреНрд▓реАрди" рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЧреИрд░-рдПрдХреАрдХреГрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ, рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВред
рдкреНрд░рд╢реНрди рдФрд░ рдкрд░рд┐рдгрд╛рдордУрд░рд┐рдПрдВрдЯрдбреАрдмреА рдореЗрдВ рдЕрд░реЗрдВрдЬрдмреАрдбреАрдмреА рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рдорд╛рди рдПрдХ рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
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": "-" } ]
рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдлрд┐рд░ рд╕реЗ "рд╕рдВрдмрдВрдзрдкрд░рдХ" рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ UNWIND()
рд╕рд╛рде рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
[ { "person_name": "", "cafe_name": [ " ", "-" ] }, { "person_name": "", "cafe_name": [ "-" ' } ]
рдУрд░рд┐рдПрдВрдЯрдбреАрдмреА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЛ рдЧреНрд░реЗрдорд▓рд┐рди рдЬреИрд╕реА рдЖрд╡реЗрд╖рдг рд╡рд╛рд▓реА рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 2.2 рдиреЗ рдПрдХ Cypher рдХреА рддрд░рд╣ рдЕрдиреБрд░реЛрдз рдлрд╛рд░реНрдо рдкреЗрд╢ рдХрд┐рдпрд╛, MATCH
:
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
рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдкрд┐рдЫрд▓реА рдХреНрд╡реЗрд░реА рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реЛрдЧрд╛ред рдкрд╣рд▓реЗ "рдХреНрд╡реЗрд░реА" рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ "рд╕рдВрдмрдВрдзрдкрд░рдХ" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред
рдПрдЬрд╝реНрдпреЛрд░ рдХреЛрд╕реНрдореЛрд╕рдмрдбреА
рдХреБрдЫ рд╣рдж рддрдХ, рдЕрд░рдВрдЧреНрдЧрдмреАрдбреА рдФрд░ рдУрд░рд┐рдПрдВрдЯрдбреАрдмреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдКрдкрд░ рдЬреЛ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ рдЕрдЬрд╝реВрд░ рдХреЛрд╕реНрдореЛрд╕рдмрдбреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред CosmosDB рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ APIs рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: SQL, MongoDB, Gremlin, рдФрд░ Cassandraред
SQL API рдФрд░ MongoDB API рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреНрд░реЗрдорд▓рд┐рди рдПрдкреАрдЖрдИ рдФрд░ рдХреИрд╕рдВрдбреНрд░рд╛ рдПрдкреАрдЖрдИ - рдХреНрд░рдорд╢рдГ рдЧреНрд░рд╛рдл рдФрд░ рдХреЙрд▓рдо рдореЗрдВ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рднреА рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛрд╕реНрдореЛрд╕рдмреАрдбреА рдЖрдВрддрд░рд┐рдХ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдЖрд░рдПрд╕ ("рдкрд░рдорд╛рдгреБ-рд░рд┐рдХреЙрд░реНрдб-рдЕрдиреБрдХреНрд░рдо"), рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдХ рдХреЗ рднреА рдХрд░реАрдм рд╣реИред

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, Azure CosmosDB рдореЗрдВ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдЖрдЬ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ, рдЬреЛ рдорд▓реНрдЯреАрд╡реЗрд░реЗрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдХреА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдорд▓реНрдЯреАрдореЙрдбрд▓ DBMS рдПрдХ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ?
рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдмрд╛рдЬрд╛рд░ рдкрд░ рдПрдХ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ (рдПрдХ рд╕рд╛рде рджреЛ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдореЙрдбрд▓ рд╕рдорд░реНрдерди рдХреЛ рдЫреЛрдбрд╝рдХрд░: рдЖрд░рдбреАрдПрдл рдФрд░ рдПрд▓рдкреАрдЬреА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдбреАрдмреАрдПрдордПрд╕ рдирд╣реАрдВ рд╣реИрдВ); рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рджреЗрдЦреЗрдВ )ред рд╕рдВрдмрдВрдз рдХреЗ рдмрдЬрд╛рдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВред
рдПрдХ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рдкрд░ рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рд╕рд╡рд╛рд▓ рдкрд░ рдмрд╛рдж рдХреЗ рдЧрдарди рдХреЗ рд╕рдордп рднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд┐рдб рдореИрдХрдЧрд╡рд░реНрди рдиреЗ рдХрд╣рд╛ :
рдЧреНрд░рд╛рдлрд╝ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХреБрдЫ рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдПрдХ рдкрд░рдд (рдЬреИрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрдХреНрд░рдордг рджреНрд╡рд╛рд░рд╛) рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдХреБрдВрдЬреА рдорд╛рди рдЬреЛрдбрд╝реЗ рд╕реЗ рдЯреБрдкрд▓реНрд╕ рдХреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ (1) рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрдкрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ (2) рдЯреБрдкрд▓реНрд╕ рдХрд╛ рд╕рдореВрд╣рдиред рд╕рдВрдмрдВрдз рдкреНрд░рдХрд╛рд░ред
рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд:
- JSON рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЧреНрд░рд╛рдл рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░рдо рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ - рдирд╣реАрдВ;
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдЕрднреА рднреА рдПрдХ рд╣реА рд╕рдВрд▓рдЧреНрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдк-рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ;
- рджреВрд╕рд░реА рдУрд░, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбреАрдмреАрдПрдордПрд╕ рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рддреИрдпрд╛рд░ "рдЗрдХрд╛рдЗрдпрд╛рдВ" рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд░ рдмрд╛рд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЧреНрд░рд╛рдл рдореЙрдбрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рддреИрдпрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рдмрдЧреНрд░рд╛рдл рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛред
рдХреБрдЫ рд╡рд┐рдЬреНрдЮрд╛рдкрдирд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдирд╛рдЗрдЯреНрд░реЛрд╕рдмреЗрд╕ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдореЙрдбрд▓ рдЪрд┐рддреНрд░рдордп рд╣реИ, рдФрд░ рдмрд╛рд╣рд░реА рдореЙрдбрд▓ - рд╕рдВрдмрдВрдзрдкрд░рдХ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ - рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИрдВред рд╕рднреА рдореЙрдбрд▓ рд╕рдорд╛рди рд╣реИрдВ: рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ, рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди рдЖрдВрддрд░рд┐рдХ рдореЙрдбрд▓ рдореЗрдВ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЕрдиреНрдп рдЕрднреНрдпрд╛рд╡реЗрджрди рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛ред
рдирд╛рдЗрдЯреНрд░реЛрдмреЗрд╕ рдореЗрдВ рдЬреЛ рдореЙрдбрд▓ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рд╡рд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ - рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдорд▓реНрдЯреАрдореЙрдбрд▓рд┐рдВрдЧ рдХреЛ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдХрдореЛрдмреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ DBMS рдХреЛ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "рдХрдИ рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди" рдЕрд▓рдЧ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ "рдорд▓реНрдЯреА-рдореЙрдбрд▓" рдХреНрдпрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ:
- рдХреНрдпрд╛ рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдпрд╛ рдПрдХрд▓ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ?
- рдХреНрдпрд╛ рдореЙрдбрд▓ "рдмрд░рд╛рдмрд░" рд╣реИрдВ рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рджреВрд╕рд░реЛрдВ рдХреЗ рдЕрдзреАрди рд╣реИ?
- рдХреНрдпрд╛ рдореЙрдбрд▓ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдкреНрд░рддрд┐ "рдЙрджрд╛рд╕реАрди" рд╣реИрдВ? рдХреНрдпрд╛ рдПрдХ рдореЙрдбрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рджреВрд╕рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдУрд╡рд░рд░рд╛рдЗрдЯ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдбреАрдмреАрдПрдордПрд╕ рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдирдХреА рдХреМрди рд╕реА рдХрд┐рд╕реНрдореЗрдВ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрдВрдЧреАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдореЙрдбрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд▓реНрдЯреАрдореЙрдбрд▓ рдбреАрдмреАрдПрдордПрд╕, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд░рд┐рд▓реЗрд╢рдирд▓, рдорд╛рдВрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗ; , , , тАФ .