- 오직 한 번 존재하는 실체 엔터티의 주 식별자
- 실체 엔터티는 주 식별자에도 몇 가지 의미 있는 특징이 있다.
- 무엇보다 존재가 한 번만 발생하는 실체의 성격 때문에 주 식별자에 시각 속성이 포함되지 않는다는 점이 핵심이다.
- 한번 없어지면 끝이며, 다시 생성되지 않는다.
- 다른 것이 새로 생길 수는 있지만 같은 것이 다시 생길 수는 없다.
- 고장을 수리하는 것은 존재가 생긴게 아니라 특성이 변형된 것이다.
- 또한, 주 식별자를 인조 식별자로 설계하는 것도 실체 엔터티의 대표적인 특징이다.
- 실체라는 개념 자체에 이미 지목할 수 있는 식별 번호가 있다는 것을 내포하고 있다.
- 고객번호, 상품번호, 장비번호, 사번 등.
- 하나의 실체를 하나의 번호로 특정하면 관리 또한 매우 편하게 된다.
- 지구 상에 같은 실체는 두 개 존재하지 않기 때문에 고유한 번호로 식별할 수 있다.
- 고객번호와 같이 일반화된 식별 번호를 주 식별자로 사용하면 데이터가 직관적으로 연상되기도 한다.
- 데이터의 성격이 더욱 명확해진다.
- 만약, 실체 엔터티의 주 식별자가 여러 속성으로 구성된다면 다양한 문제가 발생할 수 있다.
- 실체 엔터티의 주 식별자가 복잡하면 모델 전반적으로 관계가 많이 복잡해진다.
- 이는 가독성이 나빠지고, 관리가 힘들어지고, 잘못된 설계로 이어질 가능성이 높다.
- 실체 엔터티가 최상위에 위치하는 엔터티라는 사실도 주 식별자를 단순하게 설계해야 하는 이유가 된다.
- 최상위에 위치하는 엔터티가 잘못 설계되면 모델 전반에 심각한 영향을 끼치게 된다.
- 심각하진 않더라도 맞지 않은 옷을 입은 것처럼 어딘가는 불편한 것이어서 데이터 성격에 어긋나게 설계할 이유가 없다.
- 엔터티 유형 중에서 주 식별자를 인조 식별자로 설계하기 적절한 유형은 기준 엔터티도 있다.
- 중요 행위 엔터티도 포함 된다.
- 기본 정보를 관리하는 엔터티나 역할 엔터티도 인조 식별자가 적절하다.
- 실체 엔터티는 주 식별자에도 몇 가지 의미 있는 특징이 있다.
- 통합이 수월하고 적절한 실체 엔터티
- 실체 언터티는 보이는 것이고 존재 자체를 의미하기 때문에 일반화(generalization)하기 수월하다.
- 특성이 유사하기 때문에 통합하기 수월하다.
- 주 식별자가 인조 식별자인 점도 통합을 수월하게 만든다.
- 실체 엔터티가 통합되면 전체 모델 구조가 단순해진다.
- 위와 같은 이유로 실체 엔터티는 과감한 통합이 필요하다.
- 모든 유형의 엔터티는 통합하는게 바람직 하지만,
- 실체 엔터티는 더욱 그렇다.
- 실제로 통합을 시도하면, 기초 속성이 유사하기 때문에 작업하기 수월하다.
- 사람이든 상품이든 장비든 유형 내에서는 이름과 고유번호, 특성 등이 유사하기 때문.
- 실체 언터티는 보이는 것이고 존재 자체를 의미하기 때문에 일반화(generalization)하기 수월하다.
- 명사형의 엔터티 명
- 실체 엔터티의 이름은 실체라는 성격에 어울리게 명사형으로 붙이면 된다.
- 이는 행위 엔터티를 제외한 엔터티들에도 해당되는 것.
- 행위 데이터가 아닌 이상 명사형으로 끝나도록 붙이는 게 좋다.
- 탈퇴 회원을 관리하는 엔터티면 '탈퇴회원'이 적절하며, 동사형 명사로 끝나는 '회원탈퇴'는 적절하지 않다.
- 행위 엔터티의 명명법
- 행위 엔터티는 뒤에 '했음'을 붙여서 자연스러우면 적절한 이름
- 예를 들어, 회원이 탈퇴한 행위를 관리하는 엔터티는 행위 엔터티
- 뒤에 '했음'을 붙여 자연스럽도록 '회원탈퇴'로 정하면 된다.
- 행위 엔터티는 뒤에 '했음'을 붙여서 자연스러우면 적절한 이름
- 실체 엔터티의 명명법
- 실체 엔터티의 이름 뒤에 '했음'을 붙여 자연스러우면,
- 실체 엔터티의 이름으로 적절하지 않은 것.
- 항상 엔터티 명 뒤에 '했음'을 항상 붙여보길 권한다.
- 실체 엔터티는 인스턴스 발생이 빈번하지 않다는 점도 특징입니다.
- 하위에 존재하는 행위를 관리하는 엔터티보다는 인스턴스 개수도 적다.
- 관리되는 속성이 행위 엔터티에 비해 많지 않은 것도 특징
- 최종 상태를 나타내는 추출 속성의 남발로 속성이 많아지는 경향이 있다.
- 실체 엔터티의 이름은 실체라는 성격에 어울리게 명사형으로 붙이면 된다.
- 행위 엔터티보다 실체 엔터티로 도출
- 실체 엔터티의 태생상 가장 큰 특징 중의 하나는 눈에 쉽게 띄기 때문에 도출이 용이하는 점.
- 전체 엔터티를 훑어보면서 도출하기도 하고, 주요 엔터티(Primary Entity)를 분석하는 단계에서 도출하기도 한다.
- 하지만, 애매한 엔터티도 존재
- 대표적으로 계좌 엔터티.
- 만질 수 없기 때문에, 엄격하게 보면 실체 엔터티가 아니지만,
- 느슨하게 보면, 통장이나 잔고증명서와 연결되어 있어 실체로써의 연상이 가능하다.
- 위와 같은 이유로, 실체 엔터티의 특징을 계좌 엔터티에 적용한다.
- 실체 엔터티를 구분하는 것 자체가 목적이 아니라,
- 특성을 이해하고 제대로 설계하기 위한 게 목적이기 때문.
- 계좌 엔터티와 같이 실체데이터는 어떤 행위에 의해서 생성
- 행위가 원인이 돼서 결과인 실체 데이터가 생기는 것
- 예를 들어, 계좌 개설서를 작성해서 계좌 데이터가 생성.
- 계약이라는 행위가 계좌라는 결과를 생성
- 이렇게 어떤 행위에 의해서 결과 데이터인 실체 엔터티가 생길 때, 행위 엔터티를 도출하면서 실체 엔터티를 도출하지 않는 경우 발생.
- 원인인 행위를 엔터티로 도출하고, 결과인 실체는 엔터티로 도출하지 않은 것
- 하지만, 이렇게 하나만 관리한다면 결과인 실체 데이터를 관리하는 것이 좋다.
- 보이는 것을 엔터티로 설계하는 것이 바람직하다.
- 실체 엔터티로 도출해서 데이터 성격도 직관적으로 만들고, 모델 구조에서 토대가 되도록 하는 것이 좋다.
- 실체 엔터티의 태생상 가장 큰 특징 중의 하나는 눈에 쉽게 띄기 때문에 도출이 용이하는 점.
'데이터 모델링 > 데이터 모델링 강의' 카테고리의 다른 글
1. 엔터티 설계의 첫 관문. 실체 엔터티(3) (1) | 2024.11.19 |
---|---|
1. 엔터티 설계의 첫 관문. 실체 엔터티(2) (0) | 2024.11.19 |
1. 엔터티 설계의 첫 관문. 실체 엔터티(1) (1) | 2024.11.19 |