Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

데이터베이스의 트랜잭션 정의


트랜잭션은 데이터베이스에서 실행되는 일련의 명령으로 구성됩니다. 트랜잭션의 각 명령은 원자적입니다. 즉, 더 이상 하위 명령으로 분할할 수 없습니다. 트랜잭션의 모든 명령은 데이터베이스의 구조를 변경하거나 변경하지 않을 수 있습니다. 또한 트랜잭션에 필요한 변경은 함께 이루어져야 합니다. 이 규칙이 구현되지 않으면 시스템 장애, 전원 손실 또는 기타 이유로 데이터가 손실될 수 있습니다.

거래의 간단한 예는 다음과 같습니다 -

데이터베이스의 트랜잭션 정의

Harry는 자신의 계정에서 Sally의 계정으로 100루피를 이체해야 합니다. 이것은 트랜잭션으로 수행됩니다. 먼저 Harry의 계정 세부 정보를 읽고 그의 잔액이 100만큼 줄어듭니다. 이 새 데이터는 Harry의 계정에 다시 저장됩니다. 다음으로 Sally의 계정 세부 정보를 읽고 잔액이 100 증가합니다. 이 새 데이터는 Sally의 계정에 다시 저장됩니다.

그러나 데이터베이스에서 트랜잭션을 구현하는 것은 복잡합니다. 위의 예에서 Harry의 계정에서 돈이 인출된 후 시스템이 충돌하면 Sally의 계정에 추가되지 않습니다. 따라서 정보가 손실되고 Sally의 계정은 업데이트되지 않습니다.

거래 절차

트랜잭션은 일련의 읽기 및 쓰기 작업으로 구성됩니다. 이는 개체의 현재 값을 읽고 일부 계산 후에 얻은 업데이트된 값을 다시 쓰는 데 사용됩니다.

읽기 작업

데이터베이스 개체를 읽으려면 먼저 디스크에서 주 메모리로 가져와야 합니다. 그런 다음 해당 값이 필요한 변수에 복사됩니다.

데이터베이스의 트랜잭션 정의

쓰기 작업

데이터베이스 개체를 쓰기 위해 메모리의 값이 저장된 다음 디스크에 다시 저장됩니다.

데이터베이스의 트랜잭션 정의