SQL(2)

이승수·2021년 9월 25일
0

트랜잭션(Transaction)

통상적으로 정보의 교환이나 데이터베이스 갱신 등 일련의 작업들에 대한 연속처리단위
데이터베이스의 상태를 변화시키는 작업의 모음

ex) Transaction : A가 B에게 100만원을 입금합니다
A의 통장이 활성화 → A가 100만원 이상을 가지고 있는지 확인 →
A의 계좌에서 100만원 출금 → B의 통장이 활성화 되어 있는지 확인 →
B의 계좌에 100만원 입금
이중 하나라도 실행이 실패하면 100만원 입금은 실행되면 안된다

트랜잭션은 여러 개의 작업들을 하나의 실행 유닛으로 묶어준 것
각 트랜잭션은 하나의 특정 작업으로 시작을 해 모든 작업들을 다 완료해야 성공이다

Commit

트랜잭션은 확정신호를 알려줘야 데이터베이스에 반영된다
확정신호를 보내지 않으면 데이터베이스에 내용변화가 없다
이 확정신호가 commit (보통 auto-commit 기능이 켜져있음)

CREATE TABLE user (
	id varchar(10) PRIMARY KEY,
	name varchar(10)
);

INSERT INTO user VALUES ('AAA', 'user1');
INSERT INTO user VALUES ('BBB', 'user2');

COMMIT;

Rollback

commit과 반대되는 개념 – 앞으로 변경될 작업에 대한 내용을 취소한다는 개념

INSERT INTO user VALUES ('CCC', 'user3');
ROLLBACK;
INSERT INTO user VALUES ('DDD', 'user4');
COMMIT;

DDD만 입력된다

ACID

Atomicity / Consistency / Isolation / Durability
데이터베이스 내에서 일어나는 하나의 트랜잭션의 안정성을 보장하귀 위해 필요한 성질

  • Atomicity(원자성) : 하나의 트랜잭션을 구성하는 작업들은 전부 성공 or 실패

  • Consistentcy(일관성) : 데이터베이스 상태 일관성에 대한 성질. 하나의 트랜잭션 이후 데이터베이스 상태는 이전과 같이 유효해야 한다

  • Isolation(고립성) : 하나의 트랜잭션이 다른 트랜잭션과 독립되어야 한다

  • Durability(지속성) : 하나의 트랜잭션이 성공적으로 수행되었다면 해당 트랜잭션에 대한 로그가 남고 런타임 오류나 시스템 오류가 발생해도 해당 기록은 영구적이어야 한다는 뜻

profile
AI/Data Science

0개의 댓글