트랜잭션

    [SQL]데이터 무결성 & 트랜잭션 & 가상 테이블

    [SQL]데이터 무결성 & 트랜잭션 & 가상 테이블

    여러사용자가 규칙 없이 아무 데이터나 입력하면 데이터베이스는 엉망이 되어 사용할 수가 없다. 이를 방지하기 위해 관계형 데이터베이스 시스템은 몇 가지 규칙을 정하였다. 그중 대표적인 것이 데이터 무결성과 제약 조건, 트랜잭션과 동시성 제어이다. 📌데이터 무결성 데이터베이스에 저장된 데이터 값과 사용자가 의도한 데이터 값을 일치해야 한다. 또한 데이터는 정확성, 유효성, 일관성, 신뢰성이 지켜져야 하며 이를 어기는 잘못된 입력,수정,삭제로부터 보호되어야 한다. 예를 들어 숫자가 들어와야하는 데이터 값에 숫자가 아닌 문자같은 데이터 타입이 들어 온다거나 기본 키(primary key) 값에 중복 값이나 null값이 입력된다면 데이터 식별에 큰 문제가 생길 수 있다. 이를 위해 데이터베이스 시스템은 데이터에 ..

    [JDBC] 트랜잭션 처리

    [JDBC] 트랜잭션 처리

    트랜잭션의 역할은 DB의 모든 작업을 일관되게 처리해주는 것이다. 그럼 JSP에서 트랜잭션을 이용하여 어떻게 DB의 작업을 일관되게 처리하고, 작업 도중 발생하는 문제를 어떻게 처리하여 원점으로 되돌릴까? 트랜잭션의 명령에는 크게 COMMIT과 ROLLBACK이 존재한다. COMMIT은 처리한 작업을 모두 완료하도록 하는 명령이며 ROLLBACK은 처리한 작업을 모두 되돌리는 명령이다. 예를 들어 인터넷 쇼핑 결제를 생각해보자. 상품을 주문할 때, 주문이 제대로 이루어지기 위해서는 결제 테이블에 결제 정보가 입력되는 작업이 이루어져야 하고, 결제가 제대로 이루어지면 주문 목록 테이블에도 해당 주문 내용이 입력되어야 한다. 이 두 작업이 모두 성공해야 주문 처리가 정상적으로 되는 것이다. 하지만 만약 결제..