CS - DB(3) 개념적 데이터 모델링 실습

김영현·2024년 10월 30일
0

CS

목록 보기
24/32

데이터 베이스의 설계 단계

데이터 베이스 설계 단계는 총 5단계로 분류된다고 이전 강의에서 학습하였다.

5단계중 중요도가 가장 높은 1~3단계를 실습해보겠다!


1단계) 요구 사항 분석

사용자의 요구사항을 수집하고 분석하여 요구 사항 명세서를 작성한다.
예를들어 온라인 쇼핑몰을 제작한다고 가정해보자.

요구사항 명세서

요구사항이 필요하니 예제로 주셨다.

  1. 윈터마트에 회원으로 가입하려면 회원 아이디, 비밀번호, 이름, 나이, 직업을 입력해야한다.
  2. 가입한 회원에게는 등급적립금이 부여된다.
  3. 회원은 회원 아이디로 식별한다.
  4. 상품에 대한 상품번호, 상품명, 재고량, 단가를 유지해야 한다.
  5. 상품은 상품번호로 식별한다.
  6. 회원은 여러 상품을 주문할 수 있고 하나의 상품을 여러 회원이 주문할 수 있다.
  7. 회원이 상품을 주문하면 주문에 대한 주문 번호, 주문수량, 배송지, 주문일자를 유지해야함
  8. 각 상품은 한 제조업체가 공급, 제조업체 하나는 여러상품을 공급.
  9. 제조업체가 상품을 공급하면 공급 일자, 공급량 정보를 유지.
  10. 제조업체에 대한 제조업체명, 전화번호, 위치, 담당자정보를 유지.
  11. 제조업체는 제조업체명으로 식별한다.
  12. 회원은 게시글을 여러개 작성할 수 있고 게시글 하나는 한 명의 회원만 작성할 수 있음
  13. 게시글에 대한 글번호, 글제목, 내용, 작성일자 정보를 유지해야함.
  14. 게시글은 글 번호로 식별한다.

실제 업무에서는 위 내용보다 훨씬 구체적이고 다양한 요구사항이 존재할 것이다.
그러나 실습이기에 최대한 간단하게 진행해본다.


2단계) 개념적 설계

E-R 다이어그램을 제작한다. 이를 위해 개체를 추출하고 각 개체의 주요속성, 키 속성을 선별하여 관계를 결정한다.

2-1) 개체와 속성 추출

개체는 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물이다. 예를들어 윈터마트에서 업무와 관련이 깊은 명사를 찾아보자.
이때 의미가 같은 명사가 여러개일 경우 대표 명사를 하나만 선택한다.

  • 회원(entity)
    • 회원 아이디 (key)
    • 비밀번호
    • 이름
    • 나이
    • 직업
    • 등급
    • 적립금
  • 상품(entity)
    • 상품번호 (key)
    • 상품명
    • 재고량
    • 단가
  • 제조업체(entity)
    • 제조업체명 (key)
    • 전화번호
    • 위치
    • 담당자
  • 게시글(entity)
    • 글 번호 (key)
    • 글제목
    • 내용
    • 작성일자

굵은 글씨로 표시된 목록이 개체고 하위 목록이 속성이다. 또한 각 개체를 구분하는 키 속성이 첫번째로 존재한다.

대부분 쉽게 분류 가능하지만, 7번 요구사항은 어떨까?


회원상품주문해야 생기는 정보들이다. 따라서 회원, 상품개체의 속성이 아니고 이후 추출할 특정 관계의 속성일 가능성이 높다.
이건 추후 따라가보자.

위의 설명대로 개체와 속성을 추출해서 ERD를 만들어본다.

제조업체, 게시글도 위의 두 ERD와 똑같은 형태니까 패스!

2-2) 관계 추출

관계개체간의 의미있는 연관성이다. 어떻게 개체간의 관계를 찾아낼까?
개체를 추출할땐 명사에 집중하였다. 관계를 추출할땐 동사에 집중한다. 추출한 관계는 매핑 카디널리티참여 특성을 결정한다.

아래 예시를 보자.

1번의 입력해야 한다는 개체관계를 표현하는 동사가 아니므로 제외.
2번의 부여된다도 아니므로 제외.
3번의 식별한다도 아니므로 제외.

그렇다면 어떤 동사가 개체간의 관계를 나타내는 걸까?

6번과 7번의 주문이라는 동사는 회원상품다대다(n:m)관계를 맺어준다.
또한 회원개체는 해당 관계에 선택적으로 참여하며 상품개체 또한 선택적으로 참여한다.(무조건 구매할 필요 없음, 구매당할 필요 없음)

또다른 관계를 찾아보자.

제조업체상품공급이라는 일대다(1:n)관계를 맺는다.
이때 상품개체는 관계에 필수적으로 참여하며, 제조업체는 관계에 선택적으로 참여한다.
(상품은 제조업체가 있어야 기능하지만, 등록된 제조업체가 상품을 아직 공급하지 않을 수 있음)

  • 주문(n:m) : 회원(선택), 상품(선택)
    • 주문번호
    • 주문수량
    • 배송지
    • 주문일자
  • 공급(1:n) : 상품(필수), 제조업체(선택)
    • 공급 일자
    • 공급량
  • 작성(1:n) : 회원(선택), 게시글(필수)

이렇게 추출된 관계를 ERD로 그려보자

공급,상품,게시글 ERD는 아주 유사한 형태라서 생략하였음.

2-3) ERD 작성

ERD를 모두 연결하는 단계다. 현재 velog 이미지 업로드 오류가 고쳐지면 완성된 ERD를 업로드해보겠습니다!
업로드완료!


느낀점

확실하게 알지 못하였던 단어의 뜻들을 실습을 진행하며 이해하게 되었다. 또한 ERD의 중요성을 깊이 느끼게 되었다.
단순하게 도식화하여 데이터를 바라보게되니 어떤 데이터가 필요하고 필요 없는지 판단하기 좋을 것 같음!

profile
모르는 것을 모른다고 하기

0개의 댓글