엔터티(Entity)

2023. 2. 27. 22:06SQL/SQL 전문가 가이드(2020 개정판)

1. 엔터티의 개념

엔터티의 정의

□ 변별할 수 있는 사물 - Peter Chen(1976)

□ 데이터베이스 내에서 변별 가능한 객차 - CJ Date(1986)

□ 정보를 저장할 수 있는 어떤 것 - James Martin(1989)

□ 정보가 저장될 수 있는 사람, 장소, 물건, 사건, 개념 등 - Thomas Bruce(1992)

 

공통점

□ 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당됩니다.

□ 엔터티는 업무상 관리가 필요한 관심사에 해당됩니다.

□ 엔터티는 저장이 되기 위한 어떤 것(Thing)입니다.

 

2. 엔터티와 인스턴스에 대한 내용과 표기법

 엔터티를 표현하는 방법은 각각의 표기법에 따라 조금씩 차이는 있지만, 대부분 사각형으로 표현됩니다.

과목, 강사, 사건은 엔터티에 해당하고, 수학과 영어는 과목이라는 엔터티의 인스턴트이고, 이춘식과 조시형은 강사라는 엔터티의 인스턴스이며, 사건번호인 2010-001, 2010-002는 사건 엔터티에 대한 인스턴스에 해당합니다.

3. 엔터티의 특징

□ 반드시 해당 업무에서 필요하고, 관리하고자 하는 정보이어야 합니다. (예, 환자·토익의 응시 횟수···)

□ 유일한 식별자에 의해 식별이 가능해야 합니다.

□ 영속적으로 존재하는 인스턴스의 집합이어야 합니다. ('한 개'가 아니라 '두 개 이상')

□ 엔터티는 업무 프로세스에 의해 이용돼야 합니다.

□ 엔터티는 반드시 속성이 있어야 합니다.

□ 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 합니다.

 

가. 업무에서 필요로 하는 정보

 환자라는 엔터티는 의료 시스템을 개발하는 병원에서는 반드시 필요한 엔터티이지만, 일반 회사에서 직원들이 병에 걸려 업무에 지장을 주더라도 이 정보를 그 회사의 정보로서 활용하지는 않을 것입니다. 하지만 병원에서는 환자가 해당 업무의 가장 중요한 엔터티가 되어 꼭 관리해야 할 엔터티가 됩니다. 이와 같이 엔터티를 도출할 때는 업무 영역에서 관리할 필요가 있는지를 먼저 판단하는 것이 중요합니다.

나. 식별 가능해야

 유일한 식별자는 그 엔터티의 인스턴스만의 고유한 이름이며, 두 개 이상의 엔터티를 대변하면 그 식별자는 잘못 설계된 것입니다. 예를 들어 직원을 구분할 수 있는 방법은 이름이나 사원번호가 될 수 있으나, 이름은 중복될 가능성이 높으므로, 회사에 입사한 사람에게 고유하게 부여된 번호인 사원번호가 유일한 식별자가 될 수 있습니다.

다. 인스턴스의 집합

 엔터티의 특징 주 '한 개'가 아니라 '두 개 이상'이라는 집합 개념이 매우 중요합니다. 두 개 이상이라는 개념은 엔터티뿐만 아니라 엔터티 간의 관계, 프로세스와의 관계 등 업무를 분석하고, 설계하는 동안 설계자가 모든 업무에 대입해 보고, 검증해 보아야 할 중요한 개념입니다.

라. 업무 프로세스에 의해 이용돼야

 업무에 반드시 필요하다고 하여 엔터티로 선정하였는데, 업무 프로세스가 전혀 이용하지 않는다면 업무 분석이 정확하게 이뤄지지 않아 엔터티가 잘못 선정되었거나, 업무 프로세스 도출이 적절하게 이뤄지지 않았음을 의미합니다. 데이터 모델링을 할 때 미처 발견하지 못하다가 프로세스 모델링을 할 때 데이터 모델과 검증하거나, 상관 모델링을 할 때 엔터티와 단위 프로세스를 교차 점검하면 문제점이 도출됩니다.

마. 속성 포함

속성을 포함하지 않고, 엔터티의 이름만 갖고 있는 경우는 관계가 생략되어 있거나 업무 분석이 미진하여 속성정보가 누락되는 경우에 해당합니다. 예외적으로 관계 엔터티(Associative Entity)는 주식별자 속성만 갖고 있어도 엔터티로 인정합니다.

바. 관계의 존재

엔터티가 도출되었다는 것은 기본적으로 해당 업무 내에서 업무적인 연관성(존재적 연관성, 행위적 연관성)을 갖고, 다른 엔터티와의 연관의 의미를 갖고 있음을 뜻합니다. 그러나 관계가 설정되지 않은 엔터티의 도출은 부적절한 엔터티가 도출되었거나 다른 엔터티와 적절한 관계를 찾지 못했을 가능성이 높습니다.

4. 엔터티의 분류

가. 유무형에 따른 분류

 

□ 유형 엔터티(Tangible Entity): 물리적인 형태가 있고, 안정적이며 지속적으로 활용되는 엔터티

□ 개념 엔터티(Conceptual Entity): 물리적인 형태가 존재하지 않고, 관리해야 할 개념적 정보로 구분되는 엔터티

□ 사건 엔터티(Event Entity): 업무를 수행함에 따라 발생하는 엔터티

 

나. 발생시점에 따른 분류

 

□ 기본 엔터티: 그 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고, 독립적으로 생성이 가능하고, 자신은 타 엔터의 부모 역할을 하게 됩니다. (ex. 사원, 부서, 고객, 상품, 자재 등)

□ 중심 엔터티: 기본 엔터티로부터 발생되고, 그 업무에서 중심적인 역할을 합니다. (ex. 계약, 사고 예금원장, 청구, 주문, 매출 등)

□ 행위 엔터티: 두 개 이상의 부모엔터티로부터 발생하고, 자주 내용이 바뀌거나 데이터 양이 증가합니다. 상세 설계 단계나 프로세스와 상관모델링을 진행하면서 도출될 수 있습니다.(ex. 주문목록, 사원변경이력 등) 

 

다. 엔터티 분류 방법의 예

 

5. 엔터티의 명명

1) 현업 업무에서 사용하는 용어를 사용합니다.

2) 가능하면 약어를 사용하지 않습니다.

3) 단수 명사를 사용합니다.

4) 모든 엔터티에서 유일하게 이름이 부여되어야 합니다.

5) 엔터티 생성 의미대로 이름을 부여합니다.

'SQL > SQL 전문가 가이드(2020 개정판)' 카테고리의 다른 글

식별자(Identifier)  (0) 2023.03.02
관계(Relationship)  (0) 2023.03.01
속성(Attribute)  (0) 2023.02.28
데이터 모델의 이해  (0) 2023.02.26
SQLD(SQL 개발자), SQLP(SQL 전문가)란 무엇인가  (0) 2023.02.26