рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд - PostgreSQL, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдФрд░ MongoDB рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛

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

рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд - PostgreSQL, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдФрд░ MongoDB рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛

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

рдЗрд╕ рдЖрд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ SQL рдФрд░ NoSQL рдХреЗ рдмреАрдЪ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИред рд╣рдо рдПрдХ SQL рдбреЗрдЯрд╛рдмреЗрд╕, рдЕрд░реНрдерд╛рддреН PostgreSQL, рдФрд░ рджреЛ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕, Cassandra рдФрд░ MongoDB рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ, рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдмрдирд╛рдирд╛, рдЙрдиреНрд╣реЗрдВ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдирд╛, рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рдФрд░ рдЙрд╕реЗ рд╣рдЯрд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрдВрдбреЗрдХреНрд╕, рд▓реЗрдирджреЗрди, рдЬреЙрдЗрди, рдЯреАрдЯреАрдПрд▓ рдирд┐рд░реНрджреЗрд╢ рдФрд░ JSON-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рджреЗрдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗред

SQL рдФрд░ NoSQL рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?

SQL рдбреЗрдЯрд╛рдмреЗрд╕ ACID рд▓реЗрдирджреЗрди рд╕рдВрдмрдВрдзреА рдЧрд╛рд░рдВрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдореМрдЬреВрджрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ JOIN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЙрдирдХреА рдХреНрд╖рдорддрд╛ рднреА рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

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

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

NoSQL рдПрдХ рд╡рд┐рддрд░рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдЯреНрд░реЗрдбрдСрдлрд╝ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ ACID рд▓реЗрдирджреЗрди рд╣рд╛рдирд┐, JOINs рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдзреНрдпрдорд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ NoSQL рдореЗрдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ SQL рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд - PostgreSQL, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдФрд░ MongoDB рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛

SQL рдФрд░ NoSQL: рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╡рд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬреИрд╕реЗ Amazon.com, Netflix, Uber рдФрд░ Airbnb рдХреЛ рдЬрдЯрд┐рд▓, рдмрд╣реБрдЖрдпрд╛рдореА рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Amazon.com рдЬреИрд╕реЗ рдИ-рдХреЙрдорд░реНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рд▓реНрдХреЗ, рдЙрдЪреНрдЪ-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА, рдЙрддреНрдкрд╛рдж, рдСрд░реНрдбрд░, рдЪрд╛рд▓рд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрддреНрдкрд╛рдж рд╕рдореАрдХреНрд╖рд╛, рд╕рдорд░реНрдерди рд╕рдВрджреЗрд╢, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЬреИрд╕реЗ рднрд╛рд░реА, рдХрдо рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореАрдХреНрд╖рд╛рдПрдБ рдФрд░ рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдо рд╕реЗ рдХрдо рдПрдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдПрдХ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд░-рдХреНрд╖реЗрддреНрд░реАрдп рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рд╣реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рднреВ-рд╡рд┐рддрд░рд┐рдд рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

YugaByte DB SQL рдФрд░ NoSQL рдХреЛ рдХреИрд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ?

