InterSystems IRIS рдЧреНрд▓реЛрдмрд▓ рдорд╛ рд▓реЗрдирджреЗрди

InterSystems IRIS рдЧреНрд▓реЛрдмрд▓ рдорд╛ рд▓реЗрдирджреЗрдиInterSystems IRIS DBMS рд▓реЗ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд░реЛрдЪрдХ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ - рдЧреНрд▓реЛрдмрд▓рд╣рд░реВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдпреА рд▓реЗрдирджреЗрдирдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдбреАрд╣рд░реВ рд╕рд╣рд┐рдд рдмрд╣реБ-рд╕реНрддрд░реАрдп рдХреБрдЮреНрдЬреАрд╣рд░реВ, рдбреЗрдЯрд╛ рд░реВрдЦрд╣рд░реВ, рддрд╛рд▓рд╛рд╣рд░реВ рд░ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╡рд╕реНрддреБрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдЯреНрд░реНрдпрд╛рднрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рджреНрд░реБрдд рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреНред

рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдорд╛ рдЧреНрд▓реЛрдмрд▓рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдкрдвреНрдиреБрд╣реЛрд╕реН "рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд╡рд╣рд░реВ рдЦрдЬрд╛рдирд╛-рддрд░рд╡рд╛рд░рд╣рд░реВ рд╣реБрдиреН":

рд░реВрдЦрд╣рд░реВред рднрд╛рдЧ 1
рд░реВрдЦрд╣рд░реВред рднрд╛рдЧ 2
рд╕реНрдкрд╛рд░реНрд╕ рдПрд░реЗрд╣рд░реВред рднрд╛рдЧ рей

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

рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддрдмрд╛рдЯ рдерд╛рд╣рд╛ рднрдПрдЕрдиреБрд╕рд╛рд░, рд▓реЗрдирджреЗрдирдХреЛ рд░рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдПрд╕рд┐рдб:

A - рдкрд░рдорд╛рдгреБ (рдкрд░рдорд╛рдгрд╡рд┐рдХрддрд╛)ред рд▓реЗрдирджреЗрдирдорд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╡рд╛ рдХреБрдиреИ рдкрдирд┐ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХрд╛ рдЫреИрдирдиреНред

C - рд╕реНрдерд┐рд░рддрд╛ред рд▓реЗрдирджреЗрди рдкреВрд░рд╛ рднрдПрдкрдЫрд┐, рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛ рдПрдХрд░реВрдк рд╣реБрдиреБрдкрд░реНрдЫред рдзреЗрд░реИ рддрд░рд┐рдХрд╛рдорд╛ рдпреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд▓рд╛рдИ рд╕рд░реЛрдХрд╛рд░ рдЫ, рддрд░ SQL рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдорд╛рдорд▓рд╛рдорд╛ рдпрд╕рд▓реЗ рд╡рд┐рджреЗрд╢реА рдХреБрдЮреНрдЬреАрд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдЪрд┐рдиреНрддрд╛ рдЧрд░реНрдЫред

рдо - рдЕрд▓рдЧред рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рдЪрд▓реНрдиреЗ рд▓реЗрдирджреЗрдирд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред

D - рдЯрд┐рдХрд╛рдЙред рд▓реЗрдирджреЗрдирдХреЛ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдкрдЫрд┐, рдирд┐рдореНрди рд╕реНрддрд░рд╣рд░реВрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд╛рд╡рд░ рд╡рд┐рдлрд▓рддрд╛) рд▓реЗрдирджреЗрдирджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред

рдЧреНрд▓реЛрдмрд▓рд╣рд░реВ рдЧреИрд░-рд╕рдореНрдмрдиреНрдзрд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рд╣реБрдиреНред рддрд┐рдиреАрд╣рд░реВ рдзреЗрд░реИ рд╕реАрдорд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рд╕реБрдкрд░ рдЫрд┐рдЯреЛ рдЪрд▓рд╛рдЙрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧреНрд▓реЛрдмрд▓рдорд╛ рд▓реЗрдирджреЗрдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рд╣реЗрд░реМрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ IRIS рдбрдХрд░ рдЫрд╡рд┐.

