본문 바로가기

데이터 Story/모델링 이론

관계 엔터티 선택 기준

[그림1]은 다수의 관계 속성을 사용하는 방식과 관계 엔터티를 사용하는 방식의 특징을 설명한 표입니다.


 

[그림1]

 

일견 정규형 엔터티 방법이 일방적으로 좋아 보이나 앞서 밝혔듯이 가장 기본적인 판단 기준은 반복 속성의 개수와 속성이 늘어날 가능성을 염두에 두는 것입니다.

 

반복 속성도 적고 업무가 변경될 가능성이 없어 속성이 더는 늘어나지 않으며 성능 이슈가 존재하면, 정규형 엔터티를 채택하는 것이 바람직하지 않을 수 있습니다. 물론 일반적으로 관계형 데이터베이스에서는 반복 속성을 채택하는 방법보다 정규형 엔터티를 채택하는 것이 효율적입니다

 

또 다른 기준은 조회 요건입니다. 엔터티가 화면에 종속되는 것은 바람직하지 않지만 중요한 화면이 어떻게 구성됐는지에 따라 선택이 달라질 수 있습니다.

 

보험계약 당사자가 여러 명일 때 상세 화면에서 로우 형식으로 보여주면 보험계약당사자 엔터티를 사용해야 합니다. 반면에 보험계약 당사자를 보여주는 화면이 대부분 컬럼이 나열된 형식이라면 반복 속성을 사용하는 것이 효율적입니다. 물론 이때라도 성능 이슈가 없다면 관계 엔터티를 사용하는 것이 효율적일 것입니다

 

필자는 관계 엔터티에 대해서는 더욱 엄격한 정규형을 적용해야 한다고 생각합니다. 왜냐하면 관계는 자주 사용되는 속성이어서 수정하기 어렵기 때문입니다.

 

보험계약 엔터티와 같은 핵심 엔터티에 속성을 추가하고 관련 어플리케이션을 수정하는 것은 결코 쉬운 일이 아닙니다. 관계가 늘어날 가능성이 조금이라도 있다면 관계 엔터티를 채택하는 것이 바람직한데 미래의 업무 변화를 정확히 예측할 수 없으므로 유연하게 대비하는 것이 좋은 방법입니다. 다수 속성으로 관리하는 것보다는 하나의 엔터티로 관리하는 것이 더욱 유연한 모델입니다.

 

다수의 관계 속성으로 관리하는 방법과 하나의 관계 엔터티로 관리하는 방법은 1정규화와 동일한 개념입니다. 정규화 장에서 다시 설명할 것입니다.