관계형 데이터 모델링 프리미엄 가이드 DB구축 (2017년)
이력 관리 모델 유형 0 0 811

by 구루비스터디 이력관리 [2018.01.19]


12.4 이력 관리 모델 유형

엔터티 하나로 현재와 과거 데이터 관리

  • 데이터 모델을 관리하기도 편하며 개발하기에도 편하고 데이터를 생성시키기도 편하다는 장점
  • 왼쪽 모델은 하위(자직) 엔터티를 가질 수 없으므로 모델의 확장성이 떨어진다.


하위(자식) 엔터티와 관계가 끊어진 릴레이션- 잘못된 경우


주문 이력 엔터티와 릴레이션 - 바른경우


엔터티 하나로 관리되는 경우

  • 이런 종류의 엔터티는 대부분 하위(자식) 엔터티와 참조 무결성(RI) 관계가 성립하지 않는다.
  • 엔터티에서 과거와 현재 데이터를 관리할 때는 엔터티명에 '~이력'을 시용하지 않는 것이 일반적이다
  • (과거의 데이터를 별도로 관리할 때만 엔터티명에 '~이력' 을붙인다 )


두 개의 엔터티에서 현재와 과거 데이터 별도로 관리

  • 보험계약 엔터티에 현재상태만 존재하므로 과거 내역을 같이보려면 UNION등의 비효율 발생


변경 속성을 별도의 엔터티로 관리

  • 계좌비밀번호 이력 엔터티에서는 과거의 비밀번호만을 관리한다.
  • 데이터 값은 중복되지 않더라도 데이터 모델의 속성 중복이 발생
  • 현재의 비밀번호가 거의 일방적으로 사용된다는 점에선는 바람직하다.

  • 특정 시점의 비밀번호가 무엇이었는지를 조회히는 요건이 있을때 유리
  • 변경일자 대신 시작일자,종료일자 속성(선분이력)으로 효율적으로 조회할수있다.


모든 변경 속성을 하나의 통합 엔터티로 관리

  • 코드컬럼은 속성코드와 속성명으로 데이터 일치 필요
  • 성능 문제 발생하면 snap shot방식을 이용.


유사한 변경 속성들을 묶어서 별도의 엔터티로 관리

  • 보험계약 이력을 날짜변경속성과 금액관련속성을 분리
  • 변경된 속성조회도 쉽고 모델의 확장성도 좋아진다.
  • 엔터티가 늘어나는 단점이 존재.


정리

"주주클럽 스터디모임" 에서 2017년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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