IRIS рдорд╛ рд▓реЗрдирджреЗрди рд╕рдорд░реНрдерди рдЧрд░реНрди, рдирд┐рдореНрди рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ: TSTART, TCOMMIT, рдЯреНрд░реЛрд▓рдмреНрдпрд╛рдХ.

1. рдкрд░рдорд╛рдгреБ

рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рдкрд░рдорд╛рдгреБ рд╣реЛред рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрд╕реЛрд▓рдмрд╛рдЯ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВред

Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMIT

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдирд┐рд╖реНрдХрд░реНрд╖:

Write ^a(1), тАЬ тАЭ, ^a(2), тАЬ тАЭ, ^a(3)

рд╣рд╛рдореАрд▓реЗ рдкрд╛рдпреМ:

1 2 3

рд╕рдмреИ рдареАрдХ рдЫред рдкрд░рдорд╛рдгреБ рдХрд╛рдпрдо рдЧрд░рд┐рдПрдХреЛ рдЫ: рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред

рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЬрдЯрд┐рд▓ рдмрдирд╛рдФрдВ, рддреНрд░реБрдЯрд┐ рдкрд░рд┐рдЪрдп рдЧрд░реМрдВ рд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХрд╕рд░реА рд▓реЗрдирджреЗрди рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реБрдиреНрдЫ, рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рд╡рд╛ рд╣реЛрдЗрдиред

рдлреЗрд░рд┐ рдкрд░рдорд╛рдгреБ рдЬрд╛рдБрдЪ рдЧрд░реМрдВ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдмрд▓рдкреВрд░реНрд╡рдХ рдХрдиреНрдЯреЗрдирд░ рд░реЛрдХреНрдиреЗрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рд▓рдиреНрдЪ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

docker kill my-iris

рдпреЛ рдЖрджреЗрд╢ рд▓рдЧрднрдЧ рдПрдХ рдмрд▓ рдмрдиреНрдж рдХреЛ рдмрд░рд╛рдмрд░ рдЫ, рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреБрд░реБрдиреНрддреИ рд░реЛрдХреНрди SIGKILL рд╕рдВрдХреЗрдд рдкрдард╛рдЙрдБрдЫред

рд╕рд╛рдпрдж рд▓реЗрдирджреЗрди рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рдмрдЪрдд рднрдПрдХреЛ рдерд┐рдпреЛ?

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

- рд╣реЛрдЗрди, рдпреЛ рдмрд╛рдБрдЪреЗрдХреЛ рдЫреИрдиред

рд░реЛрд▓рдмреНрдпрд╛рдХ рдЖрджреЗрд╢ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TROLLBACK

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

рдкрдирд┐ рдХреЗрд╣реА рдмрд╛рдБрдЪреЗрдХреЛ рдЫреИрди ред

2. рд╕реНрдерд┐рд░рддрд╛

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

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд╕рдБрдЧ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА ^рд╡реНрдпрдХреНрддрд┐ рдЫ, рдЬрд╕рдорд╛ рд╣рд╛рдореА рд╡реНрдпрдХреНрддрд┐рддреНрд╡рд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдЫреМрдВ рд░ рд╣рд╛рдореАрд▓реЗ TIN рд▓рд╛рдИ рдХреБрдЮреНрдЬреАрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

^person(1234567, тАШfirstnameтАЩ) = тАШSergeyтАЩ
^person(1234567, тАШlastnameтАЩ) = тАШKamenevтАЩ
^person(1234567, тАШphoneтАЩ) = тАШ+74995555555
...

рдЕрдиреНрддрд┐рдо рдирд╛рдо рд░ рдкрд╣рд┐рд▓реЛ рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рджреНрд░реБрдд рдЦреЛрдЬ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ ^ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреБрдЮреНрдЬреА рдмрдирд╛рдпреМрдВред

