<업무 처리 내용>
◆ 많은 전산화 관련 프로젝트를 수행하는 모 SI회사에는 수백 명의 사원들이 재직하고 있다. 각 사원들에 대하여 사원번호(유일함), 이름, 직책, 급여, 주 소, 핸드폰번호를 관리한다. 주소는 우편번호와 세부주소로 나누어서 등록 한다.
◆ 사원이 부양하는 부양가족에 관한 정보도 관리하며, 사원은 0명 이상의 부 양가족을 등록할 수 있다. 이 때 부양가족은 오직 한 명의 사원에게만 속한 다. 부양가족에 관한 정보는 부양가족의 이름, 성별, 사원과의 관계, 나이 등의 정보를 관리한다.
◆ 프로젝트를 수주하면 프로젝트명과 발주처, 프로젝트기간(시작일자, 종료일 자), 수주금액, 프로젝트 개요 등을 저장하며, 이때 해당 프로젝트에 대한 프로젝트ID가 자동으로 부여된다.
◆ 등록된 프로젝트에 대해 영업사원은 팀장과 상의하여 PM(프로젝트 매니저) 를 선정하여 등록한다. PM은 PL(프로젝트 리더)와 프로젝트팀원을 선정하 여 역할과 함께 등록한다. 프로젝트 팀에 선정된 인원들은 가급적 프로젝트 기간 동안 유지되지만 여러 가지 사정으로 불가피하게 중간에 교체되거나 추가 또는 프로젝트 기간 중간에 투입 완료될 수도 있어서 투입기간을 관리하여야 한다.
◆ 각 프로젝트를 진행하기 위해서는 여러 물품들이 필요하다. 한 물품이 두 개 이상의 프로젝트에서 사용될 수도 있다. 하나의 물품은 다른 여러 개의 물품들로 구성될 수 있으며, 각 물품에 대해서는 물품번호(유일함), 물품명, 가격, 그 물품이 다른 물품들로 구성되는 경우에는 구성물품에 관한 정보도 관리한다.
◆ 물품을 공급하는 공급자가 있다. 공급자 별로 공급이 가능한 물품 정보도 관리한다. 한 공급자는 여러 물품들을 공급할 수 있고, 각 물품은 여러 공급자들로부터 공급될 수 있다. 각 공급자에 대해서 공급자번호(유일함), 공 급자명, 신용도, 거래시작일자를 관리한다.
◆ 각 공급자에 대하여 그 공급자가 어떤 물품을 어느 프로젝트에 얼마나 공급하였는가를 관리한다.
요구사항 ID | 요구사항명 | 상세내용 | 요구유형 | 관련엔티티 |
RQ - 1000 | 사원 | - 회사에 등록된 모든 임직원은 '사원' - 사원번호, 이름, 직책, 급여, 주소, 핸드폰번호 관리 (주소 : 우편번호 - 세부주소로 나누어 등록/관리) - 사원이 부양하는 부양가족에 대한 정보를 관리 (부양가족에 대한 정보 : 부양가족의 이름, 성별, 관계, 나이 등) - 한명의 사원은 여러 명의 부양가족을 가질 수 있으며 한명의 부양가족은 반드시 한명의 사원과 연결 |
기능 | 사원 부양가족 |
RQ - 2000 | 부서 | - 부서에는 여러 명의 사원이 있으며, 사원은 하나의 부서에 소속 - 부서번호, 부서명, 지점, 위치(층) 관리 |
기능 | 부서 사원 |
RQ - 3000 | 프로젝트 | - 회사에는 여러 개의 프로젝트가 수행 - 프로젝트에는 여러 명의 사원이 투입 - 프로젝트ID(자동등록), 프로젝트명, 발주처, 프로젝트 기간(시작/종료일), 수주금액, 프로젝트 개요 관리 - 구성원, 구성원 역할, 투입기간 관리 (구성원 : PM, PL, 프로젝트팀원 / 투입기간 : 중간에 교체, 추가 가능) |
기능 | 프로젝트 사원 |
RQ - 4000 | 공급자 | - 공급자번호, 공급자명, 신용도, 거래시작일자 관리 - 한 공급자 - 여러 물품 공급 가능 - 각 공급자가 어떤 물품을 프로젝트에 얼마나 공급하였는지 관리 |
기능 | 공급자 물품 프로젝트 |
RQ - 5000 | 물품 | - 하나의 프로젝트에서 여러 가지 물품이 사용 - 하나의 물품은 두 개 이상의 프로젝트에서 사용 - 물품번호, 물품명, 가격, 구성물품 관리 (구성물품 : 다른 물품들로 구성되는 경우 기재) - 공급자 별로 공급이 가능한 물품 정보 관리 |
기능 | 물품 프로젝트 공급자 |
엔티티명 | 엔티티 설명 | 동의어/유의어 | 관련속성 | 비고 |
사원 | 회사에서 근무하는 임직원 | - | 사원번호, 이름, 직책, 급여, 주소, 핸드폰번호 | |
부양가족 | 사원이 부양하는 가족 | - | 이름, 성별, 관계, 나이 | |
부서 | 회사 내에 존재하는 팀 단위 조직 | - | 부서번호, 부서명, 지점, 위치(층) | |
프로젝트 | 회사에서 수행되는 과제 | - | 프로젝트ID, 프로젝트명, 발주처, 프로젝트 기간(시작/종료일), 수주금액, 프로젝트 개요 | |
물품 | 프로젝트에 투입되는 자재 | - | 물품번호(유일), 물품명, 가격, 구성물품 | |
공급자 | 물품을 공급하는 개인 또는 조직 | - | 공급자번호(유일), 공급자명, 신용도, 거래시작일자 |
사원 | 부서 | 프로젝트 | 공급자 | 물품 | |
사원 | - | 소속된다 | 참여한다 | - | - |
부서 | 배치된다 | - | - | - | - |
프로젝트 | 수행한다. | - | 물품을 주문한다. | - | |
공급자 | - | - | 물품을 제공한다 | - | 관리한다 |
물품 | - | - | - | 확보한다 | 구성물품을 관리한다 |
기준 엔티티 | 관계형태 | 참여방법 | 관련 엔티티 |
부서 | 1 : M | --선택--> <--필수-- |
사원 |
사원 | 1 : M | --선택--> <--필수-- |
부양가족 |
프로젝트 | M : N | --선택--> <--선택-- |
사원 |
프로젝트 | M : N | --필수--> <--선택-- |
물품 |
물품 | M : N | --선택--> <--선택-- |
공급자 |
물품 | 1 : M | --선택--> <--필수-- |
구성물품 |
◇ 물품 - 구성물품
WHY 병렬관계일까?
- 엔티티 간 독립적으로 분리되어 있으면서 두개 이상의 관계가 상호 간에 존재하기 때문
( 구성된다 - 구성한다 )
◇ 물품 - 공급자 / 물품 - 프로젝트
WHY? 둘다 M : N 관계인데 <물품 - 프로젝트> 관계는 명시적으로 나타나지 않았을까?
"물품을 공급하는 공급자가 있다. 공급자 별로 공급이 가능한 물품 정보도 관리한다. "
- 물품과 공급자 간 공급이 가능한 물품정보(엔티티)가 있어야 한다고 요청했으며
공급가능한 물품 중에서 프로젝트에 물품이 공급되었기 때문이다.
결국, 요구사항 정의서를 꼼꼼하게 파악하고 작성하는 것이 중요한 것 같다!!
[DB] 데이터 모델링 - 반정규화(DeNormalization) (0) | 2021.05.28 |
---|---|
[DB] 데이터 모델링 - 정규화(Normalization)란? (0) | 2021.05.27 |
[DB] 데이터 모델링 - ERD 실습 문제 : 판매전표 모델 (0) | 2021.05.27 |
[DB] 데이터 모델링 - 속성(Attribute) 란? (0) | 2021.05.26 |
[DB] 데이터 모델링 - 식별자(Identifier) 란? (0) | 2021.05.26 |