기출 개념적 논리적 ERD 로 요구사항을 구조화 하시노

agnusdei·2025년 5월 5일
0

Database

목록 보기
15/30

1. 도메인 정의 및 가상 시나리오 설정

[시나리오: 온라인 도서 판매 시스템]

  • 사용자는 웹사이트를 통해 도서를 검색, 장바구니에 담고 구매
  • 판매자는 도서를 등록하고 재고를 관리
  • 관리자는 회원과 주문 내역을 관리

2. 개념적 ERD (Conceptual ERD)

목적: 비즈니스 요구사항을 반영한 고수준 모델
특징: 주체(Entity), 관계(Relationship), 속성(Attribute) 위주로 표현, 정규화 미적용

주요 엔터티 및 관계

  • 회원(Member): 사용자 정보 보유
  • 도서(Book): 판매 도서 정보
  • 장바구니(Cart): 구매 전 임시 저장
  • 주문(Order): 결제 완료된 주문 내역
  • 주문상세(OrderItem): 주문 내 포함 도서 목록
[Member]───<places>───[Order]───<contains>───[OrderItem]───<refers to>───[Book]
  │                                     
  └────<has>────[Cart]───<contains>───[Book]

3. 논리적 ERD (Logical ERD)

목적: 실제 논리적 스키마 설계, 정규화 적용, 키 정의 포함
특징: PK, FK 명확히 정의, 1NF ~ 3NF 고려

테이블 정의

1) Member

  • member_id (PK)
  • name
  • email
  • password
  • join_date

2) Book

  • book_id (PK)
  • title
  • author
  • price
  • stock
  • category

3) Cart

  • cart_id (PK)
  • member_id (FK → Member)
  • created_at

4) CartItem

  • cart_id (FK → Cart)
  • book_id (FK → Book)
  • quantity
  • PK: cart_id, book_id

5) Order

  • order_id (PK)
  • member_id (FK → Member)
  • order_date
  • status
  • total_price

6) OrderItem

  • order_id (FK → Order)
  • book_id (FK → Book)
  • quantity
  • unit_price
  • PK: order_id, book_id

4. ERD 도식 (논리적)

[Member]───(1:N)───[Order]───(1:N)───[OrderItem]───(N:1)───[Book]
   │
   └──(1:N)──[Cart]──(1:N)──[CartItem]──(N:1)──[Book]

5. 정규화 단계 요약

  • 1NF: 반복 속성 제거 (ex. 한 행에 여러 책 X)
  • 2NF: 부분 종속 제거 (복합키 구성 테이블에서 의미 분리)
  • 3NF: 이행적 종속 제거 (ex. 총액은 계산 가능 → 제거)

6. 보안 및 운영 고려사항

  • 접근 제어: Member에 권한 수준 추가 가능 (ex. 일반/관리자)
  • 감사 로그: Order 또는 Book 변경 시 변경 이력 테이블 설계 고려
  • 데이터 무결성: 외래키 및 제약조건을 통해 무결성 보장

7. 어린이 버전 요약

“책을 파는 가게 웹사이트를 만든다고 상상해 봐요!
사람(회원)은 책을 장바구니에 담고 주문해요.
책과 사람, 주문, 장바구니를 표로 만들고,
그 표들이 서로 어떻게 연결되는지 그림으로 보여주는 게 ERD예요!”

0개의 댓글