대표사진
tobewiseys
  1. 데이터베이스

이미지













































아는 만큼 보이는 데이터베이스 설계와 구축
이춘식 저
예스24 | 애드온2

 


Story 06 자기참조 관계 모델링 기법


데이터 모델링을 수행할 때, 엔터티들이 계층구조를 가지는 경우에는 자기참조관계(Self Relationship, Recursive Relastionship)를 이용하면, 계층에 변화가 발생해도 데이터 모델이나 프로그램을 변경할 필요가 없다는 것을 설명하고 있다. 대표적인 예가 조직도이거나 BOM(Bill of Material)이며, 주의할 점은 관계에 관련된 속성들에게 인덱스를 생성해야 하고, 자기참조관계에 맞는 SQL문장을 사용해야 한다는 것이다.


 


자기참조관계에 적합한 SQL문장은 오라클의 경우에는 START WITH .. CONNECT BY PRIOR 를 사용하면 되고, MS SQL Server 2005 이상인 경우 CTE(Common Table Expression)를 활용하면 되겠다. http://movestar.egloos.com/2308567 http://www.simple-talk.com/sql/t-sql-programming/sql-server-cte-basics/ http://www.codeproject.com/Articles/275645/CTE-In-SQL-Server http://iris2380.egloos.com/49881


 


자기참조관계가 1:1, 1:M, M:N 일 수 있는데.. 이중에서, M:N과 같이 다대다의 관계인 경우에는, (RDBMS에서 처리하기 위해서) 1:다의 관계로 풀기 위한 관계엔터티타입(또는 연관 엔터티타입 Association Entity)을 추가해야 하는 것을 설명하고 있다.


 


데이터 모델링에서 엔터티타입들 간에 다대다의 관계가 도출되면, (이러한 다대다 구조를 RDBMS가 지원하지 않기 때문에..) 반드시 1대다의 관계로 풀어주어야 한다. 1대다의 관계를 풀기 위해서는 관계엔터티타입(또는 연관엔터티타입)을 추가해서 해결한다. 구체적인 내용은 http://blog.daum.net/genesis_hymin/2395870 을 참조해 보자.. (원 출처가 제니시스 기술 http://genesis.co.kr 이라고 되어 있는데.. 해당 사이트에서 찾기가 힘들다..)


 


Story07 엔터티타입, 이렇게 도출하라


프로젝트 마다, 개발 방법론이 있어서 분석/설계/개발/테스트/이행과 같은 각 단계(Phase)별로 어떤 활동(Activity)과 작업(Task)를 해야하는지 정해지고, 설계 단계에서 데이터 모델을 위한 활동과, 어떤 툴과 어떤 기법을 사용하여 산출물을 만들어야 하는지 정해져 있을 것이다.


 


하지만, 불행히도 어떻게 데이터모델을 만들어야 하는지 모델링 기법이 상세하게 설명되어 있지 않은 경우가 많아, 설계자들이 자신의 경험과 지식, 현재 주어진 상황 파악 등을 기반으로 엔터티타입을 도출하게 된다.


 


대부분의 프로젝트에서 시간/비용/인적 자원의 제한이 존재하기 때문에, 정해진 기간 내에 한정된 인력들이 수많은 관리 대상 데이터들에 대한 모델을 만들고자 할 때, 기존에 활용되고 있는 구 데이터모델을 그대로 활용하고 싶은 강한 유혹을 떨쳐 버리기 힘들 것이다.


 


기존 데이터 모델을 완전히 무시하는 것도 문제이지만, 책에서 이야기한 바와 같이, 기존 데이터 모델을 그대로 사용하는 것은 현재 시스템이 가지고 있는 문제를 그대로 신시스템에서 발생할 수 있다는 점을 유념해야 겠다.


 


엔터티타입을 도출하기 위하여 1) 다양한 자료(업무기술서, 장표, 인터뷰, 구시스템 등)에서 명사를 활용하는 방법, 2) 정규화를 적용하는 방법, 3) 엔터티타입을 기본/중심/행위로 구분하여 업무구조모델링, 업무흐름모델링, 기술적접근에의한 모델링, 모델의 검토 및 정제와 같이 4단계 데이터모델링 방법을 소개하고 있으며, 이중에서 업무를 이해하고 있다면, 4단계 데이터모델링 방법이 가장 효과적이라고 설명하고 있다. 마지막으로, 도출된 엔터티타입을 검증하기 위하여 상관매트릭스(CRUD Matrix)를 활용하는 방법을 설명하고 있다.


 


저자가 이상적으로 생각하는 엔터티타입 도출 절차는 다음과 같다.


1) 기존 시스템의 스키마 참조,


2) 해당 업무 파악(업무기술서),


3) 데이터 구조파악(장표 등),


4) 업무 특징 및 규칙 파악(업무 담당자 인터뷰),


5)기본 엔터티타입 도출,


6) 핵심업무처리를 위한 중심 엔터티타입 도출,


7) 업무 프로세스를 진행시켜 행위엔터티 타입을 도출하고,


8) 도출된 엔터티타입을 프로세스 대 엔터티타입 상관매트리스를 이용하여 검증


 


 


 


 

좋아요
댓글
0
작성일
2023.04.26

댓글 0

빈 데이터 이미지

댓글이 없습니다.

첫 번째 댓글을 남겨보세요.

tobewiseys님의 최신글

  1. 작성일
    2013.1.11

    좋아요
    댓글
    0
    작성일
    2013.1.11
    첨부된 사진
    20
  2. 작성일
    2012.12.24

    좋아요
    댓글
    0
    작성일
    2012.12.24
  3. 작성일
    2012.12.23

    좋아요
    댓글
    0
    작성일
    2012.12.23

사락 인기글

  1. 별명
    리뷰어클럽공식계정
    작성일
    2025.5.2
    좋아요
    댓글
    92
    작성일
    2025.5.2
    첨부된 사진
    첨부된 사진
    20
  2. 별명
    리뷰어클럽공식계정
    작성일
    2025.5.2
    좋아요
    댓글
    122
    작성일
    2025.5.2
    첨부된 사진
    첨부된 사진
    20
  3. 별명
    리뷰어클럽공식계정
    작성일
    17시간 전
    좋아요
    댓글
    63
    작성일
    17시간 전
    첨부된 사진
    첨부된 사진
    20
예스이십사 ㈜
사업자 정보