데이터베이스

DATABASE STEP 29 - Transaction

2023. 3. 23. 13:54
728x90

★ 트랜잭션(Transaction)

  • 데이터를 조작하는 업무의 시간적 단위
  • 일련의 사건의 집합. ex) 은행에서 돈을 인출하는 행동(1~8번 행동)
  • 1개 이상의 명령어로 구성된 작업 단위
  • 트랜잭션 명령어
    • DCL, TCL
    • 1. commit : 현재 작업한 내용을 저장
    • 2. rollback : 현재 작업을 취소하고 되돌림
    • 3. savepoint : 현재 작업한 내용을 현재 지점까지 save 지정해놓음

 

■ 사용 ex)

  • ex 1)
commit; -- 이 시각부터 새로운 트랜잭션이 시작된다!! > insert, update, delete만 트랜잭션에 포함된다.

delete from tblTran where name = '박문수';

select * from tblTran; -- 메모리

-- 우리가 하는 모든 insert, update, delete는 데이터베이스에 적용되지 않는다.
--> 임시로 메모리에 적용된다. > 실제 DB에는 적용이 안된다.

commit; -- 현재 트랜잭션에 했던 모든 명령어를 있었던 일로 만들어라.
rollback; -- 현재 트랜잭션에 했던 모든 명령어를 없었던 일로 만들어라.
  • ex 2)
-- rollback 직후 > 이전 트랜잭션 완료 > 새로운 트랜잭션이 시작된다.
select * from tblTran;

delete from tblTran where name = '홍길동';
update tblTran set jikwi = '대리' where name = '이순신';

select * from tblTran; -- 임시 메모리 공간

commit; -- 현재 트랜잭션의 모든 작업을 실제 DB에 반영 > 현재 트랜잭션 완료 > 새로운 트랜잭션 시작
rollback;

select * from tblTran; -- 커밋 완료 후, 실제 DB

rollback; -- 이미 commit을 완료했기 때문에, rollback 불가능

select * from tblTran;
  • ex 3) DDL 명령어를 사용시, 자동으로 commit 되서 rollback이 불가능함
delete from tblTran where name = '이순신';

select * from tblTran;

-- 잠시 뒤에 commit or rollback ? > 보류


-- 테이블 or 시퀀스 만들어달라
create sequence seqTest; -- ddl 사용 동시에, 자동으로 commit 

rollback; -- 복구 불가능.. 

select * from tblTran;

 

★ 트랜잭션이 언제 시작하고? 언제 끝나는지?

  • 새로운 트랜잭션이 시작하는 경우
    • 1. commit 실행 직 후
    • 2. rollback 실행 직 후
    • 3. 클라이언트 접속 직 후(로그인)
  • 현재 트랜잭션이 종료되는 경우
    • 1. commit 실행 > 현재 트랜잭션을 DB에 반영함
    • 2. rollback 실행 > 현재 트랜잭션을 DB에 반영 안함
    • 3. 클라이언트 접속 종료 
              a. 정상 종료
                  - 현재 트랜잭션에 아직 반영 안된 명령이 남아있으면 사용자에게 질문?
              b. 비정상 종료
                  - rollback 처리
    • 4. DDL 실행
              a. create, alter, drop > 실행 > 그 즉시 commit 동반!!! > Auto Commit
                  - 위의 행동은 DB 구조 변경 > 데이터 영향 O > 사전에 미리 저장
728x90
저작자표시 비영리 변경금지 (새창열림)

'데이터베이스' 카테고리의 다른 글

DATABASE SEMI PROJECT - MOVIE RANK DATA  (0) 2023.03.24
DATABASE STEP 30 - Modeling  (0) 2023.03.23
DATABASE STEP 28 - Hierarchical  (0) 2023.03.23
DATABASE STEP 27 - WITH  (0) 2023.03.23
DATABASE STEP 26 - Rank  (0) 2023.03.23
'데이터베이스' 카테고리의 다른 글
  • DATABASE SEMI PROJECT - MOVIE RANK DATA
  • DATABASE STEP 30 - Modeling
  • DATABASE STEP 28 - Hierarchical
  • DATABASE STEP 27 - WITH
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • 데이터베이스
  • 정보보안전문가
  • ajax
  • DB
  • 프론트엔드
  • 백엔드
  • java
  • IT자격증
  • 정보처리기사필기
  • 코딩테스트
  • DBA
  • 웹개발
  • 웹개발자
  • 앱개발자
  • 자바
  • JavaScript
  • 개발블로그
  • 웹페이지
  • jquery
  • 정보처리기사
  • it
  • 알고리즘
  • html
  • jsp
  • React
  • 개발자
  • IT개발자
  • 백준
  • css
  • IT자격증공부

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
DATABASE STEP 29 - Transaction
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.