Transaction Management and Concurrency Control
Goals
- To enusre correctness for concurrent execution of queries and updates from multiple users.
Topics
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2Fadd825c3-787c-4ab1-841a-a4cf40fa02d6%2Fimage.png)
Concurrent vs non-concurrent data access
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F75f8d210-b9a4-455d-ba83-3cf3e05b75ff%2Fimage.png)
Why Have Concurrent Processes?
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F580e7d73-a7e9-4236-94b1-968a81ef33c6%2Fimage.png)
Data access: R(A) and W(A)
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F6e933d26-eef1-4fcb-8071-a95bf7d283be%2Fimage.png)
Concurrency increases throughput
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F4df309fe-2d29-4a36-a4d7-eca18eb80833%2Fimage.png)
T1T2는 concurrency가 없었을 때 상황을 나타내는 표시이다.
Transactions (a single user)
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F61ba3810-7672-47ce-91ea-2c078fae1741%2Fimage.png)
Example of Transactions
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2Fbdb6a948-da55-4a5f-a89f-874beedb3a20%2Fimage.png)
결과는 다르지만 acceptable하다는 뜻이다. concurrent하게 스케줄을 실행해서 T1T2 또는 T2T1이 나와야한다.
Schedules (multiple users)
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2Ff018f114-b2ea-4b23-a671-8c1db913d2c2%2Fimage.png)
The ACID Properties of Schedules
![](https://velog.velcdn.com/images%2Finjoon2019%2Fpost%2F45d3e235-2ccd-4774-a350-66974e0c5fcb%2Fimage.png)