DB (Database)에서는 모든 작업을 SQL (Structured Query Language), 구조적 질의어를 이용해 처리하는데, 이 SQL은 다루는 객체나 용도에 따라 여러 종류로 나눌 수 있습니다.
오늘은 그 여러 가지 종류에 대해서 정리해 보려고 합니다.
1. DDL (Data Definition Language)
DDL은 데이터를 정의하는 언어를 의미하며, 데이터베이스에서 schema를 정의하거나 조작하기 위해서 사용하는 명령어들을 의미합니다.
CREATE (table 생성 및 정의), ALTER (테이블 구조 변경), DROP (테이블 및 칼럼 삭제), TRUNCATE (데이터 삭제) 등의 명령어가 DDL에 해당합니다.
2. DML (Data Manipulation Language)
DML은 데이터를 조작하는 언어를 뜻하며, 데이터베이스에서 데이터를 조작하기 위해 사용하는 명령어들을 의미합니다.
SELECT (조회), INSERT (추가), UPDATE (변경), DELETE (삭제) 등의 명령어가 DML에 해당합니다.
3. DCL (Data Control Language)
DCL은 데이터를 제어하는 언어로, 데이터를 관리 및 보안, 무결성, 회복 등을 정의하는 데 사용합니다.
GRANT (특정 작업에 대한 권한 부여), REVOKE (권한 박탈 및 회수) 등의 명령어가 DCL에 해당합니다.
4. TCL (Transaction Control Language)
마지막으로 TCL은 DCL과 유사하지만, data를 제어하는 것이 아닌 transaction을 제어하기 위해 사용합니다.
4 - 1. 트랜잭션 (Transaction)
여기서 transaction이란 밀접히 관련되어 분리할 수 없는 1개 이상의 DB를 조작하는 논리적 연산 단위를 의미합니다.
예를 들어 게시판에 글을 작성하는 작업을 예로 들면, 게시판에 글을 업로드 하기 위해서는 게시글 작성(insert) 및 작성된 게시들을 게시판에서 조회(select) 등의 작업을 수행해야 하고, 이렇게 select + insert 문의 수행을 합쳐 트랜잭션(transaction)이라는 하나의 작업 단위로 부릅니다.
TCL 명령어로는 COMMIT (올바르게 반영된 data를 DB에 반영), ROLLBACK (commit되지 않은 모든 transaction 수행 이전으로 되돌림) 등이 있습니다.
4 - 2. 트랜잭션의 특징
1. 원자성 (Atomicity): 트랜잭션에 정의된 연산들은 모두 성공적으로 실행되거나 전혀 실행되지 않아야 한다.
2. 일관성 (Consistency): 트랜잭션 실행 전 DB의 내용이 잘못되지 않으면, 실행 후에도 잘못되지 않아야 한다.
3. 고립성 (Isolation): 트랜잭션 실행 도중에는 다른 트랜잭션의 영향을 받으면 안된다.
4. 지속성 (Durability): 트랜잭션이 성공적으로 수행되면, DB의 내용은 영구적으로 저장된다.
References 😀
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=4&mod=list
https://gyoogle.dev/blog/computer-science/data-base/Transaction.html
'DB' 카테고리의 다른 글
[DB] dummy data 생성과 index를 이용한 성능 개선 공부하기 (0) | 2023.03.06 |
---|---|
DataBase Index 개념 정리하기 (0) | 2023.02.24 |
SELECT query가 실행되는 과정 (0) | 2023.02.21 |
트랜잭션(Transaction)의 특징(ACID)을 포함한 여러 가지 동시성 관련 개념 정리 (0) | 2023.02.11 |
댓글