Karpova_bazy_dannyh
.pdf
233







, 

, 







. 
















-






, 










, 
, 















, 











. 










, 























-






, 























.







-



(

-


). 




, 








-






. 



, 


















:







. 


, 






















-






, 


















, 









































,
-



















. 















-


, 

























. 











, 



























-











. 

















, 

















.


















, 
















-
.















:



































.




.
























, 










-
























, 





, 

-




















, 


















1, 







2, 




, 







2, a 






1.
























, 











,










(



), 









, 







, 



















(


), 











-









.

.

(

) 





















, 















-


.




,












, 


















-










. 















, 




















. 















-














. 









-

. 11.6. 








, 










, 
-
234 |
|
|
|
|
|
|
11. |
|
|
|
T1, |
2 |
. |
|
|
|
|
|
|
|
|
, |
|
|
, |
- |
|
|
|
|
|
|
|
, |
- |
(« |
|
») |
|
|
. |
|
|
|
. |
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
2 |
|
. |
|
- |
|
|
|
|
|
. |
|
|
|
A |
|
1 |
- |
1 |
- |
1 |
- |
B |
10.01. |
|
|
|
|
|
|
|
|
Update T1 |
|
|
|
|
|
|
|
|
10.03. |
|
A |
|
|
|
|
10.02. |
|
|
|
|
|
|
|
|
|
|
Select T2 |
|
|
|
|
|
B |
Update T1 |
|
|
|
|
|
A |
|
10.04. |
|
|
|
|
|
|
|
|
|
|
|
10.05. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Select T2 |
|
Update T1 |
|
|
|
|
|
|
|
|
10.06. |
|
|
|
|
|
|
|
|
Update T2 |
|
|
|
|
|
|
|
|
10.07. |
|
|
|
|
|
|
10.07. |
|
|
|
|
|
|
|
|
|
|
Commit |
|
|
|
|
|
|
|
|
|
|
B |
|
|
B |
|
10.08. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Commit |
|
. 11.6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
, |
|
. |
|
|
|
|
|
|
|
|
|
|
- |
. |
|
|
|
|
|
|
|
|
: |
|
|
|
, |
|
|
, |
|
, |
- |
. |
|
|
|
|
|
|
|
|
|
|
|
- |
. |
|
|
|
. |
|
|
|
|
. |
|
|
235
W-W 




2 









, 













- 


1,
R-W 




2 









, 














- 


1,
W-R 




2 








, 
















1.




































.




, 
























, 







. 




















, 






























, 
-










. 























-


, 











, 




















.






















11.7. 









-











, 
























,






.























. 










- 















, 














. 









, 



















.























, 










-

































.




































-


.
|
. |
( |
- |
): |
|
|
|
|
, |
, |
, |
S (Shared). |
|
|
- |
|
. |
, |
|
, |
|
|
|
|
, |
, |
|
|
, |
, |
, |
X (exclusive). |
|
|
|
|
|
|
, |
. |
, |
, |
- |
, |
|
. |
|
|
|
, |
- |
|
|
, |
- |
236 |
11. |



, 


, 


























-



. 
































-






