자격증/SQLD

[SQLD 자격증] 2과목 | TCL(ROLLBACK, SAVEPOINT, COMMIT)

seminj 2023. 2. 13. 17:19
728x90
반응형

관계형 데이터베이스

 

권한 받기 데이터 구조 정의 데이터 변형 데이터 조회
DCL
(Data Control Language)
DDL
(Data Definition Language)
DML
(Data Manipulation Language)
GRANT : 권한 부여 CREATE : 구조 생성 INSERT : 데이터 입력 SELECT : 조회
REVOKE : 권한 회수 ALTER : 구조 변경 UPDATE : 데이터 수정  
  DROP : 구조 삭제 DELETE : 데이터 삭제   
  RENAME : 이름 변경    
  TRUNCATE : 테이블 초기화    

 

TCL (Transaction Control Language)

  • TCL : 트랜젝션을 제어하기 위한 언어
    *트랜젝션: 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
    DDL을 거쳐 DML을 통한 정보를 데이터베이스에서 조회를 할때 다음에도 확인 할 수 있도록 하는 것
    • COMMIT : 반영
    • ROLLBACK : 취소
    • SAVEPOINT : 위치지정

TCL 명령어  
COMMIT 데이터에 대한 변화를 DB에 반영하기 위한 명령어
SAVEPOINT 코드를 분할하기 위한 저장 포인트 지정
ROLLBACK 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어
최신 COMMIT이나 특수한 SAVEPOINT로 되돌릴 수 있는 명령어 

 

문제

 

 

정답 

250

CREATE TABLE T1(	-- 테이블 T1 생성
	col1 varchar2(10)	-- col1, col2 생성
    col2 number(10)
);

INSERT INTO T1 VALUES(10, 100);	-- col1, col2 컬럼에 각각 값을 넣어줌
INSERT INTO T1 VALUES(20, 200); -- col1, col2 컬럼에 각각 값을 넣어줌
INSERT INTO T1 VALUES(25, 250); -- col1, col2 컬럼에 각각 값을 넣어줌
SAVEPOINT S1; -- S1 임시저장

DELETE T1 WHERE col1 = 10; 
UPDATE T1 SET col1 = 40 WHERE col2 = 200; 
SAVEPOINT S1; -- S1 임시저장
-- col1 - 40, 30
-- col2 - 200, 250

INSERT INTO T1 VALUES(50, 500); 
-- col1 - 40, 30, 50
-- col2 - 200, 250, 500

ROLLBACK TO SAVEPOINT S1; -- SAVEPOINT S1으로 돌아가라, BUT, S1이 두개일경우 가장 최신것으로 가면 됨
-- col1 - 40, 30
-- col2 - 200, 250

SELECT MAX(col2) FROM T1; -- col2에서 MAX가장 큰값 찾아줘

 

문제

 

정답

10, 50, 30

INSERT INTO T2 VALUES(10);
INSERT INTO T2 VALUES(20);
INSERT INTO T2 VALUES(30);
SAVEPOINT S1;
-- col1 - 10, 20, 30 ; 임시저장 S1

UPDATE T2 SET col1 = 50 WHERE col1 = 20;
SAVEPOINT S2;
-- col1 - 10, 50, 30 ; 임시저장 S2

DELETE T2 WHERE col1 = 30;
SAVEPOINT S3;
-- col1 - 10, 50 ; 임시저장 S3

INSERT INTO T2 VALUES(70);
-- col1 - 10, 50, 70

ROLLBACK S2;
-- col1 - 10, 50, 30 ; 임시저장 S2

COMMIT;
  • DML은 자동 commit (반영) 되지 않음
  • ROLLBACK, DROP 은 되돌릴 수 없다던 말
    = [SQL Server] 기준 DDL = auto-commit 이 됨

 

  • COMMIT 과 ROLLBACK 효과
    1. 데이터 무결성을 보장할 수 있다.
    2. 영구적인 변경 전 데이터에 대한 변동사항을 확인 할 수 있다.
    3. 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다. 

 

