키보드워리어

[데이터베이스] 트랜잭션 본문

개발 관련/Database

[데이터베이스] 트랜잭션

꽉 쥔 주먹속에 안경닦이 2023. 8. 11. 17:42
728x90

안녕하세요 블로그 방문자 여러분, 반갑습니다. 오늘 트랜잭션에 대해 살펴볼게요.

DB 트랜잭션
DB 트랜잭션


트랜잭션이란?

트랜잭션(Transaction)은 데이터베이스에서 한 번에 실행되어야 하는 연속적인 작업의 논리적인 단위입니다. 트랜잭션을 사용하여 데이터를 추가할 때 자동 커밋(Auto Commit)을 꺼야 하는 이유는 데이터의 일관성과 안정성을 보장하기 위해서입니다.

자동 커밋이 활성화되어 있는 경우, 각각의 SQL 문이 실행될 때마다 즉시 변경된 내용이 데이터베이스에 반영되어 커밋됩니다. 하지만 여러 개의 SQL 문으로 이루어진 작업을 트랜잭션 없이 수행할 경우, 중간에 오류가 발생하거나 예상치 못한 결과가 발생할 경우 데이터의 무결성이 깨질 수 있습니다.

 

트랜잭션을 사용하여 데이터를 추가할 때 자동 커밋을 꺼야 하는 이유:

  • 일관성 유지: 여러 개의 SQL 문이 하나의 트랜잭션으로 묶여 실행될 때, 중간에 오류가 발생하더라도 모든 변경 내용이 롤백되어 데이터베이스의 일관성을 유지할 수 있습니다.
  • 데이터 무결성 보장: 트랜잭션을 사용하면 데이터베이스에 저장되는 데이터의 무결성을 보장할 수 있습니다. 트랜잭션이 성공적으로 완료되면 변경된 데이터가 커밋되고, 그렇지 않으면 롤백되어 이전 상태로 복구됩니다.
  • 병행성 제어: 트랜잭션을 사용하여 동시에 여러 개의 작업이 수행되는 경우, 데이터베이스의 동시성 문제를 해결하고 충돌을 방지할 수 있습니다.

자동 커밋을 끄는 방법은 데이터베이스 관리 시스템(DBMS)에 따라 다를 수 있습니다. 대부분의 DBMS에서는 트랜잭션을 시작하기 위해 명시적으로 BEGIN TRANSACTION 또는 START TRANSACTION을 사용하며, 트랜잭션을 커밋하려면 COMMIT 명령을 사용합니다. 롤백을 수행하려면 ROLLBACK 명령을 사용합니다.

 

예를 들어 [MySQL]에서 트랜잭션을 시작하고 커밋하는 방법은 다음과 같습니다:

START TRANSACTION;  -- 트랜잭션 시작
-- SQL 문 실행
COMMIT;             -- 트랜잭션 커밋

 


참고하시면 좋은 글

2023.08.10 - [개발 관련/Database] - [데이터베이스] 정규화 정리

 

[데이터베이스] 정규화 정리

안녕하세요 블로그 방문자 여러분, 반갑습니다. 데이터 베이스 정규화 정리 들어갑니다. 정규화란? 데이터베이스가 대충 만들어 졌다면 단계별로 정규화 시키는게 중요합니다. 정규화는 정처기

keyboardwarrior.tistory.com

2023.07.31 - [개발 관련/Database] - [데이터베이스] 인덱스란?

 

[데이터베이스] 인덱스란?

안녕하세요 블로그 방문자 여러분, 반갑습니다. 오늘은 DB - INDEX 인덱스에 대해 살펴봅니다. 1. 인덱스란? 인덱스는 정처기 3과목에서 다뤘던 내용이라 친숙하다. 테이블에 붙여진 색인이라 할 수

keyboardwarrior.tistory.com

2023.07.30 - [개발 관련/Database] - [databases] 서브쿼리

 

[databases] 서브쿼리

안녕하세요 블로그 방문자 여러분, 반갑습니다. 오늘은 databases - 서브쿼리를 포스팅하려고 합니다. 서브 쿼리 서브쿼리란? Select 명령에 의한 데이터 질의로, 상부가 아닌 하부의 부수적인 질의

keyboardwarrior.tistory.com

 

 

이상 부족한 컨텐츠 읽어주셔서 감사드립니다.

내용 피드백이 있는 경우 댓글 부탁드립니다!

다음 포스팅 때 뵙겠습니다! 감사합니다 🤗

728x90