본문 바로가기

컴퓨터공학/데이터베이스(database)45

[Concurrency Control] Overview subtopic -lock-based protocols -multiple granularity locking -deadlock -insert and delete opertaions -transaction isolation in sql 2020. 5. 31.
[Transaction] Concurrency Control concurrency control은 두 가지 조건을 만족시켜야한다. 1. conflict or view serializable 2. recoverable and preferably cascadeless 현실적으로 스케줄을 수행하고 serializability를 체크하는 것은 오래 걸린다. 자동적으로 concurrency control을 할 수 있는 방법은 없을까? 답은 database system에 concurrency control protocol이 들어있다. protocol대로 처리하면 자동적으로 serializable 해지고 recoverable해진다. lock이나 multiversion, timestamp 을 사용하여 concurrency control을 보장하며 장단점이 존재한다. concur.. 2020. 5. 30.
[Transaction] Recoverability serializability를 확인하는 이유는 database의 consistency를 concurrent execution 하에서 보장하기 위함이었다. transaction 수행시 failure 발생할 때 회복 가능하도록 하는 것과 관련되어 살펴보겠다. RC database의 consistency를 위해서는 스케줄이 recoverable해야한다. recoverable schedule의 핵심은 commit의 순서를 규칙에 따라 조정하는 것이다. 규칙은 서로 다른 트랜잭션이 같은 데이터를 read와 write 하면 read하는 트랜잭션을 더 늦게 commit하는 것이다. 아래와 같이 처리하는 것이다. Tj Ti W(x) R(x) commit commit cascading rollback: 하나의 트랜잭션에.. 2020. 5. 30.
[Transaction] easy test Serializability Conflict Serializability 확인 방법 Precedence graph를 그려서 아이템에 대해서 edge를 그려서 cycle이 존재하는지 파악하면 된다. cycle이 없으면 conflict serializable precedence graph: direct graph, vertex is transaction, conflict 연산이 있으면 edge 연결 위 방법으로 확인하고 나서 어떤 serial schedule과 결과가 일치하는지 알 수 있을까? topological sorting을 통해 찾을 수 있다. 위와 같은 graph를 그렸다고 하면 T1은 T2,T3,T4보다 먼저 와야하고 T4는 T1,T2,T3보다 먼저와야 한다. T1-> T2 ->T3 ->T4 T1-> T3-> T2 ->T4 .. 2020. 5. 30.