рд▓реЙрдЧ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдорд┐рд╢реНрд░рд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди, рдСрдЯреЛ-рд╢рд╛рд░реНрдбрд┐рдВрдЧ, рд╢рд╛рд░реНрдбреЗрдб рд╡рд┐рддрд░рд┐рдд рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдФрд░ ACID рд╡рд┐рддрд░рд┐рдд рд▓реЗрдирджреЗрди (Google рд╕реНрдкреИрдирд░ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд) рдкрд░ рдирд┐рд░реНрдорд┐рдд, YugaByte DB рджреБрдирд┐рдпрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде NoSQL (рдХреИрд╕рдВрдбреНрд░рд╛ рдФрд░ рд░реЗрдбрд┐рд╕) рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред рдПрд╕рдХреНрдпреВрдПрд▓ (рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓)ред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, YCQL, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд YugaByte DB API, NoSQL API рдореЗрдВ рдПрдХрд▓ рдФрд░ рдмрд╣реБ-рдХреБрдВрдЬреА ACID рд▓реЗрдирджреЗрди рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдзреНрдпрдорд┐рдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд▓реЗрдирджреЗрди рд╕рдВрдмрдВрдзреА NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдпреБрдЧ рдХреА рд╢реБрд░реБрдЖрдд рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, YCQL, PostgreSQL рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд YugaByte DB API, SQL API рдореЗрдВ рд░реИрдЦрд┐рдХ рд▓реЗрдЦрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреЛрд╖ рд╕рд╣рдирд╢реАрд▓рддрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ YugaByte DB рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рд▓реЗрди-рджреЗрди рд╕рдВрдмрдВрдзреА рд╣реИ, NoSQL API рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдорд┐рд╢рди-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд - PostgreSQL, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдФрд░ MongoDB рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ "YSQL рдХрд╛ рдкрд░рд┐рдЪрдп: YugaByte DB рдХреЗ рд▓рд┐рдП рдПрдХ PostgreSQL рд╕рдВрдЧрдд рд╡рд┐рддрд░рд┐рдд SQL API", YugaByte DB рдореЗрдВ SQL рдпрд╛ NoSQL рдХреЗ рдмреАрдЪ рдХрд╛ рдЪреБрдирд╛рд╡ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрднрд╛рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:

  • рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпрднрд╛рд░ рдорд▓реНрдЯреА-рдХреА рдЬреЙрдЗрди рдСрдкрд░реЗрд╢рди рд╣реИ, рддреЛ YSQL рдЪреБрдирддреЗ рд╕рдордп, рд╕рдордЭреЗрдВ рдХрд┐ рдЖрдкрдХреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХрдИ рдиреЛрдбреНрд╕ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк NoSQL рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд░/рдпрд╛ рдХрдо рдереНрд░реВрдкреБрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдЕрдиреНрдпрдерд╛, рджреЛ NoSQL API рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрдиреЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдиреЛрдб рд╕реЗ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдорд┐рд▓реЗрдЧрд╛ред YugaByte DB рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛, рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдкрд░рд┐рдЪрд╛рд▓рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдХрдИ рдХрд╛рд░реНрдпрднрд╛рд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рдбреЗрдЯрд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрдирд╛

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

PostgreSQL рдФрд░ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рд╕рдВрдЧрдд YugaByte DB рдбреЗрдЯрд╛рдмреЗрд╕

mkdir ~/yugabyte && cd ~/yugabyte
wget https://downloads.yugabyte.com/yb-docker-ctl && chmod +x yb-docker-ctl
docker pull yugabytedb/yugabyte
./yb-docker-ctl create --enable_postgres

MongoDB

docker run --name my-mongo -d mongo:latest

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд╣реБрдВрдЪ

рдЖрдЗрдП рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗрдВред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

psql PostgreSQL рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╣реИред рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, YugaByte DB рд╕реАрдзреЗ рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ psql рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres

рдХреИрд╕рд╛рдВрджреНрд░рд╛

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

docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh

MongoDB

рдореЛрдВрдЧреЛ MongoDB рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╣реИред рдЗрд╕реЗ MongoDB рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдХреА рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

docker exec -it my-mongo bash 
cd bin
mongo

рдПрдХ рдЯреЗрдмрд▓ рдмрдирд╛рдирд╛

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

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

CREATE TABLE Music (
    Artist VARCHAR(20) NOT NULL, 
    SongTitle VARCHAR(30) NOT NULL,
    AlbumTitle VARCHAR(25),
    Year INT,
    Price FLOAT,
    Genre VARCHAR(10),
    CriticRating FLOAT,
    Tags TEXT,
    PRIMARY KEY(Artist, SongTitle)
);	

рдХреИрд╕рд╛рдВрджреНрд░рд╛

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

CREATE KEYSPACE myapp;
USE myapp;
CREATE TABLE Music (
    Artist TEXT, 
    SongTitle TEXT,
    AlbumTitle TEXT,
    Year INT,
    Price FLOAT,
    Genre TEXT,
    CriticRating FLOAT,
    Tags TEXT,
    PRIMARY KEY(Artist, SongTitle)
);

MongoDB

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

use myNewDatabase;

рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

d Music
Table "public.music"
    Column    |         Type          | Collation | Nullable | Default 
--------------+-----------------------+-----------+----------+--------
 artist       | character varying(20) |           | not null | 
 songtitle    | character varying(30) |           | not null | 
 albumtitle   | character varying(25) |           |          | 
 year         | integer               |           |          | 
 price        | double precision      |           |          | 
 genre        | character varying(10) |           |          | 
 criticrating | double precision      |           |          | 
 tags         | text                  |           |          | 
Indexes:
    "music_pkey" PRIMARY KEY, btree (artist, songtitle)

рдХреИрд╕рд╛рдВрджреНрд░рд╛

