본문으로 바로가기

[Database] 업무 및 요구사항 분석

category Database/Oracle 2017. 2. 27. 13:03

1. 데이터 모델링 정의

 
1)모델 정의
 
일상생활에서 많이 접할 수 있는 단어인 모델(Model)은 다양한 현장에서 사용된다. 
예술 분야에서 그림, 사진 등과 같은 작품의 대상이 되는 인물이나 대상을 보통 모델이라고 한다. 
아파트 분양을 할때 시공 회사에서 제공하는 모델 하우스는 분양을 원하는 사람들에게 아직 아파트 자체가 현존하지는 않지만 어떤 모습과 환경으로 시공자가 아파트를 건설할 것인가에 대한 정보를 제공한다. 
이와 같이 모델이란 어떤 대상을 의미하는 포괄적 의미를 가지고 있다고 할 수 있으며, 특히 데이터 모델은 현실 세계에 대해 우리가 관심있어 하는 대상을 데이터베이스화 하기 위한 개념적 도구라고 정의할 수 있다.
 
 
2)모델링 정의
 
모델링이라는 단어는 실체를 나타내는 일과 모형화라는 의미로 해석된다. 
‘실체를 나타낸다’의 의미는‘대상을 나타낸다’라는 말로 해석될 수도 있다. 
모형화라는 의미는 ‘형태를 만드는 일’ 혹은 ‘대상을 만드는 일’이라고 해석할 수 있다. 
따라서 데이터 모델링이란 사용자의 요구사항으로부터 데이터의 실체를 나타내는 일이라할 수 있다.
 
모델이란 현실 세계의 추상화된 반영이다.
데이터 모델링을 다시 정의하면 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙(Business Rule)에 대하여 참(True) 또는 거짓(False)을 판별할 수 있는 사실(사실명제)을 어떻게(How),누가(Who) 접근하는지 또한 이에 대한 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법이라 할 수 있다.
 
즉, 현재 업무를 파악하여 문제점을 인식하고 개선 사항을 도출하며 미래에 적합한 설계를 이끌어 내기 위해 인간이 해야 할 대부분의 결정들을 내리는 단계까지를 모두 포함하는 것이 데이터 모델링이다.

 
3)데이터 모델링시 주의점
 
- 중복(Duplication)
데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다.
이러한 지식 응용은 데이터베이스의 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
 
- 비유연성(Inflexibility)
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
 
- 비일관성(Inconsistency)
데이터의 중복이 없더라도 비일관성은 발생한다. 
예를 들어 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 것이다. 
개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문이다. 
데이터 모델링시 데이터와 데이터간 상호연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.
 
4) 데이터 모델링 단계
데이터 모델링은 현실 세계의 기업 업무에서 발생하는 데이터에 대하여 물리적으로 데이터베이스화하기 위해 이루어지는 과정 중의 한 단계이다. 
이 데이터 모델링은 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링 등 3단계로 나눌 수 있으며, 엄밀한 의미에서범주로 보기도 한다.




5) 프로젝트 진행과정
 
   계획  -> 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
                             ↓
             데이타베이스 모델링 
      (전체 프로젝트 수행 시간에 50% 차지)
 
 
 
  (1) 업무분석 
       --------                         
     : 관련분야에 대한 기본적인 지식과 상식을 가지고 있어야 합니다.
       문서를 중심으로 업무파악,현행 업무 분석, 요구 기능 분석,
       담당자와 인터뷰...등 
       산출물 : 요구사항 명세서
 
                    ↓
 
   (2) 개념적 데이타베이스 모델링  
        --------------------------
      : 업무를 일반화 시키는 단계, 엔티티추출 및 속성(Attribute)을 구성, 엔티티간의
      관계 정의, 
ER-Diagram  정의 (ppt)
 
                    ↓
 
   (3) 논리적 데이타베이스 모델링 
        --------------------------
   : 스키마 설계 , 정규화 과정 수행, 관계형 데이타베이스 이론이 적용되는 
     
