[SQL] 오라클 데이터베이스 공부 기록(5)-트랜잭션,DDL
my code archive
article thumbnail
반응형

 

트랜잭션이란?

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 : 데이터베이스 객체를 삭제하는 데 사용하는 명령어.

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형