티스토리 뷰

핵심 엔티티 정의

 

1.   엔티티

가.  엔티티란?

n  엔티티란 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상에 대한 데이터를 저장할 수 있고 대상 간의 동질성을 지닌 개체 또는 행위의 집합이다.

n  엔티티를 정의할 때는 어떤 대상이 그 엔티티에 속하는지 혹은 속하지 않는지를 명확하게 정의할 수 있어야 한다.

 

나.  엔티티 정의의 요건

n  관리하고자 하는 것인지를 확인한다.

n  가로와 세로를 가진 면적(집합)인지를 확인한다.

n  대상 개체 간의 동질성이 있는지를 확인한다.

n  다른 개체와 확연히 구분되는 독립성을 가지는지를 확인한다.

n  순수한 개체이거나 개체가 행위를 하는 행위 집합인지를 확인한다.

 

2.   의미상 주어 정의

-       엔티티에는 인조 식별자(Artificial Unique Identifier)가 있을 수 있고, 이를 가주어(價主語)라 한다면 진주어(眞主語)에 해당하는 관곈 속성이 어딘가에 있을 수 있다. 이 진주어를 의미상의 주어라고 할 수 있으며, 의미상의 주어를 모델링 입장에서 본다면 원래의 본질적인 식별자에 해당한다.

 

가.   본질 식별자 정의의 의의

모델링 진행 과정에서 본질 식별자를 특히 중시하는 이유는 집합의 의미가 모호한 상태에서는 더 이상 객관적인 판단을 진행해 가는 것이 불가능하기 때문이다.

 

나.   본질 식별자 정의 예

본질 식별자로 상속 관계를 규명해 올라갔을 때 최상위에 존재하는 것이 바로 키 엔티티라는 것이다. 여기서 주의할 것은 임의의 엔티티가 다른 엔티티와 1:M이나 1:1관계일 때 1 쪽의 엔티티가 항상 본질식별자가 되는 것은 아니다.

본질식별자란 만약 그가 없다면 자신이 절대로 태어날 수 없을 때만 해당된다.

 

3.   코드성 키 엔티티 모델링

가.  자식 엔티티 유무 확인

이것은 해당 엔티티가 다른 엔티티의 본질식별자가 되고 있는지를 찾아내는 것이다. 다시 말해 비록 겉모양은 볼품없이 초라하지만 만약 이 엔티티가 도출되지 않았을 때 중요한 자식 엔티티도 같이 태어날 수 없다면 반드시 미리 도출해야 한다는 것이다.



이러한 분류를 모델링에서는 서브타입(Sub-type)이라 한다. 이 분류가 그림에서처럼단지 설비를 분류하는 데에만 사용한다면-그것이 비록 나중에 코드화를 함으로써 별도의 엔티티로 생성된다고 하더라도-지금 단계에서 굳이 엔티티로 도출할 필요가 없다. 그 이유는 지금 엔티티로 도출한 것이나 나중에 정규화 단계에서 도출한 것이나 별 차이도 없으면서 초기 단계의 복잡성만 가중시키기 때문이다.

그러나 만약 설비 타입과 생산 라인별로 관리하고자 하는 공정 제어 값이 있다면 이 설비타입은 분명히 부모의 역할을 하게 되므로 지금 도출해 두지 않으면 자식 엔티티도 같이 누락된다.

 

나.  속성 존재 여부 확인

해당 엔티티가 현재 혹은 미래에 단순한 코드명이나 코드의 의미에 대한 설명 외에 또 다른 속성을 가질 수 있는가를 확인해 보는 것이다. 앞으로 자신을 참조하는-향후에 조인(join)이 발생하는-행위 엔티티가 분명히 발생하게 될 것이므로 미리 엔티티로 도출해 두는 것이 바람직하다.

 

다.  관계 존재 여부 확인

엔티티가 향후 다른 엔티티와 많은 관계를 가질 가능성이 있는지를 검토해 보는 것이다. 엔티티가 다양한 관계를 맺고 있다는 것은 활동성이 왕성하다는 것을 의미한다.

 

4.   집합 순수성

가.  집합 순수성 의미

엔티티는 반드시 순수한 본질 집합이 되어야 한다는 것은 정의하고자 하는 집합이 단위 사물을 정의한 개체 집합이 되든지, 어떤 활동을 함으로써 만들어진 행위 집합이 되든지 간에 반드시 둘 중의 어느 하나가 되어야 한다는 것이다.

그렇지 못하고 이들이 서로 결합된 형태라면 그것은 관계이다.

 

나.  집합 순수성 예

납입자와 같은 단어를 풀어보면 납입이라는 행위 집합과 ‘자’라는 개체 집합이 합성되어 있음을 알 수 있다. 물론 여기서 ‘자’란 사람이나 단체와 같은 개체 집합을 의미하며, 이러한 개체가 포함될 수 있는 본질 집합은 고객과 같은 집합들이 이에 해당할 수 있다. 그렇다면 납입자란 순수 본질 집합인 고객과 납입이 결합되어 만들어진 것, 다시 말해 이것은 엔티티가 아니라 관계라는 것이다.

 

