ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ (ΠΠ), ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π² ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΏΠ°ΡΠΊΡ.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Π±Π°Π·Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ) Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ACID, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ =) ΠΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡ ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ.
Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠ°ΠΊ Π΅Π΅ ΠΎΡΠΊΡΡΡΡ, ΠΈ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡ. Π ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ β Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π ΡΠΎΠ³Π΄Π° ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΌ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΆΠ΅ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΠ»Π΅ Π°ΠΏΠ΄Π΅ΠΉΡΠ°.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π°ΡΡ ΠΈΠ² Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅. ΠΠ½ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Β«Π²ΡΡ, ΠΈΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎΒ».
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π°ΡΡ Π΄ΡΡΠ³Ρ 10 ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ² Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅. ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ:
ΠΠΈΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ»ΠΈΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π‘Π»ΠΎΠΆΠΈΡΡ ΠΈΡ Π² Π°ΡΡ ΠΈΠ² ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π°ΡΡ ΠΈΠ².
ΠΡΠΎΠ΄Π΅ Π±Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΎΡΠΎΠ±ΠΎΠΉ Π½Π΅Ρ. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ? Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠ²Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΡΠ΅ΡΠ²Π΅Ρ ΡΠΉΠ΄Π΅Ρ Π² ΡΠ΅Π±ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°Ρ Π΄ΡΡΠ³ ΠΏΠΎΠ»ΡΡΠΈΡ 9 ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½.
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ. ΠΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΡΡ, ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½ΠΈΡΠ΅Π³ΠΎ. ΠΠΎ Π·Π°ΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, Π²Ρ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅ΡΠ»Π΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π Π΄ΡΡΠ³ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ ΡΠ°Π·ΠΎΠΌ, Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Β«Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΡΡ Π»ΠΈ ΠΊΡΠΎΒ».
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π½Ρ Π½Π΅Π΄ΠΎΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ°ΠΉΠ»ΠΈΠΊ, ΡΡΠΎ Ρ ΡΠΎΠ³ΠΎ? Π Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ? ΠΡΠ»ΠΈ ΡΡΠΎ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π±ΡΡ Π³Π°Π»ΡΠ΅ΡΠΈΠΈ. ΠΠΎΡΠ΅ΡΡΠ» ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ»ΠΈΠΊ? ΠΠ½Π°ΡΠΈΡ, Π΄ΠΎΠΏΡΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΎΡΡΠ΅ΡΠ΅ Π΄Π»Ρ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ. ΠΠ½Π°ΡΠΈΡ, ΠΎΠ³ΡΠ΅Π±Π΅ΡΡ ΡΡΡΠ°Ρ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ! ΠΠ΅Ρ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, Π»ΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΡΠ΅ΡΡΡΡ!
Π ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅Π±Π΅ Π½Π°Π΄ΠΎ ΡΡΠΎΡΠ½ΡΡΡ Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ:
β Π’Ρ ΠΌΠ½Π΅ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΡΡΠ»Π°Π»?
β ΠΠ°? Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ 9. ΠΠ°Π²Π°ΠΉ ΠΈΡΠΊΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»Π±Π°Π»ΡΡ.
Π ΡΠΈΠ΄ΠΈΡΠ΅, ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΠ΅ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌ. Π Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ² 100 ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½ΠΎ 2 ΡΡΡΠΊΠΈ? Π Π½Π°Π·Π²Π°Π½ΠΈΡ Ρ Π½ΠΈΡ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Β«ΠΡΡΠ΅Ρ 1Β», Β«ΠΡΡΠ΅Ρ 2Β» ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π° Β«hfdslafebx63542437457822nfhgeopjgrev0000444666589.xmlΒ» ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅. Π£ΠΆ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΠ²! Π’ΠΎΠ³Π΄Π° ΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎ Π²ΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ», ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½ΠΈΡΠ΅Π³ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
Π’Π°ΠΊ Π²ΠΎΡ! Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ Π°ΡΡ ΠΈΠ² Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠΈΠ½ΡΠΈΠΏ Β«Π²ΡΡ, ΠΈΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎΒ». ΠΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π» Π² ΠΎΠ΄Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΠ΅ Π²ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎ «Π²Π½ΡΡΡΠΈ» ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ:
delete from ΡΡΠ΅Ρ1 where ΡΡΠ΅Ρ = ΡΡΠ΅Ρ 1
insert into ΡΡΠ΅Ρ2 values (‘ΡΡΠΌΠΌΠ°’)
ΠΡΠΈΠ½ΡΠΈΠΏ Β«Π²ΡΡ ΠΈΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎΒ» ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ. ΠΡΠ»ΠΎ Π±Ρ ΠΎΠ±ΠΈΠ΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π΄Π΅Π½ΡΠ³ΠΈ ΡΠΎ ΡΡΠ΅ΡΠ°1 ΡΠΏΠΈΡΠ°Π»ΠΈΡΡ, Π½ΠΎ Π½Π° ΡΡΠ΅Ρ2 Π½Π΅ ΠΏΠΎΡΡΡΠΏΠΈΠ»ΠΈ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠ²Π°Π»ΠΎΡΡ ΠΈΠ»ΠΈ Π²Ρ Π² Π½ΠΎΠΌΠ΅ΡΠ΅ ΡΡΠ΅ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π°Π»Π° ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π·Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ΅Π½ΡΠ³ΠΈ ΡΠ½ΠΎΠ²Π° Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ Π½Π° ΡΡΠ΅Ρ 1!
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΠΎ-Π½Π°ΡΡΠ½ΠΎΠΌΡ, ΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π’ΠΎ Π΅ΡΡΡ Ρ Π½Π°Ρ Π½Π΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π°Π»Π°Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π΄Π΅Π½Π΅Π³, Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΅ΡΠ° Π½Π΅ Β«Π·Π°Π²ΠΈΡΠ°Π΅Ρ Π² Π²ΠΎΠ·Π΄ΡΡ Π΅Β», Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ, ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.
ΠΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π½Π΅ΠΉ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½Π½Π΅ΠΊΡ (ΠΎΡ Π°Π½Π³Π». connection, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅). ΠΠΎΠ½Π½Π΅ΠΊΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ Π·Π°ΠΏΡΠΎΡΡ.
Π§ΡΠΎΠ±Ρ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π² ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΏΠ°ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π°Π΄ΠΎ:
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π·Π°ΠΊΡΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΡΡΡΠ±Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ»Π°ΡΡ. Π Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
ΠΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΠ. Π Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅. ΠΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠ° β ΡΡΠΆΠ΅Π»Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π΄ΠΎΠ»Π³Π°Ρ.
ΠΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΡΡΠ±.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±Π΅ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡΠ»Π° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎ Π½Π΅ΠΌΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ½Π° ΠΏΡΠΎΡΠ»Π° ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΠ»Π°ΡΡ), ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ», ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π Oracle ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠ°, ΠΏΠΎ ΡΠ°ΠΊΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π Π² MySql Π½Π°Π΄ΠΎ ΡΠ²Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ Β«start transactionΒ».
ΠΠ°ΠΊ Π·Π°ΠΊΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
Π’ΡΡ Π΅ΡΡΡ 2 Π²Π°ΡΠΈΠ°Π½ΡΠ°:
COMMIT β ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ Π²ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ;
ROLLBACK β ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΈΡ ;
Π Π²ΡΡ ΡΠΈΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±Π°Π·Π° ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΒ», ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π² Π±Π°Π·Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ². Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠΎΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π±Π°Π·Ρ, Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΈΡΡ Π·Π°ΠΏΡΠΎΡ:
ΠΠ°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Ρ ΠΎΡΠΎΡΠΎ! Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΡΠ΄Π΅Π»Π°Ρ select ΠΈΠ· ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΡΡΠΌ ΡΡΡ ΠΆΠ΅, ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ β ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΠ²Π°Π½ΠΎΠ²Π°! Π― ΠΌΠΎΠ³Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΎ! ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΠ²Π°Π½ΠΎΠ²Π° ΠΌΡ ΡΠ°ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ. Π Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π½ΠΎΠ²ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ Π² sql developer (ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΊ Π±Π°Π·Π΅) ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΠ°ΠΌ ΡΠ²ΠΎΠΉ select β ΠΠ²Π°Π½ΠΎΠ²Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»Π° ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
Π― ΠΌΠΎΠ³Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ . Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΡΡΡΠΎΠΊ. ΠΠΎ Π΅ΡΠ»ΠΈ Ρ Π·Π°ΠΊΡΠΎΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ sql developer, Π½Π΅ ΡΠ΄Π΅Π»Π°Π² ΠΊΠΎΠΌΠΌΠΈΡ, Π²ΡΠ΅ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΡΡΡΡΡ.
ΠΠΎΠ³Π΄Π° Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»Π°ΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π½Π° ΡΠ°Π±ΠΎΡΠ΅, Ρ ΡΠ°ΡΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°Π»Π° ΡΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ: ΠΏΠΎΠ΄ΠΏΡΠ°Π²Π»Ρ Π΄Π°Π½Π½ΡΠ΅ Β«Π½Π° Π»Π΅ΡΡΒ» Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ°, Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ! ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°Π±ΡΠ»Π°.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠ΅Π΄Ρ Π΅ΡΠ»ΠΈ ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ:
Π ΡΠ°ΠΌΠΈΠ»ΠΈΡ = Β«Π’Π΅ΡΡΠΎΠ²ΡΠΉΒ»
Π£Π΄Π°Π»ΠΈΠ»ΠΈ. ΠΠ΅Π»Π°Π΅ΠΌ select count β ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. Π ΡΠ°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΡΡΡΠΎΠΊ ΠΎΡΡΠ°Π»ΠΎΡΡ 100 ΡΡΡΡΡ! ΠΡΠ»ΠΈ Π±Π°Π·Π° ΡΠ΅Π°Π»ΡΠ½Π°Ρ, ΡΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΡΠ΄Π»ΠΈ ΡΠ°ΠΌ Π±ΡΠ»ΠΎ Π‘Π’ΠΠΠ¬ΠΠ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, Π° ΠΌΡ ΡΠ°ΠΌ Π³Π΄Π΅-ΡΠΎ ΠΎΡΠΈΠ±Π»ΠΈΡΡ! ΠΠΌΠ΅ΡΡΠΎ Β«ΠΒ» Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Β«ΠΠΠΒ», ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ Π΅ΡΠ΅. Π£ΠΏΡ. Π₯ΠΎΡΠΎΡΠΎ Π΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ ΡΡΠΏΠ΅Π»ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π΄Π΅Π»Π°Π΅ΠΌ rollback.
Π’ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ β Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ΅Π½ ROLLBACK? ΠΠ΅Π΄Ρ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ, ΠΈ Π²ΡΡ. ΠΠΎ ΡΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΈΡΠ΅ΡΡ Π² Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΌ ΡΡΠ°ΡΡΡΠ΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π½ΠΈΠΊΡΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Π±Ρ Π½Π΅ ΠΎΡΠΊΠ°ΡΠΈΡ.
ΠΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠ°ΡΠΈΠ³Π°ΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
ΠΠΎΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ Π³ΠΎΡΠΎΠ΄Π° Ρ 495 Π½Π° 499;
ΠΠΎ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π°Π΄ΠΎ ΠΎΡΠΌΠ΅Π½ΡΡΡ. ΠΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΉ select Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π±Π°Π·Π° ΡΡΠ°Π»Π° Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΠΉ. Π ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Β«ΠΠΉ, Π΄Π° Π»Π°Π΄Π½ΠΎ, ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ? ΠΠ½Π°ΡΠΈΡ, ΠΎΠ½ΠΎ ΠΈ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡΒ». Π Π²Π΅ΡΠ½ΡΠ»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠ».
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ Π±Π΅ΡΠ΅Ρ ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π² Π½Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΠ»ΡΡ ΠΊ ΡΠ΅ΠΌ 3 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠΎ ΠΌΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ Π΅ΡΠ΅ ΠΈ 10 Π΄ΡΡΠ³ΠΈΡ β ΡΠ΅Ρ , ΡΡΠΎ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π· ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΏΠΎΠ»Π΅Π½ΠΈΠ»ΠΈΡΡ. Π’Π΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π±Π°Π·Ρ Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΠΉ.
Π’Π°ΠΊ ΡΡΠΎ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΎΡΠΊΠ°Ρ. ΠΠ΄ΠΎΡΠΎΠ²Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ!
ΠΡΠΎΠ³ΠΎ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π² ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΏΠ°ΡΠΊΡ.
ΠΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π½ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ insert ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅. ).
Π§ΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΊ Π±Π°Π·Π΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π½Π΅ΠΉ. ΠΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Π½Π΅ΠΊΡ (Π°Π½Π³Π» connection) β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ. Π£ Π±Π°Π·Ρ Π΅ΡΡΡ ΠΏΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ β ΠΌΠ΅ΡΡΠΎ, ΠΎΡΠΊΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΎΠ½ΠΈ ΡΠ°ΠΌ Π²ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ, Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠ½Π° ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠ°. Π Π²ΠΎΡ Π·Π°ΠΊΡΡΡΡ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ°ΡΠΈΠ°Π½ΡΡ:
COMMIT β ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ Π²ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ;
ROLLBACK β ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΈΡ ;
ΠΠ΅Π»Π°Ρ ΠΊΠΎΠΌΠΈΡ, ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΠΎΠ΄Π½Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΊΠΎΠ½Π½Π΅ΠΊΡ Π² ΠΏΡΠ» Π±Π΅Π· ΠΎΡΠΊΡΡΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΡΡΡΠ±Ρ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ . Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±Π΅ΡΠ΅Ρ ΡΡΡ ΡΡΡΠ±Ρ ΠΈ ΡΠΈΠ³Π°ΡΠΈΡ Π² Π½Π΅Π΅ ΡΠ²ΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ rollback, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΠ΅ ΠΈ Π²Π΅ΡΠ½Π΅ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠ»? ΠΠ³ΠΎ Π²ΠΎΠ·ΡΠΌΠ΅Ρ ΠΊΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ. Π‘Π²ΠΎΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ Π²Π°ΡΠΈΡ , Π½Π΅ΠΎΡΠΊΠ°ΡΠ΅Π½Π½ΡΡ .
ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ (ΠΊΠΎΠ½Π½Π΅ΠΊΡ) ΠΈ ΡΠ°ΠΌΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠΎΠ½Π½Π΅ΠΊΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π°, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (update, deleteβ¦) ΠΌΡ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ ΠΏΠΎ ΡΡΡΠ±Π΅, ΡΡΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ commit /rollback β ΡΡΠΎ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΏΠ°ΡΠΊΡ.
Π‘ΠΌ ΡΠ°ΠΊΠΆΠ΅:
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ β ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (Transact-SQL)
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π²ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΎΡΠΊΠ°Ρ, Π²ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ.
SQL Server ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΠ°ΠΆΠ΄Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ.
Π―Π²Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ²Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ BEGIN TRANSACTION ΠΈ ΡΠ²Π½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ COMMIT ΠΈΠ»ΠΈ ROLLBACK.
ΠΠ΅ΡΠ²Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΠΎΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ²Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ COMMIT ΠΈΠ»ΠΈ ROLLBACK.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°
ΠΡΠ΄ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠ°ΠΌ (ΡΠ΅ΠΆΠΈΠΌ MARS), ΡΠ²Π½Π°Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Transact-SQL, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΡΠ΅Π°Π½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° MARS, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°. SQL Server Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ ΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π΅Π΅ ΠΎΡΠΊΠ°Ρ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΡΠΎΠ±ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Data Warehouse ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (Azure Synapse Analytics).
Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅
SQL Server ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°)
Π’ΡΠ°Π½Π·Π°ΜΠΊΡΠΈΡ (Π°Π½Π³Π». transaction ) β Π³ΡΡΠΏΠΏΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎΠ±Π»ΡΠ΄Π°Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΠ΄ΡΡΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈ ΡΠΎΠ³Π΄Π° ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π Π°Π·Π»ΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ (ΠΎΠ±ΡΡΠ½ΡΠ΅), ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅Π±ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, two-phase commit β Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ). Π’Π°ΠΊΠΆΠ΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄-ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΡΠΈΠΌΠ΅Ρ: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Ρ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 5 Π½Π° ΡΡΡΡ Π½ΠΎΠΌΠ΅Ρ 7 ΡΡΠΌΠΌΡ Π² 10 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Β«ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΌΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΡΠ°ΠΌΠΈΒ», ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΠΈ Π½Π΅ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π»Π΅Π³ΠΊΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 5 Π±Π΅Π· 10 Π΅Π΄ΠΈΠ½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΡΡΠ΅ΡΠ° Π½ΠΎΠΌΠ΅Ρ 7 ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ.
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π£ΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»Π°ΡΡ ΠΈΠ»Π»ΡΠ·ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, Π‘Π£ΠΠ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Π£ΡΠΎΠ²Π½ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ
Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
Π Π‘Π£ΠΠ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΡΠ°Π·Ρ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ 1 (Read Committed). Π£ΡΠΎΠ²Π΅Π½Ρ 0 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . Π£ΡΠΎΠ²Π½ΠΈ 2 ΠΈ 3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ACID ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅ΡΠΏΠ΅ΡΡ Π½Π΅ΡΠ΄Π°ΡΡ: Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (timeout) ΠΈ Ρ. Π΄. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ΅ΡΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ Π‘Π£ΠΠ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, IBM DB2), ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ACID. ΠΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΡ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ½ΠΈΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ:
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ.
ΠΡΠΈ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π² Sybase ΠΈ MS SQL Server Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2005, Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΆΡΡΠ½Π°Π», ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ β Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π‘Π£ΠΠ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π’Π΅Π½Π΅Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΊΠΎΠΏΠΈΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. Π₯ΠΎΡΡ ΡΠ΅Π½Π΅Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π»Π΅Π³ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ, ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ°Ρ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π° [3]
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π±Π΅Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ (timestamp-based concurrency control) Π±ΡΠ»Π° ΡΠ°Π·Π²ΠΈΡΠ° ΠΈ ΠΏΡΠΈΠ²Π΅Π»Π° ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MVCC. ΠΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π½ΠΈ Π² ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΈ Π² ΡΠ΅Π½Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ . ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π² Oracle 7.Ρ ΠΈ Π²ΡΡΠ΅, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΡΠ°, Π½ΠΎ ΠΎΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΠΎΠ²Π΅Π΅ Π½Π°ΡΠ°Π»Π° ΡΡΠ΅Π½ΠΈΡ, Π΄Π°Π½Π½ΡΠ΅ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΊΠ°ΡΠ° (ΡΠΎ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Β«ΡΡΠ°ΡΠ°ΡΒ» Π²Π΅ΡΡΠΈΡ). ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π΄ΡΡΡΡ ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Β«ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΒ», ΠΎΠ½ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΡ . Π Π°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π³ΠΎΠ²:
ΠΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΡΠΊΠ°ΡΠ° (ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠΎΠΏΠΈΡ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Firebird Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΊΠ°ΡΠ°, Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ MVCC, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡ ΠΏΡΡΠΌΠΎ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ MS SQL 2005. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΡΠ΅Π½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Β«ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°Β», ΡΠΎ Π΅ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ ΠΈ ΡΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ .
ACID. Π§ΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (ΠΠ) ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠΎΡΠΎΡΡΡ, Π½ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² Π·Π°Π΄Π°ΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ β ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ Π½ΠΈΠΆΠ΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΈΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΌΠ΅.
ΠΡ Π°Π²ΡΠΎΡΠ°: ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Ρ ΠΌΠ΅Π½Ρ ΡΠΏΡΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Ρ ΠΎΡΡ Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (transaction)?
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅. ΠΠ΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β ΡΡΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ: Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π΅ΡΡΡ ΠΊΠ°ΡΡΠ°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π±ΡΠ΄Ρ ΡΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠΎΠΊΡΠΏΠΊΠ°, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Ρ ΠΊΠ°ΡΡΡ Π½Π° ΠΊΠ°ΡΡΡ, ΠΎΠΏΠ»Π°ΡΠ° ΡΡΠ΅ΡΠΎΠ² ΠΈ Ρ.Π΄. ΠΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ? Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π²Π° Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ :
Π‘ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ N-ΠΎΠΉ ΡΡΠΌΠΌΡ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
ΠΠ° Π²ΡΠΎΡΠΎΠΉ Π»ΠΈΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅Ρ ΠΈΠ΄Π΅Ρ Π·Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΠΌΠΌΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π² ΠΎΠ΄Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠΈΠ΄Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄Π΅Π»ΡΡ Π½Π° Π΄Π²Π° Π²ΠΈΠ΄Π°:
ΠΠ΅ΡΠ²Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠ Π·Π°Π΄Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ INSERT, UPDATE ΠΈΠ»ΠΈ DELETE ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π―Π²Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β ΠΈΡ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ²Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ BEGIN TRANSACTION, COMMIT ΠΈΠ»ΠΈ ROLLBACK.
Π ORM Laravel ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΡΠ°Π΄Π° DB Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ DB::transaction(). ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ DB::beginTransaction(), DB::rollBack(), DB::commit().
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΡΠ΄Π΅Π»ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅Β» ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠΎΠΉ Β«ACIDΒ». ΠΠ°ΠΆΠ΄Π°Ρ Π±ΡΠΊΠ²Π° Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ²ΠΎΠΉΡΡΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½ΠΈΠΆΠ΅.
Atomicity ΠΈΠ»ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ (A)
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π»ΠΈΡΠ΅Π²ΡΠΌΠΈ ΡΡΠ΅ΡΠ°ΠΌΠΈ. ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΠΈ 2 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² Π΄Π²Π° Π·Π°ΠΏΡΠΎΡΠ° ΠΊ ΠΠ?
ΠΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ. Π‘ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΏΠΈΡΠ°Π½Π° N-Π°Ρ ΡΡΠΌΠΌΠ° Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ².
ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Π΄Π΅Π½Π΅ΠΆΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° ΡΠΉΠ΄ΡΡ, Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Ρ Π½Π΅ ΠΏΠΎΡΡΡΠΏΡΡ.
Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΠ΅Π»ΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ, ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ (atomicity), Π½Π΅Π΄Π΅Π»ΠΈΠΌΠΎΡΡΡ: Π»ΠΈΠ±ΠΎ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅.
Consistency ΠΈΠ»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ (C)
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΠ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Β«good stateΒ»*, ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π² ΡΡΠΎΠΌ ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
*ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ: Π² ΡΠ°Π±Π»ΠΈΡΠ΅ countries Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄Π²ΡΡ ΡΡΡΠΎΠΊ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠ°Π½Ρ Β«Π ΠΎΡΡΠΈΠΉΡΠΊΠ°Ρ Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΡΒ»; Π²ΠΎΠ·ΡΠ°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ 150 Π»Π΅Ρ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈ ΠΎΠ΄Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. Π Π²ΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ β ΡΡΠΎ ΠΏΡΠ΅ΡΠΎΠ³Π°ΡΠΈΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΠ. ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ Π»ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Ρ.Π΄.
Isolation ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ (I)
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ β ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΠ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ:
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΡΠ°Π·Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ Π΄Π°Π½Π½ΡΡ , Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π΄Π²Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ ? ΠΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠ²Π»Π΅Π½ΠΈΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ race condition (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΠ½ΠΊΠΈ).
ΠΡΠ΄Π΅Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΠΊΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠΌ ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΡΠ΅ΠΊΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ ΡΡΠΈΡΡΠ²Π°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±Π°Π½ΠΊΠ° Π΅ΡΡΡ ΡΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ 1000 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π ΠΈ Π ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΠ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠΌΠΌΡ Π½Π° 100 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ, Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π β Π½Π° 200. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΡΠΌΠΌΡ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ Π½Π° ΡΡΡΡΠ΅ Π½Π° 100 (ΠΈΡΠΎΠ³ΠΎ 1100) ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΠ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΡΠΌΠΌΡ Π½Π° 200 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΠΠ (ΠΈΡΠΎΠ³ΠΎ 1200). Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π° ΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ 1300, Π° ΠΏΠΎ ΡΠ°ΠΊΡΡ ΠΈΠΌΠ΅Π΅ΠΌ 1200 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ.
ΠΡΡΠ΅ΠΊΡ Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Ρ, Π½ΠΎ Π½Π΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΡΠ° Π, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 0 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ Π½Π° ΡΡΠ΅ΡΠ΅ ΠΈ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π² Π²ΡΠ΄Π°ΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΡΡ . Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΡΠ°ΠΌΠΈ.
ΠΡΡΠ΅ΠΊΡ Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π²Π°ΠΆΠ΄Ρ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΡΡΠΎΠΊΡ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π±Π°Π½ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π°Π»Π°Π½Ρ Π½Π° ΡΡΡΡΠ΅. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π Ρ ΠΎΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π±Π°Π»Π°Π½Ρ ΡΡΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° 200 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ Π½Π° ΡΡΡΡΠ΅ β 500 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ. Π ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ Π½Π° ΡΡΡΡΠ΅ Π΄ΠΎ 0 ΠΈ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π±Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»Π° ΡΡΠΌΠΌΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π±Ρ 0 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ, Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ½Π° ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠ»Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΡΠ΅Ρ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠΈΠ½ΡΡ.
ΠΡΡΠ΅ΠΊΡ ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π½ΡΠΎΠΌΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ°, Π½ΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ 3 Π»ΠΈΡΠ΅Π²ΡΡ ΡΡΠ΅ΡΠΎΠ². ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±Π°Π½ΠΊΠ° ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 2 ΡΡΠ΅ΡΠ°. Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ B ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (3 ΡΡΠ΅ΡΠ°). ΠΡΠ»ΠΈ Π±Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΈΡΠ΅Π²ΡΡ ΡΡΠ΅ΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠΎ ΠΈΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ 3, ΠΈ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΈΠ»ΠΈ transaction isolation levels, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π‘Π£ΠΠ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²ΠΈΠΆΠΎΠΊ InnoDB Π² Π‘Π£ΠΠ MySQL:
Read uncommitted β ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΠΈΠ΄ΠΈΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π‘ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΡΡΡΠ΅ΠΊΡΡ Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π½ΡΠΎΠΌΠΎΠ².
ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ SELECT ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ°Π½Π΅ΡΠ΅.
ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠ΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅ (SELECT β¦ FOR UPDATE, LOCK IN SHARE MODE), UPDATE ΠΈ DELETE Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠΎΠΌΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π²ΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°Ρ Π½Π° Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΠ΅ΡΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ.
Read committed β ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΠΈΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Π‘ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ, ΠΎΡΡΠ°ΡΡΡΡ ΡΡΡΠ΅ΠΊΡΡ Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π½ΡΠΎΠΌΠΎΠ².
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ²Π΅ΠΆΠ΅Π³ΠΎ ΡΠ½ΡΠΏΡΠΎΡΠ°. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ read uncommitted.
Repeatable read ΠΈΠ»ΠΈ snapshot isolation β ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΅ΠΉ ΡΠ°Π½Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°. Π‘ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ, ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅ΠΊΡ ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π½ΡΠΎΠΌΠΎΠ².
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ½ΡΠΏΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠΈ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π²Π΅ΡΠ½ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ:
Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, WHERE (id > 7), ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π²Π΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½;
Π΅ΡΠ»ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, WHERE (id = 7), ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ.
ΠΡΡΠ°ΡΠΈ, Π² InnoDB ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠ²Π΅Π½Ρ repeatable read ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Serializable β ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π‘ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ repeatable read, Π½ΠΎ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΡΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ autocommit (Π° ΠΏΡΠΈ ΡΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ START TRANSACTION ΠΎΠ½ Π²ΡΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), ΡΠΎ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ SELECT ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² Π·Π°ΠΏΡΠΎΡΡ SELECT β¦ LOCK IN SHARE MODE.
SELECT β¦ LOCK IN SHARE MODE β Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π° Π·Π°ΠΏΠΈΡΡ.
SELECT β¦ FOR UPDATE β Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠ°ΠΌΠ½ΡΠΌΠΈ, ΡΡΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ.
ΠΠ·ΠΎΠ»ΡΡΠΈΡ β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ²Π»Π΅Π½ΠΈΡ race condition.
Durability ΠΈΠ»ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ (D)
ΠΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠ±ΠΎΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Amazon S3, ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΡΠΈΡΡ ΠΎΠ±Π΅ΡΠ°ΡΡ Π²Π°ΠΌ ΡΠ°Π·Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π΅Π²ΡΡΠΎΠΊ durability. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠ° durability ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΡ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΡΡΡΡΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΏΠΈΠΉ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΊΠ°Ρ ΠΌΠΈΡΠ°, ΡΠ΅ΠΌ Π²ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΈΡ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·-Π·Π° Π½Π°Π²ΠΎΠ΄Π½Π΅Π½ΠΈΡ, Π·Π΅ΠΌΠ»Π΅ΡΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π°ΡΠ΅ΡΡΠ²ΠΈΡ ΠΈΠ½ΠΎΠΏΠ»Π°Π½Π΅ΡΡΠ½. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Β«ACIDΒ» ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΡΠ²ΠΎΠ΄
ΠΠ°ΠΊ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π²ΡΡΠ΅, ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. Π ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ Π΅Π΅ βΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°β ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ» Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΈ ΠΆΠ΄Π΅ΠΌ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².