일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자료구조
- char to int
- Spring MVC
- ubuntu
- Java
- 리눅스 사용권한
- git workflow
- O(log n)
- 코드스테이츠
- 함수형 인터페이스
- ubuntu passwd
- 배열 탐색
- git 설정
- AOP
- 스키마 설계
- REST HTTP API
- custom exception
- RestControllerAdvice
- 스키마 디자인
- N:N
- Spring 예외처리
- http 응답코드
- JAVA 재귀함수
- 탐욕 알고리즘
- root passwd
- file i/o
- ubuntu 패스워드
- Spring
- mapstruct
- set-version
Archives
- Today
- Total
개발소설
[DataBase] 트랜잭션 (transaction), ACID 본문
트랜잭션 (transaction)
- 여러 개의 작업을 하나로 묶은 실행 유닛
- 묶여있는 모든 작업들을 다 완료해야 정상적으로 종료
- 단 하나의 작업이라도 실패하면 트랙잭션에 속한 모든 작업을 실패한것으로 판단
- 모든 작업이 성공해야 트랙잭션이 성공
- 성공, 실패 두가지의 결과만 존재한다.
ACID
- 테이터베이스 트랜잭션의 성질
- 하나의 트랜잭션의 안정성을 보장하기 위해 필요
- Atomicity(원자성)
- Consitency(일관성)
- Isolation(격리성)
- Durability(지속성)
- 4가지로 구성 되어 있다.
Atomicity(원자성)
- 하나의 트랜잭션의 모든 작업들이 전부 성공하거나 전부 실패해야 한다.
- 부분적인 작업만 성공된다면 어떤 데이터는 입력되고 어떤 데이터는 입력되지 않는등 데이터가 오염 될 수 있다.
- 예를들면 회원정보에 전화번호는 입력되었는데 이름은 모른다던가, 돈을 송금했는데 송금자를 모른다던가 하는 일이 발생 할 수 있다.
- SQL에서 쿼리를 실행 했을때 한가지라도 실패하는 부분이 있다면 전부 실패하도록 되어있다.
Consitency(일관성)
- 데이터 베이스의 상태가 일관적이야 한다.
- 트랙잭션 실행후 데이터베이스의 상태는 이전과 같이 유효해야 한다.
- 데이터 베이스의 규칙이나 제약사항을 만족해야 한다.
- 예를들면 한 필드의 속성이 not null 이면, 해당 필드의 레코드를 삭제하거나, 해당 필드만 제외한 레코드를 입력하는 쿼리는 일관성을 위반한다.
Isolation(격리성)
- 모든 트랙잭션은 다른 트랙잭션으로부터 독립적이어야 한다.
- 동시에 여러개의 트랙잭션이 실행되면, 연속으로 실행된 것과 같은 결과를 가진다.
- 예를들면 계좌에 100만원이 있을때 하나의 트랙잭션은 60만원을 출금, 또 다른 트랙잭션은 50만원을 출금한다고 했을때 동시에 트랙잭션이 실행되더라도 결과는 -10만원이 아니라 60만원을 출금한뒤 50만원은 출금이 실패하는 상황이 되어야 한다. (연속적으로 실행된 결과가 발생해야 한다.)
- 두개의 트랙잭션은 같은 작업이 아닌 다른 작업(독립적) 이기 때문이다. - 작업간 격리되어 있다.
Durability(지속성)
- 트랙잭션이 성공하였다면, 해당 트랙잭션에 대한 로그가 남아야 한다.
- 시스템에러등이 발생하더라도, 해당 기록은 영구적이어야 한다.
- 예를 들면 돈을 송금했을때 송금에 성공했다면 그 이후에 은행에 어떠한 오류가 발생하더라도 송금한 내역은 남아있어야한다.
'CS > DataBase' 카테고리의 다른 글
[DataBase] 스키마(Schema) 설계 (0) | 2023.03.29 |
---|---|
[DataBase] NoSQL 그리고 SQL과 비교 (0) | 2023.03.29 |
[DataBase] SQL(Structured Query Language) (0) | 2023.03.28 |
Comments