by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

2장.데이터 분석 및 모델링




분석 단계에 데이터 모델링 특징 5가지

  • 해당 업무의 현재 모습뿐만 아니라 계획, 정책, 전략을 포함.
  • 명명법, 도메인 등 정의된 규칙에 따른 일관성 있는 모델.
  • 실무 업무 전문각각 참여하여 실무에 대한 내용이 충분히 포함된 내용
  • 물리 설계로의 전환이 효율적으로 이루어질 수 있는 모델.
  • 각각의 엔티티타입, 속성, 관계 등에 대한 기본 업무 배경의 객관적 증거 존재.
  • 업무 변형이나 확장이 발생 때 수용 가능한 모델.

1.엔티티타입 정의

엔티티타입 선정 작업 7가지(자료나 방법을활용 활수있다)

  • 업무와 관련해서 설명한 업무 기술서를 이용한다.
  • 현업 담당자와의 인터뷰를 활용한다.
  • 현업의 장표를 활용한다.
  • 기존 시스템이 이미 구축되어 있다면 기존 시스템의 산출물을 검토한다.
  • DFD(업무흐름도)를 통해 업무 분석을 진행하였다면 DFD의 DATA STORE(시스템 상의 자료 저장소)를 활용한다.
  • 현업의 업무를 직접 견학하고 인터뷰와 업무 기술서에서 누락된 정보가 있는지 검토한다.
  • 현재 업무에 나타나지 않았지만 BPR(업무프로세스 재설계)에 의해 업무를 재정의한 경우 관련 엔티티타입을 찾아내야 한다.

엔티티타입 선정 방법(엔티티 타입을도출하는데 도움을 준다)


  - 업무 기술서, 장표, 인터뷰 정리 문서 등에서 명사를 구분한다.
    - 포괄적이고 다른 명사에 종속되지 않은 것을 찾아서 분리한다.
  - 개념이 불분명한 것, 광범위한 것은 제거한다.
    - 개념이 명확하지 않고 불분명한 명사는 제거한다.
    - 가령 "이것,취소, 회사등" 시스템 전체를 포괄하는 단어는 너무광범위해서 제거하는게 좋다.
  - 엔티티타입의 특성이나 속성값은 제거한다.
    - 특성의로 보이는것은 제거한다.(크기, 길이,이름등)
  - 포괄적인 업무 프로세스에 해당되는 명사는 제거한다.
    - 온라인, 취소 등 특정업무에 진행되는과정은제거한다.
  - 중복되는 명사는 제거한다.
  - 누락된 엔티티타입이 존재하는지 유추해 본다.

관계 정의서 작성

  • 엔티티타입을 선정하는 작업이 가장 용이하고, 행위엔티티타입을 선정하는 작업이 제일 복잡하고 어렵다.
  • 엔티티 타입명 : 조사된 엔티티타입 후보를 기술한다.
  • 엔티티타입 설명 : 설정된 엔티티타입의 의미 기술한다.
  • 동의어/유의어 : 작업중에 엔티티타입에서 제거했던 동의어 기술한다.
  • 엔티티타입 구분 : 발생시점에 따라 기본, 중심, 행위 엔티티타입으로 분류한다.
    <이미지 참고 p78>

    엔티티타입 분석 예

  • 업무 기술서를 이용한 엔티티타입 선정 방법
        (1) 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다.
            ① 시나리오에서 명사를 구분한다.
            ② 개념이 불분명한 것, 광범위한 것은 제거한다.
            ③ 엔티티타입의 특성이나 속성값은 제거한다.
            ④ 포괄적인 업무 프로세스에 해당되는 명사는 제거한다.
            ⑤ 중복되는 명사는 제거한다.
            ⑥ 누락된 엔티티타입 정보를 유추한다.
        (2) 선정된 엔티티타입에 대한 초기 엔티티 정의서를 작성한다.
         <이미지 참고 p80>
        (3) 고객과 검즘 회의를 한다.
        (4) ERD에 엔티티타입을 표현한다.
      
  • 장표를 이용한 엔티티타입의 선정방법
        (1) 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다.
            ① 장표에서 명사를 구분한다.
            ② 개념이 불분명한 것, 광범위한 것은 제거한다.
            ③ 엔티티타입의 특성인 것은 제거한다.
            ④ 업무 프로세스에 해당되는 명사는 제거한다.
            ⑤ 중복되는 명사는 제거한다.
            ⑥ 누락된 엔티티타입 정보를 유추한다.
        (2) 선정된 엔티티타입에 대한 엔티티 정의서를 작성한다.
        (3) 고객과 검증 회의를 한다.
        (4) ERD에 엔티티타입을 표현한다.
           - 엔티티타입 선정 3가지가질문에 부합한다면 선정해도된다.
              1. 업무에서 관리할 필요가 있는 정보인가?
             2. 자신만의 속성을 가지고 있는가?
             3. 스스로 또는 다른 엔티티타입에 의해 반복적으로 발생되는 하위존재를가지고있는가?
                예) 사원이란 실체(Entity)가 있다면 사원의 사례가 발생되는지 확인합니다. 
                    즉, 김OO, 이OO, 박OO, 홍OO 하는 개별 사원이 이에 해당합니다.
      

2.관계정의

    (1) 업무 기술서, 장표, 인터뷰 정리 문서 등에서 동사를 구분한다.
    (2) 도출된 엔티티타입과 관계를 이용하여 관계 정의서를 작성한다.
    (3) 고객에게 질문하여 관계를 조더 세분화하고 정확하게 도출하는 작업을 한다.
    (4) 데이터 모델링 툴이나 칠판, 포스트잇을 이용하여 모델을 직접 그려본다.
    (5) 고객과 질문하고 협의하여 모델을 검토한다.
  
  • 관계 정의 예
    <이미지 p90 >

3.식별자 정의

  • 주 식별자 정의
        (1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
          - 직원 테이블에서 "사원번호"를 주식별자로 해야한다. 주민등록번호를 하면 부적합한다 
             같은번호가 있을수있어 적확성이 떨어진다.
        (2) 속성값의 길이가 가변적인 속성은 주식별자로서 적당하지 않다.
          - 명칭, 내역 등과 같이 이름으로 기술되는것들은 가능하면 주식별자로 지정하지 않도록한다.
        (3) 속성값이 자주변하는 속성은 주식별자로서 적당하지 않다.
           - 예)학생 table 주식별자가 전자메일, 학번중 속성값이 변하지 안는 학번을 사용해야한다.
        (4) 주식별자를 선정하기 위한 속성의 수를 적게 한다.
           - 예) 접수 table에 주식별자를 접수번호만하면된다.
           - 접수테이블에 주식별자가 "접수번호"이면 결재테이블에 주식별자가 "결제코드,접수번호" 가된다.
        (5) 주식별자 속성은 반드시 값이 들어와야한다.
      
  • 보조 식별자 정의
    직원테이블에 사원번호가 주식별자면 주민등록번호는 보조식별자가 된다.
  • 외부 식별자 정의
          - 자기 자신의 엔티티타입에 필요한 속성이 아니라 다른 엔티티타입과의 관계를 통해 
              자식 엔터티타입에 생성되어 있는 속성이다.
          - Foreign Key 역할을 하며 외부식별자는 식별자 관계 또는 비식별자 관계에 따라서 
             자식 엔터티타입에서의 역할이 달라질수있다.
      
  • 식별자의 업무규칙 정의
        외부 식별자간 데이터 무결성을 유지한다.
      

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.