백엔드/Database

트랜잭션 / 데이터 추가 사이트 | TIL_135

ran4 2022. 8. 17. 23:52

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을 하여 저장을 해야한다 

이러한 행위가 지속성에 해당한다

 

 

 


 

데이터베이스 모의 코드 추가하기

데이터베이스 실습을 하거나 데이터를 삽입해야 할 때 생성을 도와주는 사이트이다

 

https://mockaroo.com/

 

rows에서 필요한 행의 개수를 정할 수 있고, format을 눌러 타입을 바꿀 수 있다

ADD ANOTHER FIELD를 눌러 데이터를 추가할 수 있다

 

 

Type을 Sequence로 바꿔 생성할 수도 있다 

 

 

 

 

FieldName와 Type, Table Name 등의 설정을 필요에 맞게 바꾼 모습이다 

하단의 Download Data를 클릭하면 sql 파일이 생성된다(필요에 따라 json, xml 등의 파일 형식을 고를 수 있다)