정규화 썸네일형 리스트형 속성의 묶음이 반복된다면 정규화가 원칙 엔터티에 반복되는 속성은 정규화를 하는 것이 원칙이며, 특히 속성이 묶음으로 반복된다면 정규화를 한다. 단독 속성이 반복되면, 추가되지 않고 고정적인지를 고려해서 정규화를 하지 않을 수 있지만 묶음 속성이 반복되면 정규화를 하는 것이 원칙이다. [그림 1] 모델은 주문상품에 대한 속성(상품번호/상품가격/상품수량)이 반복된 비정규형 모델이다. [그림 1] 주문상품에 대한 속성인 상품번호, 상품가격, 상품수량 속성이 묶여서 세 번 반복됐기 때문에 비정규형 모델이다. 이 모델은 세 개의 속성이 묶여서 반복됐기 때문에 정규화를 해야 한다. [그림 2] 모델이 [그림 1] 모델에 대한 정규형 모델이다. [그림 주문정규화] 정규화를 한 주문상품 엔터티는 주문과는 다른 의미를 나타내는 별도의 엔터티다. 즉 엔터티의 .. 더보기 관계 엔터티 설계 엔터티 간의 관계에서 생기는 관계 속성은 한 엔터티에 여러 개가 있을 수 있으며, 그 관계 속성 중에는 유사한 성격의 속성이 있을 수 있다. 이때 유사한 관계 속성이 두 개 이상이며, 추가될 가능성이 조금이라고 있다면 별도의 관계 엔터티로 설계한다. [그림1] 보험계약 엔터티에는 세 개의 관계 속성이 존재한다. [그림1] 보험을 계약한 고객과 보험의 피보험자 고객, 보험의 연대보증 고객이 누구인지를 관리하는 속성이 관계 속성이다. 따라서 계약고객번호/피보험고객번호/연대보증고객번호 속성은 관계 속성이며, 관계선이 세 개이므로 관계 속성과 마찬가지로 관계 명에도 역할(Role) 이름을 사용한 모델이다. 이미 세 개의 관계 속성이 존재하지만 연대 보증인의 경우에는 여러 명을 관리할 수도 있어서 관계 속성이 더.. 더보기 식별자 종류 – 주 식별자 주 식별자(Primary Identifier)는 엔터티에 하나만 존재하는 대표 식별자입니다. 업무 식별자나 후보 식별자와 달리 물리적인 개념이 강해 PK(Primary Key)라고 생각해도 될 거 같습니다. 주 식별자 역할은 두 가지 관점으로 생각할 수 있습니다. 하나는 자신의 엔터티를 바라보는 관점이고요. 다른 하나는 다른 엔터티에서 바라보는 관점입니다. 전자는 자신의 엔터티 내에서 인스턴스를 식별하는 PK 역할이고요. 후자는 다른 엔터티에서 바라볼 때 그 엔터티와의 관계를 식별하는 FK(Foreign Key) 역할입니다. 주 식별자는 물리적으로 인스턴스를 대표하는 역할을 하기 때문에 인스턴스를 조회할 때 사용하고요. 또한 다른 엔터티와 조인(Join)할 때도 주 식별자를 사용합니다. 주 식별자를 선정.. 더보기 정규화에 대한 주절거림 블로그에 서브타입에 대한 글을 쓰고 있는데요. 변화를 위해 다양한 주제의 글을 올리겠습니다. 나이를 먹을수록 확실히 체력의 부담을 느낍니다. 일주일에 하나씩은 올리려는 생각이 한 달에 두 개로 줄고... 실제는 하나만 올라가기도 하고요. 최근에 정규화에 대해 다시 생각하고 있습니다. 지나치게 사적인 얘기지만 저는 모델링이 자신 있는데요. 남들이 뭐라하든... ㅎㅎ 오래 전부터 해 오던 훈련 때문입니다. 속성의 종속 관계를 파악해서 엔터티를 도출하는 훈련인데요. 쉽게 말해 속성이 엔터티에 속하는 게 옳은지를 판단하는 것입니다. 이 훈련의 핵심은 식별자와 종속성입니다. 엔터티를 대표하는 속성(업무 식별자)을 찾아야 하고요. 그 속성을 기준으로 대상 속성이 종속됐는지 여부를 판단합니다. 종속성이 없다면 다른 .. 더보기 이전 1 다음