^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567) = 1

рдбрд╛рдЯрд╛рдмреЗрд╕ рдПрдХрд░реВрдк рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдердкреНрдиреБ рдкрд░реНрдЫ:

TSTART
^person(1234567, тАШfirstnameтАЩ) = тАШSergeyтАЩ
^person(1234567, тАШlastnameтАЩ) = тАШKamenevтАЩ
^person(1234567, тАШphoneтАЩ) = тАШ+74995555555
^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567) = 1
TCOMMIT

рддрджрдиреБрд╕рд╛рд░, рдореЗрдЯрд╛рдЙрдБрджрд╛ рд╣рд╛рдореАрд▓реЗ рд▓реЗрдирджреЗрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ:

TSTART
Kill ^person(1234567)
ZKill ^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567)
TCOMMIT

рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рд╕реНрдерд┐рд░рддрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░рд╛ рдЧрд░реНрдиреБ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдХреЛ рдХрд╛рдБрдзрдорд╛ рдирд┐рд░реНрднрд░ рд╣реБрдиреНрдЫред рддрд░ рдЬрдм рдпреЛ рдЧреНрд▓реЛрдмрд▓рдХреЛ рдХреБрд░рд╛ рдЖрдЙрдБрдЫ, рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░ рдкреНрд░рдХреГрддрд┐рдХреЛ рдХрд╛рд░рдгред

3. рдЕрд▓рдЧрд╛рд╡

рдпрд╣рд╛рдБ рдЬрдВрдЧрд▓реА рд╕реБрд░реБ рд╣реБрдиреНрдЫред рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдПрдХреИрд╕рд╛рде рдПрдЙрдЯреИ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдХрд╛рдо рдЧрд░реНрдЫрдиреН, рдПрдЙрдЯреИ рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИред

рд╕реНрдерд┐рддрд┐ рддреБрд▓рдирд╛рддреНрдордХ рдЫ рдЬрдм рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдПрдХреИ рд╕рд╛рде рдПрдЙрдЯреИ рдХреЛрдб рднрдгреНрдбрд╛рд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫрдиреН рд░ рдПрдХреИ рдкрдЯрдХ рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрдорд┐рдЯ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫрдиреНред

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

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

рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рд▓реЗрдирджреЗрдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ (рдХрдорд┐рдЯ рдЧрд░реНрдиреБ рдЕрдШрд┐), рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдЕрд╕рдВрдЧрдд рд╣реБрди рд╕рдХреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╡рд╛рдВрдЫрдиреАрдп рдЫ рдХрд┐ рдЕрдиреНрдп рд▓реЗрдирджреЗрдирд╣рд░реВрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐рдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрджреИрди, рдЬреБрди рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред рдзреЗрд░реИ рддрд░рд┐рдХрд╛рдорд╛: рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ, рдмрд╣реБ-рд╕рдВрд╕реНрдХрд░рдг рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рд░ рдЖрджрд┐ред

рд╕рдорд╛рдирд╛рдиреНрддрд░ рд▓реЗрдирджреЗрдирд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрд╛, рдпреЛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрджреИрдирдиреНред рдпреЛ рдЕрд▓рдЧрд╛рд╡рдХреЛ рдЧреБрдг рд╣реЛред

SQL рд▓реЗ 4 рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ:

  • UNCOMMITTED рдкрдвреНрдиреБрд╣реЛрд╕реН
  • рдХрдорд┐рдЯрд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН
  • рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдкрдвреНрдиреБрд╣реЛрд╕реН
  • рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ

рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░рд▓рд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЗрд░реМрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдмрдвреНрдЫред

UNCOMMITTED рдкрдвреНрдиреБрд╣реЛрд╕реН - рдпреЛ рдЕрд▓рдЧрд╛рд╡рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдХрдо рд╕реНрддрд░ рд╣реЛ, рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛред рд▓реЗрдирджреЗрдирд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрдвреНрди рд╕рдХреНрдЫрдиреНред

