티스토리 뷰

트랜잭션(Transaction)

  • def: 더 이상 분할할 수 없는 최소 수행 단위(All or Nothing)

  • 한 개 이상의 데이터 조작 명령어(DML)로 이루어진다. 어떤 기능 한 가지를 수행하는 sql문 덩어리이다.

  • 트랜잭션을 제어하기 위해 사용하는 명령어를 TCL(Transaction Control Language)이라고 한다. 트랜잭션은 TCL 명령어를 사용하는 시점에서 끝나며, 새로운 트랜잭션이 시작된다.

  • ROLLBACK

    롤백은 현재 트랜잭션에 포함된 데이터 조작 관련 명령어의 수행을 모두 취소한다.

  • COMMIT

    지금까지 수행한 트랜잭션 명령어를 데이터베이스에 영구히 반영할 때는 커밋한다. 영구히 반영되므로 매우 신중하게 커밋하여야 한다.

  • 롤백과 커밋 모두 사용하면 현재 트랜잭션이 끝나고 새 트랜잭션이 시작된다.

 

세션(Session)

  • def: 어떤 활동을 위한 시간이나 기간

  • 오라클 데이터베이스 세션은 데이터베이스 접속을 시작으로, 여러 작업을 수행한 후 접속 종료까지의 전체 기간을 의미한다.

  • 세션 내부에는 하나 이상의 트랜잭션이 존재한다.

  • 읽기 일관성

    • 일반적으로 데이터베이스는 여러 곳에서 동시에 접근하여 수많은 세션이 동시에 연결되어 있다. 이 때 특정 세션이 테이블 데이터를 변경 중일 때 그 외 다른 세션은 그 데이터 변경이 확정되기 전에(= 커밋되기 전에, 트랜잭션이 종료되기 전에) 그 내용을 알 필요가 없다. 이렇듯 읽기 일관성이란 데이터를 변경 중인 세션을 제외한 나머지 세션에서는 현재 진행 중인 변경과 무관한 본래 데이터를 보여주는 특성을 의미한다.
  • LOCK

    • 특정 세션에서 조작 중인 데이터는 트랜잭션이 완료(= 커밋, 롤백)되기 전까지는 다른 세션에서 조작할 수 없는 상태가 된다. 이 상태를 LOCK이라고 한다.

 

데이터 정의어(DDL)

  • 데이터 정의어는 객체 생성, 변경, 삭제 관련 기능을 수행한다.
  • 데이터 정의어는 데이터 조작어와 달리 바로 커밋되는 특성이 있으니 주의를 기울여야 한다.

  • 데이터 정의어에는 create, alter, drop, rename 등이 있다.

  • 예시

    -- CREATE 테이블 생성
    CREATE TABLE EMP_DDL_30 AS SELECT * FROM EMP WHERE DEPTNO = 30; --열구조 & 30번 부서인 데이터만 복사해서 생성 
    
    --ALTER: 열 추가 및 삭제 등 테이블 구조 변경
    ALTER TABLE EMP_ALTER ADD HP VARCHAR2(20); -- HP열 추가
    ALTER TABLE EMP_ALTER MODIFY EMPNO NUMBER(5) -- empno열의 열 길이 변경
    ALTER TABLE EMP_ALTER RENAME COLUMN HP TO TEL; -- 열이름 변경
    
    --DROP: 특정 열 또는 테이블 삭제
    ALTER TABLE EMP_ALTER DROP COLUMN TEL; -- tel이라는 열의 영구 삭제(ddl이므로 자동 커밋)
    DROP TABLE EMP_ALTER; -- 테이블 영구 삭제
    
    --RENAME: 테이블 이름 변경
    RENAME EMP_ALTER TO EMP_RENAME;
    

     

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함