[정보처리기사 실기] redo와 undo +은행거래예시
안녕하세요 에이블러 여러분~~!!!
지난 게시물에서 트랜잭션의 개념을 은행거래 예시를 통해 소개해드렸는데요
오늘은 추가적으로 redo와 undo도 은행거래예시로 설명해드리겠습니당~
▼ 이전 게시물 ▼
2024.04.14 - [KT에이블스쿨 5기/정보처리기사] - [정보처리기사 실기] 트랜잭션(Transaction)의 4가지 특성과 5가지 논리적상태 +은행예시
redo와 undo는 데이터베이스 관리 시스템(DBMS)에서 트랜잭션(Transaction) 관리를 위해 사용되는 개념입니다.
Undo (되돌리기)
Undo는 트랜잭션에서 이전 상태로 되돌아가는 기능을 제공합니다. 트랜잭션 실행 중에 오류가 발생하거나 사용자가 롤백을 요청했을 때, 데이터베이스는 undo 로그를 사용하여 트랜잭션을 이전 상태로 복구합니다. 이전 상태로 복구되는 과정에서 트랜잭션의 변경 사항이 취소되고, 데이터베이스는 트랜잭션이 시작되기 전의 상태로 복원됩니다.
Undo는 트랜잭션의 롤백을 지원하는 데 사용됩니다. 롤백은 트랜잭션을 취소하고 이전 상태로 되돌리는 작업을 수행하는 것입니다. 이를 통해 데이터베이스는 일관된 상태를 유지하고, 오류 발생 시 데이터의 무결성을 보장할 수 있습니다.
되돌리기는 잘못된 거래를 취소하거나 변경된 상태를 이전 상태로 복구하는 데 사용됩니다. 예를 들어, 고객이 잘못된 금액으로 입금을 요청했을 때 이를 취소하는 상황을 살펴보겠습니다.
1. 고객이 잘못된 금액으로 입금을 요청합니다.
2. 은행 시스템은 입금 거래를 처리하고, 이를 로그에 기록합니다.
3. 그러나 고객이 실수를 인지하고 입금을 취소하려고 할 수 있습니다.
4.은행은 undo 로그를 사용하여 이전에 기록된 입금 거래를 취소하고, 해당 금액을 고객의 계좌로 다시 돌려줍니다.
5. 이를 통해 잘못된 거래가 취소되고, 고객의 계좌 상태가 이전 상태로 복구됩니다.
Redo (다시 실행하기)
Redo는 데이터베이스의 지속성을 보장하기 위해 사용됩니다. 트랜잭션이 커밋되면, 데이터베이스는 redo 로그를 사용하여 트랜잭션의 변경 사항을 데이터베이스 파일에 반영합니다. 이를 통해 시스템이 고장나거나 다운될 경우, 데이터베이스는 redo 로그를 사용하여 트랜잭션의 변경 사항을 재실행하고 데이터베이스를 이전 상태로 복원합니다.
Redo는 트랜잭션의 변경 사항을 영구적으로 반영하는 데 사용됩니다. 트랜잭션이 성공적으로 커밋되면, redo 로그에 기록된 변경 사항은 데이터베이스 파일에 적용되어 데이터의 지속성이 보장됩니다.
은행에서는 재실행을 통해 시스템의 고장 또는 장애로 인해 데이터 손실을 방지하고 거래의 무결성을 유지합니다. 예를 들어, 고객이 자신의 계좌에서 다른 계좌로 송금하는 거래를 수행한다고 가정해 봅시다.
1. 고객이 계좌에서 다른 계좌로 송금을 요청합니다.
2. 은행 시스템은 송금 거래를 성공적으로 처리하고, 이를 로그에 기록합니다.
3. 그러나 은행 시스템이 이후 고장이나 장애로 인해 다운되는 경우가 발생할 수 있습니다.
4. 시스템이 다시 온라인 상태로 돌아오면, 은행은 redo 로그를 사용하여 이전에 기록된 송금 거래를 재실행합니다.
5. 이를 통해 송금 거래가 완전히 처리되고, 데이터베이스의 무결성이 유지됩니다.
요약
- Undo: 트랜잭션의 변경 사항을 취소하고 이전 상태로 복원하는 기능을 제공합니다.
- Redo: 트랜잭션의 변경 사항을 영구적으로 반영하여 데이터베이스의 지속성을 보장하는 기능을 제공합니다.
이러한 Undo와 Redo 기능은 데이터베이스의 일관성, 무결성 및 지속성을 보장하는 데 중요한 역할을 합니다. 데이터베이스 관리 시스템은 이러한 기능을 효율적으로 관리하여 데이터베이스의 신뢰성을 유지합니다.
재실행과 되돌리기는 은행 업무에서 데이터의 일관성과 안정성을 유지하기 위해 중요한 기능입니다. 재실행은 시스템 장애로 인해 손실된 데이터를 복구하는 데 사용되며, 되돌리기는 잘못된 거래를 취소하거나 변경된 상태를 복구하는 데 사용됩니다.
'KT에이블스쿨 5기 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] GOF(Gang of Four) 디자인패턴 (0) | 2024.04.14 |
---|---|
[정보처리기사 실기] 객체지향설계 SOLID 5가지 원칙 (0) | 2024.04.14 |
[정보처리기사 실기] CRUD - Create(생성), Read(읽기), Update(갱신), Delete(삭제) (0) | 2024.04.14 |
[정보처리기사 실기] 트랜잭션(Transaction)의 4가지 특성과 5가지 논리적상태 +은행거래예시 (0) | 2024.04.14 |
[정보처리기사 실기] SQL(Structured Query Language) 개념과 문법 (2) | 2024.04.12 |