문제

 

정답

10, 20, 30

INSERT INTO T2 VALUES(10);
INSERT INTO T2 VALUES(20);
INSERT INTO T2 VALUES(30);
COMMIT;
-- T2 col1 - 10, 20, 30

UPDATE T2 SET col1 = 50 WHERE col1 = 20;
DELETE T2 WHERE col1 = 30;
INSERT INTO T2 VALUES(70);
ROLLBACK;
COMMIT;
  • ROLLBACK : SAVEPOINT가 없을 경우 가장 최신의 COMMIT 상태로 복원된다. 

 

문제

 

정답

2, 5, 7

  • DCL - GRANT(권한 부여), REVOKE(권한 회수)
  • DDL - CREATE(구조 생성), ALTER(구조 변경), DROP(구조 삭제), RENAME(이름 변경), TRUNCATE(테이블 초기화)
  • DML - INSERT(데이터 입력), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 조회)
  • TCL - COMMIT(반영), ROLLBACK(취소), SAVEPOINT(위치지정)

 

문제

 

정답

2

  1. 트랜잭션이 실행되는 동안 다른 트랜잭션에 영향을 받아 잘못된 결과를 만들어선 안된다. : 고립성
  2. all or nothing. 트랜잭션에서 정의된 연산은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 있어야한다.  : 원자성
  3. 트랜잭션이 성공적으로 완료되면 해당 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다. : 지속성
  4. 트랜잭션 발생 전 데이터베이스 내용에 잘못된 점이 없다면 트랜잭션 수행 후에도 데이터베이스의 내용에 잘못이 있으면 안된다. : 일관성

 


 

SQLD 목차 바로가기

SQLD 과목 목차 링크
1과목 
데이터 모델링의 이해

(10문항 출제)
데이터 모델링의 이해 데이터모델링의 이해, 엔터티, 속성
관계, 식별자
데이터 모델과 성능 성능 데이터 모델링, 정규화, 반정규화 설명 & 문제풀이
SQLD 2과목
SQL 기본및 활용

(40문항 출제)
SQL 기본 관계형 데이터베이스 개요 및 DCL(GRANT, REVOKE) 설명 & 문제풀이
DDL(CREAT, ALTER, DROP, RENAME, TRUNCATE) 설명 & 문제풀이
DML(INSERT, UPDATE, DELETE) 설명 & 문제풀이
TCL(ROLLBACK, SAVEPOINT, COMMIT) 설명 & 문제풀이
DML(SLELECT) 기본구조 설명 & 문제풀이
DML(SELECT) 함수(문자형, 숫자형, 날짜형, 형변환) 설명 & 문제풀이
DML(SELECT) DECODE, CASE WHEN, ORDER BY 설명 & 문제풀이
WHERE 절 연산자, 문자열 연산자, 임시테이블, VIEW 설명 & 문제풀이
NULL 함수, GROUP BY, HAVING, ROWNUM & ROWID 설명 & 문제풀이
SQL 활용 GROUP 함수 설명 & 문제풀이
JOIN, UNION, MINUS, 서브쿼리 설명 & 문제풀이
계층형 조회 설명 & 문제풀이
WINDOW 함수 전체 설명 & 문제풀이
SQL 최적화 기본원리 테이블 파티션, 옵티마이저, 인덱스 설명 & 문제풀이
옵티마이저 JOIN, PL-SQL, 분산 데이터베이스 설명 & 문제풀이

 

🧑‍💻지금 바로 수강신청해서 한 번에 합격하기👩‍💻
▶ 해당 영상은 10개월만에 8만명이 시청하신 "유튜브 SQLD 자격증 대표 인기강의" 입니다.
▶ 메타코드 유튜브 바로가기

※ 본 포스팅은 해당제품을 제공받아 직접 사용 후 작성되었습니다. 

728x90
반응형
댓글수0