рдирдорд╕реНрдХрд╛рд░ рдорд┐рддреНрд░рд╛рдВрдиреЛ. рдореЗ рдорд╣рд┐рдиреНрдпрд╛рдЪреНрдпрд╛ рд╕реБрдЯреНрдЯреНрдпрд╛рдВрдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рднрд╛рдЧрд╛рд╕рд╛рдареА рдирд┐рдШрдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣реА рдЕрднреНрдпрд╛рд╕рдХреНрд░рдорд╛рд╡рд░ рдирд╡реАрди рдкреНрд░рд╡рд╛рд╣ рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдкреЗрдХреНрд╖реЗрдиреЗ рднрд╛рд╖рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗрд▓реА рд╕рд╛рдордЧреНрд░реА рддреБрдордЪреНрдпрд╛рд╕реЛрдмрдд рд╢реЗрдЕрд░ рдХрд░рддреЛ.
рдЕтАНреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЕрдиреЗрдХ рдСрдкрд░реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪреА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд░рд╛рдЪ рд╡реЗрд│ рдШрд╛рд▓рд╡рддрд╛рдд рдЬреЗ рдЗрдЪреНрдЫрд┐рдд рд╡рд░реНрдХрд▓реЛрдбрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдЧрд░рдЬрд╛рдВрдордзреНрдпреЗ рд╕рд░рд▓реАрдХреГрдд рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ, рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рдореА, рд╡рд╛рдЪрди/рд▓реЗрдЦрди рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди, рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕реВ рд╢рдХрддреЛ. рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХрдкрдгреЗ, рдирд┐рд╡рдб рдбреЗрдЯрд╛рдмреЗрд╕ рд╢реНрд░реЗрдгреА, SQL рдХрд┐рдВрд╡рд╛ NoSQL рдиреЗ рд╕реБрд░реВ рд╣реЛрддреЗ, рдХрд╛рд░рдг рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рд╡реНрдпрд╛рдкрд╛рд░-рдСрдлрдЪрд╛ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдЪ рд╕рд╛рджрд░ рдХрд░рддреЗ. рдХрдореА рд╡рд┐рд▓рдВрдмрддрд╛ рдЖрдгрд┐ рдЙрдЪреНрдЪ рдереНрд░реВрдкреБрдЯрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдиреЙрди-рдЯреНрд░реЗрдб-рдСрдл рдЖрд╡рд╢реНрдпрдХрддрд╛ рдореНрд╣рдгреВрди рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдореНрд╣рдгреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдирдореБрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдпрд╛ рд▓реЗрдЦрд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡реНрд╣рд▓рдкрд░рдирд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд SQL рдЖрдгрд┐ NoSQL рджрд░рдореНрдпрд╛рди рдпреЛрдЧреНрдп рдирд┐рд╡рдб рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рдгреЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдПрдХ SQL рдбреЗрдЯрд╛рдмреЗрд╕, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рдЖрдгрд┐ рджреЛрди NoSQL рдбреЗрдЯрд╛рдмреЗрд╕, рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдЖрдгрд┐ рдореЛрдВрдЧреЛрдбреАрдмреА, рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрдирдЪреНрдпрд╛ рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреА рдЬрд╕реЗ рдХреА рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ, рддреЗ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдгреЗ, рдЯреЗрдмрд▓рдордзреВрди рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рддреЛ рд╣рдЯрд╡рдгреЗ рдпрд╛ рдЧреЛрд╖реНрдЯреА рдХрд╡реНрд╣рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд╛рд╣реВ. рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рд╡реНрдпрд╡рд╣рд╛рд░, рдЬреЙрдЗрди, TTL рдирд┐рд░реНрджреЗрд╢ рдЖрдгрд┐ JSON-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░реВ.
SQL рдЖрдгрд┐ NoSQL рдордзреНрдпреЗ рдХрд╛рдп рдлрд░рдХ рдЖрд╣реЗ?
SQL рдбреЗрдЯрд╛рдмреЗрд╕ ACID рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рдирд▓ рдЧреЕрд░рдВрдЯреАрджреНрд╡рд╛рд░реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╡рдЪрд┐рдХрддрд╛ рд╡рд╛рдврд╡рддрд╛рдд, рддрд╕реЗрдЪ рд╡рд┐рджреНрдпрдорд╛рди рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреЗрд▓реНрд╕рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдорд╛рд░реНрдЧрд╛рдВрдиреА JOIN рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдбреЗрдЯрд╛рдЪреА рдХреНрд╡реЗрд░реА рдХрд░рдгреНрдпрд╛рдЪреА рддреНрдпрд╛рдВрдЪреА рдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рддреЗ.
рддреНрдпрд╛рдВрдЪреЗ рдореЛрдиреЛрд▓рд┐рдерд┐рдХ/рд╕рд┐рдВрдЧрд▓-рдиреЛрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рд░рд┐рдбрдВрдбрдВрд╕реАрд╕рд╛рдареА рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡реНрд╣ рдкреНрд░рддрд┐рдХреГрддреА рдореЙрдбреЗрд▓рдЪрд╛ рд╡рд╛рдкрд░ рдкрд╛рд╣рддрд╛, рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ SQL рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рджреЛрди рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдирд╛рд╣реАрдд - рд░реЗрдЦреАрдп рд▓реЗрдЦрди рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА (рдореНрд╣рдгрдЬреЗ рдПрдХрд╛рдзрд┐рдХ рдиреЛрдбреНрд╕рд╡рд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╡рд┐рднрд╛рдЬрди) рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд/рд╢реВрдиреНрдп рдбреЗрдЯрд╛ рдиреБрдХрд╕рд╛рди. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рдкреНрд░рдорд╛рдг рдПрдХрд╛ рдиреЛрдбрдЪреНрдпрд╛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд▓реЗрдЦрди рдереНрд░реВрдкреБрдЯрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХрд╛рд╣реА рддрд╛рддреНрдкреБрд░рддреА рдбреЗрдЯрд╛ рд╣рд╛рдиреА рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕рдордзреНрдпреЗ (рд╕рд╛рдорд╛рдпрд┐рдХ-рдХрд╛рд╣реАрд╣реА рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдордзреНрдпреЗ) рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдпреЗрдереЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдЕрд▓реАрдХрдбреАрд▓ рдХрдорд┐рдЯ рдЕрджреНрдпрд╛рдк рд╕реНрд▓реЗрд╡реНрд╣ рдХреЙрдкреАрдордзреНрдпреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЭрд╛рд▓реЗ рдирд╛рд╣реАрдд. рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдиреЙрди-рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдЕрджреНрдпрддрдиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рдХрдареАрдг рдЖрд╣реЗ.
NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╣рд╕рд╛ рдирд┐рд╕рд░реНрдЧрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЙрджрд╛. рддреНрдпрд╛рдордзреНрдпреЗ, рдбреЗрдЯрд╛ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЕрдиреЗрдХ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рддреНрдпрд╛рдВрдирд╛ рд╡рд┐рдХреГрддреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреБрдореНрд╣реА рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рджреЗрдЦреАрд▓ рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рдХреЙрдкреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡рд╛рдЪрди рджрд░рдореНрдпрд╛рди рдЙрдкрд▓рдмреНрдз рд╢рд╛рд░реНрдбреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░реВрди рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рд╣реЗ рдПрдХреВрдг рдзреНрдпреЗрдп рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рд╣реЛрддреЛ рдХреА NoSQL рд▓рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдХреНрд╡реЗрд░реАрдЪреЗ рдореЙрдбреЗрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддрд░ SQL рд▓рд╛ рддреБрдореНрд╣реА рддреБрдордЪрд╛ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
NoSQL рд╡рд┐рддрд░рд┐рдд рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╣реЗ рдЕрдиреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рдЯреНрд░реЗрдбрдСрдлрд╕рд╛рдареА рдореВрд▓рднреВрдд рддрд░реНрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдд ACID рд╡реНрдпрд╡рд╣рд╛рд░ рдиреБрдХрд╕рд╛рди, рдЬреЙрдЗрди рдЖрдгрд┐ рд╕рд╛рддрддреНрдпрдкреВрд░реНрдг рдЬрд╛рдЧрддрд┐рдХ рджреБрдпреНрдпрдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.
рдЕрд╕рд╛ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдЖрд╣реЗ рдХреА NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд░реЗрдЦреАрдп рд▓реЗрдЦрди рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдЖрдгрд┐ рдЙрдЪреНрдЪ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд, рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рдореА рдЧрдорд╛рд╡рд▓реНрдпрд╛рдореБрд│реЗ рддреЗ рдорд┐рд╢рди-рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдбреЗрдЯрд╛рд╕рд╛рдареА рдЕрдпреЛрдЧреНрдп рдмрдирддрд╛рдд.
NoSQL рдордзреАрд▓ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ SQL рдкреЗрдХреНрд╖рд╛ рдХрд╕реЗ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ рд╣реЗ рдЦрд╛рд▓реАрд▓ рд╕рд╛рд░рдгреА рджрд╛рдЦрд╡рддреЗ.
SQL рдЖрдгрд┐ NoSQL: рджреЛрдиреНрд╣реАрдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ?
Amazon.com, Netflix, Uber рдЖрдгрд┐ Airbnb рд╕рд╛рд░рдЦреНрдпрд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рдЬрд╛рдЧрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рдЬрдЯрд┐рд▓, рдмрд╣реБрдЖрдпрд╛рдореА рдХрд╛рд░реНрдпреЗ рдХрд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рджрд┐рд▓реЗ рдЬрд╛рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Amazon.com рд╕рд╛рд░рдЦреНрдпрд╛ рдИ-рдХреЙрдорд░реНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдорд╛рд╣рд┐рддреА, рдЙрддреНрдкрд╛рджрдиреЗ, рдСрд░реНрдбрд░, рдЗрдирд╡реНрд╣реЙрдЗрд╕ рдпрд╛рдВрд╕рд╛рд░рдЦрд╛ рд╣рд▓рдХрд╛, рдЙрдЪреНрдЪ-рдЧрдВрднреАрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддрд╕реЗрдЪ рдЬрдб, рдХрдореА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдЬрд╕реЗ рдХреА рдЙрддреНрдкрд╛рджрди рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдиреЗ, рд╕рдорд░реНрдерди рд╕рдВрджреЗрд╢, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдк, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдиреЗ рдЖрдгрд┐ рд╢рд┐рдлрд╛рд░рд╕реА. рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рд╣реЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХрд┐рдорд╛рди рдПрдХрд╛ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рдХрд┐рдорд╛рди рдПрдХрд╛ SQL рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддрд╛рдд. рдХреНрд░реЙрд╕-рдкреНрд░рд╛рджреЗрд╢рд┐рдХ рдЖрдгрд┐ рдЬрд╛рдЧрддрд┐рдХ рдкреНрд░рдгрд╛рд▓реАрдВрдордзреНрдпреЗ, NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджреЗрд╢рд╛рдд рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрддреНрд░реЛрдд SQL рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдбреЗрдЯрд╛рд╕рд╛рдареА рднреМрдЧреЛрд▓рд┐рдХ-рд╡рд┐рддрд░рд┐рдд рдХреЕрд╢реЗ рдореНрд╣рдгреВрди рдХрд╛рд░реНрдп рдХрд░рддреЛ.
рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА SQL рдЖрдгрд┐ NoSQL рдХрд╕реЗ рдПрдХрддреНрд░ рдХрд░рддреЗ?
рд▓реЙрдЧ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдорд┐рдХреНрд╕реНрдб рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрд┐рди, рдСрдЯреЛ-рд╢рд╛рд░реНрдбрд┐рдВрдЧ, рд╢рд╛рд░реНрдбреЗрдб рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯреЗрдб рдХреЙрдиреНрд╕реЗрдиреНрд╕рд╕ рд░рд┐рдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдгрд┐ ACID рд╡рд┐рддрд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ (Google рд╕реНрдкреЕрдирд░рджреНрд╡рд╛рд░реЗ рдкреНрд░реЗрд░рд┐рдд) рд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ, рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рд╣рд╛ рдЬрдЧрд╛рддреАрд▓ рдкрд╣рд┐рд▓рд╛ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╣реЗ рдЬреЛ рдПрдХрд╛рдЪ рд╡реЗрд│реА NoSQL (Cassandra & Redis) рд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. SQL (PostgreSQL). рдЦрд╛рд▓реАрд▓ рддрдХреНрддреНрдпрд╛рдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, YCQL, рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB API Cassandra рд╕рд╣ рд╕реБрд╕рдВрдЧрдд, NoSQL API рдордзреНрдпреЗ рд╕рд┐рдВрдЧрд▓ рдЖрдгрд┐ рдорд▓реНрдЯреА-рдХреА ACID рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдгрд┐ рдЬрд╛рдЧрддрд┐рдХ рджреБрдпреНрдпрдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреНрдпрд╛ рд╕рдВрдХрд▓реНрдкрдирд╛ рдЬреЛрдбрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдпреБрдЧрд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд рд╣реЛрддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, YCQL, PostgreSQL рд╕рд╣ рд╕реБрд╕рдВрдЧрдд рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB API, SQL API рдордзреНрдпреЗ рд░реЗрдЦреАрдп рд▓реЗрдЦрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕рдЪреНрдпрд╛ рд╕рдВрдХрд▓реНрдкрдирд╛ рдЬреЛрдбрддреЗ, рд╡рд┐рддрд░рд┐рдд SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЬрдЧрд╛рд╕рдореЛрд░ рдЖрдгрддреЗ. рдХрд╛рд░рдг рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдЖрд╣реЗ, NoSQL API рдЖрддрд╛ рдорд┐рд╢рди-рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рдЖрдзреА рд▓реЗрдЦрд╛рдд рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ
- рдЬрд░ рддреБрдордЪрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд░реНрдХрд▓реЛрдб рдорд▓реНрдЯреА-рдХреА рдЬреЙрдЗрди рдСрдкрд░реЗрд╢рдиреНрд╕ рдЕрд╕реЗрд▓, рддрд░ YSQL рдирд┐рд╡рдбрддрд╛рдирд╛, рд╕рдордЬреВрди рдШреНрдпрд╛ рдХреА рддреБрдордЪреНрдпрд╛ рдХреА рдмрд╣реБрд╡рд┐рдз рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдкрд░рд┐рдгрд╛рдореА рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ NoSQL рдкреЗрдХреНрд╖рд╛ рдХрдореА рдереНрд░реВрдкреБрдЯ.
- рдЕрдиреНрдпрдерд╛, рджреЛрди NoSQL API рдкреИрдХреА рдПрдХ рдирд┐рд╡рдбрд╛, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡реВрди рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рд╡реЗрд│реА рдПрдХрд╛рдЪ рдиреЛрдбрдордзреВрди рджрд┐рд▓реЗрд▓реНрдпрд╛ рдХреНрд╡реЗрд░реАрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рдорд┐рд│реЗрд▓. рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рдЬрдЧрд╛рддреАрд▓, рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдПрдХрд▓ рдСрдкрд░реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░реВ рд╢рдХрддреЗ рдЬреНрдпрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рд╡рд░реНрдХрд▓реЛрдбреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.
рдкреБрдвреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ рд▓реЕрдм рдореВрд│ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рд╡рд┐рд░реВрджреНрдз, PostgreSQL рдЖрдгрд┐ Cassandra API рд╕реБрд╕рдВрдЧрдд рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рджреЛрди рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕рдЪреЗ рдкреВрд░реНрдгрдкрдгреЗ рд╕реНрд╡рддрдВрддреНрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдПрдХрд╛рдЪ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рджреЛрди рднрд┐рдиреНрди API (рджреЛрди рднрд┐рдиреНрди рдкреЛрд░реНрдЯрд╡рд░) рд╕рд╣ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реБрд▓рднрддреЗрд╡рд░ рдЬреЛрд░ рджреЗрддреЛ.
рдЦрд╛рд▓реАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ, рдЖрдореНрд╣реА рдХрд╡реНрд╣рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдлрд░рдХ рдЖрдгрд┐ рдХрд╛рд╣реА рд╕рдорд╛рдирддрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ рд▓реЕрдмрд╡рд░ рдПрдХ рдирдЬрд░ рдЯрд╛рдХреВ.
рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ рдкреНрд░рдпреЛрдЧрд╢рд╛рд│рд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрдирд╛
рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдбрд┐рдЭрд╛рдЗрдирд╡рд░ (рдЬрдЯрд┐рд▓ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕рдРрд╡рдЬреА) рднрд░ рджрд┐рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рдорд╢реАрдирд╡рд░ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ.
PostgreSQL рдЖрдгрд┐ Cassandra рд╕реБрд╕рдВрдЧрдд рдпреБрдЧрд╛рдмрд╛рдЗрдЯ 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
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреНрд░рд╡реЗрд╢
рд╕рдВрдмрдВрдзрд┐рдд API рд╕рд╛рдареА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░реВ.
рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рдПрд╕рдХреНрдпреВрдПрд▓
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres
рд╢рд░рд┐рд░рд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рдВ рдЕрд╕рддрдВ,
cqlsh
рдХреЕрдЯрд▓реЙрдЧрдордзреНрдпреЗ bin
.
рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА CQL SQL рджреНрд╡рд╛рд░реЗ рдкреНрд░реЗрд░рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдЯреЗрдмрд▓, рдкрдВрдХреНрддреА, рд╕реНрддрдВрдн рдЖрдгрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХреЗрдЪреНрдпрд╛ рд╕рдорд╛рди рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрд╣реЗрдд. рддрдерд╛рдкрд┐, рдПрдХ NoSQL рднрд╛рд╖рд╛ рдореНрд╣рдгреВрди, рддреА рдорд░реНрдпрд╛рджрд╛рдВрдЪрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЪ рдЬреЛрдбрддреЗ, рдЬреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХ рдЖрдореНрд╣реА рдЗрддрд░ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░реВ.
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh
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)
);
рд╢рд░рд┐рд░рд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рдВ рдЕрд╕рддрдВ,
Cassandra рдордзреНрдпреЗ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ PostgreSQL рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ. рдореБрдЦреНрдп рдлрд░рдХрд╛рдВрдкреИрдХреА рдПрдХ рдореНрд╣рдгрдЬреЗ рдЕрдЦрдВрдбрддреЗрдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛рдВрдЪрд╛ рдЕрднрд╛рд╡ (рдЙрджрд╛. NULL рдирд╛рд╣реА), рдкрд░рдВрддреБ рд╣реА 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 рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕ (рдбреЗрдЯрд╛рдмреЗрд╕) (рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдордзреАрд▓ рдХреАрд╕реНрдкреЗрд╕ рдкреНрд░рдорд╛рдгреЗ) рдбреЗрдЯрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░рддреЗ, рдЬреЗрдереЗ рд╕рдВрдЧреНрд░рд╣ (рдЯреЗрдмрд▓ рдкреНрд░рдорд╛рдгреЗ) рдЕрд╕рддрд╛рдд рдЬреНрдпрд╛рдд рджрд╕реНрддрдРрд╡рдЬ рдЕрд╕рддрд╛рдд (рдЯреЗрдмрд▓рдордзреАрд▓ рдкрдВрдХреНрддреАрдВрдкреНрд░рдорд╛рдгреЗ). рдореЛрдВрдЧреЛрдбреАрдмреАрдордзреНрдпреЗ, рдореБрд│рд╛рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдХреАрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рд╕рдВрдШ "рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рд╛", рдЦрд╛рд▓реА рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓реЗ, рдкрд╣рд┐рд▓реНрдпрд╛ рдХреЙрд▓рд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдиреНрд╕реНрдЯрдВрдЯ рдХрд░рддреЗ рдЖрдгрд┐ рдирд╡реНрдпрд╛рдиреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рд╕рдВрджрд░реНрдн рдмрджрд▓рддреЗ. рд╕рдВрдЧреНрд░рд╣ рджреЗрдЦреАрд▓ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА; рддреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдлрдХреНрдд рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдирд╡реАрди рд╕рдВрдЧреНрд░рд╣рд╛рдд рдкрд╣рд┐рд▓рд╛ рджрд╕реНрддрдРрд╡рдЬ рдЬреЛрдбрддрд╛. рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдореЛрдВрдЧреЛрдбреАрдмреА рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░рддрд╛ рдХреЛрдгрддреЗрд╣реА рд╕рдВрдХрд▓рди-рд╕реНрддрд░реАрдп рдСрдкрд░реЗрд╢рди рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рддреНрдпрд╛рд╡рд░ рдЪрд╛рд▓реЗрд▓.
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
Cassandra рдордзреНрдпреЗ PostgreSQL рд╕рд╛рд░рдЦреЗрдЪ рджрд┐рд╕рддреЗ. рддрдерд╛рдкрд┐, рд╕рд┐рдореЗрдВрдЯрд┐рдХреНрд╕рдордзреНрдпреЗ рдПрдХ рдореЛрдард╛ рдлрд░рдХ рдЖрд╣реЗ. Cassandra рдордзреНрдпреЗ INSERT
рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдПрдХ рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ UPSERT
, рдЬреЗрдереЗ рдкрдВрдХреНрддреА рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рд╢реЗрд╡рдЯрдЪреА рдореВрд▓реНрдпреЗ рдкрдВрдХреНрддреАрдордзреНрдпреЗ рдЬреЛрдбрд▓реА рдЬрд╛рддрд╛рдд.
рдбреЗрдЯрд╛ рдПрдВрдЯреНрд░реА рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ
INSERT
рдЙрдЪреНрдЪ
.
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
. рдПрд╕рдХреНрдпреВрдПрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдирдВрддрд░ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ 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 рдХреНрд╡реЗрд░реАрдВрдкреИрдХреА, рдлрдХреНрдд рдкрд╣рд┐рд▓реАрдЪ Cassandra рдордзреНрдпреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрд▓, рдХрд╛рд░рдг рдСрдкрд░реЗрдЯрд░ 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
рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдореЛрдВрдЧреЛрдбреАрдмреАрдордзреНрдпреЗ рдХреНрд╡реЗрд░реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдореБрдЦреНрдп рдкрджреНрдзрдд рдЖрд╣реЗ 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
рдСрдкрд░реЗрд╢рди 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
рдореЛрдВрдЧреЛрдбреАрдмреАрдХрдбреЗ рдХрд╛рдЧрджрдкрддреНрд░реЗ рд╣рдЯрд╡рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрди рдкреНрд░рдХрд╛рд░рдЪреЗ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЖрд╣реЗрдд -
db.music.deleteMany( {
artist: "The Acme Band"
}
);
рдЯреЗрдмрд▓ рд╣рдЯрд╡рдд рдЖрд╣реЗ
рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рдПрд╕рдХреНрдпреВрдПрд▓
DROP TABLE Music;
рд╢рд░рд┐рд░рд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рдВ рдЕрд╕рддрдВ,
рд╡рд░реАрд▓ PostgreSQL рдЙрджрд╛рд╣рд░рдгрд╛рдкреНрд░рдорд╛рдгреЗрдЪ.
MongoDB
db.music.drop();
рдирд┐рд╖реНрдХрд░реНрд╖
рдПрд╕рдХреНрдпреВрдПрд▓ рдЖрдгрд┐ NoSQL рдордзреАрд▓ рдирд┐рд╡рдбреАрдмрджреНрджрд▓рдЪреА рдЪрд░реНрдЪрд╛ 10 рд╡рд░реНрд╖рд╛рдВрд╣реВрди рдЕрдзрд┐рдХ рдХрд╛рд│ рд╕реБрд░реВ рдЖрд╣реЗ. рдпрд╛ рд╡рд╛рджрд╛рдЪреЗ рджреЛрди рдореБрдЦреНрдп рдкреИрд▓реВ рдЖрд╣реЗрдд: рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЬрд┐рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (рдореЛрдиреЛрд▓рд┐рдерд┐рдХ, рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рдирд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рд╡рд┐рд░реБрджреНрдз рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯреЗрдб, рдиреЙрди-рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рдирд▓ NoSQL) рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрди (SQL рдордзреНрдпреЗ рддреБрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рдореЙрдбреЗрд▓рд┐рдВрдЧ vs NoSQL рдордзреНрдпреЗ рддреБрдордЪреНрдпрд╛ рдХреНрд╡реЗрд░реАрдЪреЗ рдореЙрдбреЗрд▓рд┐рдВрдЧ).
рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд┐рддрд░реАрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣, рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдмрджреНрджрд▓рдЪреНрдпрд╛ рд╡рд╛рджрд╡рд┐рд╡рд╛рджрд╛рд▓рд╛ рд╕рд╣рдЬрдкрдгреЗ рд╡рд┐рд╢реНрд░рд╛рдВрддреА рджрд┐рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдбреЗрдЯрд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдПрдХрд╛ рдиреЛрдбрд╡рд░ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд рддреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдореЛрдард╛ рд╣реЛрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╢рд╛рд░реНрдбрд┐рдВрдЧ/рд░рд┐рдмреЕрд▓реЗрдВрд╕рд┐рдВрдЧрд╕рд╣ рд░реЗрдЦреАрдп рд▓реЗрдЦрди рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░реЗ рдкреВрд░реНрдг рд╡рд┐рддрд░рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.
рдпрд╛рд╢рд┐рд╡рд╛рдп, рдПрдХрд╛ рд▓реЗрдЦрд╛рдд рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ
рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рдЪрд░реНрдЪреЗрдХрдбреЗ рдкрд░рдд рдпреЗрдд рдЕрд╕рддрд╛рдирд╛, рдХреЛрдгрддреНрдпрд╛рд╣реА рдЬрдЯрд┐рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рдЬрд╛рдЧрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рджреЛрдиреНрд╣реА рдбрд┐рдЭрд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрди (SQL рдЖрдгрд┐ NoSQL) рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд рдЕрд╕реЗ рдореНрд╣рдгрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. SQL "рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ" рджреГрд╖реНрдЯреАрдХреЛрди рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдмрджрд▓рддреНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдзрд┐рдХ рд╕рд╣рдЬрдкрдгреЗ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ, рддрд░ NoSQL "рдХреНрд╡реЗрд░реА рдореЙрдбреЗрд▓рд┐рдВрдЧ" рджреГрд╖реНрдЯреАрдХреЛрди рд╕рдорд╛рди рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдХрдореА рд╡рд┐рд▓рдВрдмрддрд╛ рдЖрдгрд┐ рдЙрдЪреНрдЪ рдереНрд░реВрдкреБрдЯрд╕рд╣ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ. рдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рдПрдХрд╛ рдкрдзреНрджрддреАрдЪрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рд╕рдорд╛рди рдХреЛрд░рдордзреНрдпреЗ SQL рдЖрдгрд┐ NoSQL API рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, PostgreSQL рдЖрдгрд┐ Cassandra рдпрд╛рд╕рд╣ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛рдмреЗрд╕ рднрд╛рд╖рд╛рдВрд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реВрди, рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рд╡рд┐рддрд░рд┐рдд, рдЕрддреНрдпрдВрдд рд╕реБрд╕рдВрдЧрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЬрд┐рдирд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреБрд╕рд░реА рднрд╛рд╖рд╛ рд╢рд┐рдХрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА.
рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА PostgreSQL, Cassandra рдЖрдгрд┐ MongoDB рдордзреАрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреА рдХрд╢рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдЖрд╣реЗрдд рд╣реЗ рдкрд╛рд╣рд┐рд▓реЗ. рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ, рдЖрдореНрд╣реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рд╡реНрдпрд╡рд╣рд╛рд░, рдЬреЙрдЗрди, TTL рдирд┐рд░реНрджреЗрд╢ рдЖрдгрд┐ JSON рджрд╕реНрддрдРрд╡рдЬ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдкреНрд░рдЧрдд рдбрд┐рдЭрд╛рдЗрди рд╕рдВрдХрд▓реНрдкрдирд╛рдВрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реВ.
рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдбреНрдпрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рд╡рд┐рд╢реНрд░рд╛рдВрддреАрдЪреА рд╢реБрднреЗрдЪреНрдЫрд╛ рджреЗрддреЛ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЛ
рд╕реНрддреНрд░реЛрдд: www.habr.com