💫작성자 및 원본 글💫
목차
1. Transaction
database의 데이터를 조작하는 작업의 단위
사용자는 트랜잭션을 통해 데이터베이스에 안정성과 신뢰성을 얻을 수 있다.
명령을(연산) 끝 마칠 때까지 수행 내역을 로그에 저장 (redo, udno log)
❗ ACID
Atomicity(원자성**)** : 트랜잭션의 연산은 데이터 베이스에 모두 반영되던지 둘 중 하나이다.
Rollback : 1~4번까지 작업이 있는데 수행 중에3번이 실패했다면 1,2번을 없던 일로 되돌려야 한다.
Commit : 1~4번까지 작업이 있을 때 모두 성공적으로 완료되면 수정된 내용을 DB에 반영
Consistency(일관성) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 DB상태로 변환된다. 트리거를 통해 일괄 적으로 모든 DB에 적용
Trigger : 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용된다.
Isolation(격리성) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른트랜잭션의 연산이 끼어들 수 없다.
Durability(지속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도**.** Redo, undo 연산을 통해 데이터베이스를 복구 시킴
Redo(재실행) log: 가장 최근에 저장한 DB 복사본을 가져온 후 로그를 DB에 재반영
Undo(취소) log : 수행을 실패해 이전의 상태로 되돌린다.
2. Transaction Isolation Level
한 트랜잭션이 다른 트랜잭션에서 변경한 데이터를 볼 수 있도록 해줄지 말지를 결정하는 것.
격리 수준은 왜 생겼을까?
1. Dirty Read ((오손 데이터 읽기)
한 트랜잭션(T1)이 데이터 A에 접근해서 B로 변경했는데 커밋을 하지 않았다. T2가 A에 접근하면 B라는 결과를 받는다 T1이 커밋을 하지 않고 종료하게 된다면 T2가 가진 데이터가 꼬이는 문제가 발생한다.
2. Non-Repeatable Read (반복 불가능 데이터 읽기)
T1이 데이터를 ReadRead 하고 있다 이때 T2가 데이터에 접근해서 삭제(변경)하고 커밋을 진행할 경우 T1은 다시 데이터를 Read할 때 사라진 데이터를 찾게 된다.
3. Phantom Read (유령 데이터)
T1이 조건을 걸어 데이터를 검색해서 결과를 얻었는데 T2가 접근해 해당 조건의 데이터 일부를 삭제 추가 연산을 했을 때 ,, 아직 끝나지 않은 T1이 다시 한번 해당 조건으로 데이터를 조회하면 변경된 데이터가 누락된다. 없던 일처럼 rollback을 진행하면 데이터가 꼬이는 문제가 생김.
- Level 별 정리
LEVEL 1 Read Uncommitted
한 트랜잭션에서 커밋하지 않은 데이터에 다른 트랜잭션이 접근 가능하다.
즉, 커밋하지 않은 데이터를 읽을 수 있다.
모든 문제점이 발생할 수 있지만 동시 처리 성능이 가장 높다.
발생 문제점 : Dirty Read, Non-Repeatable Read, Phantom Read
LEVEL 2 Read Committed
커밋이 완료된 데이터만 읽을 수 있다.
Read Uncommitted 수준보다 동시 처리 성능은 떨어진다. 데이베이스들은 보통 Read Committed를 디폴트 수준으로 지정한다.
발생 문제점 : Non-Repeatable Read, Phantom Read
LEVEL 3 Repeatable Read
트랜잭션 내에서 한번 조회한 데이터를 반복해서 조회해도 같은 데이터가 조회
발생 문제점 : Phantom Read
LEVEL 4 Serializable
가장 엄격한 격리 수준
모든 문제점을 해결 가능하지만 그 대신 동시 처리 성능은 급격히 떨어질 수 있다.
'SSAFY TechTalk Study' 카테고리의 다른 글
Day13 : HTTP Keep Alive (0) | 2021.09.10 |
---|---|
Day 12 : UI와 UX (0) | 2021.09.05 |
Day10 : OSI 7 layer (0) | 2021.08.26 |
Day9 : 리액트를 왜 사용하는 것인가? (0) | 2021.08.24 |
Day8 : 의존성 주입(Dependency Injection) (0) | 2021.08.20 |