트랜잭션이란?
A계좌 -> B계좌로 100만원을 이체하려면
A계좌에서 -100(UPDATE -100 WHERE A계좌),
B계좌에서 +100(UPDATE -+100 WHERE B계좌)이 함께 이루어져야 한다.
만약 A계좌에서 -100만 이루어지고 B계좌에 +100이 이루어지지 않으면 돈은 증발.
->계좌 이체라는 행위는 위에 두 UPDATE문이 완전히 실행되어야 완료되는 작업 단위이다.
트랜잭션이란 더 이상 분할할 수 없는 최수 수행 단위를 뜻하며
계좌 이체와 같이 하나의 작업 OR 밀첩하게 연관된 작업을 수행하기 위해
한 개 이상의 데이터 조작 명령어(DML)로 이루어진다.
ALL OR NOTHING 문장으로 설명하기도 한다.
트랜잭션을 제어하기 위해 사용하는 명령어를 TCL(Transaction Control Language)이라고 한다.
트랜잭션 제어 명령어
1.ROLLBACK
:현재 트랜잭션 종료와 동시에 지금까지 변경 사항을 취소
2.COMMINT
:현재 트랜잭션 종료와 동시에 지금까지 변경 사항을 영구 저장.
세션
세션(session)은 데이터베이스 접속을 시작으로 여러 데이터베이스에서 관련 작업을
수행한 후 접속을 종료하기까지 전체 기간을 의미한다.
ex)게임에 로그인해서 로그아웃할 때까지의 기간, 게임을 켜고 끌 때까지의 기간
세션은 트랜잭션보다 큰 범위의 개념이다!!
읽기 일관성
읽기 일관성이란 어떤 세션에서 테이블의 데이터를 변경 중일 때 그 외 다른 세션에서는 데이터의 변경이
확정되기 전까지(커밋) 데이터를 변경중인 세선을 제외한 나머지 세션에서는
현재 진행 중인 변경과 무관한 본래 데이터를 보여주는 특성을 의미한다.
ex)블로그 글 수정 중일 때 다른 사람이 내 블로그 들어오면 수정하기 전 내용만 볼 수 있다.
LOCK
특정 세션에서 조작(변경) 중인 데이터는 트랜잭션이 완료(커밋, 롤백)되기 전까지 다른 세션에서
조작할 수 없는 상태가 된다. -> 데이터가 잠긴다.(LOCK)
->LOCK은 조작 중인 데이터를 다른 세션은 조작할 수 없도록 접근을 보류시키는 것을 뜻한다.
특정 세션에서 데이터 조작이 완료될 때까지 다른 세션에서 데이터 조작을 기다리는 현상은
행(HANG)이라고 한다.
데이터 정의어(DDL : Data Definition Language)
데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체(object)의
생성, 변경, 삭제 관련 기능을 수행한다.
★★★★★★면접에서 자주 물어보는
DDL vs DML 차이점★★★★★(자바에서는 오버로딩 vs 오버라이딩)
-DML : insert, update, delete / 존재하는 테이블에 데이터를 집어넣거나 바꾸거나 삭제.
-DDL : create, alter, drop / 테이블(과 같은 객체) 자체를 새로 생성하거나 바꾸거나 삭제.
create :오라클 데이터베이스 객체(테이블)를 생성하는 데 사용하는 명령어.
alter : 이미 생성된 오라클 데이터베이스 객체를 변경할 때 사용하는 명령어.
drop : 데이터베이스 객체를 삭제하는 데 사용하는 명령어.
'📒 education archive > 💾DB' 카테고리의 다른 글
[국비학원 기록/DB] 데이터베이스 개념, DBMS, 관계형 데이터 모델 (0) | 2021.11.10 |
---|---|
[SQL] 오라클 데이터베이스 공부 기록(6)-인덱스,뷰,시퀀스 (0) | 2021.08.13 |
[SQL] 오라클 데이터베이스 공부 기록(4)-서브쿼리 (0) | 2021.08.13 |
[SQL] 오라클 데이터베이스 공부 기록(3)-조인 (0) | 2021.08.13 |
[SQL] 오라클 데이터베이스 공부 기록(2) - 함수 (0) | 2021.08.13 |