рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдХреЛрд░реНрд╕ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдбреЗрд╡рд▓рдкрд░" рд╣рдордиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред

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

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

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

SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдЕрддреНрдпрдзрд┐рдХ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдмрдВрдз рд╣реИрдВред

рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛ рдореЙрдбрд▓

рдПрдХ рдЧреНрд░рд╛рдл рд╢реАрд░реНрд╖реЛрдВ (рдиреЛрдбреНрд╕) рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ (рд░рд┐рд╢реНрддреЗ, рдХрд┐рдирд╛рд░реЗ) рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдХреЛрдиреЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рдирд╛рд░реЗ рд░рд┐рд╢реНрддреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред

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

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

рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдЬрдЯрд┐рд▓ рддрдХрдиреАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SQL рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╖рдорддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╢реАрд░реНрд╖реЛрдВ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: NODE рдФрд░ EDGEред рдЧреНрд░рд╛рдлрд╝ рдХреНрд╡реЗрд░реАрдЬрд╝ MATCH() рдирд╛рдордХ рдПрдХ рдирдП T-SQL рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ SQL рд╕рд░реНрд╡рд░ 2017 рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рдХреЗ рд▓рд╛рдн

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдн рд╣реЛрдЧрд╛ред

рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ: рд░рд┐рд▓реЗрд╢рдирд▓ рд╕реЗ рдЧреНрд░рд╛рдлрд╝ рдореЙрдбрд▓ рддрдХ

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдЙрджрд╛рд╣рд░рдг

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

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

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦ рд╕рдорд╛рди рд╕рдВрдЧрдардирд╛рддреНрдордХ рд╕рдВрд░рдЪрдирд╛ рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд░реВрдк рдореЗрдВ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдЪрд╛рд░ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдХрд░реНрдордЪрд╛рд░реА рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╢реАрд░реНрд╖ рд╣реИрдВ рдИрдПрдордкреА. рдЗрдХрд╛рдИ "рдХрд░реНрдордЪрд╛рд░реА" "рд╕рдмрдорд┐рдЯреНрд╕" (ReportsTo) рдХрдиреЗрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдПрдХ рд▓рд┐рдВрдХ рдПрдХ рдХрд┐рдирд╛рд░рд╛ (EDGE) рд╣реИ рдЬреЛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдиреЛрдбреНрд╕ (NODE) тАЛтАЛрдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЖрдЗрдП рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдИрдПрдордкреА рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЪрд┐рддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд╣рд╛рдВ рдорд╛рди рдЬреЛрдбрд╝реЗрдВред

CREATE TABLE EMP
(EMPNO INT NOT NULL,
ENAME VARCHAR(20),
JOB VARCHAR(10),
MGR INT,
JOINDATE DATETIME,
SALARY DECIMAL(7, 2),
COMMISIION DECIMAL(7, 2),
DNO INT)
 
INSERT INTO EMP VALUES
(7369, 'SMITH', 'CLERK', 7902, '02-MAR-1970', 8000, NULL, 2),
(7499, 'ALLEN', 'SALESMAN', 7698, '20-MAR-1971', 1600, 3000, 3),
(7521, 'WARD', 'SALESMAN', 7698, '07-FEB-1983', 1250, 5000, 3),
(7566, 'JONES', 'MANAGER', 7839, '02-JUN-1961', 2975, 50000, 2),
(7654, 'MARTIN', 'SALESMAN', 7698, '28-FEB-1971', 1250, 14000, 3),
(7698, 'BLAKE', 'MANAGER', 7839, '01-JAN-1988', 2850, 12000, 3),
(7782, 'CLARK', 'MANAGER', 7839, '09-APR-1971', 2450, 13000, 1),
(7788, 'SCOTT', 'ANALYST', 7566, '09-DEC-1982', 3000, 1200, 2),
(7839, 'KING', 'PRESIDENT', NULL, '17-JUL-1971', 5000, 1456, 1),
(7844, 'TURNER', 'SALESMAN', 7698, '08-AUG-1971', 1500, 0, 3),
(7876, 'ADAMS', 'CLERK', 7788, '12-MAR-1973', 1100, 0, 2),
(7900, 'JAMES', 'CLERK', 7698, '03-NOV-1971', 950, 0, 3),
(7902, 'FORD', 'ANALYST', 7566, '04-MAR-1961', 3000, 0, 2),
(7934, 'MILLER', 'CLERK', 7782, '21-JAN-1972', 1300, 0, 1)

рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИ:

  • рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд░реНрдордЪрд╛рд░реА рд╕рдВ 7369 7902 рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ;
  • рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд░реНрдордЪрд╛рд░реА рд╕рдВ 7902 7566 рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ
  • рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд░реНрдордЪрд╛рд░реА рд╕рдВ 7566 7839 рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдЖрдЗрдП рдЕрдм рдЙрд╕реА рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдлрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджреЗрдЦреЗрдВред EMPLOYEE рд╢реАрд░реНрд╖ рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ рдФрд░ рдпрд╣ "рдЕрдзреАрдирд╕реНрде" рд╕рдВрдмрдВрдз (EmplReportsTo) рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред EmplReportsTo рд░рд┐рд╢реНрддреЗ рдХрд╛ рдирд╛рдо рд╣реИ.

рдПрдЬ рдЯреЗрдмрд▓ (EDGE) рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдЖрдЗрдП рдПрдХ рдиреЛрдб рдЯреЗрдмрд▓ EmpNode рдмрдирд╛рдПрдВ

рдиреЛрдб рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЯреЗрдмрд▓ рдмрдирд╛ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ "рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ".

CREATE TABLE dbo.EmpNode(
ID Int Identity(1,1),
EMPNO NUMERIC(4) NOT NULL,
ENAME VARCHAR(10),
MGR NUMERIC(4),
DNO INT
) AS NODE;

рдЕрдм рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЧреНрд░рд╛рдлрд╝ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рд░рд┐рд▓реЗрд╢рдирд▓ рдЯреЗрдмрд▓ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдИрдПрдордкреА.

INSERT INTO EmpNode(EMPNO,ENAME,MGR,DNO) select empno,ename,MGR,dno from emp

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЙрд▓рдо рдореЗрдВ рдиреЛрдбреНрд╕ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ $node_id_* рдиреЛрдб рдЖрдИрдбреА JSON рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╢реЗрд╖ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдиреЛрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХрд┐рдирд╛рд░реЗ рдмрдирд╛рдирд╛ (рдХрд┐рдирд╛рд░реЗ)

рдПрдЬ рдЯреЗрдмрд▓ рдмрдирд╛рдирд╛ рдиреЛрдб рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ "рдПрдЬрд╝ рдПрдЬ".

CREATE TABLE empReportsTo(Deptno int) AS EDGE

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЖрдЗрдП рдЕрдм рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдХрд░реНрдордЪрд╛рд░реА рд╕рдВ ╨╕ рдПрдордЬреАрдЖрд░. рд╕рдВрдЧрдардирд╛рддреНрдордХ рд╕рдВрд░рдЪрдирд╛ рдЖрд░реЗрдЦ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ.

INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 1),
   	(SELECT $node_id FROM EmpNode WHERE id = 13),20);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 2),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),10);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 3),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),10)
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 4),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 5),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 6),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 7),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 8),
   	(SELECT $node_id FROM EmpNode WHERE id = 4),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 9),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 10),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 11),
   	(SELECT $node_id FROM EmpNode WHERE id = 8),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 12),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 13),
   	(SELECT $node_id FROM EmpNode WHERE id = 4),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 14),
   	(SELECT $node_id FROM EmpNode WHERE id = 7),30);

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдЬ рдЯреЗрдмрд▓ рдореЗрдВ рддреАрди рдХреЙрд▓рдо рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛, $edge_id - JSON рдлреЙрд░реНрдо рдореЗрдВ рдПрдЬ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ред рдЕрдиреНрдп рджреЛ ($from_id ╨╕ $to_id) рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рдирд╛рд░реЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣реИ Deptno.

рд╕рд┐рд╕реНрдЯрдо рджреГрд╢реНрдп

рд╕рд┐рд╕реНрдЯрдо рджреГрд╢реНрдп рдореЗрдВ sys.tables рджреЛ рдирдП рдХреЙрд▓рдо рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВ:

  1. рдХрд┐рдирд╛рд░реЗ рд╣реИ
  2. is_node

SELECT t.is_edge,t.is_node,*
FROM sys.tables t
WHERE name like 'emp%'

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

