[정보처리기사] DCL (Data Control Language, 데이터 제어어) | 정보처리사 실기 기출
1. DCL (Data Control Language, 데이터 제어어)
DCL은 데이터베이스의 보안, 무결성, 회복, 병행 수행 등을 정의하고 관리하는 데 사용되는 언어입니다. 주요 DCL 명령어와 그 기능은 다음과 같습니다:
2. 주요 DCL 명령어와 그 기능
📌 COMMIT
- 기능: 명령어에 의해 수행된 데이터 조작 작업의 결과를 실제 물리적 디스크에 저장합니다. 이 명령어는 데이터베이스 조작 작업이 정상적으로 완료되었음을 알리는 역할도 합니다.
- 설명: 데이터베이스에서의 변경 사항을 확정짓는 역할을 하며, 일단 COMMIT이 수행되면 그 이전의 작업을 되돌릴 수 없습니다. 이는 트랜잭션을 끝내는 중요한 작업입니다.
- ➡️ COMMIT은 모든 작업이 정상적으로 완료되었음을 보장하며, 트랜잭션의 원자성을 지원합니다. (모두 실행되었거나 실행되지 않았다는 보장)
📌 ROLLBACK
- 기능: 데이터베이스에서 트랜잭션이 비정상적으로 종료되었을 때, 변경된 데이터를 트랜잭션 시작 이전 상태로 되돌립니다.
- 설명: ROLLBACK은 오류 발생 시 데이터의 일관성을 유지하기 위해 사용됩니다. 아직 COMMIT되지 않은 변경 사항을 모두 취소하고, 데이터베이스를 이전 상태로 복구하여 트랜잭션의 원자성(Atomicity) 을 보장합니다.
- ➡️ ROLLBACK은 오류가 발생했을 때 모든 작업을 취소하고 이전 상태로 복구함으로써, 트랜잭션이 부분적으로 실행된 상태로 남지 않도록 보장합니다.(데이터베이스가 불완전한 상태로 남지 않게 하여 데이터의 원자성을 보장합니다.)
- SAVEPOINT와 CHECKPOINT :
- SAVEPOINT: 트랜잭션 중간에 복구 지점을 설정하여, 특정 SAVEPOINT까지 ROLLBACK이 가능합니다.
- CHECKPOINT: 데이터베이스 시스템에서 특정 시점까지 변경된 데이터를 디스크에 저장하여, 시스템 장애 발생 시 해당 지점부터 복구할 수 있도록 합니다.
📌 GRANT
- 기능: 특정 데이터베이스 사용자에게 사용 권한을 부여합니다.
- 설명: 사용자가 데이터베이스 객체(테이블, 뷰 등)에 대해 특정 작업(SELECT, INSERT, UPDATE, DELETE 등)을 수행할 수 있도록 권한을 부여합니다.
- 가본 형태
- 권한: 부여할 권한. 예) SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES
- 객체: 테이블, 뷰 등 데이터베이스 객체. 예) 테이블명, 뷰명
- 사용자: 권한을 받을 사용자 또는 역할. 예) 사용자명, PUBLIC (모든 사용자)
- WITH GRANT OPTION: 받은 권한을 다른 사용자에게 다시 부여할 수 있는 옵션.
GRANT 권한 [, 권한 ...]
ON 객체
TO 사용자 [, 사용자 ...]
[WITH GRANT OPTION];
📌 REVOKE
- 기능: 특정 데이터베이스 사용자의 사용 권한을 취소합니다.
- 설명: 이전에 GRANT 명령어로 부여된 권한을 회수하여, 사용자가 더 이상 특정 작업을 수행하지 못하도록 합니다.
- 기본형태
- 권한: 취소할 권한. 예) SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES
- 객체: 권한이 적용된 데이터베이스 객체.
- 사용자: 권한을 회수할 사용자 또는 역할.
REVOKE 권한 [, 권한 ...]
ON 객체
FROM 사용자 [, 사용자 ...];
3. 트랜잭션의 4가지 특징과 DCL 명령어
[ 참고 ]
[정보처리기사] 트랜잭션의 정의와 4가지 특징(ACID) | 2020년 정보처리기사 실기 기출문제
📌트랜잭션(Transaction) 정의트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 하나의 논리적 작업 단위를 구성하는 연산들의 집합을 의미합니다. 트랜잭션은 데이터베이스의 일관성을 유지하기
august-jhy.tistory.com
📌 원자성(Atomicity)과 ROLLBACK
- 원자성은 트랜잭션 내의 모든 작업이 완전히 수행되거나 전혀 수행되지 않는 성질을 의미합니다.
- ROLLBACK 명령어는 트랜잭션 처리 중 오류가 발생했을 때 변경된 데이터를 이전 상태로 되돌려, 부분적으로 실행된 상태가 남지 않도록 보장합니다.
📌 일관성(Consistency)과 COMMIT / ROLLBACK
- 트랜잭션이 시작되기 전과 종료된 후의 데이터 상태가 항상 일관성을 유지해야 함을 의미합니다.
- COMMIT을 실행하면 트랜잭션에서 수행한 모든 변경 사항이 확정되며, 데이터의 무결성이 보장됩니다.
- 반대로, 오류가 발생한 경우 ROLLBACK을 통해 변경 사항을 취소하여 잘못된 데이터가 저장되지 않도록 보호할 수 있습니다.
📌 Isolation (독립성, 격리성)
- 트랜잭션이 실행되는 동안 다른 트랜잭션의 영향을 받지 않아야 합니다.
📌지속성(Durability)과 COMMIT
- 트랜잭션이 성공적으로 완료된 후 그 결과는 데이터베이스에 영구적으로 저장되어야 합니다.
- COMMIT을 수행하면 트랜잭션이 완료된 후에도 시스템 장애가 발생해도 변경 사항이 유지됩니다.
🔎 무결성
- 무결성(Integrity)은 데이터의 정확성, 일관성, 신뢰성을 유지하는 성질을 의미합니다
- GRANT와 REVOKE 명령어는 데이터 접근을 제어하여 불필요한 데이터 변경을 방지하고, 데이터의 무결성을 유지하는 데 중요한 역할을 합니다. DCL 명령어를 적절히 활용하면 데이터베이스의 트랜잭션을 안전하게 관리할 수 있습니다.
2021 정보처리기사 실기 기출문제
2021 3회 정보처리기사 실기 기출문제
문제
데이터 제어어(DCL)의 하나인 GRANT의 기능에 대해 간략히 서술하시오
정답
- 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하는 데 사용하는 명령어이다.
- 사용자에게 접속권한, 생성권한 등을 부여하는 명령어
2020년 2회 정보처리기사 실기 기출문제
문제
SQL 제어어(DCL) 중 트랜잭션 Rollback 명령어에 대해 설명하시오.
정답
Rollback은 트랜잭션 처리 중 오류가 발생했을 때, 오류 이전의 특정 시점(SAVEPOINT, CHECKPOINT) 상태로 되돌려주는 제어어(명령문)입니다.
OR
데이터베이스 내의 연산이 비정상적으로 종료되거나 정상수행이 되었다 하더라도 수행되기 이전의 상태로 되돌리기 위한 명령이다.
해설
ROLLBACK은 데이터베이스에서 트랜잭션 처리 중 오류가 발생했을 때, 변경된 데이터를 이전 상태로 복구하는 SQL 제어어(DCL)입니다. 아직 COMMIT되지 않은 변경 사항을 모두 취소하며, SAVEPOINT를 설정한 경우 특정 지점까지만 되돌릴 수도 있습니다. 이를 통해 데이터의 일관성(Consistency) 과 원자성(Atomicity) 을 유지할 수 있으며, 트랜잭션이 부분적으로 적용된 상태로 남지 않도록 보장합니다. 예를 들어, 은행 계좌 이체 중 오류가 발생하면 출금된 금액을 되돌려 데이터 무결성을 유지하는 데 사용됩니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."