close
[IT 기술] 데이터베이스 - DDL, DML, DCL이란?
본문 바로가기
그럴듯한 정보

[IT 기술] 데이터베이스 - DDL, DML, DCL이란?

by SweetFist 2024. 3. 8.
반응형

안녕하세요, SweetFist 입니다.

 

데이터베이스, SQLD 등을 공부하시는 분들이라면 반드시 알아야 하는 기본적인 내용을 정리하였습니다.

 

바로 오늘은, 데이터베이스로부터 데이터를 처리하도록 하는 데이터 언어에 대해 알아보려고 합니다.


1. 데이터 언어란

- 사용자와 DBMS간의 통신 수단으로서 데이터베이스의 정의(DDL), 조작(DML), 제어(DCL)를 위한 언어입니다.

- 주로 SQL(Structured Query Language)이 가장 널리 알려진 데이터 언어이지만, 다양한 데이터베이스 시스템이 각각의 특성에 맞춰 고유한 데이터 언어를 제공하기도 합니다.

 

 

- DDL : 데이터베이스 객체의 생성, 변경, 삭제 => create, alter, drop, rename, truncate

- DML : 데이터의 실제적인 조작을 위한 언어 => select, insert, update, delete

- DCL : 데이터베이스 데이터의 제어 언어/데이터 보안, 무결성, 복구에 관한 정의 => grant, revoke, commit, rollback

 


 

2. 데이터 정의어(DDL, Data Definition Language)

- 데이터베이스를 정의하거나 수정할 목적으로 사용하는 언어입니다.

- create/alter/drop/rename/truncate

 

- 특징

  1) 데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는데 사용합니다.

  2) 논리적 데이터 구조를 정의(스키마, 외부 스키마 기술)

  3) 물리적 데이터 구조를 정의(내부 스키마 기술)

  4) 명령 실행 후 기본적으로 Auto Commit 처리를 합니다.

  5) 적용범위 : Database, Table, View, Index, Stored Procedure 등등


3. 데이터 조작어(DML, Data Manipulation Language)

- 사용자가 DBMS에게 원하는 Data를 처리하도록 명세하는 언어입니다.

- 사용자와 DBMS 사이의 통신 수단이며, 데이터 처리 연산의 집합입니다.

- select/insert/update/delete/merge

 

- 특징

  1) 사용자와 DBMS간 인터페이스를 제공합니다.

  2) 데이터 검색, 변경, 삽입, 삭제를 포함합니다.


4. 데이터 제어어(DCL, Data Control Language)

- 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어입니다.

- revoke/grant

 

- 명령 실행 후 기본적으로 Auto Commit 처리가 됩니다.

- 주요 특징

  1) 데이터 보안 - 불법적인 사용자로부터 데이터를 보호

  2) 무결성 - 데이터의 정확성 유지

  3) 회복 - 시스템 장애에 대비

  4) 병행수행제어 - 여러 사용자가 DB에 동시 접근 가능

 

- 예시

1) grant : 데이터베이스 관리자가 특정 사용자에 대해 특정 데이터베이스 객체(테이블, 뷰, 프로시저 등)에 대한 권한을 부여합니다.

ex) grant 권한 ON 객체 TO 사용자

2) revoke : 데이터베이스 관리자가 특정 사용자에게 부여된 권한을 취소합니다.

ex) revoke select ON employees FROM user1;


5. 트랜잭션 제어어(TCL, Transaction Control Language)

- 트랜잭션 단위의 데이터 베이스에서 발생한 작업을 명시적으로 저장, 삭제하는 명령어입니다.

 

- 특징

  1) 이전 커밋(COMMIT)이 일어난 뒤부터 다음의 커밋(COMMIT) 전까지의 작업이 하나의 트랜잭션으로 간주합니다.

  2) 트랜잭션 단위로 데이터 베이스에서 발생한 작업을 저장 및 삭제합니다.

  3) 명령 실행 시 트랜잭션 종료합니다.

 

- 예시

Commit - 현재까지의 조작된 데이터를 영구히 저장하고, 하나의 트랜잭션이 여기서 종료되고 새로운 트랜잭션이 발생하는 것을 의미합니다.

Rollback - 이전 트랜잭션(커밋)이 발생하고나서 지금 발생한 ROLLBACK 문 전까지의 작업을 취소하는 것을 의미합니다.

 


 

끝.