DESCRIBE TABLE MUSIC;
CREATE TABLE myapp.music (
    artist text,
    songtitle text,
    albumtitle text,
    year int,
    price float,
    genre text,
    tags text,
    PRIMARY KEY (artist, songtitle)
) WITH CLUSTERING ORDER BY (songtitle ASC)
    AND default_time_to_live = 0
    AND transactions = {'enabled': 'false'};

MongoDB

use myNewDatabase;
show collections;

рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Year, Price, Genre, CriticRating, 
    Tags)
VALUES(
    'No One You Know', 'Call Me Today', 'Somewhat Famous',
    2015, 2.14, 'Country', 7.8,
    '{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}'
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre, CriticRating)
VALUES(
    'No One You Know', 'My Dog Spot', 'Hey Now',
    1.98, 'Country', 8.4
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre)
VALUES(
    'The Acme Band', 'Look Out, World', 'The Buck Starts Here',
    0.99, 'Rock'
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre, 
    Tags)
VALUES(
    'The Acme Band', 'Still In Love', 'The Buck Starts Here',
    2.47, 'Rock', 
    '{"radioStationsPlaying": ["KHCR", "KBQX", "WTNR", "WJJH"], "tourDates": { "Seattle": "20150625", "Cleveland": "20150630"}, "rotation": Heavy}'
);

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рд╕рдордЧреНрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ INSERT рдХреИрд╕рдВрдбреНрд░рд╛ рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд╕рдорд╛рди рд╣реА рджрд┐рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИред рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдореЗрдВ INSERT рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ UPSERT, рдЬрд╣рд╛рдВ рдкрдВрдХреНрддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдЕрдВрддрд┐рдо рдорд╛рди рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ PostgreSQL рдХреЗ рд╕рдорд╛рди рд╣реИ INSERT рдКрдкрд░

.

MongoDB

рднрд▓реЗ рд╣реА MongoDB рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреА рддрд░рд╣ рдПрдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЗрдВрд╕рд░реНрд╢рди рдСрдкрд░реЗрд╢рди рдХрд╛ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдореЛрдВрдЧреЛрдбреАрдмреА рдореЗрдВ рдбрд╛рд▓рдиреЗ () рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реИ UPSERT, рдЬреЛ рдЗрд╕реЗ PostgreSQL рдХреЗ рд╕рдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдмрд┐рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛ _idspecified рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред

db.music.insert( {
artist: "No One You Know",
songTitle: "Call Me Today",
albumTitle: "Somewhat Famous",
year: 2015,
price: 2.14,
genre: "Country",
tags: {
Composers: ["Smith", "Jones", "Davis"],
LengthInSeconds: 214
}
}
);
db.music.insert( {
artist: "No One You Know",
songTitle: "My Dog Spot",
albumTitle: "Hey Now",
price: 1.98,
genre: "Country",
criticRating: 8.4
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Look Out, World",
albumTitle:"The Buck Starts Here",
price: 0.99,
genre: "Rock"
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Still In Love",
albumTitle:"The Buck Starts Here",
price: 2.47,
genre: "Rock",
tags: {
radioStationsPlaying:["KHCR", "KBQX", "WTNR", "WJJH"],
tourDates: {
Seattle: "20150625",
Cleveland: "20150630"
},
rotation: "Heavy"
}
}
);

рддрд╛рд▓рд┐рдХрд╛ рдХреНрд╡реЗрд░реА

рдХреНрд╡реЗрд░реА рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╢рд╛рдпрдж SQL рдФрд░ NoSQL рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рд╣реИ FROM ╨╕ WHERE. SQL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рдж рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ FROM рдПрдХрд╛рдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ WHERE рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдВрдЪрд╛рд▓рди рд╕рд╣рд┐рдд)ред JOIN рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, NoSQL рдПрдХ рдЧрдВрднреАрд░ рд╕реАрдорд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ FROM, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рдЕрдВрджрд░ WHERE, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣рдореЗрд╢рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ NoSQL рдкреНрд░рджрд░реНрд╢рди рдкреБрд╢ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрд╛рдд рдХреА рдереАред рдпрд╣ рдЗрдЪреНрдЫрд╛ рдХрд┐рд╕реА рднреА рдХреНрд░реЙрд╕-рд╕рд╛рд░рдгреАрдмрджреНрдз рдФрд░ рдХреНрд░реЙрд╕-рдХреБрдВрдЬреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рд╣рд░ рд╕рдВрднрд╡ рдХрдореА рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╕рдордп рдпрд╣ рдЕрдВрддрд░-рдиреЛрдб рд╕рдВрдЪрд╛рд░ рдореЗрдВ рдмрдбрд╝реА рджреЗрд░реА рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╕рдВрдбреНрд░рд╛ рдХреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХреБрдЫ рдСрдкрд░реЗрдЯрд░реЛрдВ (рдХреЗрд╡рд▓) рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ =, IN, <, >, =>, <=) рд╡рд┐рднрд╛рдЬрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдкрд░, рджреНрд╡рд┐рддреАрдпрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ (рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ = рдСрдкрд░реЗрдЯрд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ)ред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

рдиреАрдЪреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рддреАрди рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рдХрд┐рд╕реА рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рд╕рднреА рдЧрд╛рдиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ;
  • рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рд╕рднреА рдЧрд╛рдиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╢реАрд░реНрд╖рдХ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВ;
  • рдХрд┐рд╕реА рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рд╕рднреА рдЧрд╛рдиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рдмреНрдж рд╣реИ рдФрд░ рдЬрд┐рдирдХреА рдХреАрдордд 1.00 рд╕реЗ рдХрдо рд╣реИред
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%'
AND Price > 1.00;

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз PostgreSQL рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рд╣реА рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд╛рдо рдХрд░реЗрдЧрд╛ LIKE рдЬреИрд╕реЗ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЙрд▓рдо рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ SongTitle. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рд╣реИ = ╨╕ IN.

SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle IN ('Call Me Today', 'My Dog Spot')
AND Price > 1.00;

MongoDB

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

db.music.find( {
  artist: "No One You Know"
 } 
);
db.music.find( {
  artist: "No One You Know",
  songTitle: /Call/
 } 
);

рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛

рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдЙрд╕ рдХреНрд╡реЗрд░реА рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛ред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

SELECT * 
FROM Music;

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рдЙрдкрд░реЛрдХреНрдд PostgreSQL рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рдиред

MongoDB

db.music.find( {} );

рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

PostgreSQL рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ UPDATE рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП. рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реИ UPSERT, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдкрдВрдХреНрддрд┐ рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдХрдерди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

UPDATE Music
SET Genre = 'Disco'
WHERE Artist = 'The Acme Band' AND SongTitle = 'Still In Love';

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ рдкрд╛рд╕ рд╣реИ UPDATE PostgreSQL рдХреЗ рд╕рдорд╛рдиред UPDATE рд╕рдорд╛рди рд╢рдмреНрджрд╛рд░реНрде рд╣реИ UPSERT, рдкрд╕рдВрдж INSERT.

рдЙрдкрд░реЛрдХреНрдд PostgreSQL рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рдиред

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

db.music.update(
  {"artist": "The Acme Band"},
  { 
    $set: {
      "genre": "Disco"
    }
  },
  {"multi": true, "upsert": true}
);

рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдирд╛

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рдЙрдкрд░реЛрдХреНрдд PostgreSQL рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рдиред

MongoDB

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП MongoDB рдХреЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрд╢рди рд╣реИрдВ - рдбрд┐рд▓реАрдЯрд╡рди() /рд╣рдЯрд╛рдПрдВрдХрдИ() ╨╕ рд╣рдЯрд╛рдирд╛(). рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

db.music.deleteMany( {
        artist: "The Acme Band"
    }
);

рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣рдЯрд╛рдирд╛

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

DROP TABLE Music;

рдХреИрд╕рд╛рдВрджреНрд░рд╛

рдЙрдкрд░реЛрдХреНрдд PostgreSQL рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рдиред

MongoDB

db.music.drop();

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

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

YugaByte DB рдЬреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде, рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦрддреНрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдПрдХ рдиреЛрдб рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢рд╛рд░реНрдбрд┐рдВрдЧ/рд░реАрдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рд▓реЗрдЦрди рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ Google рдореЗрдШрд▓реЗрди-рджреЗрди рд╕рдВрдмрдВрдзреА, рджреГрдврд╝рддрд╛ рд╕реЗ рд╕реБрд╕рдВрдЧрдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЕрдм рдЧреИрд░-рд▓реЗрди-рджреЗрди рд╕рдВрдмрдВрдзреА, рдЕрдВрддрддрдГ рд╕реБрд╕рдВрдЧрдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд╛рд╕ рдЪрдкрд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

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

рд╣рдо рдЖрдкрдХреЗ рд╕реБрдЦрдж рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреА рдХрд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдореБрдлреНрдд рд╡реЗрдмрд┐рдирд╛рд░, рдЬреЛ 14 рдордИ рдХреЛ рд╣реЛрдЧрд╛ред

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

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