ΠΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π·Π½Π°ΡΡ Π²ΡΠ΅, Π° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ Π²ΡΠ΅. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² mysql ΠΈ SELECT FOR UPDATE / Habr
ΠΠΎ Π΄ΠΎΠ»Π³Ρ ΡΠ»ΡΠΆΠ±Ρ ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ Β«[ΡΡΠ°ΡΡΠΈΠΉ|ΠΌΠ»Π°Π΄ΡΠΈΠΉ] ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ python/djangoΒ», Β«ΡΠΈΠΌΠ»ΠΈΠ΄Β». Π ΠΌΠΎΠ΅ΠΌΡ Π²Π΅Π»ΠΈΠΊΠΎΠΌΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ 9 ΠΈΠ· 10 ΡΠΎΠΈΡΠΊΠ°ΡΠ΅Π»Π΅ΠΉ, Π² ΡΠ΅Π·ΡΠΌΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ°ΡΡΡ ΡΠ»ΠΎΠ²Π° Β» Mysql/Innodb/transactions/triggers/stored proc etc.Β», Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΎΠΏΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ».ΠΠ°Π»Π΅Π΅ ΠΏΠΎ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ:
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΡΠ²Π»ΡΠ΅ΠΌΡΡ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ»Π°ΡΠ½ΡΠΌ API (Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ»ΡΠ³ΠΈ, ΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΈΠ»ΠΈ ΡΡΠΎ Π²Π°ΡΠ΅ΠΉ Π΄ΡΡΠ΅ ΡΠ³ΠΎΠ΄Π½ΠΎ), ΡΠΎ Π΅ΡΡΡ Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΠΌ ΠΏΠ»Π°ΡΠΈΡ Π΄Π΅Π½ΡΠ³ΠΈ Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ API. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ»ΡΠ³ΠΈ, Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΆΠΌΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ»ΡΠ³ΡΒ». Π’ΠΎ Π΅ΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ HTTP Π·Π°ΠΏΡΠΎΡΠ° ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π½Π°ΡΠ΅ΠΉ ΠΠ Π·Π°ΠΏΠΈΡΡ (Π·Π°ΠΏΡΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠ»ΡΠ³ΠΈ). ΠΠ°ΠΊΠΎΠ² Π½Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ?- ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ Ρ ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ:
β Π΄ΠΎΡΡΠ°Π΅ΠΌ ΠΈΠ· Π±Π°Π·Ρ Π±Π°Π»Π°Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ;
β Π΅ΡΠ»ΠΈ Π±Π°Π»Π°Π½ΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΠΎ Π΄Π΅ΡΠ³Π°Π΅ΠΌ API;
β Π΅ΡΠ»ΠΈ Π²ΡΡ Ρ
ΠΎΡΠΎΡΠΎ, ΡΠΎ ΡΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Ρ Π±Π°Π»Π°Π½ΡΠ° ΡΡΠΌΠΌΡ Π·Π° ΡΡΠ»ΡΠ³Ρ, Π΄Π΅Π»Π°Π΅ΠΌ UPDATE, ΠΊΠΎΠΌΠΌΠΈΡΠΈΠΌ, ΠΈΠ½Π°ΡΠ΅ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ;
β ΠΎΡΠ²Π΅ΡΠ°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΎΠ΄Π΅ Π±Ρ Π²ΡΡ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ²ΠΎΠΆΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΈ ΡΠ°ΠΌΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ 10 ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π±Π°Π»Π°Π½Ρ ΠΈ Π½Π°ΡΠ½ΡΡ Π·Π²ΠΎΠ½ΠΈΡΡ Π² API), ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΠΈΠ·ΠΎΡΡΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ 5 ΡΠ΅Π»Π΅ΠΊΡΠΎΠ² (ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΡΡΡΡ, Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ» Π² ΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ², Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ΅ΡΠ΅ΠΉ, Π½ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡ Π² Π±Π΄, ΡΠ»ΠΈΠΏΠΎΠ² ΠΈ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠΉΠΌΠΈ ΡΠ΅Π³ΠΎ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ (Π° ΡΡΠΎ Π·Π½Π°Π»ΠΈ Π²ΡΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ!), innodb Π² mysql ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΠΉ Π»ΠΎΠΊ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ SELECT-Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ FOR UPDATE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
SELECT * FROM requests WHERE id=5 FOR UPDATE
Π‘ΡΠ°ΡΡΠ°Π½Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΆΠ΄Π°ΡΡ. ΠΠ° ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ FOR UPDATE Π»ΡΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ autocommit-ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π·Π°Π»ΠΎΡΠΈΠ»ΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΠΏΠ΄Π΅ΠΉΡΠ° Π»ΠΎΠΊ ΡΠ½ΠΈΠΌΠ΅ΡΡΡ.
ΠΡΠΎΠ΄Π΅ ΠΌΠ΅Π»ΠΎΡΡ, Π²ΡΠΎΠ΄Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ 9 ΠΈΠ· 10β¦
upd
ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² mysqlΒ», Π½Π΅ ΡΠ°ΡΠΊΡΡΡΠΎΠ΅ Π² ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Β» Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² mysql ΠΈ SELECT FOR UPDATEΒ»
ΠΠ«
Π² ΡΡΠ°ΡΡΠ΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΠΠ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΡΠ³Π°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΡΠ²ΠΎΠΉΡΡΠ²Π° ACID, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΡ Π°Π²ΡΠΎΡΠ°: ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ SQL β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠ°ΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π³ΡΡΠΏΠΏΡ, ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌΡΡ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠΎΠΉ ACID.
ΠΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡ, ΠΈ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.

ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ PHP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ²ΠΎΠΉΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π½Π° PHP ΠΈ MySQL Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MVC
Π ΠΊΡΡΡΠ΅ 39 ΡΡΠΎΠΊΠΎΠ² | 15 ΡΠ°ΡΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ | ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ!Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎΠ±Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ.
ΠΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
COMMIT β ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ROLLBACK β ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
SAVEPOINT β ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² Π³ΡΡΠΏΠΏΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
SET TRANSACTION β ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΠΌΡ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ DML, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ β INSERT, UPDATE ΠΈ DELETE. ΠΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΈΠ»ΠΈ ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT
ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT β ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COMMIT ΠΈΠ»ΠΈ ROLLBACK.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COMMIT ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ CUSTOMERS, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ = 25, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
DELETE FROM CUSTOMERS WHERE AGE = 25; COMMIT;
DELETE FROM CUSTOMERS WHERE AGE = 25; COMMIT; |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SELECT Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK
ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK β ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COMMIT ΠΈΠ»ΠΈ ROLLBACK.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ CUSTOMERS, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ:

ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ PHP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ²ΠΎΠΉΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π½Π° PHP ΠΈ MySQL Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MVC
Π ΠΊΡΡΡΠ΅ 39 ΡΡΠΎΠΊΠΎΠ² | 15 ΡΠ°ΡΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ | ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ!ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΡΠ°ΡΡ = 25, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ.
DELETE FROM CUSTOMERS WHERE AGE = 25; ROLLBACK;
DELETE FROM CUSTOMERS WHERE AGE = 25; ROLLBACK; |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SELECT Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° SAVEPOINT
SAVEPOINT β ΡΡΠΎ ΡΠΎΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π½Π΅ ΠΎΡΠΊΠ°ΡΡΠ²Π°Ρ Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SAVEPOINT ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.
SAVEPOINT SAVEPOINT_NAME;
SAVEPOINT SAVEPOINT_NAME; |
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SAVEPOINT Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ . ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π³ΡΡΠΏΠΏΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΄ΠΎ ΡΠΎΡΠΊΠΈ SAVEPOINT.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ SAVEPOINT, ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅.
ROLLBACK TO SAVEPOINT_NAME;
ROLLBACK TO SAVEPOINT_NAME; |
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ CUSTOMERS. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ SAVEPOINT ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊ Π»ΡΠ±ΠΎΠΉ SAVEPOINT Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ CUSTOMERS, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
SAVEPOINT SP1; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=1; 1 row deleted. SAVEPOINT SP2; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=2; 1 row deleted. SAVEPOINT SP3; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=3; 1 row deleted.
SAVEPOINT SP1; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=1; 1 row deleted. SAVEPOINT SP2; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=2; 1 row deleted. SAVEPOINT SP3; Savepoint created. DELETE FROM CUSTOMERS WHERE ID=3; 1 row deleted. |
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊ ΡΠΎΡΠΊΠ΅ SAVEPOINT, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ SP2. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ SP2 Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ:
ROLLBACK TO SP2; Rollback complete.
ROLLBACK TO SP2; Rollback complete. |
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΡ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ SP2, Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅
ΠΠΎΠΌΠ°Π½Π΄Π° RELEASE SAVEPOINT
ΠΠΎΠΌΠ°Π½Π΄Π° RELEASE SAVEPOINT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ SAVEPOINT. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ RELEASE SAVEPOINT ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ.
RELEASE SAVEPOINT SAVEPOINT_NAME;
RELEASE SAVEPOINT SAVEPOINT_NAME; |
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ SAVEPOINT Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½Π°, Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ SAVEPOINT.
ΠΠΎΠΌΠ°Π½Π΄Π° SET TRANSACTION
ΠΠΎΠΌΠ°Π½Π΄Π° SET TRANSACTION ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SET TRANSACTION ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ.
SET TRANSACTION [ READ WRITE | READ ONLY ];
SET TRANSACTION [ READ WRITE | READ ONLY ]; |
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://www.tutorialspoint.com/
Π Π΅Π΄Π°ΠΊΡΠΈΡ: ΠΠΎΠΌΠ°Π½Π΄Π° webformyself.

ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ PHP ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ²ΠΎΠΉΡΠ΅ ΠΊΡΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π½Π° PHP ΠΈ MySQL Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MVC
Π ΠΊΡΡΡΠ΅ 39 ΡΡΠΎΠΊΠΎΠ² | 15 ΡΠ°ΡΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ | ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°

Π₯ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ MySQL?
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΡΡΡ ΠΏΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ MySQL!
Π‘ΠΌΠΎΡΡΠ΅ΡΡΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅

ΠΠ΅Π΄Ρ, ΠΏΠΎ ΡΡΡΠΈ, ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ² Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°. Π Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΡΠ° ΠΎΡΠΈΠ±Π΅ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ΄Π°Π²Π°ΡΡ, ΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΏΡΡΡΡΡ ΡΠΎΠ»ΡΠ΅ΡΡ Π±Π°Π±Π»ΠΎ, Π° Π²ΡΡ Π»ΠΎΠΏΠ° ΡΠ°ΠΊ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅. Π Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ Π½Π΅ Ρ ΠΎΡΡ ΠΏΠΎΡΡΠ°ΡΡ ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ. Π― ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΊΠ°ΠΊ Π²ΡΡΠ²Π»ΡΡΡ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ΅Π΄Ρ, ΡΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. Π― ΡΠΆΠ΅ Ρ ΠΎΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ Π΄Π΅Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ°Π» ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΡΡΠΈΠ»ΡΡ, ΠΏΠΎΠΊΠ° Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π» Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΡΡΠ°ΡΠΈ, ΠΈΠ΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄ΠΎΠ»Π±Π°Π»ΠΈ ΡΠ΅ΡΡΠΎΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΏΠ»Π°ΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΠ²Ρ β ΠΠ°ΠΊ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΠ»Π°ΡΠ½ΡΡ Π°ΡΡ ΠΈΠ²Π°Ρ . ΠΠ΅Π³Π° ΠΌΠ°Π½ΡΠ°Π» Π΄Π»Ρ Π±ΡΠ΄ΡΡΠΈΡ Π°Π΄Π²Π΅ΡΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ° ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΠ²Ρ. Π’ΠΎ Π΅ΡΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π² ΡΠ΅ΠΌ ΡΠΎΠ»Ρ? Π ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ Π½Π΅ΡΠΈΠ³ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΡ ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΠ²Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅ΡΡ Π΄Π²ΠΈΠ³Π°ΡΡ. ΠΠ΅ΡΠ½Π΅Π΅, Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡ.
ΠΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΡ ΠΏΠΎΠ΄ ΠΠΈΠΊΡΠΌΠ°ΡΠΊΠ΅Ρ, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΊΡ (Π²ΠΎΡ Π²Π°ΠΌ ΠΊΡΡΠ° ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠΊ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ), ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΆΠ΅ ΡΠΈΠ³, ΡΡΠΈΡΠ°ΠΉ, ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ β ΡΡΠΎ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
Π’ΠΎ Π΅ΡΡΡ, Π²Π°ΠΆΠ½ΠΎΡΡΡ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ° β Π²ΡΠΎΡΠΈΡΠ½ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ?
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ΄Π°Π²Π°ΡΡ β ΡΡΠΎ ΡΠΈΠΏΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡ Π΅ΡΡΡ ΡΡΠΈ Π²ΠΈΠ΄Π°:
1. ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠ΅. Π¦Π΅Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β Π½Π°ΠΉΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ°ΠΉΡ
2. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅. Π¦Π΅Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
3. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅. ΠΡ ΡΠ»ΠΎΠ²Π° Β«ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΒ». ΠΠ΄Π΅ΡΡ ΡΠ°ΠΌΠΎ ΡΠ»ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎ ΡΠ°ΠΊΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
ΠΡΡΡΠ΄Π° Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅. Π ΠΈΠΌΠ΅Π½Π½ΠΎ: Π½Π°ΠΌ Π½ΡΠΆΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ β ΡΡΠΎ ΡΠ°Π·.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²:
β ΠΊΡΠΏΠΈΡΡ Π΄ΠΎΠΌΠΈΠΊ Π² ΠΏΠΎΠ΄ΠΌΠΎΡΠΊΠΎΠ²ΡΠ΅
β Π·Π°ΠΊΠ°Π·Π°ΡΡ ΡΡΡΠ±ΠΎΠ»ΠΊΡ
β ΡΠ΅ΠΌΠΎΠ½Ρ Π°Π²ΡΠΎ
β ΡΠΊΠ°ΡΠ°ΡΡ ΡΠΊΠ°ΠΉΠΏ
β ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΆΡΡΠ½Π°Π» ΠΌΡΡΠ·ΠΈΠ»ΠΊΠ°
Π’ΠΎ Π΅ΡΡΡ, Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡΡΠ»Ρ ΡΠ°ΠΊ. ΠΡΠ»ΠΈ Ρ ΡΠΎΠ·Π΄Π°Ρ ΡΠ°ΠΉΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΏΠ°ΡΡΠ½Π΅ΡΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»ΠΈΠ²Π°ΡΡ ΡΡΠ°Ρ, ΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Ρ ΠΎΡΡΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΡΠ»ΠΈ Ρ Π΄Π΅Π»Π°Ρ ΡΠ°ΠΉΡ ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΠ²Ρ, ΡΠΎ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠΎ ΡΠ»ΠΎΠ²ΠΎΠΌ Β«ΡΠΊΠ°ΡΠ°ΡΡΒ». ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡ ΠΆΠ΅ Google Adwords, ΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΎΠ²Π° Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΡΡ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΎΡΡ. ΠΠ΄Π΅ΡΡ, ΠΏΡΠ°Π²Π΄Π°, Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ AdWords ΡΡΠ°ΡΠ°, Π»ΡΡΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ ΠΏΠΎ Google Adwords ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΡΡΠ°Ρ Π΄Π»Ρ ΡΠ»ΠΈΠ²Π° Π½Π° ΠΏΠ°ΡΡΠ½Π΅ΡΠΊΠΈ. Π― ΡΠ°ΠΌ Π²ΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΎΠ±ΡΡΡΠ½ΠΈΠ».
ΠΡΠΎΡΠΎΠ΅ β ΠΌΠ½Π΅ Π½ΡΠΆΠ½Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
Π’ΡΠ΅ΡΡΠ΅ β ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΏΠ»Π°Π½ΠΈΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΡΡ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΠΌ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΡ Π½ΡΠ½Π΅ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ² ΡΡΠ½ΠΊΠ°. Π Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ β Π²ΡΡΠ²ΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΡΡΡΡ Π² AdWords. ΠΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΠ΄Π° Π²Ρ ΡΠ°ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ»ΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΠΊ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΈΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² Π² AdWords, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SemRush (ΡΠΌ. ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΌΠ°Π½ΡΠ°Π» ΠΏΠΎ SemRush. ΠΠ°ΠΉΡΠ΅ ΠΏΠΈΠ½ΠΊΠ° Π²Π°ΡΠ΅ΠΌΡ Π±ΠΈΠ·Π½Π΅ΡΡ!) ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π»ΠΈΡΡ ΡΡΠ°Ρ ΠΈΠ· ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AdsDock (ΡΠΌ. ΠΠ°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ Π°ΡΠ±ΠΈΡΡΠ°ΠΆΠ΅ΠΌ ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅? Π£ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AdsDock.com) Π’ΠΎ Π΅ΡΡΡ, ΠΏΠΎΠ΄ΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ β ΡΡΠΎ ΡΡΡΠΏΠΎΠ΄ΠΎΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π§Π΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ β Π»ΠΎΠ³ΠΈΠΊΠ°
Π§ΡΠΎ ΡΡΡ Π½ΠΈ Π³ΠΎΠ²ΠΎΡΠΈ, Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π² Π΄Π΅Π»Π΅ ΠΏΠΎΠ΄Π±ΠΎΡΠ° ΠΏΡΠΎΠ΄Π°ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² β Π΄Π΅Π»ΠΎ Π²Π΅ΡΡΠΌΠ° ΠΈ Π²Π΅ΡΡΠΌΠ° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅. Π― ΡΠ°Π½ΡΡΠ΅ Π»ΠΎΠΆΠΈΠ» Π±ΠΎΠ»Ρ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡ, ΠΈ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ Π½Π°Π΄ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π·Π°ΠΌΠΎΡΠΎΡΠΊΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ, ΡΠ΅Π» ΠΊΠ°ΠΊ Π±Π°ΡΠ°Π½: ΠΈΡΠΊΠ°Π» Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΈ Π΄Π²ΠΈΠ³Π°Π» Π΅Π³ΠΎ. ΠΠ° Π·Π°ΡΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ seo Ρ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ Π±Π»ΠΎΠ³Π° ΠΏΠΎΠΊΡΠΏΠ°Π» ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ Ρ Π°Π½ΠΊΠΎΡΠΎΠΌ Β«Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ°ΠΉΡΠΎΠ²Β». ΠΠΎΠΊΡΠΏΠ°Π» ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°. Π Π²ΡΠ΅ Π±Π°Π±ΠΊΠΈ, ΠΏΠΎΠΌΠ½Ρ, Π»ΠΎΠΆΠΈΠ» Π½Π° ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ. Π₯ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΎΠ»ΠΎΠ²Ρ ΠΈ ΠΊΠΎΡΠ΅Π»ΡΠΊΠ° ΡΠΎΠΆΠ΅ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΡΠΌΡΡΠ» Π² ΡΠ°ΠΊΠΎΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠ³Π΄Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ Π²ΡΠ±ΠΈΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΡ, ΡΠΎ Ρ Π½Π΅ ΡΠΎΡ Ρ ΡΠ°Π½Π°ΡΠΈΡΠ½ΠΎΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎ Ρ Π΄Π΅Π»Π°Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·, ΠΈ ΠΏΡΠΈΠΊΠΈΠ΄ΡΠ²Π°Ρ, ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ β Β«ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°Β». ΠΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΡΡΠ°Π·Ρ, ΡΡ ΠΎΠ΄Ρ, Π±ΡΠ΄Π΅Ρ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΌΡΡΠ»ΠΈΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅Ρ ΠΊΡΠΏΠΈΡΡ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°. ΠΠ΄Π΅ΡΡ Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Β«ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΎΡΠ·ΡΠ²ΡΒ». ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π΄Π΅ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠΆΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ ΠΏΠΎ ΡΠ°ΠΉΡΠ°ΠΌ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΎΡΠ΅Ρ ΠΎΡΡΠ΅ΡΡΡ Π³ΠΎΠ²Π½ΠΎΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π³ΠΎΠ²Π½ΠΎΠΎΠΊΠ½Π°. ΠΠΌ Π½ΡΠΆΠ½Ρ Ρ ΠΎΡΠΎΡΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈΡ ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π»ΡΠ΄Π΅ΠΉ. Π Π·Π΄Π΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅. Π’ΡΡ Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΈ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π³Π»Π°Π³ΠΎΠ»Π° Π² ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΠΈ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡΡΠ»ΡΡ ΡΡΠΈ Π»ΡΠ΄ΠΈ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ·Π½Π°Π»ΠΈ ΠΏΡΠΎ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Π²ΡΠ΅: ΠΏΠΎΡΠΈΡΠ°Π»ΠΈ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΠ·Π½Π°Π»ΠΈ ΡΠ΅Π½Ρ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π’ΠΎ Π΅ΡΡΡ, ΡΡΠΎΡ ΡΠΈΠΏ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΎ ΠΎΠΊΠ½Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅, ΡΠ΅Π½Ρ ΡΠ·Π½Π°Π΅Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ, Π° ΡΠ°ΠΌΠΈ ΠΎΠΊΠ½Π° ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ Π½Π° ΡΡΠ΅ΡΡΠ΅ΠΌ.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅, Π²ΡΠ΅ ΡΡΠΎ Ρ ΠΏΠΎΠ΄Π²ΠΎΠΆΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ»ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΠΈΠ·ΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΠΈΠΊΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ΄Π°ΡΡ. ΠΠΎΡ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π·Π°ΠΏΡΠΎΡ Β«ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° KraussΒ» Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠΌ, ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ Β«ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°Β».
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΈΡΠ½ΠΎ Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π»Π΅Π·Ρ Π² Π΄Π΅Π±ΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΠΎΠ΄ΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ, ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠ»ΡΡΠΈΠΊΠ°ΠΌ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ Π² AdWords
ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΡΡ, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π½Π° ΠΏΠ°ΡΡΠ½Π΅ΡΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΠ°ΡΡΠ½Π΅ΡΠΊΠ°Ρ (ΡΠ°ΠΌ Π³Π΄Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ) ΡΠΌΠΎΡΡΡ IP, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΠΈ Π½Π° ΡΠ°ΠΉΡ, Π° ΠΏΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ LI (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π·Π½Π°Ρ Π³Π΄Π΅ ΠΊΠΎΠΏΠ°ΡΡ) Π½Π°Ρ ΠΎΠΆΡ ΡΡΠΈ IP, ΠΈ Π²ΠΈΠΆΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΠΈ
Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΡΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ Ρ Π½ΠΈΡ , ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°ΡΠ»ΠΈ ΠΌΠ΅Π½Ρ ΠΈ ΠΌΠΎΠΉ ΡΠ°ΠΉΡ.
ΠΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΎΠ±Π·ΠΎΡ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎΠΆΠ΅Ρ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΌΠ±ΡΡΠ½ΠΎ, Π½ΠΎ Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΌ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ²Π΅Π» Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ²ΠΎΠ΄Ρ Π² ΠΎΠ΄Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ β ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎ. ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Ρ ΡΡΠ°ΡΠ°ΡΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ, ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π½Π° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΌΡ, ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅ ΠΆΠ°Π»ΠΊΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠΎ Π²Π΅Π»ΠΊΠ°ΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ Π½Π°Π±Π΅ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ 15 ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΎΠ² Ρ Ρ ΠΎΡΠΎΡΠΈΠΌΠΈ Π΄ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ, ΡΠΎ Π°Π²ΡΠΎΡΡ Π»ΡΡΡΠ΅ΠΉ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΎΠ΄Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠ΄Π°ΡΠΎΠΊ β $15. ΠΠΎ ΡΠ²ΡΠ·ΠΈ!
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π½Π° Π΄Π΅ΡΠ΅ΡΡ: Π€ΠΈΠ»ΠΈΠ³ΡΠ°Π½Π½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ ΡΡΡΠ±ΠΎΠ»ΠΈΡΡΠΎΠ²
ΠΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ°ΡΡΡ ΠΏΠΎ 5-Π±Π°Π»ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Π΅:


ΠΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅
Google+
ΠΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ Π·Π°ΠΏΠΈΡΡ? ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΅:
TwitterFacebookΠ’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ / Habr
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅ΡΡΠ°Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΡΠΈΠΊΡΠ°ΡΠΈΡ, commit) Π»ΠΈΠ±ΠΎ ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΎΡΠΊΠ°Ρ, rollback). ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΠ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΠΊΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ACID
ΠΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ²ΡΠ΅.
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ. ΠΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ constraints Π² ΠΠ). Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅.
ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π»ΠΈΡΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΡΡΠ³Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ΅ΡΡΠ½Ρ.
ΠΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΡΡΠ½Π°Π» Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΡΠ½Π°Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π»ΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ. Write-ahead log strategy ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΆΡΡΠ½Π°Π» Π·Π°ΠΏΠΈΡΡ ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π°, Π° ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π ΡΠ»ΡΡΠ°Π΅ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ ΡΠΈΡΠ°Π΅Ρ Π»ΠΎΠ³ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. ΠΡΡΡΠ΅ΡΠΈΠ² ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΠ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π΅ ΠΈ Π²Π½ΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΉ Π² ΠΆΡΡΠ½Π°Π». ΠΠ°Ρ ΠΎΠ΄ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡ, ΠΠ ΡΠΈΡΠ°Π΅Ρ Π»ΠΎΠ³ Π² ΠΏΡΡΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ. ΠΠ° ΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 500$ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ½ΡΡΡ ΠΈΡ ΡΠ΅ΡΠ΅Π· Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ. ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° ΠΈ Π΅ΡΠ»ΠΈ Π½Π° Π±Π°Π»Π°Π½ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ² Π²ΡΠ΄Π°Π΅Ρ Π΄Π΅Π½ΡΠ³ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡΠ°Ρ Π²ΡΡΠΈΡΠ°Π΅Ρ ΠΈΠ· Π±Π°Π»Π°Π½ΡΠ° Π½ΡΠΆΠ½ΡΡ ΡΡΠΌΠΌΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ, Π° Π²ΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ Π΄Π΅Π½ΡΠ³ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π±Π°Π»Π°Π½ΡΠΎΠΌ.
Π£ΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Read Committed)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ (Dirty Read) Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ. ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° 0$. Π’1 Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ Π±Π°Π»Π°Π½ΡΡ 50$. Π’2 ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° (50$). Π’1 ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. T2 ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π±Π°Π»Π°Π½ΡΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Read Committed) Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ΅Π΅ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ A ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ B ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π·Π° ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ A.
ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ (Repeatable Read)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Lost Updates). Π’1 ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π’2.
ΠΡΠΈΠΌΠ΅Ρ. ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° 0$ ΠΈ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡΡ Π±Π°Π»Π°Π½Ρ. T1 ΠΈ T2 ΡΠΈΡΠ°ΡΡ Π±Π°Π»Π°Π½Ρ ΡΠ°Π²Π½ΡΠΉ 0$. ΠΠ°ΡΠ΅ΠΌ T2 ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ 200$ ΠΊ 0$ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. T1 ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ 100$ ΠΊ 0$ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ 100$ Π²ΠΌΠ΅ΡΡΠΎ 300$.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ (Unrepeatable read). ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ. Π’1 ΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° ΡΠ°Π²Π½ΠΎΠ΅ 0$. ΠΠ°ΡΠ΅ΠΌ Π’2 Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ Π±Π°Π»Π°Π½ΡΡ 50$ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. Π’1 ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ.
ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ (Repeatable Read) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ½Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ A ΠΏΡΠΎΡΠ»Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ B ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π·Π° ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ A.
Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ (Serializable)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°Π½ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ (Phantom Reads). ΠΠ²Π° Π·Π°ΠΏΡΠΎΡΠ° Π²ΡΠ±ΠΈΡΠ°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ. T1 Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π±Π°Π»Π°Π½Ρ ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ 0$ Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ 100$. T2 Π²ΡΡΠΈΡΠ°Π΅Ρ 1$ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π±Π°Π»Π°Π½ΡΠΎΠΌ 101$. T1 ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ.
Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ (Serializable). Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅. ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ A Π·Π°ΠΏΡΠΎΡΠΈΠ»Π° Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ A.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ (Scheduler)
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΠΈ, ΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ²Π½Ρ (Permutable). ΠΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ²Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ°Π·Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π·Π°ΠΏΠΈΡΠΈ-Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ²Π½Ρ. ΠΠ°Π΄Π°ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ» ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ (Concurrency Control)
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΠΏΠ΅ΡΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²
ΠΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π² ΡΠ²ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ²ΡΠΉ Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°.
ΠΡΠΈ ΠΏΠ΅ΡΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Ρ Π²Π°ΡΠΈΠ²ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΠ΅Π΄ΠΊΠΈ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°.
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° (Locking)
ΠΡΠ»ΠΈ ΠΎΠ΄Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»Π° Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΆΠ΄Π°ΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠ΄ ΠΈΠ»ΠΈ Π°ΡΡΡΠΈΠ±ΡΡ. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΉ Π·Π°Ρ Π²Π°Ρ (Shared Lock) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π»ΠΎΠΆΠ΅Π½ Π½Π° ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π»ΠΎΠΆΠΈΠ²ΡΡΡ) ΡΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ Π·Π°Ρ Π²Π°Ρ. ΠΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ Π·Π°Ρ Π²Π°Ρ (Exclusive Lock) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π»ΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π»ΠΎΠΆΠΈΠ²ΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ.
ΠΠ·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π΄Π»ΡΡΠ΅ΠΌΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ
ΠΡΠΈΠΌΠ΅Ρ. ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΆΠ΄Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ Π²ΡΠΎΡΠΎΠΉ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΡΠΎΡΠ°Ρ ΠΆΠ΄Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ.
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΡ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅
Π‘ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ β ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ. ΠΠΎΠ³Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π°, ΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠΌ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ. ΠΡΠ±ΠΎΡ ΠΆΠ΅ΡΡΠ²Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡ ΡΡΠ°ΡΡΠΈΠ½ΡΡΠ²Π΅ (Wait-Die ΠΈ Wound-wait ΡΡ Π΅ΠΌΡ).
ΠΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ T ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° TS ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Wait-Die.
ΠΡΠ»ΠΈ TS(Ti) < TS(Tj), ΡΠΎ Ti ΠΆΠ΄Π΅Ρ, ΠΈΠ½Π°ΡΠ΅ Ti ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Ρ ΡΠΎΠΉ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ.
ΠΡΠ»ΠΈ ΠΌΠΎΠ»ΠΎΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Ρ Π²Π°ΡΠΈΠ»Π° ΡΠ΅ΡΡΡΡ, Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΡΡΡ, ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ. ΠΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Ρ Π²Π°ΡΠΈΠ»Π° ΡΠ΅ΡΡΡΡ, ΡΠΎ ΠΌΠΎΠ»ΠΎΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΡΠΎΡ ΡΠ΅ΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ°ΡΠ΅Π½Π°.
Wound-wait.
ΠΡΠ»ΠΈ TS(Ti) < TS(Tj), ΡΠΎ Tj ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Ρ ΡΠΎΠΉ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ, ΠΈΠ½Π°ΡΠ΅ Ti ΠΆΠ΄Π΅Ρ.
ΠΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Ρ Π²Π°ΡΠΈΠ»Π° ΡΠ΅ΡΡΡΡ, Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΡΡΡ, ΡΠΎ ΠΌΠΎΠ»ΠΎΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ°ΡΠ΅Π½Π°. ΠΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π°Ρ Π²Π°ΡΠΈΠ»Π° ΡΠ΅ΡΡΡΡ, ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡ ΡΠ΅ΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ. ΠΡΠ±ΠΎΡ ΠΆΠ΅ΡΡΠ²Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ°ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, Π½ΠΎ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²Π·Π°ΠΈΠΎΠΌΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·, Ρ.ΠΊ. Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ»Π³ΠΎ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡ.
ΠΠ΅ΡΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΈΡΡΡ Π³ΡΠ°Ρ (Π³ΡΠ°Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, wait-for-graph), Π²Π΅ΡΡΠΈΠ½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π° ΡΠ΅Π±ΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Ρ Π²Π°ΡΠΈΠ²ΡΠΈΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅. Π‘ΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π°, Π΅ΡΠ»ΠΈ Π³ΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΠΎΡΡΡ. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΠ, Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°.
ΠΠ²ΡΡ ΡΠ°Π·Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° β ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΏΡΡΠ΅ΠΌ Π·Π°Ρ Π²Π°ΡΠ° Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅
ΠΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ. ΠΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΡΠ°Π·Ρ β Growing Phase ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ Π·Π°Ρ Π²Π°ΡΠΎΠ² ΠΈ Shrinking Phase ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°Ρ Π²Π°ΡΠΎΠ². ΠΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°Ρ Π²Π°ΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ΅ΡΡΡΡΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π±ΡΠ΄ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π° ΠΎΠ΄Π½ΠΈ ΡΠ΅ΡΡΡΡΡ.
ΠΠ²ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° Π²ΡΠ΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°Ρ ΠΠ
ΠΠ°ΠΆΠ΄Π°Ρ ΠΠ Π²Π½ΠΎΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π² Π»ΠΎΠ³ ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΡ ΠΠ (Voting Phase). ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ ΠΠ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΎΡΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΎΠ±ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π²ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΠ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ» ΠΠ, ΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡ ΠΎΡΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ (Completion Phase).
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ
ΠΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ
ΠΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° TS ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ti ΡΡΠ°ΡΡΠ΅ Tj, ΡΠΎ TS(Ti)TS(Tj).
ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ, Π΅ΠΉ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ Q Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ. W-TS(Q) β Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΡΠ°ΠΌΠΎΠΉ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²ΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡ Π½Π°Π΄ Q. R-TS(Q) β Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΡΠ°ΠΌΠΎΠΉ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²ΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡ ΡΡΠ΅Π½ΠΈΡ Π½Π°Π΄ Q.
ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Q Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΡΠ»ΠΈ TS(T) < W-TS(Q), ΡΠΎ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, ΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ TS(T) >= W-TS(Q), ΡΠΎ ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈ R-TS(Q) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ MAX(R-TS(Q), TS(T)).
ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Q Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΡΠ»ΠΈ TS(T) < R-TS(Q), ΡΠΎ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ ΠΈ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ TS(T) < W-TS(Q), ΡΠΎ Π΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈ W-TS(Q) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ TS(T).
ΠΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠ° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ , ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π² Π³ΡΠ°ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π΅Ρ ΡΠΈΠΊΠ»ΠΎΠ². ΠΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡ, Π° ΡΡΠ°Π·Ρ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΠ΅ ΠΎΡΠΊΠ°ΡΡ. ΠΡΠ»ΠΈ Ti ΠΎΡΠΊΠ°ΡΠΈΠ»Π°ΡΡ, Π° Tj ΠΏΡΠΎΡΠΈΡΠ°Π»Π° Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Ti, ΡΠΎ Tj ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Tj ΡΠΆΠ΅ Π±ΡΠ»Π° Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π°, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ.
ΠΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ ΠΎΡΠΊΠ°ΡΠΎΠ². Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.
Thomas write rule β Π²Π°ΡΠΈΠ°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΉ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Q. ΠΡΠ»ΠΈ TS(T)W-TS(Q), ΡΠΎ Π΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ T Π½Π΅ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°) β ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π’ΡΠ°Π½Π·Π°ΜΠΊΡΠΈΡ (Π°Π½Π³Π». transaction) β Π³ΡΡΠΏΠΏΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎΠ±Π»ΡΠ΄Π°Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΠ΄ΡΡΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π²ΠΎΠΎΠ±ΡΠ΅, ΠΈ ΡΠΎΠ³Π΄Π° ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π Π°Π·Π»ΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ (ΠΎΠ±ΡΡΠ½ΡΠ΅), ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅Π±ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, two-phase commit β Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ). Π’Π°ΠΊΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄-ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Ρ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 5 Π½Π° ΡΡΡΡ Π½ΠΎΠΌΠ΅Ρ 7 ΡΡΠΌΠΌΡ Π² 10 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- ΠΡΠΎΡΠ΅ΡΡΡ Π±Π°Π»Π°Π½Ρ Π½Π° ΡΡΠ΅ΡΡ Π½ΠΎΠΌΠ΅Ρ 5.
- Π£ΠΌΠ΅Π½ΡΡΠΈΡΡ Π±Π°Π»Π°Π½Ρ Π½Π° 10 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ Π±Π°Π»Π°Π½Ρ ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 5.
- ΠΡΠΎΡΠ΅ΡΡΡ Π±Π°Π»Π°Π½Ρ Π½Π° ΡΡΠ΅ΡΡ Π½ΠΎΠΌΠ΅Ρ 7.
- Π£Π²Π΅Π»ΠΈΡΠΈΡΡ Π±Π°Π»Π°Π½Ρ Π½Π° 10 Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ Π±Π°Π»Π°Π½Ρ ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 7.
ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Β«ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΌΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΡΠ°ΠΌΠΈΒ», ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΠΈ Π½Π΅ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π»Π΅Π³ΠΊΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠ° Π½ΠΎΠΌΠ΅Ρ 5 Π±Π΅Π· 10 Π΅Π΄ΠΈΠ½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΡΡΠ΅ΡΠ° Π½ΠΎΠΌΠ΅Ρ 7 ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ°ΡΡΡ: ACIDΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ACID (Atomicity, Consistency, Isolation, Durability). Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ACID Π±ΡΠ»ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ 1970-Ρ Π³ΠΎΠ΄ΠΎΠ² ΠΠΆΠΈΠΌΠΎΠΌ ΠΡΠ΅Π΅ΠΌ[1]. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠ»Π°Π±Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ[2].
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»Π°ΡΡ ΠΈΠ»Π»ΡΠ·ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, Π‘Π£ΠΠ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π£ΡΠΎΠ²Π½ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
- 0 β Π§ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄ΡΠ½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Π³ΡΡΠ·Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅) (Read Uncommitted, Dirty Read) β ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, Π½Π΅ Π±ΡΠ΄ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΡ ΠΎΡΠΊΠ°ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (lost changes), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π³ΡΡΠ·Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π½ΡΠΎΠΌΡ.
- 1 β Π§ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄ΡΠ½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Read Committed) β ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π³ΡΡΠ·Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π½ΡΠΎΠΌΡ.
- 2 β ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ (Repeatable Read, Snapshot) β ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΡΠ²ΠΎΠ΅ΠΉ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ. ΠΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π³ΡΡΠ·Π½ΠΎΠ΅ ΠΈ Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ°Π½ΡΠΎΠΌΡ.
- 3 β Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΉ (Serializable) β ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ.
Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΏΠ»Π°ΡΠΎΠΉΒ» Π·Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ.
Π Π‘Π£ΠΠ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΡΠ°Π·Ρ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΠ²Π΅Π½Ρ 1 (Read Committed). Π£ΡΠΎΠ²Π΅Π½Ρ 0 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . Π£ΡΠΎΠ²Π½ΠΈ 2 ΠΈ 3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ACID ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ΅ΡΠΏΠ΅ΡΡ Π½Π΅ΡΠ΄Π°ΡΡ: Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (timeout) ΠΈ Ρ. Π΄. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ΅ΡΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ Π‘Π£ΠΠ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, IBM DB2), ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ACID. ΠΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΡ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ½ΠΈΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ:
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ.
ΠΡΠΈ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π² Sybase ΠΈ MS SQL Server Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 2005, Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΆΡΡΠ½Π°Π», ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ β Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π‘Π£ΠΠ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π’Π΅Π½Π΅Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΠΊΠΎΠΏΠΈΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. Π₯ΠΎΡΡ ΡΠ΅Π½Π΅Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π»Π΅Π³ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ, ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ°Ρ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°[4].
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π±Π΅Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ (timestamp-based concurrency control) Π±ΡΠ»Π° ΡΠ°Π·Π²ΠΈΡΠ° ΠΈ ΠΏΡΠΈΠ²Π΅Π»Π° ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MVCC. ΠΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π½ΠΈ Π² ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΈ Π² ΡΠ΅Π½Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ . ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π² Oracle 7.Ρ ΠΈ Π²ΡΡΠ΅, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΡΠ°, Π½ΠΎ ΠΎΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΠΎΠ²Π΅Π΅ Π½Π°ΡΠ°Π»Π° ΡΡΠ΅Π½ΠΈΡ, Π΄Π°Π½Π½ΡΠ΅ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΊΠ°ΡΠ° (ΡΠΎ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Β«ΡΡΠ°ΡΠ°ΡΒ» Π²Π΅ΡΡΠΈΡ). ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π΄ΡΡΡΡ ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Β«ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΡΡΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΒ», ΠΎΠ½ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΡ . Π Π°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π³ΠΎΠ²:
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΠΏΠΈΡΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΡΠ°
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²ΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΡΠΊΠ°ΡΠ° (ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠΎΠΏΠΈΡ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ) Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΡΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π° Π·Π°ΠΏΠΈΡΡ, ΡΠΎ ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅ΡΠΊΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅. ΠΠ½Π°ΡΠΈΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΎΡΡ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
- ΠΡΠ»ΠΈ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅, ΡΠΎ ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ» ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, Π·Π΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ.
- ΠΡΠ»ΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ Π΅ΡΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΡΠ½Π½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΡΠΎ ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΊΠ°ΡΠ°.
Firebird Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΊΠ°ΡΠ°, Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ MVCC, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡ ΠΏΡΡΠΌΠΎ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ MS SQL 2005. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΡΠ΅Π½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Β«ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°Β», ΡΠΎ Π΅ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ ΠΈ ΡΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ .
- β Gray, Jim. The Transaction Concept: Virtues and Limitations. Proceedings of the 7th International Conference on Very Large Databases: pages 144β154, 1981 (Π°Π½Π³Π».)
- β Advanced Transaction Models and Architectures (Π°Π½Π³Π».)
- β Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ARIES ΠΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ 20 ΡΠ΅Π½ΡΡΠ±ΡΡ 2008 Π³ΠΎΠ΄Π°.
- β Gray, J., McJones, P., Blasgen, M., Lindsay, B., Lorie, R., Price, T., Putzolu, F., and Traiger, I. The recovery manager of the System R database manager. ACM Comput. Surv. 13, 2 (June 1981).
SQL β Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ | ΠΠ’ ΠΠ»ΠΎΠ³. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Linux (Ubuntu, Debian, CentOS, openSUSE)
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ, ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½Π°Ρ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π»ΠΈΠ±ΠΎ Π² ΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ°ΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ SQL Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π³ΡΡΠΏΠΏΠ°Ρ , ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°Π·ΡΠ²Π°ΡΡ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠΎΠΉ ACID.
- Atomicity β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΡΠΊΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΡΡΠΎΡ , ΠΈ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
- Consistency β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- Isolation β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
- Durability β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΡΡΡΠ΅ΠΊΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ.
- COMMIT β Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
- ROLLBACK β ΠΎΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
- SAVEPOINT β ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΡΠΊΠΈ Π²Π½ΡΡΡΠΈ Π³ΡΡΠΏΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ.
- SET TRANSACTION β ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΠΌΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ DML, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ β INSERT, UPDATE ΠΈ DELETE. ΠΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΈΡ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT
ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΌΠ°Π½Π΄Π° COMMIT ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ COMMIT ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COMMIT Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
COMMIT;
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΠΈΡ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΡΠ°ΡΡ = 34, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
SQL> DELETE FROM CUSTOMERS WHERE AGE = 34; SQL> COMMIT;
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½Ρ, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 6 | Dima | 32 | SP | 45000.00 | +----+----------+-----+-----------+----------+
ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK
ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΠΊΠ°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ commit ΠΈΠ»ΠΈ rollback.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ROLLBACK;
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΠΈΡ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΡΠ°ΡΡ = 34, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΠ°ΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
SQL> DELETE FROM CUSTOMERS WHERE AGE = 34; SQL> ROLLBACK;
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SELECT ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
ΠΠΎΠΌΠ°Π½Π΄Π° SAVEPOINT
SAVEPOINT ΡΡΠΎ ΡΠΎΡΠΊΠ° Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π±Π΅Π· ΠΎΡΠΊΠ°ΡΠ° Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SAVEPOINT ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
SAVEPOINT SAVEPOINT_NAME;
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ SAVEPOINT ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠΎΠΌΠ°Π½Π΄Π° ROLLBACK ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π³ΡΡΠΏΠΏΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΊΠ°ΡΠ° SAVEPOINT ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ROLLBACK TO SAVEPOINT_NAME;
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Customers. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ SAVEPOINT ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ SAVEPOINT Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
SQL> SAVEPOINT SP1; Savepoint created. SQL> DELETE FROM CUSTOMERS WHERE ID=1; 1 row deleted. SQL> SAVEPOINT SP2; Savepoint created. SQL> DELETE FROM CUSTOMERS WHERE ID=2; 1 row deleted. SQL> SAVEPOINT SP3; Savepoint created. SQL> DELETE FROM CUSTOMERS WHERE ID=3; 1 row deleted.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΊ SAVEPOINT, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ SP2. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ SP2 Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΉ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ:
SQL> ROLLBACK TO SP2; Rollback complete.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π»ΠΎ ΠΌΠ΅ΡΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠΊΠ°ΡΠΈΠ»ΠΈ ΠΊ SP2.
SQL> SELECT * FROM CUSTOMERS; +----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 45000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+ 6 rows selected.
ΠΠΎΠΌΠ°Π½Π΄Π° RELEASE SAVEPOINT
ΠΠΎΠΌΠ°Π½Π΄Π° RELEASE SAVEPOINT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ SAVEPOINT, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ RELEASE SAVEPOINT Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
RELEASE SAVEPOINT SAVEPOINT_NAME;
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ SAVEPOINT Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ SAVEPOINT.
ΠΠΎΠΌΠ°Π½Π΄Π° SET TRANSACTION
ΠΠΎΠΌΠ°Π½Π΄Π° SET TRANSACTION ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SET TRANSACTION Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
SET TRANSACTION [ READ WRITE | READ ONLY ];
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl+Enter.