SW/면접

SW 면접 : 데이터베이스 : 트랜잭션 개념, 특징

얇은생각 2020. 8. 20. 20:00
반응형

SW 면접 : 데이터베이스 : 트랜잭션 개념, 특징

 

데이터 베이스 트랜젝션

데이터베이스 트랜젝션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 유사한 시스템이란 트랜젝션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미합니다.

 

이론적으로 데이터 베이스 시스템은 각각의 트랜젝션에 대해 원자성, 일관성, 고립성, 영구성을 보증합니다. 이 성질을 첫 글자를 따 ACID라고 부릅니다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 합니다. 어떤 시스템들에서는 트랜젝션들은 논리적 작업 단위로 불립니다. 

 

 

트랜젝션의 목적

데이터 베이스 기능 중, 트랜젝션을 조작하는 기능은 사용자가 데이터베이스 완전성 유지를 확신하게 합니다. 단일 트랜잭션은 데이터 베이스 내에 읽거나 쓰는 여러개 쿼리를 요구합니다. 

중요한 것은 데이터 베이스가 수행된 일부 쿼리가 남지 않는 것입니다. 예를 들면, 송금을 할 때 한 계좌에서 인출되면 다른 계좌에서 입금이 확인되는 것이 중요합니다. 트랜잭션은 서로 간섭하지 않아야 합니다.

 

간단한 트랜젝션은 아래 양식의 SQL 랭귀지로 데이터 베이스 내에서 실행됩니다. 

Begin the transaction

Execute several queries

Commit the transaction

만약 쿼리 하나가 실패할 수 있습니다. 그 경우 데이터 베이스 시스템은 전체 트랜젝션 또는 실패한 쿼리를 롤백합니다. 이것은 DBMS가 어떻게 사용되고 셋업 되었느냐에 따라 다릅니다.  트랜젝션이 커밋이 되기 전에 수동으로 언제든지 롤백 될 수가 있습니다.

 

 

트랜젝션의 성질

원자성

트랜젝션의 연산은 데이터베이스에 모두 반영됩니다. 아니면 전혀 반영되지 않아야 합니다. 트랜젝션 내의 모든 명령은 완벽하게 수행 되어야 합니다. 모두가 완벽히 수행되지 않을 수 있습니다. 그 경우, 어느 하나라도 오류가 발생한다면, 트랜젝션은 전부 취소가 되어야 합니다. 

 

일관성

시스템이 가지고 있는 고정 요소가 있습니다. 그것은 트랜젝션 수행 전과 트랜젝션 수행 완료 후의 상태가 동일해야 합니다. 트랜젝션이 그 실행을 성공적으로 완료합니다. 그 후에는 일관성이 있는 데이터 베이스 상태로 변환되어야 합니다.

 

독립성

수행중인 트랜젝션이 있습니다. 완전히 완료될 때까지, 다른 트랜젝션에서 수행 결과를 참조할 수 없습니다. 둘 이상의 트랜젝션이 동시에 병행 실행 되는 경우가 있습니다. 만약 그 경우에는 어느 하나의 트랜젝션 실행 중에 다른 트랜젝션의 연산이 끼어들 수 없습니다. 

 

명속성, 지속성

성공적으로 완료된 트랜젝션 결과가 있습니다. 그 결과는 항상 영구적으로 반영되어야 합니다.

반응형