CS/데이터베이스

Ch9. Transaction

Frankie 2020. 2. 2. 17:25

이번 마지막 챕터에서는 트랜잭션에 대해서 배웠다

트랜잭션은 DBMS에서 데이터를 다루는 논리적인 작업의 단위인데

하나의 트랜잭션은 여러 개의 오퍼레이션으로 구성되어 있고 그 오퍼레이션은 하나의 논리적인 작업의 단위가 된다

DBMS에서 트랜잭션을 정의하는 이유는 데이터베이스에서 데이터를 다루는 작업 중 장애가 발생할 때 데이터를 복구하는 작업의 단위로 사용하기 위해서다

트랜잭션은 전체 수행되거나 전체 수행되지 않아야 한다(all or nothing)

 

DBMS에는 동시성 제어와 회복이라는 기능이 있다

 

동시성 제어 - 동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향은 이들을 순차적으로 수행했을 때 데이터베이스에 미치는 영향과 동일해야 하는 것 -> 그래서 다수의 사용자가 데이터베이스에 동시에 접근할 수 있게 하며 데이터베이스의 일관성을 유지한다

 

회복 - 데이터베이스를 갱신하는 도중 시스템이 고장나도 데이터베이스의 일관성을 유지하도록 데이터베이스를 회복시켜 주는 기능

 

트랜잭션은 4가지 성질이 있는데

1. A - atomicity 원자성

2. C - consistency 일관성

3. I - isolation 고립성 - 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하면 안된다

4. D - durability 지속성 - 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 한다

 

트랜잭션은

이런 DBMS의 기능과 연관있다

 

동시성 제어의 방법에는

1.Lock-based protocols - 데이터 항목을 locking하는 개념은 동시에 수행되는 트랜잭션들의 동시성을 제어하기 위해 널리 사용되는 기법

2.Timestamp-based concurrency control

- Non-lock concurrency control

- 모든 트랜잭션이 시작할 때 타임스탬프를 가지는데 이 값은 고유하며 나중에 시작한 트랜잭션이 더 큰 타임스탬프를 가진다

- 두 개의 트랜잭션 내의 작업들이 충돌했을 때 해당 작업이 속해 있는 트랜잭션의 타임스탬프로 어떤 작업이 먼저 수행되야 하는지 알 수 있다

- 데이터베이스에 있는 데이터는 각각 read, write time stamp를 가진다

- RTS는 해당 데이터를 누군가 읽을 때마다 갱신

- WTS는 해당 데이터를 쓸 때마다 업데이트

 

이렇게 데이터베이스의 모든 강의가 끝났는데 정리하기 힘들었던 부분도 많았고 예시로 이해해야 되는 부분도 있어서 고난을 겪었지만 그래도 한 달 여 가량으로 공부가 마무리는 되서 다행이었다 사실 이 내용들은 2학기 때 배우는 과목에 있는 내용들인데 이번에 배운 것을 바탕으로 참조하며 2학기 때 잘 공부할 수 있을 것 같다 메모장으로 필기 받아 적고 피피티로 내용들 정리하며 그것을 바탕으로 또 블로그에 쓰는 방식으로 해봤는데 이 방식이 효율적인 것 까진 모르겠지만 그래도 이해하는데 도움이 되었던 것 같다. 다음부터는 조금 더 집중 시간을 늘려서 공부해야겠다고 느꼈다

 

26강 트랜잭션.pptx
0.32MB

'CS > 데이터베이스' 카테고리의 다른 글

MySQL과 MySQL2의 차이점  (0) 2021.07.03
Ch8. Indexing  (0) 2020.02.02
Ch7. Normalization  (0) 2020.02.02
Ch6. Entity-Relationship Model  (0) 2020.01.29
Ch5. Advanced SQL  (0) 2020.01.23