DML. DDL, DCL, TCL
구분 | 명령어 | 설명 |
DML(Data Manupulation Language) 데이터 조작어 |
SELECT | DB에 보관된 데이터 조회를 위한 명령어 |
INSERT DELETE UPDATE |
DB Table에 보관된 데이터를 변경(삽입,삭제,수정)하기 위한 명령어 | |
DDL(Data Definition Language) 데이터 정의어 |
CREATE ALTER DROP RENAME |
DB Table과 같은 데이터 구조를 정의(생성,변경,삭제,이름변경)하는 명령어 |
DCL(Data Control Language) 데이터 제어어 |
GRANT REVOKE |
DB에 대한 접근/사용 권한을 부여(GRANT)하거나 회수(REVOKE)하기 위한 명령어 |
TCL(Transaction Control Language) 트랜잭션 제어어 |
COMMIT ROLLBACK SAVEPOINT |
Transaction을 제어하는 명령어 |
Transaction
- DB의 상태를 변환시키기 위해 수행하는 작업의 최소 단위
- 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작(UPDATE, INSERT, DELETE, SELECT FOR UPDATE)
- 예를 들어 A가 B에게 1만원을 계좌이체해야 할 경우, 아래 2개의 작업이 모두 완료되어야 계좌이체가 성공함
- 1) A의 계좌 잔액에서 1만원을 빼고, 2) B의 계좌 잔액에 1만원을 더한다
- 둘 다 정상적으로 처리되면 데이터베이스에 변경된 내용 반영(커밋)
- 둘 중 하나라도 실패하면 모든 작업을 취소하여 원 상태로 되돌림(롤백)
COMMIT
트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영
ROLLBACK
트랜잭션이 수행한 작업을 취소하고 이전 상태로 되돌리는 것
SAVEPOINT
SAVEPOINT를 지정해두면 롤백 시 SAVEPOINT까지 트랜잭션 일부만 롤백 가능
※ 참고
http://wiki.gurubee.net/display/STUDY/4.TCL(TRANSACTION+CONTROL+LANGUAGE)
'Security & IT terms' 카테고리의 다른 글
[Day 88] Database Sharding (데이터베이스 샤딩) (0) | 2020.11.06 |
---|---|
[Day 34] Race Condition Attack (0) | 2020.09.13 |
[Day 25] SAC(Server Access Control or System Access Control) (0) | 2020.09.04 |
[Day 24] 위험관리, 위험 대응 전략 (0) | 2020.09.03 |
[Day 23] HTTP, HTTPS, SSL (0) | 2020.09.02 |