전체 글 (52)
방명록
- 데이터베이스 08 : 트랜잭션 관리2024년 09월 25일 17시 13분 29초에 업로드 된 글입니다.작성자: UXO Studio
01 트랜잭션
02 온라인 트랜잭션 처리 OLTP On-Line Transaction Processing
03 트랜잭션의 예
01 트랜잭션
: 논리적인 작업의 단위
ex) 입금, 출금, 계좌이체, 잔고확인 등
트랜잭션의 ACID 속성
- 원자성 Atomicity
- 일관성 Consistency
- 고립성 Isolation
- 영구성 Durability
02 온라인 트랜잭션 처리 OLTP On-Line Transaction Processing
: 많은 수의 단수한 트랜잭션들이 동시에 실해되는 응용
- 데이터베이스 시스템의 전형적인 응용 분야
ex) 인터넷 뱅킹, 주식 거래, 철도 예약
03 트랜잭션의 예
철도 예약 트랜잭션
Begin_transaction Reservation begin input(flight_no, date, customer_name); EXEC SQL SELECT STSOLD, CAP INTO :temp1, :temp2 FROM FLIGHT WHERE FNO = :flight_no AND DATE = :date; if (temp1 == temp2) then { output(“no free seats”); ABORT } else { EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + 1 WHERE FNO = :flight_no AND DATE = :date; if (sqlca.sqlcode != 0) then ABORT; EXEC SQL INSERT INTO FC(FNO, DATE, CNAME, SPECIAL) VALUES(:flight_no, :date, :customer_name, NULL); if (sqlca.sqlcode != 0) then ABORT; COMMIT; Output(“reservation completed”); } end.
철도 예약 트랜잭션 해
-- 트랜잭션 시작 begin -- 항공편 번호와 날짜에 따른 좌석 정보를 입력받음 input(flight_no, date, customer_name); -- 선택된 항공편의 판매된 좌석 수(STSOLD)와 최대 좌석 수(CAP)를 조회 EXEC SQL SELECT STSOLD, CAP INTO :temp1, :temp2 FROM FLIGHT WHERE FNO = :flight_no AND DATE = :date; -- 만약 판매된 좌석 수(temp1)가 최대 좌석 수(temp2)와 같다면 -- 좌석이 없다는 메시지를 출력하고 트랜잭션 중단(롤백) if (temp1 == temp2) then { output("no free seats"); ABORT; } else { -- 좌석이 있으면 판매된 좌석 수를 1 증가시킴 EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + 1 WHERE FNO = :flight_no AND DATE = :date; -- 업데이트에 오류가 발생하면 트랜잭션 중단(롤백) if (sqlca.sqlcode != 0) then ABORT; -- 예약 정보(고객 이름 등)를 항공편 예약 테이블(FC)에 추가 EXEC SQL INSERT INTO FC(FNO, DATE, CNAME, SPECIAL) VALUES(:flight_no, :date, :customer_name, NULL); -- 예약 정보 추가에 오류가 발생하면 트랜잭션 중단(롤백) if (sqlca.sqlcode != 0) then ABORT; -- 모든 작업이 성공하면 트랜잭션 완료(커밋)하고 완료 메시지 출력 COMMIT; Output("reservation completed"); } -- 트랜잭션 종료 end;
#트랜잭션 #OLTP #온라인트랜잭션처리 #트랜잭션예시 #트랜잭션ACID #원자성 #일관성 #고립성 #영구성 #인터넷뱅킹 #주식거래 #철도예약 #트랜잭션처리 #DBMS #데이터베이스관리 #트랜잭션속성 #SQL트랜잭션 #트랜잭션처리예제 #ACID속성 #예약시스템
'Data > Database' 카테고리의 다른 글
데이터베이스 10 : 전체 시스템 구조 미리보기 (0) 2024.09.25 데이터베이스 09 : 데이터베이스 사용자와 관리자 (0) 2024.09.25 데이터베이스 07 : 저장 시스템 (0) 2024.09.25 데이터베이스 06 : 데이터베이스 언어 (0) 2024.09.25 데이터베이스 05 : 데이터 모델 (0) 2024.09.13 다음글이 없습니다.이전글이 없습니다.댓글