. 11.7.
.11.7. |
|
|
|
|
|
|
|
|
, |
|
|
. 11.7 |
|
, |
|
|
- |
, |
|
|
|
|
|
. |
. 11. 8 |
|
|
|
|
|
|
1 |
2, |
|
|
. |
, |
|
, |
|
|
|
2 |
- |
|
1, |
|
|
|
|
|
|
- |
1. |
2 |
|
|
|
|
1, |
|
|
|
. |
|
|
|
|
|
|
|
A |
1 |
- |
1 |
- |
1 |
- |
|
B |
10.01. |
|
|
|
|
|
|
|
|
|
|
- |
|
- |
|
|
|
|
Update T1 |
|
A |
|
A |
|
|
10.02. |
|
|
|
|
|
|
|
|
|
|
10.03. |
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
B |
Update T1 |
|
Select F2 |
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
10.04. |
|
10.05. |
|
|
|
B |
|
|
Select T2 |
|
|
|
|
|
|
|
|
|
|
Update T1 |
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
10.05. |
|
|
10.06. |
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
Commit |
|
Update F2 |
|
|
|
|
|
|
|
|
10.07. |
|
|
|
- |
|
|
|
|
Commit |
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
A |
|
|
|
|
. 11.8. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
, |
|
|
|
|
|
|
. |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
( |
|
|
|
) |
. |
|
|
, |
|
. |
|
|
|
|
1, |
|
|
|
|
2 |
, |
- |
|
|
2, |
|
|
|
1. |
- |
, |
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
- |
2, |
|
|
|
|
|
|
- |
|
|
1 ( |
. |
. 11.9). |
|
|
|
|
A |
1 |
|
|
2 |
B |
|
10.01. |
|
|
|
- |
|
|
|
|
|
|
|
- |
10.02. |
|
|
Update T1 |
|
A |
|
Update T2 |
|
||
|
|
|
|
|
B |
|
|
10.03. |
|
|
|
|
|
|
|
|
|
|
|
|
|
10.04. |
|
Update T2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Update T1 |
|
|
|
. 11.9. |
|
|
|
|
|
|
|
|
|
|
. |
|
- |
|
|
|
|
|
. |
|
- |
|
|
|
|
|
. |
. |
- |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
( |
|
) |
|
|
|
|
. |
7 |
|
|
|
. |
|
. |
. |
|
- |
|
, |
|
|
|
|
. |
- |
|
|
|
|
, |
|
|
. |
|
|
. |
|
|
|
. 11.10. |
|
|
|
|
|
|
T1, T2 , |
12, |
- |
, |
, . |
|
|
|
|
|
|
|
|
, |
|
|
|
, |
|
. 11.1. |
|
|
|
|
|
|
|
238 |
11. |
|
11 .1. |
|
|
|
|
|
|
|
|
|
|
0 |
|
T1 |
Select A |
|
|
|
|
1 |
|
2 |
Select |
2 |
|
1 |
Select |
|
|
|
|
3 |
|
4 |
Select D |
|
|
|
|
4 |
|
5 |
Select A |
|
|
|
|
5 |
|
2 |
Select E |
|
|
|
|
6 |
|
2 |
Update E |
|
|
|
|
7 |
|
3 |
Select F |
|
|
|
|
8 |
|
2 |
Select F |
|
|
|
|
9 |
|
3 |
Update |
|
|
|
|
10 |
|
1 |
Commit |
|
|
|
|
11 |
|
6 |
Select A |
|
|
|
|
12 |
|
T 6 |
Commit |
|
|
|
|
13 |
|
6 |
Select |
|
|
|
|
14 |
|
6 |
Update |
|
|
|
|
15 |
|
7 |
Select G |
|
|
|
|
16 |
|
8 |
Select H |
17 |
|
9 |
Select G |
|
|
|
|
18 |
|
9 |
Update G |
|
|
|
|
239
19 |
8 |
Select E |
|
|
|
29 |
7 |
Commit |
|
|
|
21 |
9 |
Select H |
|
|
|
22 |
3 |
Select G |
|
|
|
23 |
1 |
Select A |
|
|
|
24 |
9 |
Update H |
|
|
|
25 |
6 |
Commit |
|
|
|
26 |
11 |
Select |
|
|
|
27 |
12 |
Select D |
|
|
|
28 |
T16 |
Select |
|
|
|
29 |
2 |
Update F |
|
|
|
30 |
11 |
Update |
|
|
|
31 |
12 |
Select A |
32 |
10 |
Update A |
|
|
|
33 |
12 |
Update D |
|
|
|
34 |
2 |
Select |
|
|
|
35 |
- |
- |
|
|
|
|
|
|
, S |
( |
- |
) |
, X |
( |
) |
. |
|
|
|
, |
9, |
8 2 |
- |
. |
|
|
|
|
- |
|
. |
3 |
|
|
- |
. |
|
|
|
|
|
- |
, |
, |
|
, |
|
|
|
|
|
. |
|
|
|
|
, |
|
|
|
. |
|
|
|
- |
|
, |
|
|
, |
- |
|
, |
. |
|
|
|
|
|
- |
|
, |
|
|
|
. |
, |
, |
- |
|
, |
|
|
|
. |
|
. |
. |
|
|
- |
|
|
. |
|
|
|
|
|
, |
|
|
- |
|
, |
|
, |
, |
- |
240 |
|
11. |
|
|
. |
, |
|
- |
, |
|
|
. |
|
- |
|
, |
|
. |
|
|
, |
, |
|
|
, |
. |
|



(





















) 





























.
|
, |
, |
, |
|
- |
, |
, |
- |
, |
|
- |
. ( |
|
|
, |
, |
- |
|
, |
|
|
). |
- |
, |
|
|
|
|
|
|
, |
|
|
|
- |
( |
|
|
|
). |
|
|
, |
|
, |
|
|
. |
|
|
, |
|
. |
, |
|
|
|
|
|









.



, 
































-







, 
















-









-



, 


























. 




































.



































, 
-















, 
















. 

































2PL(two phase lock) 
2
(two phase commit). 


































:





,





(







) 









.



SQL 

















, 











-
















. 

















: LOCK TABLE 
_


IN {SHARED | EXCUSIVE} M0DE.




















, 













- 















, 














-









. 






















.
, |
, |
- |
|
. |
- |
|
|
. |
241












, 




















-
. |
, |
, |












, 















. 

-

,























,




















.
. 









.





















, 





-




.
4 
















. 







-




,



SERIALIZABLE. 















































.



































-


REPEATABLE READ. 




















-



























, 










,











. 





























, 















. 











, 

















, 







-



, 








-







. 








-






, 














, 








-


, 

























.






, 





READ C0MMITED. 






























, 


























. 






-




, 



















, 





-










. 






























, 















. 







-

































-
|
|
|
. |
, |
, |
|
- |
|
, |
. |
READ |
UNCOMMITED. 
























































- 


. 





































.





SQL2 

























-







. 












:
242 |
11. |
SET TRANSACTION ISOLATION LEVEL [{SERIALISABLE|
REPEATABLE READ |
READ COMMITED |
READ Uncommitted}] [{READ WRITE |
READ ONLY}]























,




.
SERIALISABLE. 







READ Uncommitted, 










- 









, 





















READ WRITE. 

. 11.11 




















, 








, 





















-
.
|
- |
|
- |
- |
|
|
|
- |
- |
- |
- |
||
|
|
|
|
|
|
|
SERIALISABLE |
- |
|
- |
- |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
REPEATABLE |
- |
|
- |
- |
|
- |
READ |
|
|
|
|
|
|
|
|
|
|
|
|
|
READ |
- |
|
- |
- |
|
- |
COMMITED |
|
|
|
|
|
|
|
|
|
|
|
||
READ |
- |
|
- |
- |
|
- |
UNCOMMITED |
|
|
|
|
|
|
|
|
|
|
|
|
|

.11.11. 



























, 






.
, |
|
|
|
- |
, |
|
. |
|
|
, |
|
( |
, |
- |
|
|
), |
|
|
|
, |
, |
, |
- |
. |
, |
|
|
- |
, |
, |
|
( |
- |
). |
|
|
||
|
|
|
|
|
, |
|
|
|
- |
|
|
. |
|
- |
|
|
|
|
