3 minute read

설계 1단계 : 요구 사항 분석

  • 목적
    사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악한다.
  • 결과물
    요구 사항 명세서
  • 주요 작업
    • 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정
    • 사용자가 조직에서 수행하는 업무를 분석
    • 면담, 설문 조사, 업무 관련 문서 분석 등의 방법을 이용해 요구 사항 수집
    • 수집된 요구 사항에 대한 분석 결과를 요구 사항 명세서로 작성
  • 예)
    1. 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
    2. 가입한 회원에게는 등급과 적립금이 부여된다.
    3. 회원은 회원아이디로 식별한다.
    4. 상품에 대한 상품번호, 상품명, 재고량, 단가 정보를 유지해야 한다.
    5. 상품은 상품번호로 식별한다.
    6. 회원은 여러 상품을 주문할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
    7. 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
    8. 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
    9. 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
    10. 제조업체에 대한 제조업체명, 전화번호, 위치, 담당자 정보를 유지해야 한다.
    11. 제조업체는 제조업체명으로 식별한다.
    12. 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
    13. 게시글에 대한 글번호, 글제목, 글내용, 작성일자 정보를 유지해야 한다.
    14. 게시글은 글번호로 식별한다.

설계 2단계 : 개념적 설계

  • 목적
    • DBMS에 독립적인 개념적 스키마 설계
    • 요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현한다.
      개념적 모델링이라 하며 일반적으로 E-R 모델을 이용한다.
  • 결과물
    개념적 스키마 : E-R 다이어그램
  • 주요 작업
    요구 사항 분석 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 E-R 다이어그램으로 표현한다.

작업 과정

개체 추출, 각 개체의 주요 속성과 키 속성 선별

  • 개체 : 저장할만한 가치가 있는 중요 데이터를 가진 사람이나 사물 등
    예) 병원 데이터베이스 개발에 필요한 개체
    • 병원 운영에 필요한 사람: 환자, 의사, 간호사
    • 병원 운영에 필요한 사물: 병실, 수술실, 의료 장비
  • 개체 추출 방법
    • 요구 사항 문장에서 업무와 관련이 깊은 의미 있는 명사를 찾는다.
      • 업무와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외
      • 의미가 같은 명사가 여러 개일 경우는 대표 명사 하나만 선택
    • 찾아낸 명사를 개체와 속성으로 분류한다.
  • 예시
    • 한빛 마트회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
    • 가입한 회원에게는 등급적립금이 부여된다.
    • 회원은 회원아이디로 식별한다.
      • “한빛 마트”는 일반적이고 광범위한 명사이므로 제외
      • “회원아이디”, “비밀번호”, “이름”, “나이”, “직업”, “등급”, “적립금”은 회원개체의 속성으로 분류
      • “회원아이디”는 키 속성으로 분류

      • 개체: 회원
      • 회원개체의 속성: 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
      • 회원개체의 키 속성: 회원아이디
    • 회원상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
      • 개체: 회원, 상품
      • 속성: 주문번호, 주문수량, 배송지, 주문일자
        회원이 상품을 주문을 해야 생기는 중요한 정보이기 때문에 회원이나 상품 개체의 속성으로 보기는 어렵고 이후 추출할 특정 관계의 속성일 가능성이 높다.
        즉, 회원과 상품간에 주문이라는 관계가 형성되고 이 주문의 속성이 될 것이다.
개체 속성
회원 회원아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
상품 상품번호, 상품명, 재고량, 단가
제조업체 제조업체명, 전화번호, 위치, 담당자
게시글 글번호, 글제목, 글내용, 작성일자

개체 간의 관계 결정

  • 관계: 개체 간의 의미 있는 연관성
  • 관계 추출 방법
    • 요구 사항 문장에서 개체 간의 연관성을 의미 있게 표현한 동사를 찾는다.
      의미가 같은 동사가 여러 개일 경우는 대표 명사 하나만 선택한다.
    • 찾아낸 관계에 대해 매핑 카디널리티(1:1, 1:N, N:M)와 참여 특성(필수적/선택적)을 결정한다.
  • 예시
    • 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
      “입력해야 한다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외
    • 가입한 회원에게는 등급과 적립금이 부여된다.
      “부여된다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외
    • 회원은 회원아이디로 식별한다.
      “식별한다”는 개체와 개체의 관계를 표현하는 동사로 볼 수 없으므로 제외

    • 회원은 여러 상품을 주문할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
    • 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
      • 관계: 주문
        “회원”개체와 “상품”개체가 맺는 관계: N:M 관계
        “회원”개체는 관계에 선택적으로 참여, “상품”개체는 관계에 선택적으로 참여
      • “주문”관계의 속성: 주문번호, 주문수량, 배송지, 주문일자
    • 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
    • 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
      • 관계: 공급
        “제조업체”개체와 “상품”개체가 맺는 관계: 1:N 관계
        “상품”개체는 관계에 필수적으로 참여, “제조업체”개체는 관계에 선택적으로 참여
      • “공급”관계의 속성: 공급일자, 공급량
    • 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
      • 관계: 작성
        “회원”개체와 “게시글”개체가 맺는 관계: 1:N 관계
        “회원”개체는 관계에 선택적으로 참여, “게시글”개체는 관계에 필수적으로 참여
관계 관계에 참여하는 개체 관계 유형 속성
주문 회원(선택), 상품(선택) 다대다 주문번호, 주문수량, 배송지, 주문일자
공급 상품(필수), 제조업체(선택) 일대다 공급일자, 공급량
작성 회원(선택), 게시글(필수) 일대다  

E-R 다이어그램으로 표현

Leave a comment