관계형 데이터 모델링 프리미엄 가이드 DB구축 (2014년)
리버스 모델링 0 0 40,499

by 구루비스터디 모델링 리버스모델링 [2018.06.10]


리버스(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 요건이다. 모델러 스스로 인지하기 어렵다. 실무에서 많이 발생하지 않기 때문에 크게 신경 쓰지 않아도 된다.
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3644

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입