- 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상에 대한 데이터를 저장할 수 있고 대상들 간의 동질성을 지닌 개체 또는 행위의 집합
- 엔티티를 정의할 때는 어떤 대상이 그 엔티티에 속하는지 혹은 속하지 않는지를 명확하게 정의할 수 있어야한다.
✓ 엔티티는 반드시 순수한 본질(本質) 집합이 되어야 한다는 것은 정의하고자 하는 집합이 사람, 상품 등과 같이 단위 사물을 정의한 개체(個體) 집합이 되든지, 아니면 이들이 어떤 활동을 함으로써 만들어진 입금,계약 등과 같은 행위(行爲) 집합이 되든지 간에 반드시 둘 중의 어느 하나가 되어야 한다는 것이다.
✓ 그렇지 못하고 이들이 서로 결합된 형태라면 그것은 관계이다.
✓ 집합인지 관계인지를 식별하는 것이 생각보다 쉬운 것은 아니다. 너무 상식선에만 판단하지 말고 구체적인 증거를 찾아 판단해야 한다
✓ 동질성(同質性)이란 대상들 간에 하나의 동등한 본성 또는 본체나 본질, 성질 등을 공유하고 있다는 의미
✓ 집합에 들어갈 개체들의 동일한 성질을 어디까지로 한정하냐에 따라 영향 범위가 달라진다.
✓ 동질성이 강조될수록 엔티티들은 어떠한 성질이 같다고 판단하게 되어 하나로 합쳐질 가능성이 커지지
만, 그만큼 집합의 독립성은 줄어든다
집합의 순수성, 동질성, 독림성 관점에서의 상관관계를 고려하여 엔티티의 자격 유무를 검증
도출한 집합의 의미에 가장 어울리는 명칭을 부여해야만 앞으로의 커뮤니케이션에서 오류를 줄일 수 있고, 제3자에게 설명할 때도 의미의 전달이 명확해질 수 있다.
엔티티에는 인조 식별자(Artificial Unique Identifier)가 있을 수 있고, 이를 가주어(假主語)라 한다면
진주어(眞主語)에 해당하는 관계나 속성이 어딘가에 있을 수 있다. 이 진주어를 의미상의 주어라고
할 수 있으며, 의미상의 주어를 원래의 본질적인 식별자에 해당한다.
✓ 모델링 진행 과정에서 본질 식별자를 특별히 중시하는 이유는 집합의 의미가 모호한 상태에서는 더 이상
객관적인 판단을 진행해 가는 것이 불가능하기 때문이다.
✓ 집합의 인스턴스가 생성되는 정확한 단위를 모르고서는 집합이 명확해질 수 없다. 다시 말해서 집합의 의미가 명확하게 정의되지 않은 모호한 집합에 인조적인 유일한 이름만 가져다 붙인다고 해서 갑자기 집합의 정의가 명확해지지는 않는다.
✓ 본질 식별자로 상속 관계를 규명해 올라갔을 때 최상위에 존재하는 것이 바로 키 엔티티라는 것이다.
✓ 여기서 주의할 것은 임의의 엔티티가 다른 엔티티와 1:M이나 1:1 관계일 때 1 쪽의 엔티티가 항상 본질 식별자가 되는 것은 아니다. 본질 식별자란 만약 그가 없다면 자신이 절대로 태어날 수 없을 때만 해당된다.
1. 부모없이 태어난 자손은 없다.
2. 의미상의 주어란? 엔티티 탄생에 직접적인 역할을 한 속성들
3. 놓쳐 버린 엔티티가 있더라도 각 단계에 충실하면 결국에는 다시 나타난다.
4. 그러나 키 엔티티를 놓치면 시행착오를 겪게 된다.
5. 인조속성이 아닌 의미항 주어(본질 식별자)를 찾아라
절대 종속인가? 상대종속인가?
직접 종속인가? 간접종속인가?
- 키 엔티티는 외곽에, 메인 엔티티는 업무수행 순서에 따라 상에서 하로, 좌에서 우로, 액션 엔티티는 키 엔티티 최 좌우측에 또는 메인엔티티 최좌우 측에 배치한다. |
- 실제 관계도를 작도하다 보면 처음에는 도출되는 엔티티 개수가 적어서 다이어그램을 작 도하는데 어려움이 없으나, 작업이 진행됨에 따라서 엔티티 개수가 증가하게 되고 따라서 관계선이 많이 작도되는데 서로 겹치는 일이 자주 발생함. 실체관계도를 작도하는 작업 자 체가 엔티티 유형(Key, Main, Action)을 고려 하면서 데이터 흐름을 추적하는 작업이므로, 관계선이 서로 겹치거나, 엔티티 배치가 체계 적으로 정리되어 있지 않으면 계속적인 작업 의 수행이 어려워지는 경우가 많다. |