엔티티의 분리 0 6 880

by 해필무렵 [DB 모델링/설계] 엔티티 모델링 [2018.04.10 14:58:43]


모델러의 역할을 처음 맡고 수행중에 있습니다.

질문드리고자 하는 것은 하나의 엔티티를 특정 속성을 기준으로 모든 인스턴스가 상호 배타적으로 두 그룹으로 나눠진다면 분리하는게 타당할 지에 대한 문제입니다.

예를들면 학생이라는 엔티티가 학생ID, 주소, 전화번호, 성별 이라는 속성으로 구성되어있을 때, 이중 성별이라는 속성을 기준으로 남학생, 여학생 엔티티로 나눠도 문제가 없을까요?

두 엔티티에서 통합으로 질의해서 결과를 뽑아낼 일은 없다고 합니다.

경험이 많으신 모델러분들의 조언을 구합니다.

 

by 우리집아찌 [2018.04.10 15:15:19]

경험이 많지는 않지만..

성능상 문제가 보이지 않을경우 나눌필요는 없다고 봅니다.

성능에 문제가 생긴다해도 위의 학생 같은경우면 리스트 파티션 테이블로 해결될듯한데요.

 


by 우리집아찌 [2018.04.10 15:18:06]

하나 더요

두 엔티티에서 통합으로 질의해서 결과를 뽑아낼 일은 없다고 합니다. -> 저같은 경우는 없다는 경우 대부분 있었습니다.


by 해필무렵 [2018.04.10 17:52:55]

답변 감사합니다.

저도 아찌님의 의견과 같습니다만 프로그래머에게 확실한 이유를 알려 주고싶어서 질문드렸습니다.


by 우리집아찌 [2018.04.10 18:17:46]

프로그래머에게 역으로 문의해보세요

왜 나누워야하는지요

어떤 이점이있는지요

 


by 아발란체 [2018.04.11 20:51:34]

상호 배타적이라는 표현은 개념 ERD에서 논리 ERD로 풀이 할 때 봤던 표현인데,

지금 상황은 상호 베타적 표현보다 도메인 특성으로 보입니다.

 

1차 정규화(1개 속성 1개 값) 위배로 보기 힘들고,

더더욱 2차 정규화(부분 함수 종속), 3차 정규화(이행 함수 종속) 위배로도 볼 수 없습니다.

 

속성명이 나이라면 도메인 특성으로 값이 1세~120세 들어가는 것처럼

속성명이 성별이라면 역시 도메인 특성으로 남자, 여자 값이 들어가는 것이 원자성 확보가 문제가 되는 것이 아닙니다.

 

즉 도메인 특성만을 보고 엔터티를 분리하는 것은 적합하지 않습니다.

단 1개 엔터티에 너무 많은 속성이 있고, 대부분 일부 속성만(게시판 제목처럼) 보는 상황이라면 논리적 분산 기법으로 분리하여

궁극적으로 I/O 일량을 줄이는 기법을 적용할 수 있습니다.

 

 


by 해필무렵 [2018.04.27 15:27:57]

답변주신 우리집아찌님과 아발란체님 감사합니다.

아직 딱 떨어지는 답을 찾지는 못 했습니다.

업무를 수행해가면서 좀 더 공부해야 겠습니다.

감사합니다.

 

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