참고 URL : 데이터 온에어 산출물 게시판의 2014년 대한민국 DA설계 공모 대전 모범답안 및 대상작
우리 기업은 서울에 본사, 제주에 R&D 연구소, 대전과 구미에 제 1, 2 생산공장
을 둔 정밀광학기기제조기업이다. 또한 영업 및 판매목적으로 전국 20여 곳에 영
업지사를 두고 있다.
=> 핵심엔터티인 '조직'에 대해서 간략히 소개
조직의 속성중 '위치/소재지'를 표시,
우리 기업에는 이와 같이 각자 고유한 업무를 전문적으로 수
행하는 정규직직원, 계약직직원, 협력업체직원들이 전국에서 흩어져 근무하고 있
다.
=> 핵심엔터티인 직원과 직원의 Subtype인 3가지 Type을 소개
이와 같은 우리 기업의 특성을 살리고자 각 지역의 회사부지 내에 1개 동을
숙박(휴게)시설로 활용할 수 있도록 복지시설을 운영 중이다.
=> 핵심엔터티인 숙박시설이 지역 별로 1개만 운영, 지역과 숙박시설이 1:1 관계를 표현
시설이용과 함께 지
역 내 유명 관광지, 맛 집 등을 제휴하여 함께 이용 시 여러 혜택이 부여될 수 있
도록 하였다
=> 시설과 연관된 엔터티인 유명 관광지와 맛집을 소개
복지시설을 활용할 수 있는 자격은 우리기업의 직원과
협력업체 종사자에 주어진다. 우리기업의 직원은 정규직직원과 계약직직원으로 나
눌 수 있는데 계약직직원에는 복지시설운영담당자도 포함된다. 정규직은 퇴직일
당일까지 계약직 직원과 협력업체 소속직원은 개인과 기업이 계약 만료일자 당일
까지 복지시설을 이용할 수 있다
=> 직원 속성과 복지시설과의 관계
직원의 구분 : 사내직원(정규직 직원, 계약직원), 협력업체 직원
각 직원의 속성 : 정규직(입사일자, 퇴직일자), 계약직원,협력업체직원(계약만료일자)
복지시설 이용 가능자는 퇴사일/계약만료일자 이전까지만 가능
한 개인이 특정시점에 두 개 이상의 소속기업이
나 계약형태를 가질 수 없으나 과거의 소속이력은 관리되어야 한다. ‘A’란 개인이
우리기업의 정규직 직원으로 근무하다 협력업체 소속으로 재취업한 경우 정규직
직원으로 복지시설을 이용한 실적과 협력업체 직원으로 실적을 분리할 수 있어야 한다.
=> 요구 조건에 '사번'을 재 사용한다는 조건이 없어, 조직 변경 시 새로운 '사번'으로 과거 소속과 현재 소속을 구분이 가능
소속 이력은 속성 입사일자(계약시작일자) + 퇴사일자(계약만료일자)를 통해서 가능
우리기업의 조직과 협력업체 정보 역시 관리자에 의해 한번 입력되면 예약
이나 통계 등에서 계속 재사용되도록 하여야
=> 핵심 엔터티인 조직과 협력 업체를 소개
우리기업의 조직은 본사, 생산공장, 영업지사로 구분되고 생산공장 하위에 1공장과 2공장이 관리되도록 한다.
생산공장 전체의 사용실적정보와 공장 별로 사용실적정보를 각각 알 수 있어야
한다. 다만, 위에서 제시한 사용자의 분류와 조직의 분류는 2014년 개편될 사업구
조개편, 조직구조혁신, 복지시설사용규정의 변경이 예상되기 때문에 이를 반영할
수 있는 구조여야 한다. 조직이 신설/폐지되거나 조직의 상/하위 구조가 변경될
수 있으며 직원 관리체계 역시 ‘정규직, 계약직’이 아닌 ‘임원급, 중간관리자급, 실
무자급’이나 ‘경영-연구개발-생산-영업’등으로 변경될 수 있다. 이러한 변화가 발생
하더라도 핵심 엔티티의 변화 없이 동일한 데이터 구조에서 관리될 수 있도록 개
선되어야 한다.
=> 유연한 조직 과 직원 관리 체계의 엔터티
조직 엔터티가 유연하게 구성이 가능해야 하고 상/하 관계로 유지, 이러한 조직 체계가 언제든지 변경이 가능하기 위해서는 순환관계 엔터티 구조로 되어야 하며, 신설/폐지를 위해서는 '생성일자'와 '폐지일자' 속성이 필요
직원 관리 체계도 조직 엔터티와 동일하게 순환관계 엔터티와 속성으로 '생성일자'와 '폐지일자'가 필요
둘의 통합은 서로간의 유사한 속성이 많으나, 엔터티 특성이 상이하여 맞지가 않다고 판단
통합하면서 SubType별로의 관계와 속성을 도출
정규직은 도출된 '우수사원'과의 관계, 협력업체 직원은 '소속기업'와 직원엔터티의 SubType중인
정규직 직원에 대한 정보는 사원번호, 한글이름, 영문이름, 입사일자, 소속부서, 성
별, 직급, 신분구분 등의 기본정보와 주소지, 휴대전화, 주소지 유선전화, 부서 전
화번호, 이메일 등의 연락처 정보, 우수사원 선발여부, 선발 년도와 같은 복지시설
사용 우선권 정보를 관리한다.
=> 대부분 속성들이 사원번호와 1:1 관계이나, 우수사원은 사원별 여러 건이 발생이 가능하므로 1:M 관계라도 별도 엔터티인 '우수사원'으로 도출
여기에서 '우수사원 선발여부' 속성은 한번 이라도 우수 사원 여부로 생각하여 횟수와 상관이없다고 판단하여 사원번호와 1:1 관계로 생각
계약직 직원에 대한 정보는 사원번호, 한글이름, 영
문이름, 입사일자, 소속부서, 성별, 직급, 신분구분 등의 기본정보와 주소지, 휴대
전화, 주소지 유선전화, 부서 전화번호, 이메일 등의 연락처 정보,계약시작일자, 계
약종료일자, 계약체결일자 등의 계약관련정보를 포함한다.
=> 게약직 만의 속성인 '계약시작일자, 계약종료일자, 계약체결일자 '를 도출
협력업체 직원의 경우
일련번호, 한글이름, 영문이름, 소속기업, 성별, 직급 등의 기본정보와 주소지, 휴
대전화, 주소지 유선전화, 부서 전화번호, 이메일 등의 연락처 정보, 우리기업의
협력업체 담당자 정보를 관리한다
=> 요구사항에 별도 Format으로 언급이 없어, 일련번호는 사원번호와 동일하게 취급
협력업체만의 속성인 '소속기업', '기업의 협력업체 담당자' 도출
우리기업의 부서정보는 한글부서명칭, 영문부서명칭, 조직유형(본사,지사,연구소 등), 상-하위 부서, 대표전화번호 등의 정보를관리한다.
=> 별도 식별자 언급이 없어, '부서번호' 명으로 인조 식별자 생성
'조직 유형' 속성은 조직 엔터티의 관계 속성 값을 사용하여 조직 엔터티와 관계
상-하위 부서는 순환관계를 통하여 구현
협력업체 정보는 한글부서명칭, 영문부서명칭, 기업유형, 대표자, 대표전
화번호, 최종협력관계시작 및 종료일자를 관리한다. 협력관계정보는 계약에 따라
지속적으로 체결되고 종료되기 때문에 이력관리가 되어야 한다. 협력업체정보에
대한 정보관리는 우리기업의 계약체결 담당자가 수행하며 지역별 복지시설 담당
자는 직원정보에서 반드시 재사용되어야 한다
=> 별도 업무 식별자가 없어, '협력업체번호' 명으로 인조 식별자 생성
협력 관계 엔터티는 이력 관리를 위해 '협력관계시작일자'와 '종료일자' 속성을 통해서 지원
여기에 추가 속성으로 '계약 체결 담당자' 속성도 필요하며, 이 속성은 직원 엔터티의 사내 직원 SubType과 관계
협력업체 엔터티에서 '최종협력관계시작'과 '종료일자' 속성은 협력업체관계 엔터티의 '관계시작일자'와 '관계종료일자'를 참조하는 추출 관계
지역별 복지시설정보는 각 지역의 복지시설 담당자에 의해 관리되며 지역별 주변
여건과 주된 예약신청현황에 따라 시설물을 리모델링하여 사용할 수 있기 때문에
격실의 고정된 활용도가 정해진 것은 아니다. 현재까지는 객실, 회의공간, 헬스장
등으로 유사하게 활용되고 있지만 각 지역별로 객실 수와 비품, 회의공간의 수,
회의공간에서 활용 가능한 영상/음향장비, 식사가능 여부 등에서 큰 차이가 난다.
이렇게 예약 대상이 지역별로 각각 상이하기 때문에 개별적으로 운영시스템을 구
축하였지만 이번 구축과정을 통해 모든 예약대상물에 대한 통합 구조를 갖추고자
한다.
=> 복지 시설별 담당자는 1명이 배정이 되며, 배정 인원은 계약직 중 한명으로 선택
예약이 가능한 복지 시설물의 구분은 객실, 회의공간, 헬스장으로 가능
여기에서 격실에 대한 정보가 없어, 격실 정보를 바탕으로 상황에 따라 예약 대상물에 대한 리모델링(유연한 구성) 엔터티 도출이 불가
그리고 비품, 회의 공간에서 활용 가능한 영상/음향장비, 식사 가능 여부에 대한 속성의 정보(어떤 속성과의 연관이나 저장하고자 하는 값에 대한)가 불명확하여 추가적인 엔터티나 속성 도출이 불가
우선 기본적인 복지시설물에 대해 시설물 번호, 지역, 주소, 관리부서, 면적,
주요 특징, 주변관광지, 찾아오는 길, 건축 년도, 연락처, 담당자 등의 정보를 관리
해야 한다.
=> 기본적인 복지시설물이라는 표현보다는 복지 시설 장소/지 등의 표현이 좀더 적적하지 않았나 하는 생각 ,아니면 시설물에 대한 이해가 부족할 수 도 있다고 생각
일단 예약대상물(객실,회의실)등을 포함하는 포괄적인이고 바탕이 되는 엔터티
주변관광지는 여러개이면서 다양한 속성을 포함을 할 수 있으므로 별도 '주변관광지' 엔터티로 도출
담당자는 앞서 인용문구에서 있듯이 계약직원이므로, '직원' 엔터티와의 관계 도출
관리부서는 부서 엔터티의 속성을 참조하므로, '부서' 엔터티와 관계 도출
'지역' 속성은 별도 엔터티 도출 여부를 고민할 부분이나, 지역에 종속되는 속성이 별도로 없어, 복지 시설지와 1:1 관계이기도 하여 복지 시설지 엔터티의 속성으로 할당
예약대상물의 정보는 동/하절기 구분, 1회 예약시간단위, 사용인원수
(기준/최대), 휴무일, 예약담당자의 정보와 함께 용도에 따라 추가예약장비(회의장
비, 운동기구 등)의 정보를 관리해야 한다.
=> 복지 시설지에서 운영되는 복지 시설물에 대한 엔터티
예약담당자는 정확히 어떤 직원구분이 가능한지에 대한 설명이 없어, 직원 통합 엔터티와 관계 설정
우리기업의 명의로 인근 관광시설을 이용할 수 있으며 관광지, 음식점 등은 사전
에 등록된 곳만 가능하다.
=>관광지, 음식점에 대해서 관리를 한다는 의미
지역, 주소, 찾아오는 길, 이용금액, 할인금액, 특징, 예약 가능시간정보가 지역별 복지시설담당자에 의해 등록되고 관리된다. 현재까지 연계된 예약자원은 음식점, 휴양림, 사찰, 유적지가 있으며 향후 더욱 다양해 질전망이다. 음식점의 경우 메뉴와 가격, 최소 주문수 등이 추가적으로 관리되어야하고 휴양림의 경우 예약신청코스, 차량진입여부 등이 관리되어야 한다.
=> 지역 속성와 지역별 복지시설담당자 정보는 지역 속성과 1:1 Mapping이 되는 지역의 복지시설지 정보에서 획득이 가능하여 복지시설지' 엔터티와 관계
주변 관광시설 구분은 현재까지는 총 4가지이며, 각 SubType별로 속성이 존재
음식점 subType인 경우 메뉴,가격, 최소 주문수이며, 휴양림 SubType인 경우 예약신청코스, 차량진입여부가 있다
복지시설의 사용금액에 대한 정산은 본사 경영지원본부에서 일괄
수행하며 공적 목적(부서, 동호회)의 경우 부서, 회사 예산에서 일괄 처리된다. 개
인적 목적으로 복지시설을 활용한 경우 월 급여에서 제외된다. 협력 업체의 경우
에는 공적 목적이 인정되지 않으므로 개인별로 복지시설 활용 및 연계프로그램
활용 비용을 계산하여야 한다.
예약 신청은 신청자가 근무하는 지역과 무관하게 신청가능하며 신청자가 동일한
시간에 다른 예약을 신청하여도 가능하다. 단, 동일 시간대에는 서로 다른 지역의
예약 대상을 신청할 수 없다. 신청된 예약은 예약일 1주일 전에 확정된다.
=> 예약 신청과는 무관한 듯 보이는 직원이 근무하는 지역의 '소재지/위치'라는 속성이 도출, 즉 조직 엔터티에서 '소재지/위치' 속성의 할당이 필요
예약시 예약대상물의 '동일 시간대'라는 단어에서 시설물 '사용시작일시'와 '종료일시' 속성이 도출 , 단 이 속성은 예약 대상물 별로 할당이 되므로 예약 신청 대상물 엔터티에 할당
이 속성 정보를 바탕으로 프로그램에서 예약 시 중복이 발생하지 않게 개발이 가능
신청된 예약은 1주일 전에 확정된다는 문구는 '확정일자' 속성에 대한 의미
확정은 동일 예약 대상물과 시간에 신청한 다른 직원이 없는 경우 자동으로 확정
되며 예약 신청을 다수가 한 경우 복지시설의 특성상 정규직 직원, 계약직 직원,
협력업체 직원 등의 우선 순위대로 배정된다. 동일한 우선 순위에 다수가 신청한
경우에는 회사/부서행사 여부, 신청 일시 순으로 배정된다.
=> 예약 확정과 예약 순위에 필요한 정보로써 직원의 구분 속성,신청일시,회사/부서행사 여부(목적)들의 속성이 필요
신청자는 예약 대상별로 개별 건으로 예약을 신청할 수 있거나 단일 예약 신청 건으로 통합 신청할수 있다.
=> 예약 엔터티는 예약 대상물 엔터티와 1:1 관계도 가능하며, 1:M 관계도 가능하여 최종적으로 1:M 관계 도출
단일 건으로 신청된 경우 하나라도 예약 배정을 받지 못하면 다른 예약건에 대해 자동 예약취소가 발생한다.
=> '예약 상태' 속성의 위치는 개별 예약 대상물이 아닌 개별 예약 대상물을 대변하는 예약 엔터티에 할당
부서 단위의 워크샵이나 회사 내 동호회 활동 등의 목적으로 복지시설을 이용하는 경우 해당지역의 부서나 공장 등과 교류활동을 의무적으로 포함하는 패키지 형태로 신청해야 한다.
=> 복지 시설 이용 목적에 따라 패키지 형태 신청여부가 결정, 부서단위 워크샵이나 회사 내 동호회 활동인 경우 '패키지구성' 엔터티와 관계가 발생
이 때 신청시 부서 단위 워크샵인 경우 해당 부서의 속성명이 필요하여 '부서' 엔터티와 관계가 발생, 그리고 사내 행사의 '활동 조직명'(워크샵명이나 동호회명) 속성을 '예약' 엔터티에 추가
이 경우 연계된 외부관광지와 음식점 등의 이용이 무료로 제공된다. 패키지 구성은 해당지역의 복지시설 담당자에 의해 기획되며 복지시설 이용, 지역 담당자와 교류(회의실 또는 운동장 예약), 주변 관광지-음식점이 모두 각 1회씩 무료로 제공된다.
=> 무료 제공 횟수는 각 시설물별(현재는 3가지 구분) 1회 한정, 그 외는 패키지 외 일반 시설물 이용과 동일하게 비용 발생
'무료여부' 속성은 패키지에 속하는 모두 예약대상물에 해당하지 않으므로, 각 예약신청 대상물에 해당하므로, '예약신청물' 엔터티에 '무료여부' 속성을 추가하여 정산시 참조
패키지 사용은 부서나 회사가 인정한 동호회에 한하여 분기별 해당 지역에 한해 1회로 제한된다.
=> '패키지구성' 엔터티에서 지역별/분기별 1회에 한정 사용이 가능하므로 횟수 제한 목적으로 이용년도, 이용분기, 지역정보에 해당하는 '사용시설지' 속성을 할당
업무 식별자(이용년도, 이용분기,사용시설지 속성) 보다는 인조 식별자 '패키지구성번호'가 '예약 신청물' 엔터티와 관계 사용면에서 용이하여 사용
동호회를 '조직' 엔터티에 포함한다면 식별이 가능하나, 현재 요건에서 동호회도 조직으로 포함한다는 없어, 단순히 '활동 조직명' 속성으로 표현하여 인식만 가능한 상태로 표현
여러 지역을 동시에 둘러볼 경우, 각 지역별 패키지를 하나의 패키지로 묶어 신청
할 수도 있다.
=> 한번의 예약 신청에 여러 지역 패키지를 가능하게 관계를 설정
복지시설의 사용금액에 대한 정산은 본사 경영지원본부에서 일괄수행하며 공적 목적(부서, 동호회)의 경우 부서, 회사 예산에서 일괄 처리된다. 개인적 목적으로 복지시설을 활용한 경우 월 급여에서 제외된다. 협력 업체의 경우에는 공적 목적이 인정되지 않으므로 개인별로 복지시설 활용 및 연계프로그램활용 비용을 계산하여야
=> 정산에 필요한 예약 신청 목적, 신청자 정보를 '예약' 엔터티에 할당
실 예약자가 해외출장 등으로 예약이 불가능한 경우 대리신청이 가능해야 하며,
실제 예약자와 대리신청자의 정보가 모두 기록되어야 한다
=> '예약' 엔터티에 '대리신청자' 관계 속성를 할당
예약자가 부정한 방법으로 복지 시설물을 사용하거나 기물을 파손 한 경우 특정 기간 동안 이용을 제한한다. 복지시설 이용 제한과 회사의 징계기간중인 자에 대해서는 해당 날짜에 예약을 할 수 없도록 한다.
=> 특정기간 (제안시작일자 와 제한종료일자)동안 특정 직원정보와 사유로 복지시설물이용제한 엔터티 도출
회사의 징계기간은 인사시스템에서 일괄 등록하여 제공받아 관리한다.
=> 복지시설문이용제한 엔터티와 데이터 구조는 동일하나, 데이터 성격이 상이하여 구분
모범답안 데이터 모델
요건을 바탕으로 작성한 저의 데이타 모델
분류 | 모범답안 | 저의생각 |
---|---|---|
주변관광지 | 하나의 속성 , 복지시설물'과 '주변 예약'을 독립적으로 분리 | 이 데이터 모델에서 주변 관광지는 회사가 직원들을 대상으로 무료 또는 추천 개념으로 관리를 하는 대상이며, 복지시설물과 연관되는 주변관광지로 다른 일반 주변관광지와는 차이가 존재 즉, '복지 시설물'이 존재해야만 의미가 있는 존재로 '복지 시설물'이 부모이고 '주변관광지'는 자식 엔터티로 이해 |
분류 | 모범답안 | 저의생각 |
---|---|---|
엔터티명 | '예약기준' 치 예약시 참조하는 성격의 정보로 엔터티 명을 작성 복지시설물을 예약할때 '예약기준'을 참조하여 예약을 한다는 전제하에 데이터 모델을 설계 | 예약가능 복지 시설물로 이해, 복지시설물 내에 위치한 예약 가능 복지 시설물 정보를 관리하는 엔터티로 이해하고 복지시설물에 종속되는 예약가능시설물로써 용도 별로 구분이 가능한 엔터티로 설계 |
추가예약장비 | 여러개의 장비가 사용될것으로 가정 | 단순 속성으로 텍스트 형식으로 처리 |
분류 | 모범답안 | 저의생각 |
---|---|---|
패키지 속성 | 예약신청이력 엔터티의 패키지식별자와 공무패키지식별자 속성에 대한 명확한 의미 파악 불가 | 패키지 엔터티로 지역/분기별 활동여부를 엔터티로 도출하여 지역/분기별 1회 한정 조건이 가능하도록 참조 정보 제공 |
대리신청자 속성 | 관련 속성 대리 신청자 관련 속성이나 엔터티를 찾을 수가 없음 | 예약 엔터티에 대리 신청자 관계 속성을 추가 |
기타예약관련속성 | 예약신청일시,예약진행상태,예약신청자,확정일시 속성이 부재 | 관련 속성을 예약 엔터티에 할당 |
복지시설예약신청자와 복지시설물이용자의 동일 여부 | 협력업체/회사 명의로 신청이 가능하다고 표현 | 복지시설예약신청자는 사람으로판단, 즉 이용자는 회사/부서가 될 수 있으나 신청자는 사람으로 해야한다고 생각 |
동일시간대의 예약가능속성여부 | 관련 속성부재 | '예약신청물' 엔터티 '이용시작일시'와 '이용종료일시' 속성을 할당 |
분류 | 모범답안 | 저의생각 |
---|---|---|
패키지사용횟수제한 | 횟수제한관련속성이나 엔터티 부재 | 패키지구성 엔터티에 '이용년도'+'이용분기'+'사용시설지번호' 속성이 존재하여 프로그램에서 이 정보를 참조로 횟수 제한 체크가 가능 |
지역패키지통합 | 패키지관련 2가지 속성이 지역패키지 통합가능한 속성의 의미가 없어 보임 | 한번의 예약으로 여러 지역 패키지와 관계를 형성하는 구성으로 지역패키지를 통합 가능 |
분류 | 모범답안 | 저의생각 |
---|---|---|
정산관련 속성 | 사용정산 엔터티에서 사용금액과 정산금액 구분으로 실제 정산금액을 이용시설별로 관리가 가능 | 패키지구성인 경우에 대해서만 무료여부 속성이 존재, 기타 일반 이용이나, 패키지무료 횟수 초과인 시설이용에 대해서는 정산금액 알 수가 없음 |
신분구분의 정확한 의미가 모호하여 직급인지 , 사내/외부 직원인지, 역할인지에 대해서 파악이 불가
직원 관리 체계가 유연하게 설계가 되어야 한다는 요건이 있으나, 정규직/계약직에 대해서 구분을 하는 요건과 충돌이 발생
요건에서 각 사용자별 목적별로 정산 주체에 대해서만 언급하여 정산 관련 속성 도출에 어려움이 있었음.
복지시설 이용 사용자와 목적은 이미 예약 엔터티에서 파악이 가능하므로 관련 금액 속성이 필요
요건 자체가 구체적인 부분이 없어 데이터 모델 역시 간략하게 정의 필요
복지시설물의 속성들이 이용 가능한 복지 시설물에 개별 속성이 아니고 건물과 같은 큰 규모의 시설로 다양한 종류의 예약 가능한 시설물을 포함
실제 고객들이 예약하고자 하는 대상물을 '예약대상물' 명으로 하는 요건이 있으나, 모범답안은 '예약기준' 명으로 정의
아직까지 정확히 예약 시 어떤 데이터로 구성이 되는지가 파악이 안된 상태
4.1 예약 신청자와 이용자 속성을 분리 필요
4.2 비용 정산 관련 속성 또는 엔터티 생성