트렌젝션(Transaction) : 시작에서 종료까지 한번에 수행되어야 할 하나의 작업 단위
데이터베이스의 여러 테이블에 연속적으로 데이터를 집어넣거나 하나의 테이블에서 데이터를 감소시키고 다른 테이블에서 데이터를 증가시키는 등의 작업들은 하나 하나 다른 작업이지만, 이 작업들은 연속적으로 이루어지며, 만일 하나의 작업이 실패할 경우 시스템에 심각한 오류를 초래할 수 있다.
이런 작업을 트렌젝션으로 처리한다. 트렌젝션은 1960년대 개발이 되었으며 처음에는 한개의 데이터베이스(Local Transaction)에서 트렌젝션을 처리하는 경우로 사용하였으나 현재는 분산 환경(여러개의 데이터베이스를 관리하는 환경)에서도 사용된다.
자바에서 트렌젝션을 처리하는 방법은 프로그램적으로 컨넥션을 공유하는 방법과, JTS(Java Transaction Service)나 JTA(Java Transaction API)를 활용하는 방법이 있다.
■ 트렌젝션의 특성(ACID)
원자성(Automicity)
: Database Modifications must follow an all or nothing. 트렌젝션이 완전히 수행되거나 아무것도 수행되지 않는 All 또는 nothing의 의미이다. 트랜젝션은 모든 작업을 하나로 간주해야 하며 하나의 작업이라도 오류가 발생하면 모든 작업을 취소하고 모든 작업을 roolback 시켜야 한다.
일관성(Consistency)
: States that only valid data will be written to the database. 트렌젝션이 종료된 후에 저장되는 데이터는 오류없는 데이터만 저장되어야 한다.
격리성(Isolation)
: Multiple transaction occuring at the same time not impact each other execution. 격리성이란 트렌젝션 중에 의해서 변경되는 내용은 완료전까지 다른 트렌젝션에 영향을 주어서는 안된다.
지속성(Durability)
: Ensures that any transaction committed to the database will not lost. 데이터베이스에 값 손실이 없이 모든 값이 제대로 저장되어야 한다.
'자바(Java) > JAVA 2EE' 카테고리의 다른 글
MySQL 5.1 데이터베이스와 JDK1.6, 톰캣 6 버전 연동방법 (0) | 2009.12.26 |
---|---|
프로그램으로 트랜잭션 처리하는 방법 (0) | 2009.12.26 |
JSP에서 Ajax를 사용할 때 문자 인코딩 방법 (0) | 2009.12.23 |
자카르타(Jakarta) DBCP 사용 (0) | 2009.12.20 |
이클립스에서 서블릿 클래스 작성 (0) | 2009.12.16 |