SSMS

рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреНрд░рд╛рдлрд╝ рдЯреЗрдмрд▓реНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдиреЛрдб рддрд╛рд▓рд┐рдХрд╛ рдЖрдЗрдХрди рдХреЛ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд┐рдирд╛рд░реЗ рддрд╛рд▓рд┐рдХрд╛ рдЖрдЗрдХрди рдХреЛ рджреЛ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╕рд░реНрдХрд▓ (рдХрд╛рдВрдЪ рдХреА рддрд░рд╣) рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдорд┐рд▓рд╛рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореИрдЪ CQL (рд╕рд╛рдЗрдлрд░ рдХреНрд╡реЗрд░реА рд▓реИрдВрдЧреНрд╡реЗрдЬ) рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рд╣реИред CQL рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдореИрдЪ.

рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕

MATCH (<graph_search_pattern>)
 
<graph_search_pattern>::=
    {<node_alias> {
                 	{ <-( <edge_alias> )- }
               	| { -( <edge_alias> )-> }
             	<node_alias>
             	}
 	}
 	[ { AND } { ( <graph_search_pattern> ) } ]
 	[ ,...n ]
 
<node_alias> ::=
    node_table_name | node_alias
 
<edge_alias> ::=
    edge_table_name | edge_alias

рдЙрджрд╛рд╣рд░рдг

рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ.

рдиреАрдЪреЗ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА рдЙрди рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдорд┐рде рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдмрдВрдзрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR
FROM
    empnode e, empnode e1, empReportsTo m
WHERE
    MATCH(e-(m)->e1)
and e.ENAME='SMITH'

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рд╕реНрдорд┐рде рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рдХреНрдп рд╣рдЯрд╛ рджреЗрдВ рдХрд╣рд╛рдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2
WHERE
    MATCH(e-(m)->e1-(m1)->e2)
and e.ENAME='SMITH'

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдФрд░ рдЕрдВрдд рдореЗрдВ, рддреАрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдзред

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3
WHERE
    MATCH(e-(m)->e1-(m1)->e2-(m2)->e3)
and e.ENAME='SMITH'

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп
рдЖрдЗрдП рдЕрдм рд╕реНрдорд┐рде рдХреЗ рдЖрдХрд╛рдУрдВ рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛ рдмрджрд▓реЗрдВред

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3
WHERE
    MATCH(e<-(m)-e1<-(m1)-e2<-(m2)-e3)

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдирд┐рд╖реНрдХрд░реНрд╖

SQL рд╕рд░реНрд╡рд░ 2017 рдиреЗ рдЦреБрдж рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЖрдИрдЯреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреВрд░реНрдг рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред SQL рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрд╣реБрдд рдЖрд╢рд╛рдЬрдирдХ рд╣реИред рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЧреНрд░рд╛рдлрд╝ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореМрдЬреВрдж рд╣реИред

SQL рдЧреНрд░рд╛рдлрд╝ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ SQL рдЗрдВрдЬрди рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, SQL рд╕рд░реНрд╡рд░ 2017 рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:

рдХреЛрдИ рдмрд╣реБрд░реВрдкрддрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ.

  • рдХреЗрд╡рд▓ рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдХрдиреЗрдХреНрд╢рди рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
  • рдПрдЬ рдЕрдкрдбреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ $from_id рдФрд░ $to_id рдХреЙрд▓рдо рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
  • рдЯреНрд░рд╛рдВрдЬрд┐рдЯрд┐рд╡ рдХреНрд▓реЛрдЬрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕реАрдЯреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдЗрди-рдореЗрдореЛрд░реА OLTP рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕реАрдорд┐рдд рд╣реИред
  • рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдПрдБ (рд╕рд┐рд╕реНрдЯрдо-рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛), рдЕрд╕реНрдерд╛рдпреА рд╕реНрдерд╛рдиреАрдп рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
  • рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдЪрд░ рдХреЛ NODE рдпрд╛ EDGE рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдХреНрд░реЙрд╕-рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реАрдЬрд╝ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ.
  • рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЧреНрд░рд╛рдлрд╝ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рдпрд╛ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдирд╣реАрдВ рд╣реИред
  • рдЧреНрд░рд╛рдлрд╝ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ GUI рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк Power BI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