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;