SQLD 기출문제 예상문제 369번
다음 문제를 풀어보세요.
다음은 온라인 쇼핑몰에서 고객이 상품을 주문하는 트랜잭션 처리 과정의 일부를 나타낸다. 동시성 제어 및 데이터 무결성 보장을 위해 이 트랜잭션 모델이 가진 잠재적 문제점과 가장 적절한 개선 방안에 대한 설명으로 옳은 것을 고르시오.
[테이블 스키마]
CREATE TABLE PRODUCT (
PRODUCT_ID VARCHAR(10) PRIMARY KEY,
PRODUCT_NAME VARCHAR(100),
STOCK_QTY INT DEFAULT 0,
PRICE DECIMAL(10, 2)
);
[트랜잭션 처리 로직 예시 - 일부 발췌]
고객이 상품 'P001' 2개를 주문하는 상황에서 재고를 감소시키는 로직의 일부입니다.
START TRANSACTION;
-- 1. 상품 재고 확인 및 감소
UPDATE PRODUCT
SET STOCK_QTY = STOCK_QTY - 2
WHERE PRODUCT_ID = 'P001' AND STOCK_QTY >= 2;
-- 이후 주문 생성, 주문 상품 상세 생성, 고객 총 구매 금액 업데이트 등
-- 다른 관련 로직들이 이어서 진행됨...
COMMIT;