-
트랜잭션이란?DataBases/MYSQL 2019. 3. 26. 10:15
Database에서 가장 중요한것은 무결성이다!
: 하나의 data는 두개이상 존재하지 않는다. 즉! 중복되는 data가 없어야한다.
트랜잭션(Transaction )이란?(트랜젝션 예제 URL)
데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
:질이어(SQL)을 이용해서 데이터베이스 접근 하는 것을 의미
ex ) select , Insert, delete, update
하지만 우리는 [ 작업의 단위를 트랜잭션 ] 이라한다.
관리자나 개발자가 하나의 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점이 있다
ex) 정보를 알아올때 ex)이름/ 번호/ 성별
3번의 쿼리를 날려 하나하나씩을 찾는 경우
1) 이름을 찾는다.
2) 번호를 찾는다.
3) 성별을 찾는다.
트랜젝션
1) 이름과 번호, 성별을 찾는다.
:하나하나 처리되야할 일을 한번에 명령으로 찾아오는 경우
트랜잭션의 특징
- 원자성
: 트랜잭션이 데이터베이스의 모두반영되던가, 전혀 반영되지 않아야하는것
[ 하나의 트랜젝션 [이름과 번호 성별]이 있다고 가정하다.
이것을 꼭 돌아오는 값이 이름 번호 성별 값이여야한다.
하여. 꼭 반영되거나 반영되지 않아야한다.
[ 어떠한 조건으로 어떠한 결과값을 원하는 트랜젝션이라면 꼭 그조건으로 사용되어야한다. / input output 동일 ]
- 일관성
: 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야한다.
트렌잭션이 진행되는 동안 사용하고 있는 데이터베이스가 변화하더라도 업데이트된 데이터베이스가 아닌 처음에 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행된다. 동시에 병행 실행되고 있을 경우에 어느 하나의 트랜잭션이라도 다른 트랜잭션의 연산을 끼어들 수 없다.
- 독립성
: 둘이 상의 트랜잭션이 동시에 병행 실행되고 있을 경우에 어느 하나의 트랜잭션이라도 다른 트랜잭션의 연산을 끼어들 수 없다.,
- 지속성
: 트랜잭션이 성공적으로 완료됬을 경우 결과는 영구적으로 반영되어야한다.
[ 트랜잭션 연산 ]
COMMIT
-하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을때, 하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는연산
이 연산을 사용하면, 수행했던 트랜잭션이 로그에 저장되고, 후에 RollBack 연산을 수행했었던 트랜잭션단위로 하는 것을 도와준다.
Rollback이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나
트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다,
후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행 할 수도 있다.
방아쇠라는 뜻인데, 방아쇠를 당기면 그로 인해 총기 내부가 알아서 일련의 작업을 실행하고 총알이 날아감.
특정 테이블에 Insert, Delete, Update 같은 DML문이 수행되었을때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램
직접 호출 방법이 아닌 자동적으로 호출하는 방법
Rollback이라는 명령어는 트리거를 트랜젝션으로 인지함
:트리거는 데이터베이스에 의해 자동 호출되지만 결국 insert, update, delete 구분과 하나나의 트랜잭션 안에서 일어나는 일련의 작업들이라 할 수 있습니다.
즉!! 트랜젝션과 트리거 [ 관계 ] 는
: sql을 자동화시켜 한번에 처리해버리는 것. [ 퍼포먼스 : 행위의 시간적 과정을 중시]
장점 : 자동화해서 여러번할것을 한번에 처리해버리는 속도문제 개선
단점 : 코드한번으로 여러가지 일을 담당하기 때문에 사용할때 조심히 사용해야한다.
'DataBases > MYSQL' 카테고리의 다른 글
mysql - 정규화란? (0) 2019.03.27 sql delete, update (0) 2019.03.27 SQL select 조건 검색 (0) 2019.03.27 데이터와테이블 - command (0) 2019.03.22 데이터와 테이블 - 도메인,속성,튜플 (0) 2019.03.22