https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og
강의를 듣고 정리한 내용입니다
트랜잭션 처리
트랜잭션이란?
하나의 단위로 수행되길 바라는 쿼리의 묶음이다
단위 = 업무 수행 단위, 논리적인 수행 단위
예시
UPDATE TABLE SET PUB = 1 WHERE ID IN (2,4,6,7,9);
UPDATE TABLE SET PUT = 0 WHERE ID IN (1,3,5,8,10);
일괄 공개 여부를 나타내는 컬럼 PUB
PUB = 1 공개
PUB = 0 비공개
-> 위 쿼리의 경우 SQL 구문이 별개로 존재하지만, 내용상으로 서로 연관된 쿼리이기 때문에
일괄 공개라는 하나의 단위로 이루어진 트랜잭션이라고 할 수 있다
->2개 이상의 문장으로 이루어진 쿼리의 묶음
문제점
트랜잭션이 실행되다가 에러 발생시 수행단위가 반만 실행될 수 있다
-> 두 개가 완전히 실행되거나 중간에 오류 발생시 아예 롤백되어야 한다
-> 트랜잭선 처리를 해야한다
트랜잭션 처리을 위해 필요한 것
ACID를 유지하는 것이 중요하다
ACID
1. Atomicity : 원자성
깨지지 않는다. 두 개 이상의 쿼리가 하나로 묶여서 함께 처리되게 한다
2. Consistency : 일관성
데이터의 결함이 발생하지 않도록 일관성이 유지되어야 한다
-> 제약조건을 설정한다
3. Isolation : 고립성
여러 스레드 혹은 사용자에 의해 데이터가 사용될 때 한쪽에서는 저장을 하고 다른 쪽에서는 조회를 한다
이러한 작업이 처리될 때 다른 개입이 있으면 안되기 때문에 옵션을 주는 역할을 한다
4. Durability : 지속성
데이터를 변경할 때, 변경된 내용이 트랜지션이 끝난 후 저장을 위해 commit을 하여 저장을 해야한다
이러한 행위가 지속성에 해당한다
데이터베이스 모의 코드 추가하기
데이터베이스 실습을 하거나 데이터를 삽입해야 할 때 생성을 도와주는 사이트이다
rows에서 필요한 행의 개수를 정할 수 있고, format을 눌러 타입을 바꿀 수 있다
ADD ANOTHER FIELD를 눌러 데이터를 추가할 수 있다
Type을 Sequence로 바꿔 생성할 수도 있다
FieldName와 Type, Table Name 등의 설정을 필요에 맞게 바꾼 모습이다
하단의 Download Data를 클릭하면 sql 파일이 생성된다(필요에 따라 json, xml 등의 파일 형식을 고를 수 있다)
'백엔드 > Database' 카테고리의 다른 글
Jdbc(ojdbc) 사용자 인터페이스 | TIL_137 (0) | 2022.08.24 |
---|---|
Jdbc(ojdbc) crud 서비스 클래스 | TIL_136 (0) | 2022.08.19 |
Jdbc(ojdbc) 데이터 추가, 수정, 삭제 | TIL_134 (0) | 2022.08.15 |
Jdbc(ojdbc) 연결 | TIL_133 (0) | 2022.08.12 |
Jdbc(ojdbc) 초기 세팅 | TIL_132 (0) | 2022.08.10 |