학교/SQLD

[SQLD] 1.1.2. 엔터티 / 1.1.3. 속성

daykim 2022. 1. 10. 16:21

엔터티 Entity


엔터티

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

 

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

 

엔터티 특징

  • 반드시 업무에서 필요로 하는 정보여야 한다.
  • 유일한 식별자에 의해 식별 가능해야 한다.
  • 영속적으로 존재하는  인스턴스 집합이어야 한다.  (2개 이상)
  • 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다.
  • 업무 프로세스에 의해 이용되어야 한다.
  • 반드시 속성이 있어야 한다. (단 관계 엔터티는 주식별자 속성만 가져도 됨)

 

유무형에 따른 엔터티 분류

  • 유형 엔터티
    물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티
    ex) 사원, 물품, 강사 등
  • 개념 엔터티
    물리적인 형태는 존재하지 않고, 관리해야 할 개념적인 정보로 구분이 되는 엔터티
    ex) 조직, 보험상품 등
  • 사건 엔터티
    업무를 수행함에 따라 발생되는 엔터티로서 비교적 발생량이 많으며 각종 통계자료에 이용될 수 있다.
    ex) 주문, 청구, 미납 등

 

발생 시점에 따른 엔터티 분류

  • 기본 엔터티
    • 업무에 원래 존재하는 정보
    • 다른 엔터티와 관계에 의해 생성되지 않고, 독립적 생성 가능
    • 타 엔터티의 부모 역할 -> 상속 안 됨. 고유 주식별자 가짐
    • ex) 사원, 고객, 부서 등
  • 중심 엔터티
    • 기본 엔터티로부터 발생
    • 업무에 중심적 역할
    • 데이터 양 많이 발생하며, 다른 엔터티와 관계 통해 많은 행위 엔터티 생성
    • ex) 계약, 사고, 청구 등
  • 행위 엔터티
    • 두 개 이상의 부모 엔터티로부터 발생
    • 자주 내용 변경되거나 데이터량이 증가
    • 분석초기엔 잘 나타나지 않고, 상세 설계 단계 또는 상관 모델링 진행하며 도출
    • ex) 사원 변경 이력 등

 

엔터티의 명명

  1. 현업 업무에서 사용하는 용어 사용
  2. 약어 사용 불가
  3. 단수 명사 사용
  4. 모든 엔터티에서 유일한 이름 부여
  5. 엔터티 생성 의미대로 이름 부여

 

속성 Attribute


속성

  • 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것이다.
  • 업무에서 필요로 하는 인스턴스로 관리하고자 하는, 의마상 더 이상 분리되지 않는 최소의 데이터단위다.
  • 엔터티는 속성들에 의해 설명된다.
    • ex) 엔터티 : 강자 - 속성들 : 이름, 주소, 생년월일 등

 

엔터티, 인스턴스, 속성, 속성값의 관계

  • 한 개의 엔터티는 2개 이상의 인스턴스 집합이어야 한다.
  • 한 개의 엔터티는 속성을 2개 이상 가져야 한다.
  • 한 속성은 1개의 값을 갖는다.
    • 다중값은 별도의 엔터티로 분류

 

속성의 표기법

  • 엔터티 내에 이름을 포함하여 표현하면 된다.

 

속성의 특징

  • 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
  • 정규화 이론에 근거하여 주식별자에 함수적 종속성을 가져야한다.
  • 하나의 속성에는 한 개의 값만을 가진다.
    다중값일 경우 별도의 엔터티를 이용해 분리한다.

 

속성의 특성에 따른 분류

  • 기본 속성
    • 업무에서 추출한 모든 속성
    • 코드성 데이터(업무상 코드로 정의한 속성), 엔터티를 식별하기위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성이다.
  • 설계속성
    • 업무에서 필요한 데이터 이외에 데이터 모델링 및 업무를 규칙화 하기 위해 새로 만들거나 변형한 속성
    • 코드성 데이터, 일련번호와 같은 속성이다.
  • 파생 속성
    • 타 속성에 의해 지속적으로 영향을 받아 자신의 값이 변하는 성질을 가지고 있는 속성
    • 주로 계산된 값이 해당한다.
    • 다른 속성에 영향을 받기 때문에, 프로세스 설계시 데이터 정합성을 유지하기 위해 가급적 파생속성을 적게 정의하는 것이 좋다.
    • 파생속성의 원인이 되는 속성을 이용하는 모든 애플리케이션 값을 생성, 수정 변경시 파생속성 고려해야한다.

 

엔터티 구성방식에 따른 분류

  • PK(Primary Key) 속성 : 엔터티를 식별할 수 있는 속성
  • FK(Foreign Key) : 다른 엔터티와의 관계에서 포함된 속성
  • 일반속성 : PK, FK에 포함되지 않은 속성

 

도메인 (Domain)

  • 각 속성마다 가질 수 있는 값의 범위다.
  • ex ) 학점 속성의 도메인은 0.0 ~ 4.0 사이의 실수값이다.

 

속성의 명칭 부여

  • 속성명이 곧 사용자 인터페이스에 나타나기 때문에 업무에 직결되는 항목이다.
  • 그래서 속성 이름을 정확하게 부여하고, 용어의 혼란을 없애기 위해 용어사전이라는 업무사전을 프로젝트에 사용한다.
  • 또 각 속성이 가지는 값의 종류와 범위를 명확하게 하기 위해 도메인 정의를 미리해 용어사전과 같이 사용한다.
  • 즉, 용어사전과 도메인 정의를 같이 사용해 프로젝트를 진행할 경우, 용어적 표준과 데이터타입의 일관성을 확보할 수 있게 된다.
  • 속성명 부여 원칙
    • 해당 업무에서 사용하는 이름 부여
    • 서술식 속성명은 사용하지 않는다.
    • 약어 사용은 가급적 제한
    • 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.