рдХрдорд┐рдЯрд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН рдЕрд▓рдЧрд╛рд╡рдХреЛ рдЕрд░реНрдХреЛ рд╕реНрддрд░ рд╣реЛ, рдЬреБрди рдПрдХ рд╕рдореНрдЭреМрддрд╛ рд╣реЛред рд▓реЗрдирджреЗрдирд▓реЗ рдХрдорд┐рдЯ рдЕрдШрд┐ рдПрдХ рдЕрд░реНрдХрд╛рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрдвреНрди рд╕рдХреНрджреИрди, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХрдорд┐рдЯ рдкрдЫрд┐ рдЧрд░рд┐рдПрдХрд╛ рдХреБрдиреИ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрдвреНрди рд╕рдХреНрдЫрдиреНред

рдпрджрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд▓рд╛рдореЛ рд▓реЗрдирджреЗрди T1 рдЫ, рдЬрд╕рдХреЛ рдЕрд╡рдзрд┐рдорд╛ T2, T3 ... Tn рд▓реЗрдирджреЗрдирд╣рд░реВрдорд╛ рдХрдорд┐рдЯрд╣рд░реВ рднрдПрдХрд╛ рдЫрдиреН, рдЬрд╕рд▓реЗ T1 рдЬрд╕реНрддреИ рдбреЗрдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдпреЛ, рддрдм T1 рдорд╛ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдлрд░рдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВред рдпреЛ рдШрдЯрдирд╛рд▓рд╛рдИ рдЧреИрд░-рджреЛрд╣реЛрд░рд┐рдиреЗ рдкрдврд╛рдЗ рднрдирд┐рдиреНрдЫред

рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдкрдвреНрдиреБрд╣реЛрд╕реН тАФ рдпрд╕ рдкреГрдердХ рд╕реНрддрд░рдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрди рдирд╕рдХрд┐рдиреЗ рдкрдвреНрдиреЗ рдШрдЯрдирд╛ рдЫреИрди, рддрдереНрдпрд╛рдЩреНрдХрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдбреЗрдЯрд╛ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐, рдирддрд┐рдЬрд╛ рдбреЗрдЯрд╛рдХреЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ рд░ рдЙрд╣реА рд▓реЗрдирджреЗрдирдорд╛ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрдмрд╛рдЯ рдбрд╛рдЯрд╛ред рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, рдпреЛ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░рдорд╛ рдкреНрд░реЗрдд рдбреЗрдЯрд╛ рдкрдвреНрди рд╕рдореНрднрд╡ рдЫред рдпрд╕рд▓реЗ рдирдпрд╛рдБ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдкрдвреНрдирд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ рдЬреБрди рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рддрд┐рдмрджреНрдз рд▓реЗрдирджреЗрдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдердкрд┐рдПрдХреЛ рдерд┐рдпреЛред

рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ - рдЗрдиреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ред рдпреЛ рддрдереНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛ рдХрд┐ рд▓реЗрдирджреЗрдирдорд╛ рдХреБрдиреИ рдкрдирд┐ рддрд░рд┐рдХрд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ (рдкрдвреНрдиреЗ рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди) рдкрд╣рд┐рд▓реЛ рд▓реЗрдирджреЗрди рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ рдорд╛рддреНрд░ рдЕрдиреНрдп рд▓реЗрдирджреЗрдирд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫред

рдкрд╣рд┐рд▓реЗ, рдореБрдЦреНрдп рдереНрд░реЗрдбрдмрд╛рдЯ рд▓реЗрдирджреЗрдирдорд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдЕрд▓рдЧрд╛рд╡ рдЫ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реНред 2 рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдиреНрдбреЛ рдЦреЛрд▓реМрдВред

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЕрд▓рдЧрд╛рд╡ рдЫреИрдиред рдПрдЙрдЯрд╛ рдереНрд░реЗрдбрд▓реЗ рд▓реЗрдирджреЗрди рдЦреЛрд▓реНрдиреЗ рджреЛрд╕реНрд░реЛрд▓реЗ рдХреЗ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рджреЗрдЦреНрдЫред

рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбрд╣рд░реВрдХреЛ рд▓реЗрдирджреЗрдирд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рднрд┐рддреНрд░ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреА рд╣реЗрд░реМрдВред

2 рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдиреНрдбреЛ рдЦреЛрд▓реМрдВ рд░ рд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛ 2 рд▓реЗрдирджреЗрди рдЦреЛрд▓реМрдВред

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

рд╕рдорд╛рдирд╛рдиреНрддрд░ рд▓реЗрдирджреЗрдирд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рдХреЛ рдбреЗрдЯрд╛ рджреЗрдЦреНрдЫрдиреНред рддреНрдпрд╕реЛрднрдП, рд╣рд╛рдореАрд▓реЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓, рддрд░ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдЖрдЗрд╕реЛрд▓реЗрд╕рди рд╕реНрддрд░ рдкрдирд┐ рдкрд╛рдпреМрдВ, рдЕрдирд┐рдпрдиреНрддреНрд░рд┐рдд рдкрдвреНрдиреБрд╣реЛрд╕реНред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпреЛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╢рд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕рдзреИрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рднрдПрдХреЛ рдЫред

рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдЧреНрд▓реЛрдмрд▓рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдЙрдЪреНрдЪ рд╕реНрддрд░рдХреЛ рдЕрд▓рдЧрд╛рд╡ рдЪрд╛рд╣рд┐рдиреНрдЫ?

рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдХрд┐рди рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫрдиреН рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдЙрдЪреНрдЪрддрдо рдкреГрдердХ рд╕реНрддрд░, SERIALIZE, рднрдиреЗрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реЗрдирджреЗрдирдХреЛ рдкрд░рд┐рдгрд╛рдо рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдмрд░рд╛рдмрд░ рд╣реЛ, рдЬрд╕рд▓реЗ рдЯрдХреНрдХрд░рд╣рд░реВрдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрджрдЫред

рд╣рд╛рдореА рд╡рд╕реНрддреБрд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╕реНрдорд╛рд░реНрдЯ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдЬрд╕рдорд╛ рдзреЗрд░реИ рдлрд░рдХ рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЫрдиреН: рддрдкрд╛рдЗрдБ рдХрдорд╛рдгреНрдбрдХреЛ рд╕рд╛рде рдирд┐рдпрдорд┐рдд, рд╡реГрджреНрдзрд┐рд╢реАрд▓, рдмрд╣реБ рд▓рдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд╛рд▓рд╛.

рддрд▓реНрд▓реЛ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░рд╣рд░реВ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЧрддрд┐ рдмрдврд╛рдЙрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЯреНрд░реЗрдб-рдЕрдлрд╣рд░реВ рд╣реБрдиреНред

рд╣рд╛рдореА рдХрд╕рд░реА рддрд╛рд▓рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рд╣рд░реВ рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд╣реЗрд░реМрдВред

рдпреЛ рдЕрдкрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХрд╣рд░реВ рдорд╛рддреНрд░ рд▓рд┐рди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ рддрдерд╛рдХрдерд┐рдд рд╕рд╛рдЭрд╛ рд▓рдХрд╣рд░реВ, рдЬрд╕рд▓реЗ рдбреЗрдЯрд╛ рдкрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрд╛ рдзреЗрд░реИ рдереНрд░реЗрдбрд╣рд░реВ рд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛ рд▓рд┐рди рд╕рдХреНрдЫ рдЬреБрди рдкрдвреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред

рд░реВрд╕реА рд░ рдЕрдВрдЧреНрд░реЗрдЬреАрдорд╛ рджреБрдИ-рдЪрд░рдг рдЕрд╡рд░реБрджреНрдз рд╡рд┐рдзрд┐ рдмрд╛рд░реЗ рдердк рдЬрд╛рдирдХрд╛рд░реА:

