본문 바로가기
카테고리 없음

SQLD 데이터 모델과 트랜잭션 이해

by moment-love 2025. 2. 8.

 

SQLD 데이터 모델과 트랜잭션 이해

SQLD(SQL Developer) 자격증에서는 데이터 모델(Data Model)과 트랜잭션(Transaction)의 개념을 정확히 이해하는 것이 중요합니다.
데이터 모델은 현실 세계의 데이터를 데이터베이스에서 어떻게 표현할지 정의하는 설계 구조이며,
트랜잭션은 데이터베이스에서 여러 개의 작업을 하나의 단위로 처리하는 개념입니다.

이번 글에서는 데이터 모델이 표현하는 트랜잭션이 무엇인지, 어떻게 활용되는지 초심자도 쉽게 이해할 수 있도록 예제와 함께 설명하겠습니다.

 


1. 데이터 모델이란?

✔ 데이터 모델(Data Model)은 현실 세계의 데이터를 데이터베이스에서 표현하는 방법입니다.
✔ 데이터를 구조화하고 관계를 정의하여 데이터베이스에 저장하는 방식을 결정합니다.

 

데이터 모델의 주요 구성 요소

  • 개체(Entity) → 데이터로 저장할 대상 (예: 고객, 주문, 상품)
  • 속성(Attribute) → 개체의 특성 (예: 고객의 이름, 주문 날짜, 상품 가격)
  • 관계(Relationship) → 개체 간의 연관성 (예: 고객이 주문을 한다, 주문에 상품이 포함된다)

 


 

🔹 예제: 쇼핑몰 데이터 모델

고객(Customer), 주문(Order), 상품(Product) 간의 관계를 표현하는 데이터 모델

 

| Customer (고객 테이블) |

CustomerID (PK) Name Email
1 김철수 kim@example.com
2 이영희 lee@example.com

 

 

| Order (주문 테이블) |

 

OrderID (PK) CustomerID (FK) OrderDate
1001 1 2024-01-01
1002 2 2024-01-02

 

 

| Product (상품 테이블) |

 

ProductID (PK) ProductName Price
101 노트북 1,500,000
102 스마트폰 1,000,000

 

고객(Customer)이 주문(Order)을 하고, 주문에는 여러 상품(Product)이 포함될 수 있음.
이 데이터 모델은 현실 세계에서 "고객이 상품을 주문한다"라는 트랜잭션을 표현함.

 


2. 트랜잭션이란?

✔ 트랜잭션(Transaction)은 데이터베이스에서 여러 개의 작업을 하나의 단위로 처리하는 개념입니다.
✔ 트랜잭션이 실행되면 모든 작업이 성공적으로 완료되거나(Commit), 하나라도 실패하면 모두 취소(Rollback)됩니다.

 

트랜잭션의 대표적인 예시

  • 은행 계좌 이체 → A 계좌에서 돈을 빼고(Balance 감소), B 계좌로 입금(Balance 증가)
  • 쇼핑몰 결제 → 주문 정보 저장 + 결제 내역 저장 + 재고 차감
  • 회원가입 → 사용자 정보 저장 + 이메일 인증 코드 발송

 


 

🔹 예제: 쇼핑몰에서 고객이 주문하는 트랜잭션

✔ 고객이 상품을 주문하면, 다음 작업이 동시에 수행되어야 함
1️⃣ Orders 테이블에 새 주문 정보를 저장
2️⃣ OrderDetails 테이블에 주문한 상품 목록을 저장
3️⃣ Products 테이블에서 상품 재고를 차감

 

BEGIN TRANSACTION;

-- 1. 주문 정보 저장
INSERT INTO Orders (OrderID, CustomerID, OrderDate)
VALUES (1003, 1, '2024-02-01');

-- 2. 주문 상세 정보 저장
INSERT INTO OrderDetails (OrderID, ProductID, Quantity)
VALUES (1003, 101, 1);

