모델링 분야에서 ‘이력’만큼 혼란스러운 용어는 없을 거 같습니다(저만 그런지는 모르겠습니다만). 책을 쓰면서도 가장 고민했던 장이고 ‘이력’이란 용어를 사용하지 않으려 시도해 봤지만 달리 방법이 없었습니다.
어쨌든 이력이라는 용어는 사용했지만 강조하려 했던 것이 우선 이력 데이터입니다. 무엇을 이력 데이터라고 하는지를 설명하려 애를 먹었습니다. 아직도 스스로 만족하지 못하는 부분은 있지만요.
언젠가 저를 잘 아는 어떤 모델러가 아직 연구할 부분이 있냐고 물었을 때 이력 데이터라고 주저없이 답변했습니다. 이력 데이터에 대한 내용은 외국 서적에도 그다지 없는 거 같습니다. 우리만의 고민은 아닐 거 같은데 원서에서 생각보다 많이 찾지 못했습니다.
저는 이력 데이터는 지나간 데이터(Bygone Data)라고 생각합니다. 원천(Raw) 데이터가 수정되거나 변경됐다는 의미로 영어로는 ‘Alteration’이라고 적었습니다(왼쪽 카테고리에요).
제 책에도 여러 번 강조했지만 쌓이는 내역 데이터와 혼돈해서는 안 됩니다. 저도 간혹 내역과 이력 데이터가 분간이 안 되는 경험을 한 적이 있었는데, 제 경험상 5% 이하입니다. 내역 데이터와의 차이에 대해서는 다음에 자세히 설명하겠습니다.
이력 데이터를 논하려면 우선 원천 데이터가 명확해야 합니다. 원천 데이터가 명확해야 이력 데이터가 명확해질 수 있습니다. 정규형과 비정규형의 관계와 마찬가지입니다.
이력 데이터를 한 엔터티에서 같이 관리하는지와는 무관하게 원천 데이터가 명확하다면 이력 엔터티는 수월하게 설계할 수 있습니다. 이력 데이터는 원천 데이터에 종속됐기 때문입니다.
원천 엔터티(식별자)의 함수 종속이나 파생 종속(Derivation Dependency)과 연관할 수 있습니다. 또 종속성이 나오는데요. 종속성에 거부 반응을 일으키는 사람은 모델러가 되기 힘듭니다. ㅎㅎ
반드시 종속성을 이해해야 좋은 모델러가 될 수 있습니다. DBMS를 잘 알고 튜닝을 잘하고 SQL도 잘 사용해도 종속성을 모르면 데이터를 제대로 도출할 수 없습니다. 관계형 데이터 모델은 종속성이 근간에 자리잡고 있습니다. 모델링은 결국 종속성을 따지는 작업인 거 같습니다.
이력 엔터티는 원천 엔터티에 종속돼서 원천 엔터티를 설계하는 것이 우선이며, 중요한 점이 나오는데요. 원천 데이터가 바뀌는 것이 이력 데이터라는 점입니다. 원천 데이터가 생기는 것을 이력 데이터라고 생각하는 사람이 많습니다. 이미 존재하는 원천 데이터가 바뀌어야 이력 데이터가 됩니다.
하지만 원천 엔터티를 명확하게 도출하지 못하기 때문에 이력 엔터티가 같이 흔들리게 되는 경우가 많습니다.
원천 데이터와 이력 데이터를 구별할 수 있고, 원천 데이터가 바꿔야 이력 데이터가 생긴다는 것을 염두에 두면 이력 모델을 제대로 설계할 수 있습니다.
'데이터 Story > 모델링 이론' 카테고리의 다른 글
이력 데이터와 내역 데이터 2 (0) | 2011.02.23 |
---|---|
이력 데이터와 내역 데이터 1 (0) | 2011.02.23 |
관계 엔터티 선택 기준 (0) | 2011.02.17 |
관계 엔터티의 장점 2 (0) | 2011.02.17 |
관계 엔터티의 장점 1 (0) | 2011.02.17 |