тЖТ рджреБрдИ-рдЪрд░рдг рдЕрд╡рд░реБрджреНрдз
тЖТ рджреБрдИ-рдЪрд░рдг рд▓рдХ

рдХрдард┐рдирд╛рдИ рдпреЛ рд╣реЛ рдХрд┐ рд▓реЗрдирджреЗрдирдХреЛ рдХреНрд░рдордорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдЕрд╕рдВрдЧрдд рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рдЕрд╕рдВрдЧрдд рдбрд╛рдЯрд╛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рджреЗрдЦрд┐рдиреЗ рдЫред рдпрд╕рдмрд╛рдЯ рдХрд╕рд░реА рдмрдЪреНрдиреЗ ?

рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА рджреГрд╢реНрдпрддрд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рдЬрд╕рдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдПрдХрд░реВрдк рд╣реБрдиреЗрдЫред рд░ рд╕рд╣рдордд рд░рд╛рдЬреНрдпрдХреЛ рджреГрд╢реНрдпрддрд╛рдХреЛ рддреНрдпрд╕реНрддрд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓рд╣рд░реВрдорд╛ рд╕рдмреИ рдкрд╣реБрдБрдЪ рд▓рдХрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░рд┐рдиреЗрдЫред

рд╕рдорд╛рди рдбреЗрдЯрд╛рдорд╛ рд╕рд╛рдЭрд╛ рд▓рдХрд╣рд░реВ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдЫрдиреН - рдзреЗрд░реИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд▓рд┐рди рд╕рдХреНрдЫред рдпреА рд▓рдХрд╣рд░реВрд▓реЗ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрдЫ, рдЕрд░реНрдерд╛рддреНред рддрд┐рдиреАрд╣рд░реВ рд╕реБрд╕рдВрдЧрдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдмрдирд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ - рдХреЗрд╡рд▓ рдПрдЙрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдпрд╕реНрддреЛ рд▓рдХ рд▓рд┐рди рд╕рдХреНрдЫред рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рди рд╕рдХрд┐рдиреНрдЫ:

  1. рдбрд╛рдЯрд╛ рдирд┐: рд╢реБрд▓реНрдХ рдЫ рднрдиреЗ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛
  2. рдпреЛ рдбрд╛рдЯрд╛рдорд╛ рд╕рд╛рдЭрд╛ рд▓рдХ рднрдПрдХреЛ рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рдХ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рддреНрд░ред

InterSystems IRIS рдЧреНрд▓реЛрдмрд▓ рдорд╛ рд▓реЗрдирджреЗрди

рджреГрд╢реНрдпрддрд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдЬрддрд┐ рд╕рд╛рдБрдШреБрд░реЛ рд╣реБрдиреНрдЫ, рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рдкрд░реНрдЦрдиреБрдкрд░реНрдЫ, рддрд░ рдпрд╕рдХреЛ рднрд┐рддреНрд░рдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╡рд╕реНрдерд╛ рддреНрдпрддрд┐ рдиреИ рд╕реБрд╕рдВрдЧрдд рд╣реБрди рд╕рдХреНрдЫред

READ_COMMITTED тАФ рдпрд╕ рд╕реНрддрд░рдХреЛ рд╕рд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрдп рдереНрд░реЗрдбрд╣рд░реВрдмрд╛рдЯ рдорд╛рддреНрд░ рдкреНрд░рддрд┐рдмрджреНрдз рдбрд╛рдЯрд╛ рджреЗрдЦреНрдЫреМрдВред рдпрджрд┐ рдЕрд░реНрдХреЛ рд▓реЗрдирджреЗрдирдорд╛ рдбрд╛рдЯрд╛ рдЕрдЭреИ рдкреНрд░рддрд┐рдмрджреНрдз рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рднрдиреЗ, рд╣рд╛рдореА рдпрд╕рдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреНрдЫреМрдВред

рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд▓рдХ рдЬрд╛рд░реА рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдХрд╛рдорд▓рд╛рдИ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рд╡рд┐рд╢реЗрд╖ рдЪрд╛рд▓рд╣рд░реВ рдмрд┐рдирд╛, рд╣рд╛рдореА IRIS рдорд╛ рдбрд╛рдЯрд╛рдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЗрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрдиреМрдВ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд▓рдХрд╣рд░реВрд╕рдБрдЧ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред

рддрджрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛рд▓рд╛рдИ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рдХреНрд╖рдгрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдкрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рди рд╣рд╛рдореАрд▓реЗ рд╕рд╛рдЭрд╛ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред

рдорд╛рдиреМрдВ рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХ-рдЕрд░реНрдХрд╛рд▓рд╛рдИ рдкреИрд╕рд╛ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдзрд╛рд░ ^рд╡реНрдпрдХреНрддрд┐ рдЫред

рд╡реНрдпрдХреНрддрд┐ 123 рдмрд╛рдЯ рд╡реНрдпрдХреНрддрд┐ 242 рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдгрдХреЛ рдХреНрд╖рдг:

LOCK +^person(123), +^person(242)
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
LOCK -^person(123), -^person(242)

рдбреЗрдмрд┐рдЯ рдЧрд░реНрдиреБ рдЕрдШрд┐ рд╡реНрдпрдХреНрддрд┐ 123 рдмрд╛рдЯ рдкреИрд╕рд╛рдХреЛ рд░рдХрдо рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗ рдХреНрд╖рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд▓рдХрдХреЛ рд╕рд╛рде рд╣реБрдиреБрдкрд░реНрдЫ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛):

LOCK +^person(123)
Write ^person(123)

рд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддрд╛рдорд╛ рдЦрд╛рддрд╛ рд╕реНрдерд┐рддрд┐ рджреЗрдЦрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рд╕рд╛рдЭрд╛ рд▓рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

LOCK +^person(123)#тАЭSтАЭ
Write ^person(123)

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

рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдкрдвреНрдиреБрд╣реЛрд╕реН - рдпреЛ рдкреГрдердХ рд╕реНрддрд░рд▓реЗ рдбреЗрдЯрд╛рдХреЛ рдзреЗрд░реИ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рд╕рдорд╡рд░реНрддреА рд▓реЗрдирджреЗрдирд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рддрджрдиреБрд╕рд╛рд░, рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдбрд╛рдЯрд╛ рдкрдвреНрди рд╕рд╛рдЭрд╛ рд▓рдХ рд░ рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдбрд╛рдЯрд╛рдорд╛ рд╡рд┐рд╢реЗрд╖ рд▓рдХ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫред

рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, LOCK рдЕрдкрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рд▓рдХрд╣рд░реВ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рдордзреНрдпреЗ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╣реБрди рд╕рдХреНрдЫ, рдПрдХ рдХрдердирдорд╛ред

LOCK +^person(123, amount)#тАЭSтАЭ
╤З╤В╨╡╨╜╨╕╨╡ ^person(123, amount)

рдЕрдиреНрдп рдЕрдкрд░реЗрд╕рдирд╣рд░реВ (рдпрд╕ рд╕рдордпрдорд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдереНрд░реЗрдбрд╣рд░реВрд▓реЗ ^рд╡реНрдпрдХреНрддрд┐(резреирей, рд░рдХрдо) рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЦреЛрдЬреНрдЫрдиреН, рддрд░ рд╕рдХреНрджреИрдирдиреН)

LOCK +^person(123, amount)
╨╕╨╖╨╝╨╡╨╜╨╡╨╜╨╕╨╡ ^person(123, amount)
LOCK -^person(123, amount)

╤З╤В╨╡╨╜╨╕╨╡ ^person(123, amount)
LOCK -^person(123, amount)#тАЭSтАЭ

рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдорджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд▓рдХрд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрд╛, рддрд┐рдиреАрд╣рд░реВ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рд▓рд┐рдЗрдиреНрдЫ, рддрд░ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ:

