본문 바로가기

이력관리

이력 엔터티를 설계하는 10가지 방법 – 열 번째 드디어 마지막 열 번째 방법입니다. - 마스터에 해당 속성이 존재해 현재 데이터를 관리하고, 속성 그룹의 이력 데이터는 별도의 엔터티에서 관리 - 마스터에 해당 속성이 존재하지 않고, 속성 그룹을 별도 하나의 엔터티를 사용해 현재+과거 데이터를 통합해서 관리 - 마스터에 해당 속성이 존재하지 않고, 속성 그룹을 두 개의 엔터티를 사용해 현재와 과거 데이터를 개별로 관리 유사한 속성을 묶어서 별도의 엔터티로 설계하며, 현재 데이터와 변경된 과거 데이터를 따로 관리합니다. 앞서 밝혔듯이 구분하는 게 도움이 되기 때문에 구별했지만 다섯 번째 방법과 유사합니다. 이력 엔터티를 설계하는 다섯 번째 방법 [그림1] 주식종목가격 엔터티의 속성 값이 하나라도 바뀌면 주식종목가격이력 엔터티에 데이터가 생성합니다. 기준가.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 아홉 번째 아홉 번째 방법은 유사한 속성을 묶어서 별도의 엔터티로 설계하고, 이력 데이터도 같이 관리하는 겁니다. - 마스터에 해당 속성이 존재해 현재 데이터를 관리하고, 속성 그룹의 이력 데이터는 별도의 엔터티에서 관리 - 마스터에 해당 속성이 존재하지 않고, 별도의 엔터티에서 속성 그룹의 현재+과거 데이터를 통합해서 관리 - 마스터에 해당 속성이 존재하지 않고, 속성 그룹을 두 개의 엔터티를 사용해 현재와 과거 데이터를 개별로 관리 이 방법은 네 번째 방법과 유사한데요. 제 기준으로는 내역 엔터티인데, 비교해서 보는 게 이해를 돕기 때문에 10가지의 이력 엔터티 설계에 포함시켰습니다. 여덟 번째 방법, 마지막 열 번째 방법과 비교해 보세요. 유사한 속성을 묶어서 별도의 엔터티에서 현재+과거 데이터를 통합 관리하.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 여덟 번째 이력 데이터를 설계하는 방법이 이제 곧 마무리될 거 같습니다. 시리즈 글 10개 올리는 게 쉽지 않네요. ㅎㅎ 이력 데이터를 설계하는 유형을 정리하면 크게 아래 세 가지입니다. - 전체 속성을 관리(인스턴스 단위) - 속성 하나 하나를 관리(속성 단위) - 유사한 속성을 묶어서 관리(속성 그룹 단위) 위의 두 가지는 이미 설명드렸고 마지막 유형만 남았습니다. 마지막 유형인 유사한 속성을 묶어서 설계하는 방법은 다시 세 가지로 구분할 수 있습니다. - 마스터에 해당 속성이 존재해 현재 데이터 관리, 속성 그룹의 이력 데이터는 별도의 엔터티에서 관리 - 마스터에 해당 속성이 존재하지 않고, 속성 그룹을 별도 하나의 엔터티를 사용해 현재+과거 데이터를 통합해서 관리 - 마스터에 해당 속성이 존재하지 않고, 속.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 일곱 번째 일곱 번째 방법은 여섯 번째 방법의 확장입니다. 엔터티 한 개만 관리하는 여섯 번째 방법에서 두 개의 엔터티로 확장한 모델이 [그림1] 입니다. [그림1] 고객계좌통합번호 속성은 배타 관계(계좌와 고객 엔터티)를 관리하는 속성입니다. 엔터티번호 속성과 함께 사용해야 어떤 엔터티의 식별번호인지를 알 수 있습니다(파란 속성은 같이 사용하는 쌍을 의미). 계좌 엔터티만이 아니라 다른 엔터티의 이력 데이터도 관리하므로 포괄적으로 속성통합이력 엔터티라고 붙이고요([그림1]처럼 단 두 개의 엔터티라면 ‘고객/계좌속성이력’도 좋음). ‘이력엔터티’라는 엔터티에서는 이력 데이터를 관리하는 대상 엔터티를 관리합니다. 이 방법은 여섯 번째 방법의 단점은 모두 가지고 있으며 더 유연하기 때문에 업무를 파악하기 더욱 어려워진.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 속성 단위 이력 관리 예제 이번 시간에는 속성 단위로 이력 관리하는 방법을 정리하는 의미로 다양한 예제를 설명드리겠습니다. 처음부터 다시 읽지 않으려면 잘 따라오셔야 합니다. ㅎㅎ 세 번째, 네 번째, 다섯 번째 방법처럼 한 속성만으로 이력 데이터를 설계하는 방법은 역할(Role)을 관리할 때 자주 사용합니다. 실체 엔터티 간 관계(역할)는 주로 별도의 엔터티에서 관리합니다. 계좌 관리 사원을 관리한다면 [그림1]과 같은 모델이 기본입니다. [그림1] 위 모델에서 변경된 과거 관리 사원까지 관리한다면 [그림2]와 같이 됩니다. [그림2] 계좌관리사원 엔터티에서 현재 계좌를 관리하고 있는 사원과 과거에 관리했던 사원을 함께 관리합니다. 현재 데이터도 관리하므로 ‘~이력’이란 단어를 엔터티명에 사용하지 않았고요. 역할을 관리하는 엔터.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 다섯 번째 이력 엔터티를 설계하는 다섯 번째 방법은 간단합니다. 앞의 두 방법의 혼합입니다. -마스터에 해당 속성이 존재해 현재 데이터를 관리하고 이력 데이터는 별도의 엔터티에서 관리 -마스터에 해당 속성이 존재하지 않고 별도의 한 엔터티에서 현재+과거 데이터를 통합해서 관리 -마스터에 해당 속성이 존재하지 않고 별도의 두 엔터티에서 현재와 과거 데이터를 개별로 관리 [그림1]과 같이 현재 비밀번호를 관리하는 엔터티가 있고, 변경된 과거 비밀번호를 관리하는 엔터티가 있습니다. [그림1] 이 모델에서 계좌비밀번호 엔터티는 발생 내역을 관리하는(발생일자 존재) 엔터티이고, 계좌비밀번호이력 엔터티는 변경 이력을 관리하는(변경일자 존재) 엔터티입니다. 최초에 발생한 비밀번호를 관리하는 계좌비밀번호 엔터티는 계속 업데이트되.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 네 번째 이력 엔터티를 설계하는 네 번째 방법입니다. -마스터에 해당 속성이 존재해 현재 데이터를 관리하고 이력 데이터는 별도의 엔터티에서 관리 -마스터에 해당 속성이 존재하지 않고 별도의 한 엔터티에서 현재+과거 데이터를 통합해서 관리 -마스터에 해당 속성이 존재하지 않고 별도의 두 엔터티에서 현재와 과거 데이터를 개별로 관리 비밀번호가 계좌 비밀번호와 홈페이지 비밀번호, ARS 비밀번호가 존재하면 [그림1]과 같이 설계할 수 있는데요. [그림1] 어떤 종류의 비밀번호가 더 생길지 모르니 정규화를 하면 [그림2] 엔터티와 같아질 것입니다. [그림2] [그림2]가 원천 데이터를 설계한 모델입니다. 마스터 엔터티인 계좌 엔터티에는 비밀번호 속성이 존재하지 않고요. 여러 비밀번호를 구분하기 위해 계좌비밀번호 엔터티에.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 첫 번째 이력 엔터티를 설계하는 첫 번째 방법은 하나의 엔터티에서 과거와 현재(미래)의 데이터를 함께 관리하는 것입니다. [그림1] 수수료율 엔터티에는 계좌의 종류에 따라, 어떤 방법으로 거래했는지에 따라 달라지는 수수료율을 관리합니다. 이 엔터티는 현재의 수수료율뿐만 아니라 과거의 수수료율도 함께 관리합니다. [그림1] 이 경우 변경 일자를 관리하게 되는데요. [그림1]과 같이 변경일자 속성이든 입력일자•시작일자 속성이든요. 이력 엔터티 시리즈 글에서는 편의상 변경일자 속성을 일괄적으로 사용하겠습니다. 사실 변경일자 속성이 적절한지는 아직도 고민 중입니다. 현재 인스턴스에 대해서는 입력 일자가 과거 인스턴스에 대해서는 변경 일자가 명확한데, 합치게 되니 어떤 게 더욱 적절할지 고민입니다. 이 고민은 엔터티를 이.. 더보기
이력 엔터티를 설계하는 10가지 방법 – 서론 이력 데이터에 대한 글을 계속 올리고 있는데요. 개요적인 내용은 소개했으니 다른 주제(식별자)로 넘어갈까를 좀 고민했습니다. 느끼신 분들이 있겠지만 엔터티나 관계 등과 같이요. 개인적으로 제가 책을 쓰면서 다른 책과 차별되도록 구성한 장이 정규화와 통합, 이력, 방법론 입니다. 얼마 전에 메일을 한통 받았는데 거의 정확하게 맞추신 분이 있습니다. 각 장의 특징을 조만간 올릴 생각입니다. 군더더기라 생각해서 책에는 생략을 했는데요. 이력 데이터 관리가 전략적인 장이라서 당분간 이력 엔터티 위주로 글을 올리겠습니다. 오늘은 이력 데이터를 관리할 수 있는 10가지 방법의 개략에 대해 쓰려고 합니다. 이 10가지 방법은 실무에서 자주 사용하는 방법을 제 나름대로 구분한 것인데요. 사실 내역 데이터 설계 방법까지.. 더보기
이력 엔터티 확정 절차 [그림1]은 이력 엔터티 확정 절차입니다. [그림1] 가장 먼저 해야 할 일은 이력 데이터를 관리해야 하는지를 분석하는 것입니다. 이력(지나간 과거) 데이터를 사용하는 업무가 없다면 이력 데이터 관리 요건은 없는 것입니다. 그냥 기존 데이터를 최신 데이터로 업데이트하면 끝입니다. 속 편하게 그냥 업데이트하고 싶지만 업무가 그렇게 간단하지 않습니다. 변경된 과거 데이터를 관리해야 하는지에 대해서는 현업의 의견이 가장 중요한 기준이 됩니다. 동종 업체의 업무를 참조할 수도 있고요. 현업의 판단이 이력 데이터는 필요 없다는 것이라도 모델러가 판단하기에 필요하다고 생각되면 이력 엔터티를 채택할 수도 있습니다. 당장에는 사용하지 않지만 이력 데이터를 쌓아 두면, 업데이트해서 이전 데이터를 없애는 대신 저장해서 새.. 더보기