본문 바로가기
Data Modeling

엔터티 분류하기 - 예제

by csk 2013. 6. 29.

지난글에서는 엔터티의 분류를 설명해드렸는데요, 글 마지막에 약속드린대로, 오늘은 erd 예제를 가지고 엔터티를 분류해 보도록 할께요. 언제든 예제를 보는게 가장 기본이면서 효과적인 학습방법이니까요. :)



누구에게나 친숙한 쇼핑몰을 상상하고 필요한 정보를 이정도로 뽑을 수 있겠네요. 그럼 각각의 엔터티를 분류해보겠습니다.


□ 고객


지금의 업무 도메인(인터넷 쇼핑몰)에서 고객은 기준이되는 정보죠. 다른 정보에 의해서 발생하는 것이 아니라 시작이 되는 정보입니다. 따라서 고객은 '고객기본'이라고 이름 붙이면 되겠습니다. 


기준이 된다는 것은 관계측면에서 보면 1:M 관계의 자식에 해당되는 경우는 거의 없이 부모에 존재하는 형태 입니다. 


아 고객 등급이 존재하지 않느냐구요? ^^ 이것은 뒤에서 분류하겠지만, 코드 성의 정보이기 때문에 부모자식 관계로 보지않는 열외 유형이라고 할 수 있습니다. 



□ 상품


주문과 같은 맥락에서 기준이 되는 정보이므로 상품기본이 되겠네요.



□ 주문 


고객이 주문을 발생 시킵니다. 업무상 발생하는 이벤트를 기록해 놓은 것이니 주문은 내역입니다.  



□ 주문상품


주문의 더 자세한 내역이면서, 또한 주문과 상품의 관계에 의해서 발생한, 쉽게말해 그 사이에 끼어있습니다. 그러니, 상세라고 볼 수도 있고 내역이라고 볼수도 있겠지요. 


저는 상세라고 보겠습니다. 왜냐하면 주문과 상품 사이의 관계라고 하기에는 주문상품 자체의 중요도가 매우 크기 때문입니다. 주문할때 확실하게 발생하는 것으로, 사실 주문이 발생했을때, 어찌보면 주문보다도 주문상품이 더 중요한 내용을 담고 있거든요. 주문의 상세한 정보를 제공해 준다는 의미가 커서 주문상품상세라고 하겠습니다. 


□ 고객등급 : 고객을 분류하는 등급명과 값의 두 개 컬럼이고 데이터 건수가 아주 적지요. 코드가 확실하네요.


□ 고객변경기록 : 고객 데이터가 바뀐 내용을 기록하니 이력이 되겠습니다. 


□ 카드결재 : 보통 카드사에 결재 요청을 보내고 결과를 받아야 하니 연계라고 볼 수 있겠네요.


□ 월별판매량 : 특정 기간의 유형별 건수를 관리하는 전형적 집계성 데이터 입니다.


보통 연계나 집계 데이터는 다른 엔터티들과 관계를 맺지 않습니다. 연계는 자료를 주고받은것 자체가 중요하기 때문에, 관계를 맺어 데이터를 제약하지 않습니다. 일단 보낸자료, 받은자료는 모두 증거로 남겨두어야 하니까 맞지 않더라도 쌓아두거든요. 집계는 여러건의 건수나 금액의 합계를 낸 것이기 때문에 여러건이 하나로 묶이지만 개별건이 무엇인지는 중요하지 않아서 관계를 맺지 않습니다. 




이렇게 정리하고 보니 어떤가요? 데이터의 흐름이 더 잘 이해되시나요? :-) 


저는 이렇게 유형을 구분해가면서 이름을 수정하는 작업을 하면서, 각각의 테이블의 의미를 명확히 하게되고, 제가 잘 파악하지 못하고 있는 부분이 어딘지를 발견하게 되는 기회가 되었습니다. 여러분도 한번 활용해 보세요. 




  

'Data Modeling' 카테고리의 다른 글

파생 속성 추가하기  (0) 2013.07.25
아크관계를 위해 키 조정하기  (0) 2013.07.11
엔터티 분류하기  (0) 2013.06.26
ERD에서 올바른 관계(relationship) 맺어주기  (0) 2013.06.20
엔터티 통합하기  (0) 2013.06.13