LOCK +(^person(123),^person(242))

рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВ рд╕рдмреИ рдПрдХреИрдЪреЛрдЯрд┐ рдкрд░рдорд╛рдгреБ рд░реВрдкрдорд╛ рд▓рд┐рдЗрдиреНрдЫред

рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН - рд╣рд╛рдореАрд▓реЗ рд▓рдХрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ рддрд╛рдХрд┐ рдЕрдиреНрддрддрдГ рд╕рдмреИ рд▓реЗрдирджреЗрдирд╣рд░реВ рдЬрд╕рдорд╛ рд╕рд╛рдЭрд╛ рдбрд╛рдЯрд╛ рдЫрдиреН рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫред рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рд▓рд╛рдЧрд┐, рдзреЗрд░реИ рд▓рдХрд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рд╣реБрдиреБрдкрд░реНрдЫ рд░ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╕рд╛рдирд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рд▓рд┐рдЗрдиреНрдЫред

рдпрджрд┐ рд╣рд╛рдореА рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА ^рд╡реНрдпрдХреНрддрд┐рдорд╛ рдХреЛрд╖ рдбреЗрдмрд┐рдЯ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рдХреЗрд╡рд▓ SERIALIZE рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЫ, рдХрд┐рдирдХрд┐ рдкреИрд╕рд╛ рдХрдбрд╛рдИрдХрд╛ рд╕рд╛рде рдХреНрд░рдорд╢рдГ рдЦрд░реНрдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдЕрдиреНрдпрдерд╛ рдзреЗрд░реИ рдкрдЯрдХ рдПрдЙрдЯреИ рд░рдХрдо рдЦрд░реНрдЪ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред

4. рд╕реНрдерд╛рдпрд┐рддреНрд╡

рдореИрд▓реЗ рдХрдиреНрдЯреЗрдирд░рдХреЛ рдХрдбрд╛ рдХрд╛рдЯрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реЗрдВ

docker kill my-iris

рдЖрдзрд╛рд░рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╕рд╣рди рдЧрд░реНрдпреЛред рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

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

рдЧреНрд▓реЛрдмрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, InterSystems IRIS рд▓реЗ рд▓реЗрдирджреЗрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рддрд┐рдиреАрд╣рд░реВ рд╕рд╛рдБрдЪреНрдЪреИ рдкрд░рдорд╛рдгреБ рд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЫрдиреНред рдЧреНрд▓реЛрдмрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рд░ рд▓реЗрдирджреЗрдирдХреЛ рдкреНрд░рдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХ рдЫ, рдХрд┐рдирдХрд┐ рдпрд╕рдорд╛ рд╡рд┐рджреЗрд╢реА рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЬрд╕реНрддрд╛ рдЬрдЯрд┐рд▓ рдмрд┐рд▓реНрдЯ-рдЗрди рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдЫреИрдирдиреНред

рддрд╛рд▓рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЧреНрд▓реЛрдмрд▓рд╣рд░реВрдХреЛ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ READ UNCOMMITED рдЫ, рд░ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдпрд╕рд▓рд╛рдИ SERIALIZE рд╕реНрддрд░рд╕рдореНрдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдЧреНрд▓реЛрдмрд▓рдорд╛ рд▓реЗрдирджреЗрдирдХреЛ рд╢реБрджреНрдзрддрд╛ рд░ рдЧрддрд┐ рдзреЗрд░реИ рдзреЗрд░реИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдХреЛ рд╕реАрдкрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ: рдкрдвреНрджрд╛ рдЬрддрд┐ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рд╕рд╛рдЭрд╛ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдкреГрдердХрддрд╛рдХреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░, рд░ рдЕрдзрд┐рдХ рд╕рдВрдХреАрд░реНрдг рдЕрдирдиреНрдп рд▓рдХрд╣рд░реВ рд▓рд┐рдЗрдиреНрдЫ, рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЫрд┐рдЯреЛ рд╣реБрдиреНрдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди