엔터티 Entity
엔터티
- 업무에 필요하고 유용한 정보를 저장, 관리하기 위한 집합적인 것이다.
- 사람, 장소, 물건, 사건, 개념 등의 명사
- 업무상 관리가 필요한 관심사
- 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다.
- ex) 학생이란 엔터티는 학번, 이름, 생일, 주소 등의 속성을 갖는다.
- 공유속성 : 엔터티 인스턴스 전체가 공유할 수 있는 속성
- 개별속성 : 엔터티 인스턴스 중 일부만 해당하는 속성
- 인스턴스의 집합이다.
- 인스턴스란 엔터티의 하나의 값에 해당한다고 정의할 수 있다.
- ex) 과목이라는 엔터티의 인스턴스들은 수학, 과학, 국어 등이 존재한다.
엔터티와 인스턴스에 대한 내용과 표기법


엔터티 특징
- 반드시 업무에서 필요로 하는 정보여야 한다.
- 유일한 식별자에 의해 식별 가능해야 한다.
- 영속적으로 존재하는 인스턴스 집합이어야 한다. (2개 이상)
- 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다.
- 업무 프로세스에 의해 이용되어야 한다.
- 반드시 속성이 있어야 한다. (단 관계 엔터티는 주식별자 속성만 가져도 됨)
유무형에 따른 엔터티 분류
- 유형 엔터티
물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티
ex) 사원, 물품, 강사 등 - 개념 엔터티
물리적인 형태는 존재하지 않고, 관리해야 할 개념적인 정보로 구분이 되는 엔터티
ex) 조직, 보험상품 등 - 사건 엔터티
업무를 수행함에 따라 발생되는 엔터티로서 비교적 발생량이 많으며 각종 통계자료에 이용될 수 있다.
ex) 주문, 청구, 미납 등
발생 시점에 따른 엔터티 분류
- 기본 엔터티
- 업무에 원래 존재하는 정보
- 다른 엔터티와 관계에 의해 생성되지 않고, 독립적 생성 가능
- 타 엔터티의 부모 역할 -> 상속 안 됨. 고유 주식별자 가짐
- ex) 사원, 고객, 부서 등
- 중심 엔터티
- 기본 엔터티로부터 발생
- 업무에 중심적 역할
- 데이터 양 많이 발생하며, 다른 엔터티와 관계 통해 많은 행위 엔터티 생성
- ex) 계약, 사고, 청구 등
- 행위 엔터티
- 두 개 이상의 부모 엔터티로부터 발생
- 자주 내용 변경되거나 데이터량이 증가
- 분석초기엔 잘 나타나지 않고, 상세 설계 단계 또는 상관 모델링 진행하며 도출
- ex) 사원 변경 이력 등
엔터티의 명명
- 현업 업무에서 사용하는 용어 사용
- 약어 사용 불가
- 단수 명사 사용
- 모든 엔터티에서 유일한 이름 부여
- 엔터티 생성 의미대로 이름 부여
속성 Attribute
속성
- 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것이다.
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는, 의마상 더 이상 분리되지 않는 최소의 데이터단위다.
- 엔터티는 속성들에 의해 설명된다.
- ex) 엔터티 : 강자 - 속성들 : 이름, 주소, 생년월일 등
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 2개 이상의 인스턴스 집합이어야 한다.
- 한 개의 엔터티는 속성을 2개 이상 가져야 한다.
- 한 속성은 1개의 값을 갖는다.
- 다중값은 별도의 엔터티로 분류
속성의 표기법
- 엔터티 내에 이름을 포함하여 표현하면 된다.

속성의 특징
- 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 정규화 이론에 근거하여 주식별자에 함수적 종속성을 가져야한다.
- 하나의 속성에는 한 개의 값만을 가진다.
다중값일 경우 별도의 엔터티를 이용해 분리한다.
속성의 특성에 따른 분류
- 기본 속성
- 업무에서 추출한 모든 속성
- 코드성 데이터(업무상 코드로 정의한 속성), 엔터티를 식별하기위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성이다.
- 설계속성
- 업무에서 필요한 데이터 이외에 데이터 모델링 및 업무를 규칙화 하기 위해 새로 만들거나 변형한 속성
- 코드성 데이터, 일련번호와 같은 속성이다.
- 파생 속성
- 타 속성에 의해 지속적으로 영향을 받아 자신의 값이 변하는 성질을 가지고 있는 속성
- 주로 계산된 값이 해당한다.
- 다른 속성에 영향을 받기 때문에, 프로세스 설계시 데이터 정합성을 유지하기 위해 가급적 파생속성을 적게 정의하는 것이 좋다.
- 파생속성의 원인이 되는 속성을 이용하는 모든 애플리케이션 값을 생성, 수정 변경시 파생속성 고려해야한다.
엔터티 구성방식에 따른 분류
- PK(Primary Key) 속성 : 엔터티를 식별할 수 있는 속성
- FK(Foreign Key) : 다른 엔터티와의 관계에서 포함된 속성
- 일반속성 : PK, FK에 포함되지 않은 속성
도메인 (Domain)
- 각 속성마다 가질 수 있는 값의 범위다.
- ex ) 학점 속성의 도메인은 0.0 ~ 4.0 사이의 실수값이다.
속성의 명칭 부여
- 속성명이 곧 사용자 인터페이스에 나타나기 때문에 업무에 직결되는 항목이다.
- 그래서 속성 이름을 정확하게 부여하고, 용어의 혼란을 없애기 위해 용어사전이라는 업무사전을 프로젝트에 사용한다.
- 또 각 속성이 가지는 값의 종류와 범위를 명확하게 하기 위해 도메인 정의를 미리해 용어사전과 같이 사용한다.
- 즉, 용어사전과 도메인 정의를 같이 사용해 프로젝트를 진행할 경우, 용어적 표준과 데이터타입의 일관성을 확보할 수 있게 된다.
- 속성명 부여 원칙
- 해당 업무에서 사용하는 이름 부여
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 제한
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
'학교 > SQLD' 카테고리의 다른 글
[SQLD] 2.1 SQL 기본 (1) | 2024.12.19 |
---|---|
[SQLD] 1.2.2 조인 / 1.2.3 모델이 표현하는 트랜잭션의 이해 / 1.2.4 Null 속성의 이해 / 1.2.5 본질식별자 vs. 인조식별자 (0) | 2024.12.19 |
[SQLD] 1.2.1 정규화 (3) | 2024.12.18 |
[SQLD] 1.1.4. 관계 / 1.1.5. 식별자 (0) | 2022.03.09 |
[SQLD] 1.1.1. 데이터 모델링의 이해 (0) | 2022.01.10 |