다.  집합 순수성 적용 예외 사항

1)     관계의 엔티티화

관계가 엔티티로 변하는 경우이다. 관계가 M:M이 되면 더 이상 관계로만 존재할 수 없기 때문에 엔티티로 바뀌게 되며, 이를 릴레이션 엔티티라고 한다.



하지만 M:M 관계는 최종적으로는 관계로써 존재할 수 없기 때문에 1:M으로 연결된 교량 역할을 해주는 엔티티로 바뀌어야 한다. 이 엔티티는 관계가 변해서 생성되었기 때문에 릴레이션 엔티티(Relation Entity)라고 부른다. 방버론에 따라서 제휴 엔티티(Association Entity)나 교차 엔티티(Intersection Entity)라고 부르기도 한다.

2)     일부 집합 정의

전체 논리적인 집합 중에서 관리하고자 하는 일부의 집합만을 엔티티로 정의하고자 할 때, 구체적인 명칭을 부여하다 보면 이를 수식하고 있는 단어로 인해 마치 개체 집합과 행위 집합의 합성처럼 보일 수가 있다.



금융기관과 수납기관은 언뜻 보기에는 마치 모두 행위처럼 보이는 금융, 수납의 수식을 하는 부분과 업체들을 말하는 개체 집합인 기관이 결합된 형태처럼 보인다. 그렇지만 이 두 가지 단어는 서로 결론이 다르다. 금융기관은 엔티티가 될 수 있지만 수납기관은 엔티티가 아니라 관계일 뿐이다.

3)     배타적 관계 대체

엔티티가 여러 엔티티와 동일한 내용의 관계를 갖는 배타적 관계를 가질 때 만약 배타적 관계의 변화 가능성이 높다면 이를 피하기 위해 배타적 관계에 있는 것들 것 모아서 별도의 엔티티를 구성하는 경우이다.



배송처는 이론적으로 보면 관계가 틀림없다. 그런데 만약 업무의 변화가 심해져서 배송처가 될 대상 집합이 앞으로 계속 늘어날 가능성이 높다면 필연적으로 배타적 관계 선분이 증가할 것이고, 이에 따라 애플리케이션의 처리 방법에는 빈번한 수정이 발생하게 된다. 이러한 경우라면 약간의 집합적 중복이 발생하더라도 별도의 엔티티를 생성할 필요가 있다.

 

5.   집합 동질성

가.  집합 동질성 의미

엔티티에서 동질성을 정의한다는 것은 말 그대로 집합에 들어갈 개체들의 동일한 성질을 어디까지로 한정할 것인가를 결정하는 것을 말한다.

 

나.  집합 동질성부여의 예

1)     사람의 집합이라고 규정한 경우

이 경우에는 사라만의 집합이고, 우리 상품과 구체적인 관계를 맺은 사람들만 존재하는 집합으로 정의했다는 특수성이 분명히 나타나야만 한다.

2)     사람 또는 법인이라고 규정한 경우

 

6.   엔티티 명칭

가.  적절한 엔티티 명칭

엔티티 명칭은 그 엔티티를 함축시킨 의미를 담고 있어 남에게 일일이 설명하지 않아도 오해를 최소화시킬 수 있어야 한다.

 

나.  엔티티 명칭 부여하기 예제



 

7.   서브타입

가.  서브타입 지정 의의

엔티티를 명확화하는 단계에서 해야 할 또 하나의 중요한 작업은 엔티티 내에 들어가는 구체적인 부분 집합(서브타입)의 종류를 명시하는 것이다. 개체-관계 도표(ERD, Entity Relationship Diagram)를 입체적이고 구체적으로 작성하기 위해서는 집합의 부분 집합을 표현해 주어야 한다.

 

나.  서브타입 지정 시 고려 사항

1)     교집합 허용 불가

2)     서브타입의 합이 전체 집합



3)     서브타입 표현의 기준

n  개별 속성을 가지는 경우

n  개별 관계를 가지는 경우

n  가독성을 증진시키고자 하는 경우

 

다.  서브타입 도출

1)     분류속성

2)     다수의 선택적 속성

3)     선택적 관계가 존재하는 경우

4)     도출 절차

n  분류 속성을 확인(엔티티의 발생이 차별화되는 경우)한다.

n  분류 속성 값에 의해 분류되는 서브타입을 파악하낟.

n  분류속성에 따라 필수적/선택적 분할을 정의한다.

n  서브타입별 속성을 할당한다.

n  슈퍼타입의 관계를 해당 서브타입에 정의한다.

 

라.  서브타입의 활용

1)    데이터 모델에 업무 규칙을 명확히 표현하여 업무를 정확히 이해할 수 있다.

n  엔티티의 정의를 좀 더 구체화하여 데이터 모델에 대한 가독성 향상

n  속성의 선택성 제거

n  관계의 선택성 제거

2)    서브타입의 표현은 업무 규칙의 명확성과 표현의 복잡성이라는 트레이드 오프(Trade Off) 관계가 적절히 조화를 이루어야 한다.

 

