리버스(Reverse) 모델링

  • 모델링에 있어서 가장 중요한 포인트는 엔터티를 정확하게 정의하는 것이다.
  • 방법론은 큰 틀(Framework)이며 본질은 함수 종속을 기반으로 엔터티/관계/속성을 정의하는 것이고 일반화(통합)/비정규화/이력 관리 등을 적용해 최적의 모델 구조를 구축하는 것이다.


저자의 모델링 방법
  • 업무 요건을 기반으로 개념 모델링 완료 후에 논리 모델링 수행 : 절차래도 수행. 현행 데이터베이스가 없을 경우 업무 요건을 바탕으로 구축
  • 현행 시스텀을 기반으로 개념 모델링 완료 후에 논리 모델링 수행 : 첫 번째와 동일하지만 업무 요건 대신 현행 데이터베이스를 기반으로 수행
  • 핵심 엔터티를 기반으로논리 모댈링 완료후에 전체 앤터티 논리 모델링 수행 : 리버스 모델링. 일정에 여유가 없을 경우 사용.


  • 200개의 영역 모델링 수행


  • 중요 엔터티에 해당하는 개념 모델을 먼저 구축하고 논리 모델링을 시작하는 방법
    • 중요 엔터티(15개)에 해당하는 업무 요건을 분석
    • 중요 엔터티에 해당하는 개념 모델링 수행. 엔터티와 주 식별자만 표현
    • 구축된 개념 모델에 대해 논리 모델링을 수행해 엔터티에 대한 모든 속성 표현
    • 나머지 업무 요건을 분석하고 논리 모델링을 수행해 엔터티(185개) 정의와 주 식별자, 일반 속성 표현
  • 개념/논리/물리 모델 순으로 모델링을 해야 한다는 생각이 지배적이지만 절차를 유연하게 반영할 필요가 있다.


문제점
  • 개념 모델링의 범위가 불분명
  • 시간이 많이 소요

  • 현행 엔터티를 분석해 개념 모델부터 구축하는 방법
    • 현행 데이터베이스가 없어도 화면 정의서 등으로 수행
  • 데이터베이스를 사용해서 ERD를 작성하는 것을 역공학(Reverse Engineering)이라고 한다.


단계
  • 리버스 모델을 만들고 15개의 중요 엔터티를 선별
  • 선별된 15개의 중요 엔터티에 해당하는 업무 분석
  • 15개의 중요 엔터티에 해당하는 개념 모델링 수행. 엔터티와 주 식별자만 표현
  • 구축된 개념 모델에 대해 논리 모델리을 수행해 모든 속성 표현
  • 185개의 엔터티에 해당하는 업무 요건을 분석하고 논리 모델리을 수행해 엔터티 정의와 주 식별자 일반 속성 표현.

  • 현행의 중요 엔터티만을 대상으로 논리 모델링까지 수행
  • 현행 데이터베이스를 기반으로 모델링을 수행해 부족한 부분을 개선하는 방법이므로 리모델링(Re-Modeling)이 된다.
  • 주제 영역별로 선별된 중요 엔터티에 대해서 논리 모델까지 구축한다.
    • 엔터티의 속성 하나하나를 분석한다. 이 과정을 통해서 주변 엔터티도 도출이 되고 관계로 표현된다.
그림 11.4

  • 그림 11.4에서 도출된 모든 함수 종속
    • FD1 (주문변호 상품코드) -> 주문수랑
    • FD2 상품코드 -> (상품명, 단가)
    • FD3 고객번호 -> 고객명
    • FD4 주문번호 -> (주문일자 배송요정일자 고객번호)


엔터티 도출
  • 엔터티1:#주문번호 #상품코드 주문수량
  • 엔터티2:#상품코드 상품명, 단가
  • 엔터터3: #고객변호 고객명
  • 맨터티4: #주문변호 주문일자 배송요정일자 고객번호
  • 이 모델링에서는 개념 모델이 존재하지 않는다.
  • 중요한 소수의 엔터티에 대해서 상세 논리 모델을 최대한 빨리 구축하는 것이 이 방법의 목적이다.
  • 엔터티나 속성을 분석하고 주로 수정하면서 모델링이 진행돼 결과를 바로 모델에 반영할 수 있으며 개념 모델이라는 단계를 거치지 않아 모델링을 빨리 수행할 수 있다.
  • 현행 엔터티의 개수가 많고 모델 구축 시간이 적을 때 사용


단점
  • 논리화를 제대로 진행하지 않을 경우 현행 모델과 유사하게 된다.
  • 분석이 제대로 되지 않을 경우 많은 엔터티 도출
  • 많은 경험이 필요함.


장점
  • 업무에서 핵심적으로 사용되는 엔터티에 대해서만 모델 구조와 속성을 빨리 확정하는 것이 목적.
  • 중요 엔터티와 속성이 존재해 관련자에게 많은 데이터를 구체적으로 보여줌으로써 원할한 커뮤니케이션 도구가 된다.
  • 초기 단계부터 핵심적인 업무에 대해 상호 검토가 충분히 이루어진다.


리버스 모델링 수행 단계
  • 현행 ERD 생성
    • DBMS 에 직접 접속해서 역공학(Reverse Engineerin)을 수행하는 방법
  • 실무에서 가장 많이 사용하는 방법. 현행 DB에서 추출한 엔터티와 속성 리스트를 사용해서 ERD 생성
  • 현행 ERD가 존재하면 그 ERD 사용하는 방법


중요 엔터티 선별
  • 현행 담담자와 협업하여 일한다.
  • 속성을 하나씩 분석하면서 논리화 수행
  • 자주 인터뷰를 가진다. 인터뷰를 통해 논리화 과정을 거쳐 모델링을 수행할 수 있다.
  • 식별자 속성 후에 관계 속성을 분석한다.
  • 일반 속성을 분석한다.
    • 기본적으로 표준화를 지켜준다.
    • 속성의 위치를 조정한다.
  • 논리 모델이 구축되면 관련자들과 리뷰를 수행한다.
  • 리뷰 후 나머지 엔터티로 모델링 대상을 확장한다.

  • (1)은 현행 모델을 TOBE 모델로 개선하는 것으로 좁은 의미의 리버스 모델링이다. 현행 모델에서 중복을 제거하고 데이터를 통합하고 관계를 재정의해 TOBE 모델의 구조를 개선하는 것이 주요 작업이다.
  • 따라서 TOBE 모벨에는 ASIS 모델에 존재히는 요건이 대부분 포함된다. 2에서와 같이 어떤 식으로든 ASIS 모델에 반영도니 TOBE 업무 요건은 문제가 되지 않는다.
  • (3)과 같이 TOBE 모델에 바로 반영해야 하는 TOBE 요건이다. 모델러 스스로 인지하기 어렵다. 실무에서 많이 발생하지 않기 때문에 크게 신경 쓰지 않아도 된다.