기술나눔

MySQL 트랜잭션 사용량

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

특징

거래 ACID의 기본 속성:

데이터베이스 트랜잭션의 ACID 특성은 트랜잭션 작업을 수행할 때 데이터베이스의 신뢰성과 정확성을 보장하는 네 가지 기본 속성을 나타냅니다. ACID는원자성(원자성)、일관성(일관성),격리(격리),고집 (내구성) 약어. 다음은 각 기능에 대한 자세한 설명입니다.

원자성:

원자성은 트랜잭션이 완전히 실행되거나 전혀 실행되지 않음을 의미합니다. 트랜잭션 실행 중 오류나 실패가 발생하면 수행된 작업 중 일부가 롤백(실행 취소)되고 전체 트랜잭션은 전혀 발생하지 않은 것처럼 작동합니다.
예를 들어, 은행 이체에서는 이체의 두 단계(한 계좌에서 인출하고 다른 계좌에 돈을 입금하는 것)가 모두 성공하거나 둘 다 수행되지 않습니다. 돈만 차감되고 입금이 되지 않는 상황은 있을 수 없습니다.
일관성:

일관성은 트랜잭션 실행 전후에 데이터베이스가 항상 일관된 상태를 유지하도록 보장합니다. 데이터베이스는 트랜잭션의 시작과 끝에서 모든 비즈니스 규칙과 제약 조건을 충족해야 합니다.
예를 들어, 은행 송금의 경우 거래 전과 후에 계좌 총액이 동일하게 유지되어야 합니다. 한 계좌에서 금액이 인출되면 해당 금액이 다른 계좌에 추가되어 시스템 전체에서 총액이 일관되게 유지되어야 합니다.
격리:

격리는 여러 동시 트랜잭션의 실행이 서로 간섭하지 않도록 보장합니다. 각 트랜잭션은 다른 트랜잭션의 작업과 독립적으로 실행되어야 합니다. 트랜잭션 간의 격리 수준은 다양한 잠금 메커니즘이나 다중 버전 동시성 제어를 통해 달성할 수 있습니다.
예를 들어 두 개의 동시 은행 이체 트랜잭션에서 한 트랜잭션이 실행되는 동안 다른 트랜잭션은 커밋되지 않은 중간 상태를 볼 수 없습니다.
내구성:

내구성은 일단 트랜잭션이 커밋되면 그 결과가 데이터베이스에 영구적으로 저장되고 시스템이 실패하더라도(예: 정전 또는 충돌) 제출된 트랜잭션 결과가 손실되지 않음을 보장합니다.
예를 들어, 은행 이체의 경우 이체 거래가 성공적으로 제출되면 이후 시스템이 실패하더라도 이체 결과가 손실되지 않으며 계정 잔액 업데이트가 유지됩니다.
이러한 기능은 트랜잭션 처리 시 데이터베이스의 신뢰성과 일관성을 함께 보장하여 데이터의 무결성과 정확성을 보장합니다.

JDBC는 트랜잭션을 사용합니다.

데이터베이스를 여러 번 운영하도록 설계할 때 다음 SQL이 잘못되었습니다. 두 명령문은 실제로 동시에 성공적으로 실행되거나 실패해야 하지만 현재 프로그램은 내 요구 사항을 따르지 않습니다.

여기에 이미지 설명을 삽입하세요.

여기에 이미지 설명을 삽입하세요.

트랜잭션을 통해 일관성이 보장됩니다.
여기에 이미지 설명을 삽입하세요.