8.   엔티티 통합과 분할

가.  엔티티 독립성

엔티티를 결정하기 위해서 따져 보아야 할 독립성이란 새롭게 정의하고자 하는 엔티티가 앞서 정의해 둔 어떤 엔티티에도 포함되지 않는 독립적인 집합인지를 확인하는 것이다.



n  고객이라는 엔티티의 동질성을 우리 회사 제품의 굼 주체가 되었거나 될 가능성을 가진 사람이나 법인, 단체로 규정했다고 하자. 이때 새롭게 법인이라는 엔티티 후보를 검토한다면 이 집합에 속할 개체들은 이미 고객 엔티티에 속할 수 있기 때문에 독립적인 집합이 아니다.

n  고객 엔티티를 사람의 집합만으로 국한해서 동질성을 부여했다면 법인은 독립적인 집합이 된다.

n  독립성을 따질 때는 먼저 검토할 엔티티 후보의 의미를 명확히 해야 한다. 그것은 자신의 집합에 어떠한 개체들이 속해 있는지를 구체적으로 알아야만 다른 엔티티와의 독립성을 확인할 수 있다.

 

나.  엔티티 분할/통합

집합 간에 서로 포함되지 않는 경우라도 동질성을 크게 확장하면 포함될 수도 있고, 반대로 동질성을 구분하면 별도로 분리될 수도 있는 것이기 때문에 상황에 따라 종합적인 판단이 필요해지는 것이며, 그 판단의 합리성에 따라 모델의 품질은 크게 영향을 받게 된다.

 

이러한 결정에 따라 집합은 이산집합이 일어날 수 있으며, 최종적으로 엔티티의 모습이 결정되는 것이다. 이와 같이 집합의 일부가 서로 겹쳐져 있을 때 이들 간의 모양을 결정하는 방법은 크게 세가지로 나눌 수 있다.

n  첫째, 어느 한 집합을 확장하여 나머지를 포함시키는 방법

n  둘째, 교차된 부분을 어느 한쪽 집합에서만 가지도록 해 둘 사이를 완전 분리하는 방법

n  셋째, 비록 교차되는 부분이 있더라도 두 집합을 별개의 집합으로 간주하고 필요 시 이들 간에 관계를 맺어주는 방법

엔티티를 결정하는 것은 결국 집합의 형태를 결정하는 것이므로 이러한 결정의 적절성이 바로 모델링의 품질을 좌우하는 가장 기본적인 요소이다.



 

다.  집합 동질성 확대를 통한 집합 통합 사례

1)     보험회사의 대리점 사례

2)     통신회사의 대리점 사례

3)     대리점 사원



 

라.  유연성 향상을 위한 통합

집합의 동질성을 확장시켜 중첩된 집합을 포함시키면 이들 간의 집합적 관계는 명확해진다. 이러한 집합의 확장은 비록 유연성과 단순성을 증가시키기는 하지만 지나친 확장은 집합의 의미를 희석시키므로 주의해야 한다.



 

9.   엔티티 정의 기술과 엔티티 정의서 작성

엔티티 후보를 도출하고 충분한 검토와 검증을 거쳐 엔티티의 구성 단위와 형태 등을 결정하고 나면, 다시 서브타입 정의, 동질성 파악을 통한 엔티티 통합 및 분할 등의 과정을 거쳐서 최종적인 엔티티 형태가 확정된다.엔티티 도출 및 정의 과정에서 엔티티의 개념을 정립하고 적절한 이름을 부여한 후 엔티티 분할∙통합 과정을 거쳐 가장 적절할 명칭을 확정해야 한다. 이와 같은 과정을 거쳐 확정한 엔티티의 이름은 이미 이름만으로도 해당 엔티티가 어떤 집합인지 최대한 표현될 수 있어야 하며, 나머지 미진한 부분은 엔티티 정의 또는 엔티티 설명에서 구체적으로 기술하여 이해관계자 간의 명확한 의사소통과 개념공유가 가능하도록 해야 한다.

이를 위해 엔티티 정의 기술 시 다음과 같은 내용으로 서술함으로써 해당 엔티티에 대한 상세하고 구체적인 내용이 온전하게 전달될 수 있도록 해야 한다.

 

n  데이터 집합의 개념 및 성격

n  집합 구성상의 특징

n  데이터 생성, 변경, 삭제 시의 특이사항 또는 데이터 오너쉽 등 기타 특이사항 등



엔티티 정의 기술이 완료되면 엔티티 저으이에 관련된 추가적인 상세 정보 항목들을 작성하여 문서화 및 의사소통 수단으로 활용한다. 엔티티 정의서는 이러한 목적으로 작성하는 대표적인 산출물이다. 엔티티 정의서에 대한 항목 구성과 서식은 각 조직이나 프로젝트 여건에 맞춰 변형하여 사용할 수 있으며, 가능하면 최대한 상세한 내용으로 작성되어야 산출물의 작성 목적에 달성할 수 있다.


반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함