본문 바로가기
DB

[DB] DDL, DML, DCL, TCL 이란??

by kkkdh 2022. 8. 24.
728x90

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 

 

SQL – DATA ON-AIR

 

dataonair.or.kr

https://gyoogle.dev/blog/computer-science/data-base/Transaction.html

 

DB 트랜잭션(Transaction) | 👨🏻‍💻 Tech Interview

DB 트랜잭션(Transaction) 트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 작업 단위 → 많은 SQL 명령문들

gyoogle.dev

 

728x90

댓글