단계(ER-Win)
   
    스키마란? 
    데이타베이스 구조, 데이타베이스 내의 개체와 개체들의 관계 
그리고 제약조건등의
    명세
 
                    ↓
 
    (4) 물리적 데이타베이스 모델링 
        --------------------------
    : DBMS의 종류결정, 컬럼의 데이타 타입과 사이즈 정의 , 제약조건, 인덱스정의, 
    
역정규화  실제 데이타베이스 스키마 생성(ER-Win)


2.  업무 및 요구 사항 분석 
 
 1) 업무 분석
 
  →  업무분석을 위해선 관련 분야에 대한 기본적인 지식과 상식을 가져야 함
      - 회계상식, MIS(경영정보 시스템), ERP(전사적 자원 관리)에 대한 개념습득 
 
  → 업무분석할 회사에 대한 순수한 업무 자체와 업무 프로세스 파악에 초점을 두고
      분석해야 합니다.
 
  → 우선 문서(서류, 장표, 보고서)를 이용하여 데이터로 관리되어지는 항목들을  파악
     하고 업무과 관련된 세부적인 프로세스를 정의 하기 위해 
담당자와 인터뷰를
     합니다.
 
  → 현재의 업무를 어떠한 방법으로 효율적으로  했으면 좋겠다고 하는 사용자 들의
      요구 분석은 기본적인 업무 분석이 마무리된 후에 진행하는
 것이 좋습니다.
 
 
 
 2) 업무분석한 내용의 예
 
  (1) 학원시스템 →학생관리
 
     - 학원에서는 학생들의 출결상태와 성적 등을 과목별로 관리하기를 원하고 있다.
 
 
   (2) 택배회사 관리 시스템 → 직원관리
    
     - A택배회사의 직원은 입사하면서 직원 한 명당 한대의 자동차를 할당 받게 된다.
     - 직원은 직원번호, 이름, 입사일을 기록하며, 할당받은 자동차는 자동차번호,
       색상, 모델명을 기록하게된다.
 
   (3) 유통회사 관리 시스템 → 고객이 주문한 기록을 관리 
        
     - B유통회사는 한 사람의 고객이 여러 가지 주문에 대한 관계를 기록 하는데  
       고객에는 고객번호, 이름, 주소를 관리하고 주문에는 주문번
호,주문일, 주문량을
       기록한다.
 
 
   (4) 어느회사에서 프로젝트 배정현황 DB구축 
  
     - 각 직원은 하나 또는 그 이상의 프로젝트에 배정될 수 있으며 프로젝트가 없는
       직원도 있을 수 있다. 그러나 각 프로젝트는 반드시 
  한 명 이상의 직원이 배정
       되어야 한다.
 
     - 직원은 이름, 호봉, 특기, 생년월일을 속성으로 가지며, 프로젝트는 프로젝트 번호,
       프로젝트 내역, 시작일, 예상 완료일을 속성으로 
  갖는다.
         
 
   (5) 슈퍼마켓 관리 시스템 
      
     - C슈퍼는 고객 명단을 관리하는데, 각 고객마다 고객번호, 고객명, 주소 및 전화
      번호를 기록한다.
 
     - 매장 물품의 명세관리를 위하여 각 물품마다 물품명, 단가, 수량 및 각 물품에
      고유한 물품번호를  기록한다.
 
     - 고객이 물품을 구입하며, 물품을 구입할때 구입날짜, 및 구입수량 및 총 구입 가격
       을 기록한다.
 
     - 물품들의 제조회사들의 대한 데이타도 관리하며, 각 제조회사마다 제조회사명,
       주소, 전화번호 및 각 제조회사에 대한 제조회사
 번호를 기록한다.
 
     - 물품이 제조될 때마다 날짜와 수량을 기록한다.