본문 바로가기

Database4

[Transaction]Transaction Isolation in SQL 실제 SQL에서 commit, rollback 시작은 암묵적으로 진행되고 종료는 commit, rollback이 명시적으로 해야한다. database system에서 auto commit을 지원하여 commit을 암묵적으로 해준다. savepoint 지정해두면 abort 되었을때 이 지점으로 돌아가게 해준다. weak levels of consistency(consistency vs performance) 대략적인 값을 파악하고 싶을 때 consistency를 포기하고 performance를 선택할 수 있도록 지원이 된다. consistency level을 설정하여 이 수준을 조정한다. degree-two consistency s lock인 경우 바로 lock을 푸는 것이 2PL와 다른 점이다. 이렇게 .. 2020. 6. 1.
[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.
쿼리 처리 순서 Query 처리 순서는 다음과 같다. 1. from: 한 개 이상의 테이블을 이용하여 테이블을 만든다. -> 튜플을 하나씩 꺼낸다. ( from에서 alias한 것은 전체 범위에서 사용 가능) 2. where: 꺼내진 하나의 튜플을 기준으로 where 부분을 evaluate 한다. true일 경우 통과, false일 경우 누락 3. select: 테이블에서 보여질 원하는 칼럼만 지정한다. (이 때 칼럼을 alias 사용한 것은 이 시점부터 사용 가능) 4. group by: 5. having: 6. order by: 출력시 튜플을 정렬할 기준을 정한다.( select에서 선택한 칼럼 중 1개 이상이 옴) 7. limit : 출력할 튜플의 개수를 지정한다. (오프셋도 사용 가능) 2019. 10. 19.