본문 바로가기

Study/Modeling Study

[Modeling Study] 2차 다사줘 구매시스템

 

[지문]

 

다사줘 구매시스템
 
저희 회사에서는 사내에서 사용하는 용품구매관리를 위해 시스템을 구축하고자 합니다.
 
직원들이 각각 필요한 용품을 시스템에서 신청을 하면, 총무부에서 취합을 해서 구매를 합니다.
그리고 신청한 수량을 모두 구매을 하기도 하고, 때에 따라서는 총무부에서 나누어 구매를 진행하기도합니다.
 
직원이 용품을 신청할때에는 신청직원번호, 신청용품명, 신청일자, 신청인의 소속부서정보등을 관리하고,
총무부에서 구매시에는 구매용품명, 구매일자, 구매수량, 구매단가, 구매담당직원번호, 구매처 정보를 관리하고자 합니다.
 
그리고 구매되어진 용품들은 사내의 부서들로 배정을 하게 됩니다.
될수록 신청한 수량만큼 배정을 하고자 하지만, 신청수량만큼 구매를 하지 못하는 경우에는 총무부에서 적정하게 배정을 하게 됩니다.
 
배정시에는 부서별로 배정수량, 배정일자 정보를 관리합니다.
신청수량중 구매하지 못한 용품은 추후에 다시 재구매를 하게 됩니다.
 
시스템을 통해서 현재 용품별 신청수량, 미배정수량, 그리고 부서별로 배정수량을 관리하고 싶습니다.

 


[Version 1.0] 

 

 

[Q&A]

 

 Q. 용품구매의 구매담당직원번호, 직원번호와 용품신청의 신청직원번호, 직원번호는 동일한 속성이다?

 A. 구매담당직원번호 = 직원번호, 신청직원번호 = 직원번호였는데 별도로 표시되었다. 구매담당직원번호와 신청직원번호를 삭제하고, 직원번호의 속서명을 변경해야 할 것 같다.

 

 Q. 용품구매하는 주체는 부서이다? 직원이다?

 A. 총무부가 구매한다고 했으나 실제 구매하는 주체는 총무부라는 부서가 아니라 총무부의 직원이 구매한다고 생각하여 직원 엔터티와 용품구매 엔터티를 연결하였다.

 

 

[Version 2.0]

 

 

[수정내용]

 

1. 용품구매 엔터티의 구매담당직원번호와 용품신청 엔터티의 신청직원번호 속성을 삭제하고 직원번호의 속성명을 각각 구매담당직원번호, 신청직원번호로 수정

 

2. 용품 엔터티에 단가를 추가

 

 

[Version 3.0]

 

 

[수정내용]

 

1. 직원 엔터티에 권한구분 서브타입을 추가

 

2. 배정은 총무부에서 한다고 하였는데, 총무부의 누가 배정하였는지 이력이 필요하다고 생각하여 총무부에서 배정하는 것을 총무부의 직원이 배정하는 것으로 수정

 

3. 용품구매에서 구매를 여러번 하는 것이나 재구매 하는 것이나 같은 것이라고 생각하여 따로 표시하지 않았다. 이 부분은 인터뷰를 통해 정해야 할 것 같지만 구매/재구매를 표시해야한다고 가정하에 서브타입으로 표현

 

4. 부서 엔터티에 순환관계를 표시하여 상위 부서를 찾을 수 있게 수정

 

 

[Q&A]

 

Q. 직원엔터티에 권한구분이 Inclusive이면 데이터가 어떻게 되나? 예를 들어달라.

A. 직원번호 직원명 부서번호 권한구분

         1      홍길동     3            1

         1      홍길동     3            2

이런식으로 데이터가 쌓인다. 하지만 이러면 1차 정규형을 위배하게 되고 식별자도 직원번호에서 직원번호, 직원명, 권한구분으로 변경되어야 한다.

이런식으로 권한을 관리하고 싶으면 권한 엔터티를 따로 빼서 1차 정규화를 하여야 할 것 같다.

서브타입에 대해 다시 조사해보니 서브타입 지정 시에 고려사항으로 서브타입 간에 교집합을 허용하지 않는다고 하는데 이 규칙을 내가 무시하였다.

근데 서브타입은 배타적 또는 포괄적일 수 있다 라고도 하는데 그럼 포괄적은 어떨 때 사용되는건지 궁금하다. 고려사항으로 교집합을 허용하지 않는다고 했으니 포괄적은 사용하지 못하는 것이 아닌가?

 

Q. 옵셔널인 속성들이 보이는데, 왜 옵셔널인가?

A. 부서의 상위부서번호는 최상위의 경우 상위가 없으므로 옵셔널로 하였다.

용품구매의 구매구분은 구매이거나 재구매 둘 중 하나는 반드시 있어야해서 멘더토리로 되어야 할 것 같다.

부서의 부서구분, 직원의 권한구분도 멘더토리로 변경해야 할 것 같다.

직원의 권한 구분인 경우 권한이 없을 수도 있다고 생각하여 옵셔널로 하였는데, 없을 경우 기타를 선택하면 되어 멘더토리로 변경해야 할 것 같다.

배정정보에서는 배정을 하게되면 배정수량과 배정일자는 반드시 있어야해서 맨더토리로 변경해야 할 것 같고, 미배정수량은 미배정수량이 있을수도 있고 없을수도 있어 옵셔널로 두면 된다고 생각한다.

 

Q. 배정정보 엔터티에서 미배정수량의 정의가 무엇인가?

A. 미매정수량 : 아직 배정하지 않은 수량

100개를 배정해야하나 어떤 상황으로 80개는 배정하고 20개는 배정하지 못했을 때 20개에 해당하는 부분을 미매정수량이라고 정의한다.

미배정수량을 옵셔널로 하였는데, 미배정수량이 없으면 0으로 넣으면 되어 맨더토리로 변경해야 할 것 같다.

미배정수량은 구매수량 - 배정수량으로 나오는 추출속성인데 추출속성은 논리적 모델에 표현하지 않는 것으로 알고 있었다. 하지만 다시 찾아보니 현재는 이러한 속성들이야 말로 기업의 관리자들이 관심을 가지고 보는 속성으로 반드시 기술할 것을 권장하고 있다고 한다.

 

Q. 용품.용품명 / 용품신청.신청용품명 / 용품구매.구매용품명 이 세 속성은 다 다른 의미인가?

A. 다 같은 의미이다. 용어표준화를 하지 않았다.

 

Q. 용품신청과 용품구매가 왜 1:M 인가?

A: M:M의 관계가 맞는 것 같다. M:M 관계를 해소해야 할 것 같다.