PLOD

[DB]Transaction 본문

개발 공부/Database

[DB]Transaction

훌룽이 2022. 12. 11. 17:59

 

ACID 

1. Atomicity(원자성) : 트랜잭션의 작업들이 모두 수행되거나 전혀 수행되지 않아야 함. 일부만 수행된 상태가 되어서는 안됨

2. consistency (일관성) : 트랜잭션의 수행 이후에도 데이터는 항상 일관되고 무결성이 유지된 상태에 있어야 함

-> integrity 유지

3. Isolation(격리성, 고립성) : 각 트랜잭션은 다른 트랜잭션의 수행에 영향을 끼치지 않아야 함

-> serializability :  각 트랜잭션을 따로 수행한 결과와 동일하여야 함

4. Durability(내구성, 지속성)  한번 commit된 트랜잭션의 결과는 계속적으로 유지되어야 함 

 

 

Transaction Definition in SQL

commit을 호출하면 트랜잭션 종료

rollback을 호출하면 트랜잭션 취소, 원자성이 깨진 경우

autocommit mode 일때 SQL 문장 하나 단위로 Transaction

 

RAID(Redundant Array of Inexpensive Disks)

여러개의 디스크를 배열하여 속도 , 안정성, 효율성, 가용성 등의 증대를 위해 사용

 

1. RAID 0

모든 드라이브에 디스크 스트라이핑을 제공

데이터 중복성을 제공하지 않지만 최적의 성능을 제공

2. RAID 1 : 데이터 보호

mirroring mode를 통해 용량을 절반 으로 사용 하여 절반은 데이터 보관에 이용되고, 나머지 

절반은 사본복제에 사용

3. RAID 5 :  데이터 보호 및 속도

드라이브가 3개이상인 시스템의 경우 권장, 모든 드라이브에 걸쳐 데이터를 스트라이핑 함으로써 성능을 높임

각 드라이브의 일부를 내고장성에 할애하고 나머지 부분은 데이터 저장 공간으로 남겨둠으로써 데이터 보호 성을

을 최대화

 

4. RAID 10 : 높은 안정성 및 성능

RAID 0 + RAID 1 을 합한 능력과 같은 RAID  1 세그먼트를 스트라이핑하여 매우 높은 I/O 속도를 제공한다. 최대 성능 및

높은 내결함성이 중요한 업무에 사용하는 것이 좋음

 

* Isolation

 

 

 

* Isolation Level: Read Uncommitted

 

dirty Read  허용(commit 되지 않은 데이터 변경을 읽을 수 있음)

-> serializable 하지 않은 결과가 나올 수 있음.

 

트랜잭션이 동시에 실행되게 되면 Dirty read/ write Non-repeatable Read, Phantom Read 발생

 

Dirty Write

같은 데이터에 대해 동시에 두 개 이상의 트랜잭션이 값을 바꾸고자 할 때 발생되는 현상

 

Dirty Read

아직 종료(commit)되지 않은 트랜잭션의 쓰기 내용을 읽는 것으로 비정상적 상태의 데이터를 읽게 되는 현상

 

Non-repeatable Read

어떤 트랜잭션에서 동일한 데이터의 값을 매번 읽을 때 마다 틀려지는 현상

 

Phantom Read

기존 데이터는 동일한 데 새로 추가된 값에 의해 데이터 값이 변경되는 현상

'개발 공부 > Database' 카테고리의 다른 글

[SQL] SQL 함수  (0) 2023.02.05
[DB]Concurrency Control  (0) 2022.12.11
[DB] Query Optimization  (0) 2022.12.11
[DB] Query Processing + query cost  (0) 2022.10.30
[DB]실무 데이터 모델링 프로세스  (0) 2022.10.28
Comments