-- 3. 재고 차감
UPDATE Products
SET Stock = Stock - 1
WHERE ProductID = 101;

COMMIT;

 

트랜잭션 실행 순서
1️⃣ 고객 ID 1번이 새 주문(1003번)을 생성
2️⃣ 주문된 상품(101번 노트북) 정보를 OrderDetails 테이블에 저장
3️⃣ Products 테이블에서 해당 상품의 재고를 1개 감소
4️⃣ 모든 작업이 성공하면 COMMIT 실행하여 데이터 반영

 

 


 

🔹 만약 트랜잭션 도중 오류가 발생하면?

✔ 예를 들어 재고가 부족하여 상품을 주문할 수 없는 경우, 모든 작업을 취소해야 함
✔ ROLLBACK을 사용하여 이전 상태로 되돌릴 수 있음

 

BEGIN TRANSACTION;

-- 1. 주문 정보 저장
INSERT INTO Orders (OrderID, CustomerID, OrderDate)
VALUES (1004, 2, '2024-02-02');

-- 2. 주문 상세 정보 저장
INSERT INTO OrderDetails (OrderID, ProductID, Quantity)
VALUES (1004, 102, 1);

-- 3. 재고 차감 (만약 재고 부족 오류 발생 시 롤백)
UPDATE Products
SET Stock = Stock - 1
WHERE ProductID = 102;

-- 오류 발생 시 롤백
IF @@ERROR <> 0 
    ROLLBACK;
ELSE
    COMMIT;

 

재고 부족 오류가 발생하면 ROLLBACK이 실행되어 모든 작업이 취소됨
문제가 없으면 COMMIT이 실행되어 데이터가 저장됨

 


3. 데이터 모델이 표현하는 트랜잭션의 이해

데이터 모델은 실제 비즈니스 프로세스를 데이터베이스 구조로 표현합니다.
트랜잭션을 통해 데이터가 일관성 있게 유지되도록 보장합니다.

 

데이터 모델이 트랜잭션을 표현하는 방식
1️⃣ 엔터티(테이블) 간의 관계를 정의 → 고객-주문-상품 간의 연관 관계 설정
2️⃣ 정합성을 유지하기 위한 제약 조건을 설정 → 기본 키(PK), 외래 키(FK)로 데이터 무결성 보장
3️⃣ 트랜잭션을 활용하여 데이터 변경 시 일관성을 유지 → 주문 등록 시 주문 정보와 상품 재고를 동시에 처리

 

트랜잭션을 활용하는 이유

  • 데이터의 정합성(Integrity) 유지
  • 장애 발생 시 데이터 복구 가능
  • 여러 개의 작업을 하나의 단위로 처리하여 일관성 유지

 


4. SQLD 시험 대비 핵심 정리

 

데이터 모델 → 현실 세계의 데이터를 데이터베이스에서 표현하는 방식
개체(Entity), 속성(Attribute), 관계(Relationship) → 데이터 모델의 기본 구성 요소
트랜잭션(Transaction) → 데이터의 정합성을 유지하기 위한 작업 단위
트랜잭션의 주요 연산

 

  • COMMIT → 트랜잭션을 확정하여 데이터 저장
  • ROLLBACK → 오류 발생 시 트랜잭션을 취소하여 데이터 복구
    트랜잭션과 데이터 모델의 관계
  • 데이터 모델이 정의한 테이블과 관계를 기반으로 트랜잭션이 실행됨
  • 트랜잭션을 통해 데이터 변경이 일관성 있게 유지됨

SQLD 시험에서는 데이터 모델과 트랜잭션의 개념을 정확히 이해하고, 실무에서 어떻게 활용되는지 예제를 통해 익숙해지는 것이 중요합니다. 

 

📌 SQL 실습을 통해 트랜잭션을 직접 실행하고, 데이터 모델이 실제로 어떻게 동작하는지 경험해 보세요!

 

 

반응형