본문 바로가기

분류 전체보기

가공 엔터티란? 가공 엔터티는 원천(Raw) 데이터가 아닌 데이터를 관리하는 엔터티입니다. 원천 데이터인 실체 엔터티와 행위 엔터티의 데이터를 가공한 데이터를 관리하는 엔터티로 주로 집계, 요약, 임시 데이터를 관리하는 엔터티가 가공 엔터티입니다. 가공 엔터티는 다양한 방법으로 사용됩니다. 업무에서 많이 쓰이는 것은 DW 시스템에서는 많은 부분을 차지하는 집계 데이터를 관리하는 엔터티입니다. 집계 엔터티를 사용하는 이유는 조회 시간을 줄이기 위해서입니다. 만약 바로 원천 데이터를 집계해도 크게 불편하지 않다면 굳이 집계 엔터티를 사용할 이유는 없습니다. 이 판단도 매우 중요합니다. 그리고 업무 처리 대상을 한정시키기 위해 대상 데이터만 별도로 보관하는 작업용 엔터티가 많이 존재합니다. 처리 예정 내역을 관리하거나 오류를.. 더보기
행위 엔터티란? 행위 엔터티는 많이 알려진 엔터티입니다. 어떤 실체의 업무 행위나 활동에 의해서 생긴 원천(Raw) 데이터입니다. 엔터티 중에 많은 엔터티가 행위 엔터티입니다. 가공 엔터티가 더 많을 때도 있지만요. 행위 엔터티만의 특징은 엔터티 발생 순서가 존재한다는 것입니다. 일반적으로 데이터에는 순서의 개념이 없습니다(생성 순서가 중요하지 않다는 것이 더 정확한 표현이겠네요). 하지만 일부 행위 엔터티는 발생 순서가 중요합니다. 발생해서 소멸하는 비교적 짧은 라이프사이클이 존재합니다. 행위 엔터티는 관리하는 속성도 대부분 많습니다. 본질 보다는 행위가 더욱 많은 요소를 가지니 속성도 복잡합니다. 엔터티도 많고 속해있는 속성도 많으니 모델링 시 가장 많은 시간이 소요되는 엔터티입니다. 제가 생각하는 행위 엔터티의 가.. 더보기
실체 엔터티란? 실체의 정의를 사전에서 찾아보면 ‘실제의 물체(物體) 또는 외형에 대한 실상(實相)’이라고 나옵니다. 간단히 만질 수 있는 것(Tangible)을 관리하는 엔터티입니다. 주의할 점은 만질 수 있는 것에 대한 모든 데이터를 관리하는 것이 아니라 본질적인 데이터를 관리한다는 것입니다. 실체의 존재(Existence)와 연관된 데이터를 관리합니다. 이름이나 주민등록번호, 나이 등을 관리하는 엔터티이지 그 실체가 발생시킨 데이터를 관리하는 엔터티는 아닙니다. 예를 들면 그 실체가 어떤 계약을 했는지, 어떤 불만을 얘기했는지, 얼마나 출금했는지 등을 관리하면 실체 엔터티가 아닙니다. 실체 엔터티는 도출이 용이하지만 잘못 도출하면 업무 전체적으로 심각한 영향을 끼칩니다. 행위 엔터티는 실체가 발생시킨 엔터티이고 가.. 더보기
엔터티 분류(실체/행위/가공/기준) 엔터티를 분류하는 목적은 크게 두 가지가 있습니다. 엔터티의 성격을 파악하는 데 도움이 되기 때문이고요. 모델링 작업 순서를 정하는 데 도움이 되기 때문입니다. 상향식 방법으로 모델링을 수행할 때는 단계적으로 접근하기 위해 엔터티를 분류하는 게 의미가 있습니다. 저는 모델링을 수행하면서 전체 엔터티를 체계적으로 분류했던 적은 없었던 거 같습니다. 업무에서 핵심적으로 사용하는 소수의 엔터티만 선정합니다. 워낙 기간에 쫒겨 일을 해서 그런 것도 같지만 사실 분류 자체를 중요하게 생각하지 않습니다. 엔터티를 분류하는 것 자체가 중요한 것은 아닙니다. 그건 부가적인 것일 뿐 본질적인 것이 아니기 때문입니다. 진짜 본질인 엔터티 정의가 정확하면 잘못 분류하는 것은 문제되지 않습니다. 저는 엔터티를 분류할 때의 기.. 더보기
종속 엔터티의 식별(Identifying) 관계 식별(Identifying) 관계와 비식별(Non-Identifying) 관계는 단순한 개념입니다. 언제 적용해야 하는지를 결정하기가 어렵죠. 상위 엔터티의 주 식별자가 하위 엔터티에 주 식별자로 상속되면 식별(Identifying) 관계입니다. 엄밀히 말해 종속 엔터티와 무관합니다. 하지만 부모 엔터티에 존재 종속(Existence Dependency)된 종속 엔터티는 대부분 식별 관계로 상속받습니다. 이 원칙은 지켜주는 게 좋습니다. 두 엔터티가 관계가 있고 하위 엔터티가 종속 엔터티라는 것이 분명하다면, 식별 관계로 상속 받는 것이 좋습니다. 문제는 예외인데요. 나중에 설명하겠지만 업무 식별자를 주 식별자로 채택하는 것을 원칙으로 불가피할 경우 인조 식별자를 채택해야 하는데요. 인조 식별자를 사용해.. 더보기
종속 엔터티의 종류 종속 엔터티에는 몇 가지 종류가 있습니다. - [그림1] 부모 엔터티의 추가 데이터를 관리하는 엔터티 - [그림2] 1정규화에 의해서 발생한 엔터티 - [그림3] 이력 데이터를 관리하는 엔터티 - [그림4] 다대다(M:M) 관계에서 발생한 교차 엔터티 - [그림5] 슈퍼타입과 관계된 서브타입 엔터티 - [그림6] 엔터티 분해에 의한 일대일(1:1) 엔터티 [그림1]의 상품가격 엔터티는 상품 엔터티의 일부 데이터를 더욱 상세하게 관리하는 엔터티입니다. 상품 가격은 상품이 존재하지 않는 한 존재할 수 없는 데이터이므로 상품가격 엔터티는 종속 엔터티입니다. 부모 엔터티의 일부로서 성격이 동일한 데이터라고 할 수 있습니다. [그림1] [그림2] 주문상품 엔터티는1정규화에 의해서 발생한 엔터티입니다. 주문상품 엔.. 더보기
자립 엔터티 & 종속 엔터티 자립(Independent Entity 또는Strong Entity, Dominant Entity) 엔터티는 다른 엔터티에 의존적이지 않고 스스로 존재하는 엔터티라고 했습니다. 어떤 엔터티에도 존재 종속(Existence Dependency)되지 않는 엔터티입니다. 종속(Dependent Entity 또는Weak Entity, Subordinate Entity) 엔터티는 상위(부모) 엔터티가 존재하지 않으면 존재할 수 없는 엔터티입니다. 자립 엔터티와 종속 엔터티는 비즈니스에서 관리하는 데이터의 범위에 따라 자립 엔터티가 종속 엔터티가 될 수도 있고 종속 엔터티가 자립 엔터티가 될 수도 있습니다. 특정 대학의 교수 엔터티는 자립 엔터티입니다. 교수 엔터티 상위에 반드시 존재해야 할 엔터티가 존재하지 않습.. 더보기
진정한 프로가 되는 1만 시간의 법칙 1만 시간의 법칙이 있다고 한니다. 어느 분야에서든 세계적인 전문가가 되기 위해서는 1만 시간의 노력이 필요하다고 합니다. 1만 시간보다 적은 시간을 몰두하고 그 분야에서 세계적인 전문가가 된 예는 찾아볼 수 없다고 합니다. 1만 시간은 하루에 7~8시간씩 약 5년 동안의 시간입니다. 엄청난 시간일 수 있지만, 필자는 그다지 오랜 시간이 아니라고 생각합니다. IT 분야에서 일하면서 한 분야에서 1만 시간을 채우는 것은 어렵지 않다고 생각합니다. 다만, 몰두(沒頭)해야 하는 시간이기 때문에 쉽게 이룰 수 있는 시간은 결코 아닙니다. 진정한 프로페셔널(Professional)이 되고자 하는 사람은 1만 시간을 도전해 보았으면 합니다. 모델을 고민하고 연구하면서 모델링에 몰두하는 시간이 10년 정도 되면 데이.. 더보기
뭐든 시작해야 한다 "사람은 뭐든 시작해야 한다." 어느 철학가가 한 말이라고 합니다. 지루한 집필의 후유증에서 다시 한번 돌아보게 됩니다. 뭐든 다시 시작해야겠습니다. 더보기
사랑 그 자체에는 문제가 없다 사랑 그 자체에는 문제가 없다. 문제는 사랑하는 사람들에게 있는 것이다. - 카프카 더보기