DB_RDBMS - 1.요구사항 분석

몽구's·2022년 4월 22일
1

DB_RDBMS 모델링

목록 보기
2/8

요구사항 분석

DB설계에서 가장 중요한 것은 "분석"이다.
내가 구현할 시스템이 무엇인지 정확하게 파악하고 이에 따른 DB설계가 이뤄져야 한다.
만약, DB설계가 제대로 되어 있지 않은 상태에서 시스템이 구현된다면,
향후 사소한 문제로 인해 DB를 수정할때 어렵게 해결해야만 하는 문제점이 생긴다.
이에 DB설계는 많은 생각과 디테일을 요구한다.

1. DB 요구사항 분석의 정의

  • 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화 하는 활동
  • 사용자 요구의 타당성을 조사하고 비용과 일정에 대한 제약을 설정
  • 사용자의 요구를 정확하게 추출하여 목표를 정한다.

1) 요구사항 - 기능적 요구사항

  • 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 기능의 수행과 관련된 요구사항
  • 시스템의 입력과 출력으로 무엇이 포함되어야 하는지에 대한 사항
  • 시스템이 어떤 데이터를 저장하거나 연산을 수행해야 하는지에 대한 사항
  • 시스템이 반드시 수행해야 하는 기능
  • 사용자가 시스템을 통해 제공받기를 원하는 기능

2) 요구사항 - 비기능적 요구사항

  • 품질이나 제약사항과 관련된 요구사항
  • 시스템 장비 구성 요구사항
  • 성능 요구사항
  • 인터페이스 요구사항
  • 데이터를 구축하기 위해 필요한 요구사항
  • 테스트, 보안을 위한 요구사항
  • 품질 요구사항: 가용성, 정합성, 상호 호환성, 대응성, 이식성, 확장성, 보안성 등
  • 프로젝트 관리 요구사항
  • 프로젝트 자원 요구사항

2. 예시모음

예시1) 보드 구독 커뮤니티 DB

  1. 보드를 구독하려면 아이디,구독여부가 있어야합니다.
  2. 유저는 여러 보드를 구독할 수 있습니다.
  3. 보드를 구독했다면 글작성, 댓글작성, 좋아요 뿐만 아니라 여러 부가기능을 사용할 수 있습니다.
  4. 유저는 또한 여러 글, 댓글을 작성할 수 있습니다.
  5. 보드에 대한 정보 보드설명, 보드추가기능여부를 저장하고 있습니다.
  6. 유저에 대한 정보 아이디,실명, 비밀번호, 구독여부를 가지고 있습니다.
  7. 글에 대한 정보 아이디,글내용,글쓴날짜,어떤 보드에 해당하는 지 가지고 있습니다.

예시2) 커뮤니티 기능을 도입한 마트관리

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

예시3) 쇼핑몰 구축을 위한 요구사항

  1. 회원이 상품을 구매한다.
  2. 회원은 상품을 카트(장바구니)에 담을 수 있다.
  3. 회원정보: 회원아이디, 비밀번호, 성명, 주소, 연락처
  4. 상품: 상품아이디, 상품명, 이미지, 가격
  5. 회원이 요구하는 배송지에 배송을 지원한다.
  6. 회원은 0또는 1곳 이상의 배송지를 등록할 수 있다.
  7. 배송지: 배송지 아이디, 회원아이디, 우편번호, 연락처, 주소, 기본배송지등록여부
  8. 회원은 구매하기 위해 상품을 카트에 담는다.
  9. 카트(장바구니) 회원아이디, 상품아이디, 수량, 금액, 날짜
  10. 회원은 구매시 신용카드로 구매한다.
  11. 신용카드: 신용카드 아이디, 회원 아이디, 카드사, 카드번호, 유효기간
  12. 회원은 0또는 1장 이상의 신용카드를 등록한다.
  13. 주문: 회원아이디, 주문 일자, 상품명, 수량, 금액, 배송지 아이디, 카드 아이디

예시4) XX대학 요구사항

  1. 교수(Professor)는 아이디(ssn), 이름(name), 나이(age), 직위(rank), 연구 분야(speciality)를 가진다.
  2. 학과(Department)에는 학과번호(dno), 학과이름(dname), 학과사무실(office)이있다.
  3. 대학원생(Graduate)은 아이디(ssn), 이름(name), 나이(age), 학위과정(deg_prog, 석사/박사)을 가진다.
  4. 과제(Project)는 과제번호(pid), 지원기관(sponsor), 개시일(start_date), 종료일(end_date), 예산액 (budget)이있다.
  5. 학과마다그 학과를 운영(run)하는 교수(학과장이라고 한다)가 한명씩 있다.
  6. 한 교수가 여러학과에서 근무(work-dept)할 수 있는데, 이때각 학과별로 참여백분율(pct_time)이 기록된다.
  7. 대학원생에게는 학위 과정을 밟을 전공학과(major)가하나씩 있다.
  8. 대학원생에게는 어떤과목을 들으면좋을지 조언(advisor)해주는 선임대학원생(학생조언자라고 한다)이있다.
  9. 과제는 한 교수(연구책임자라고 한다)에의해 관리(manage)된다.
  10. 과제는 한 사람이상의 교수(공동연구책임자라고 한다)에의해 수행(work-in)된다.
  11. 한 과제는 한 명이상의 대학원생(연구조교라고 한다)에의해 수행(work-prog)된다.

1~4번은 개체와 속성을 연결해주는 부분이다.
5~11번은 관계로 개체들을 연결해주는 부분이다.

예시5) 항공사 예약프로그램의 요구사항

  1. 한빛 항공사에 회원으로 가입하려면 회원아이디, 비밀번호, 성명, 신용카드 정보를 입력해야 한다
  2. 회원의 신용카드 정보는 여러 개를 저장할 수 있는데, 세부적으로는 신용카드번호, 유효기간을 저장할 수 있다
  3. 한빛 항공사에서는 보유한 비행기에 대해 비행기번호, 출발날짜, 출발시간 정보를 저장하고 있다
  4. 한빛 항공사에서는 좌석에 대한 좌석번호, 등급 정보를 저장하고 있다
    회원은 좌석을 예약하는데, 회원 한 명은 좌석을 하나만 예약할 수 있고, 한 좌석은 회원 한명만 예약할 수 있다
  5. 비행기에는 좌석이 존재하는데, 비행기 하나에는 좌석이 여러 개 존재할 수 있고
  6. 한 좌석은 반드시 하나의 비행기에만 존재해야 한다.
  7. 좌석은 비행기가 없으면 의미가 없다.

다양한 예시를 참고하여 내가 만들고자 하는 DB설계에 적절한 요구사항을 도출해보자.

요구사항 분석을 마치면, 요구사항내 존재하는 개체(Entity)와 속성(Attribute)을 추출하는 단계로 넘어간다.

끝.

출처:

profile
"성공"하면 실력이고, "실패"해도 경험인걸요.

0개의 댓글