엔터티(Entity)
업무 활동상 지속적인 관심ㅂ을 가지고 있어야하는 대상, 그 대상들 간에 동질 성을 지닌 인스턴스들과 인스턴스의 행위의 집합
속성(Attribute)
엔터티가 엔터티 집합에 속하는 개체의 특성
엔터티는 하나의 값에 해당한다고 할 수 있다.
또한 인스턴스의 집합이라고도 말할 수 있다.
눈에 보이는 것 뿐만 아니라 눈에 보이지 않는 것도 엔터티로 도출되는 경우가 있기에 신경써야한다.
엔터티와 인스턴스 표기법
위 이미지에서 과목, 강사, 사건은 엔터티에 해당하며 수학, 영어는 "과목"이라는 엔터티의 인스턴스다.
Lee, Kim은 "강사"라는 엔터티의 인스턴스이고 2023-001a, 2023-002a는 "사건"이라는 인스턴스의 엔터티에 해당한다.
엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야한다.
- 업무 영역 내에서 관리할 필요가 있나의 여부를 판단하는 것이 중요하다.
2. 유일한 식별자에 의해 식별이 가능해야한다.
- 학생은 이름과 학번으로 구분이 가능하지만 이름으로 구분하는 경우 동명이인이 존재할 수 있기 때문에 유일한 식별자가 될 수 없지만 학번은 유일한 식별자가 될 수 있다.
3. 영속적으로 존재하는 인스턴스의 집합이어야한다.
- 하나의 엔터티는 여러 개의 인스턴스를 포함하므로 엔터티 간의 관계, 프로세스와의 관계 등 업무를 분석하고 설계하는 동안 업부에 대입, 검증해보아야 한다.
4. 엔터티는 업무 프로세스에 의해 이용되어야한다.
- 1.에서와 같이, 업무에 필요하다는 판단으로 엔터티를 선정했지만 실제 업무 프로세스에 전혀 이용되지지 않으면 업무 분석이 이루어지지 않았거나 업무 프로세스 도출이 적절히 이루어지지 않았음을 의미한다.
= > 프로세스 모델링을하면서 데이터 모델과 검증 or 상관 모델링을 할 때 엔터티와 단위 프로세스를 교차 점검한다.
5. 엔터티는 반드시 속성이 있어야한다.
- 속성을 포함하지 않고 엔터티의 이름만 가지고 있거나 주식별자만 있고 일반 속성은 전혀 없는 경우도 적절치 못한 엔터티다.
-- 관계엔터티는 주식별자만 존재해도 엔터티로 인정한다.
6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야한다.
- 만약 관계가 설정되지 않은 엔터티의 도출은 부적절한 엔터티가 도출 됐거나 아른 엔터티와 관계를 찾지 못했을 가능성이 크다.
-- 하지만 관계를 생략할 수 있는 엔터티가 존재한다.
1. 통계성 엔터티
2. 코드성 엔터티
3. 시스템 처리시 내부에서 필요에 따라 도출한 엔터티
엔터티의 분류
유뮤형에 따른 분류
1. 유형 엔터티
물리적 형태가 있고 안정적이며 지속적으로 활용되는 엔터티. 업무와 엔터티를 구분하기 가장 쉽다.
2. 개념 엔터티
물리적인 형태는 존재하지 않고 관리해야할 개념적 정보로 구분이 되는 엔터티 (ex 보험 상품)
3. 사건 엔터티
업무를 수행하면서 발생하는 엔터티. 비교적 발생량이 많고 각종 통계 자료로 활용된다.(ex주문, 청구, 미납 등)
발생 시점에 따른 분류
1. 기본 엔터티
원래 그 업무에 존재하는 정보로 독립적으로 생성이 가능하고 다른 엔터티의 부모 역할을 한다.
따라서 고유한 주식별자를 갖는다.(ex 사원, 부서, 고객, 상품 자재 등)
2. 중심 엔터티
기본 엔터티에서 발생하고 그 업무에 있어 중심적인 역할을 한다.
데이터 양이 많이 발생하고 다른 엔터티와 관계를 통해 행위 엔터티를 생성한다.
(ex 계약, 사고, 예금원장, 청구, 주문, 매출 등)
3. 행위 엔터티
두 개 이상의 부모 엔터티에서 발생하고 자주 내용이 바뀌거나 데이터의 양이 증가한다.
분석 초기 단계에서는 잘 나타나지 않고 상세 설계 단계 or 프로세스와 상관 모델링을 진행하면서 도출될 수 있다.
(ex 주문 목록, 사원 변경 이력 등)
엔터티의 명명 기준
1. 가능한 현업에서 사용하는 용어를 사용한다.
2. 약어를 사용하지 않는다.
3. 단수 명사를 사용한다.
4. 모든 엔터티에 유일한 이름을 부여한다.
5. 엔터티 생성 의미대로 이름을 부여한다.
'SQLD를 위한 낙서장' 카테고리의 다른 글
[SQLD] SQL 개발자 자격증 공부 메모장 여섯 번째 (0) | 2023.06.26 |
---|---|
[SQLD] SQL 개발자 자격증 공부 메모장 다섯 번째 (0) | 2023.06.25 |
[SQLD] SQL 개발자 자격증 공부 메모장 세 번째 (0) | 2023.06.23 |
[SQLD] SQL 개발자 자격증 공부 메모장 두 번째 (0) | 2023.06.23 |
[SQLD] SQL 개발자 자격증 공부 메모장 첫 번째 (0) | 2023.06.21 |