
рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рд╣рдорд╛рд░реЗ рдХрд╛рдо рдореЗрдВ DBMS рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдПрдХ рд░реВрдк рдореЗрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдШреЗрд░рддреЗ рд╣реИрдВ, рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рд╕реЗ рд▓реЗрдХрд░ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╣рдм рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS, DBMS рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд╕рдмрд╕реЗ рдЖрдо рд╕рджрд╕реНрдп рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЗрди-рджреЗрди рд╡рд╛рд▓реЗ рд╣реИрдВред
рд╕рдВрд╕реНрдерд╛рди рдореЗрдВ, рд╣рдореЗрдВ ACID рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕ рдкреНрд░рддрд┐рдорд╛рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ MVCC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдХреЗ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ DBMSs рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ Oracle, Postgres, MySQL рдЗрддреНрдпрд╛рджрд┐ред рдФрд░ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕рд╣рдЬ рд╣реИред
рддреЛ, рдпрд╣ ACID рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд▓рд╛рдпрдХ рд╣реИ:
- рдПрдХ рдЯреЛрдорд┐рд╕рд┐рдЯреА - рд▓реЗрдирджреЗрди рдкрд░рдорд╛рдгреБ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд▓реЗрди-рджреЗрди рдХреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рддрд┐рдмрджреНрдз (рдХрдорд┐рдЯ) рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рд╕рднреА рд╡рд╛рдкрд╕ рд▓реБрдврд╝рдХ рдЬрд╛рддреЗ рд╣реИрдВ (рд░реЛрд▓рдУрд╡рд░);
- рд╕реА рдСрдиреНрд╕рд┐рд╕реНрдЯреЗрдВрд╕реА - рдЯреНрд░рд╛рдВрдЬреИрдХреНрд╢рдВрд╕ рдбреЗрдЯрд╛ рдХрдВрд╕рд┐рд╕реНрдЯреЗрдВрд╕реА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╡реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХ рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдо рд╡реИрдз рдХреНрд╖реЗрддреНрд░ рдореВрд▓реНрдпреЛрдВ, рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдЦрдВрдбрддрд╛ рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
- рдореИрдВ рд╡рд┐рд▓рд╛рдк рдХрд░рддрд╛ рд╣реВрдВ - рд╕рд╛рде-рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдирджреЗрди рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд▓реЗрдирджреЗрди рдХреЗ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрдирдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
- рдбреА рдпреВрд░реЗрдмрд┐рд▓рд┐рдЯреА - рдпрджрд┐ рд▓реЗрдирджреЗрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛, рддреЛ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдШрдЯрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧреА, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдмреИрдВрдХрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдореБрджреНрд░рд╛ рд▓реЗрдирджреЗрди рдЬреИрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рд╕реЗ рдкреИрд╕рд╛ рдбреЗрдмрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рд╣реЛрдЧрд╛ рдФрд░ рд╡реЗ рджреБрдХрд╛рди рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ ("рдкрд░рдорд╛рдгреБ" рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди) ┬╗), рдпрд╛ рдПрдмреАрдПрд╕ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрд╛рдирдХрд╛рд░реА рдЦреЛ рдЬрд╛рдПрдЧреА рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЬрдорд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (" рд╕реНрдерд╛рдпрд┐рддреНрд╡ "рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди)ред
рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдбреАрдмреАрдПрдордПрд╕ рдЬреЛ рдПрд╕реАрдЖрдИрдбреА тАЛтАЛрд▓реЗрдирджреЗрди рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрд▓рдЧрд╛рд╡ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╡рд╛рд▓ рдЙрдард╛рдПрдЧреА: рдЖрдзреБрдирд┐рдХ рдбреАрдмреАрдПрдордПрд╕ рд╕реИрдХрдбрд╝реЛрдВ рдФрд░ рд╣рдЬрд╛рд░реЛрдВ рдПрдХ рд╕рд╛рде рд▓реЗрдирджреЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВ? рдпрд╣рд╛рдБ MVCC (рдорд▓реНрдЯреАрд╡рд░реНрдЬрди рдХрдВрд╕реАрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓) рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдкрд░рд╕реНрдкрд░ рдбреЗрдЯрд╛ рдХреЗ рдХрдИ "рд╕рдВрд╕реНрдХрд░рдгреЛрдВ" рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкрд╣реБрдВрдЪ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рд╣реИред рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд░реВрдк рдореЗрдВ, рдЗрд╕ рддрдВрддреНрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕рднреА рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд░реАрдбреНрд╕ (рдЪрдпрди), рдЗрдВрд╕рд░реНрдЯ (рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ), рдбрд┐рд▓реАрдЯ (рдбрд┐рд▓реАрдЯ), рдЕрдкрдбреЗрдЯ (рдЕрдкрдбреЗрдЯ) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рджреМрд░рд╛рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
- рдЪрдпрди рдХрд░реЗрдВ - рдорд╛рдиреНрдп рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИрдВред рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╡реИрдз рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдПрдХ рд▓реЗрдирджреЗрди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдерд╛;
- рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ - рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рд╣рдЯрд╛рдПрдВ - рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдЦреБрдж рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ;
- рдЕрджреНрдпрддрди рд╣рдЯрд╛рдиреЗ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрджреНрдпрддрди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╡реИрдз рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ is_valid = 1 рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдЯ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдорд╛рдиреНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 0ред рд▓реЗрдХрд┐рди рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рддрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкрд╣реБрдВрдЪ рд╕рдВрднрд╡ рд╣реЛрдЧреА (рд▓реЗрдЦрдХ рдкрд╛рдардХреЛрдВ рдФрд░ рдЕрдиреНрдп рд▓реЗрдЦрдХреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗрдЧрд╛)ред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде "рддрд╛рд▓рд┐рдХрд╛ рдП" рд╣реИ:

рдФрд░ рджреЛ рд▓реЗрдирджреЗрди рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
- рд▓реЗрди-рджреЗрди 1: рдЕрджреНрдпрддрди рдП рд╕реЗрдЯ рдорд╛рди = рдорд╛рди || "рд▓реЗрдирджреЗрди 1" рдЬрд╣рд╛рдВ рдЖрдИрдбреА = 1;
- рд▓реЗрдирджреЗрди 2: рдЕрдкрдбреЗрдЯ рдП рд╕реЗрдЯ рд╡реИрд▓реНрдпреВ = рдорд╛рди || "рд▓реЗрдирджреЗрди 2" рдЬрд╣рд╛рдВ рдЖрдИрдбреА = 1;
рдпрджрд┐ рд╣рдо рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкрд░ рдЙрдирдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд▓реЗрдирджреЗрди 1 рдиреЗ ID = 1 рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╡реИрдз рдорд╛рди рдкрдврд╝рд╛: "рд╣реИрд▓реЛ";
- рд▓реЗрдирджреЗрди 2 рдиреЗ ID = 1 рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдорд╛рди рдкрдврд╝рд╛: "рд╣реИрд▓реЛ";
- рд▓реЗрдирджреЗрди 1 рдиреЗ рдореВрд▓реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА: "рд╣реИрд▓реЛ рд▓реЗрдирджреЗрди 1";
- рд▓реЗрдирджреЗрди 2 рдиреЗ рдореВрд▓реНрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА: "рд╣реИрд▓реЛ рд▓реЗрдирджреЗрди 2";
- рд▓реЗрдирджреЗрди 1 рдиреЗ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛;
- рд▓реЗрдирджреЗрди 2 рдиреЗ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

рдФрд░ рдпрд╣рд╛рдБ рдЙрдирдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрд▓рдЧрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╕рдорд╡рд░реНрддреА рд▓реЗрдирджреЗрди рдиреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдбрд░реНрдЯреА рд░реАрдбреНрд╕, рдиреЙрди-рд░рд┐рдкреАрдЯреЗрдмрд▓ рд░реАрдбреНрд╕ рдФрд░ рдлреИрдВрдЯрдо рд░реАрдбреНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЕрдХреЗрд▓реЗ рд╡реИрдзрддрд╛ рдзреНрд╡рдЬ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
- рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рддрд╛рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рджреЛ рд▓реЗрди-рджреЗрди рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ Postgres рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рднреА рд▓реЗрдирджреЗрди рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВ (рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдЕрд▓рдЧ рд╣реИ рдФрд░, рд╡реИрдХреНрдпреВрдо рдХреЗ рднреАрддрд░, рдпрд╣ 4-рдмрд╛рдЗрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдирджреЗрди рдЖрдИрдбреА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ);
- рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд▓реЗрдирджреЗрди рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд▓реЗрдирджреЗрди рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИрдВ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
- рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рддрдХрдиреАрдХреА рдХреНрд╖реЗрддреНрд░ рдПрдХреНрд╕рдорд┐рди рдФрд░ рдПрдХреНрд╕рдореИрдХреНрд╕ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХреНрд╕рдорд┐рди рд▓реЗрдирджреЗрди рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдПрдХреНрд╕рдореИрдХреНрд╕ - рд▓реЗрдирджреЗрди рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕рдиреЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛;
- рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП, рддрдХрдиреАрдХреА рдХреНрд╖реЗрддреНрд░ Cmin рдФрд░ Cmax рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд▓реЗрди-рджреЗрди рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕реЗ рд╣рдЯрд╛рддрд╛ рд╣реИред Xmin рдФрд░ Xmax рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрдм рддрдХ рд▓реЗрдирджреЗрди рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реИ, рддрдм рддрдХ рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди рдмрд╛рд╣рд░реА рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЙрд╕ рд▓реЗрди-рджреЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛, рдЬреЛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реЛрдВ (рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рд╛, рдлрд┐рд░ рд╣рдЯрд╛ рджрд┐рдпрд╛)? рдЗрд╕рдХреЗ рд▓рд┐рдП, Cmin рдФрд░ Cmax рдмрдирд╛рдП рдЧрдП, Xmin рдФрд░ Xmax рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдирджреЗрди рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ред
рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рд╣рдо рдПрд╕реАрдЖрдИрдбреА тАЛтАЛрдХреЛ рдПрдХ рд╡реИрдзрддрд╛ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИрдВред рдЕрдм MVCC рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдЪрдпрди рдХрд░реЗрдВ - рдорд╛рдиреНрдп рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Xmin, Xmax, Cmin, Cmax рд╣реИред рдпрджрд┐ Xmin рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдЖрдИрдбреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдпрд╛ рдЪрд▓ рд░рд╣реЗ рдпрд╛ рд░рджреНрдж рдХрд┐рдП рдЧрдП рд▓реЗрдирджреЗрди рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдпрджрд┐ Xmax рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдЖрдИрдбреА рд╕реЗ рдХрдо рд╣реИ рдФрд░ рдЗрд╕ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд▓реЗрдирджреЗрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдпрд╛ рд░рджреНрдж рдХрд┐рдП рдЧрдП рд▓реЗрдирджреЗрди рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдпрджрд┐ Xmin рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рдЖрдИрдбреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Cmin рдФрд░ Cmax рдХреЛ рджреЗрдЦреЗрдВ (Cmax рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдорд╛рдиреНрдп рди рд╣реЛ)ред рдпрджрд┐ Xmax рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рдЖрдИрдбреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИред рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдЪреЗрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╡реЗрд╢ рд╡реИрдз рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд▓реЗрдЦрдХ / рд▓реЗрдЦрдХ рдХреЗ рд╕рд╛рде src / backend / utils / time / tqual.c рд╕реЗ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд╣реИ:

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