과목 1. 데이터 모델링의 이해-엔터티

수맹·2023년 2월 15일
0

SQLD공부

목록 보기
3/4

엔터티란 무엇인가?

엔터티 = 실체, 객체

업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것

업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 정의 가능

그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 지니고 있으며 이는 인스턴스 전체가 공유하는 공통 속성과 일부만 해당하는 개별 속성이 존재
ex. 학생 엔터티는 학번, 이름, 이수학점, 등록일자, 생일, 주소 등의 속성을 보유

엔터티는 인스턴스의 집합, 인스턴스는 엔터티의 하나의 값이라 정의 가능

눈에 보이지 않는 개념에 대해서도 엔터티로서 인식할 수 있어야 함

엔터티와 인스턴스의 표기법

대부분 사각형으로 표현
<사진>

엔터티의 조건

  • 업무에서 필요로 하는 정보여야 함

    시스템을 구축하고자 하는 업무에서 필요, 관리하고자 하는 정보여야 함
    엔터티를 도출할 때 업무영역 내에서 관리할 필요가 있는지를 먼저 판단

  • 식별자에 의해 식별이 가능해야 함

    엔터티를 도출할 경우 각각의 업무적으로 의미를 가지는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증

    두 개 이상의 엔터티를 대변할 경우 잘못 설계된 식별자
    ex. 이름의 경우 동명이인이 존재할 수 있으나 사원번호의 경우 유일한 식별자

  • 영속적으로 존재하는 인스턴스의 집합이어야 함

    두 개 이상이라는 집합개념이 없으면 인스턴스 성립 불가
    <사진>

  • 업무프로세스에 의해 이용되어야 함

    전혀 이용되지 않는다면 업무 분석이 정확하게 안되어 엔터티가 잘못 선정되거나 업무프로세스 도출이 적절하게 이루어지지 않았음을 의미

    프로세스 모델링을 하며 데이터 모델과 검증할 때 문제점 도출

    상관 모델링을 할 때 엔터티와 단위프로세스를 교차 점검하면서 문제점 도출

    이렇게 고립된 엔터티는 제거하거나 누락된 프로세스를 추가해서 해결

  • 속성을 포함해야 함

    속성이 없고 엔터티의 이름만 가지고 있을 경우 관계가 생략되었거나 업무 분석이 미진하여 속성정보가 누락된 것

    주식별자만 존재하고 일반속성이 전혀 없는 경우 역시 부적절한 엔터티

    단, 관계엔터티의 경우 주식별자 속성만 있어도 엔터티로 인정

    <사진>

  • 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 함

    관계가 설정되지 않은 엔터티의 도출은 부적절한 엔터티가 도출되었거나 다른 엔터티와 적절한 관계를 찾기 못했을 가능성 존재

    통계성 엔터티 도출, 코드성 엔터티 도출, 시스템 처리시 내부 필요에 의한 엔터티 도출과 같은 경우 관계를 생략하여 표현

    <사진>

문제

다음 중 아래 시나리오에서 엔터티로 가장 적절한 것은?

S 병원은 여러 명의 환자가 존재하고 각 환자에 대한 이름, 주소 등을 관리해야한다.
(단, 업무 범위와 데이터의 특성은 상기 시나리오에 기술되어 있는 사항만을 근거하여 판단해야 함)

① 병
② 환자
③ 이름
③ 주소

정답 : ②

병원은 S 병원1개이므로 엔터티로 성립되지 않으며, 이름, 주소는 엔터티의 속성으로 인실 될 수 있다. 엔터티는 2개 이상의 속성과 2개 이상의 인스턴스를 가져 소위 면적으로 표현될 수 있어야 비로소 기본적인 엔터티의 자격을 갖췄다 할 수 있으므로 '여러 명'의 복수 인스턴스와 이름, 주소 등의 복수 속성을 가진 '환자'가 엔터티로 가장 적합 할 수 있다.

다음 중 엔터티의 특징으로 가장 부적절한 것은?

① 속성이 없는 엔터티는 있을 수 없다. 엔터티는 반드시 속성을 가져야한다.
② 엔터티는 다른 엔터티와 관계가 있을 수 밖에 없다. 단, 통계성 엔터티나, 코드성 엔터티의 경우 관계를 생략 할 수 있다.
③ 객체지향의 디자인 패턴에는 싱글턴패턴이 있어 하나의 인스턴스를 가지는 클래스가 존재한다. 이와 유사하게 엔터티는 한 개의 인스턴스를 가지는 것만으로도 충분한 의미를 부여 할 수 있다.
④ 데이터로서 존재하지만 업무에서 필요로 하지 않으면 해당 업무의 엔터티로 성립 될 수 없다.

정답 : ②

엔터티의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

    ex)환자, 토익의 응시횟수...

  • 유일한 식별자에 의해 식별이 가능해야 한다.


  • 영속적으로 존재하는 (두 개 이상의) 인스턴스의 집합이어야 한다.

    ("한 개"가 아니라 "두 개 이상")

  • 엔터티는 업무 프로세스에 의해 이용되어야 한다.


  • 엔터티는 반드시 속성이 있어야 한다.


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

문제

다음 중 엔터티의 일반적인 특징으로 가장 부적절한 것은?

① 다른 엔터티와의 관계를 가지지 않는다.
② 유일한 식별자에 의해 식별이 가능해야한다.
③ 엔터티는 입무 프로세스에 의해 이용되어야한다.
④ 엔터터는 반드시 속성을 포함해야 한다.

정답 : ①

엔터티의 중요한 특징의 하나는 다른 엔터티와 관계를 가져야 한다는 것이다. 그러나 공통코드, 통계성 엔터티의 경우는 관계를 생략할 수 있다.

엔터티의 분류 방법

  • 엔터티 자신의 성격에 의해 실체유형에 따라 구분하거나 업무를 구성하는 모습에 따라 구분이 되는 발생시점에 의해 분류


  • 유무형에 따른 분류

    • 유형엔터티

      물리적 형태, 안정적, 지속적으로 활용되는 엔터티

      업무로부터 엔터티를 구분하기가 가장 용이

      사원, 물품, 강사

    • 개념엔터티

      물리적 형태x, 관리해야 할 개념정 정보로 구분이 되는 엔터티

      조직, 보험상품

    • 사건엔터티

      업무를 수행함에 따라 발생하는 엔터티

      발생량이 많고 통계에 이용

      주문, 청구, 미납

  • 발생시점에 따른 분류

    • 기본/키엔터티

      그 업무에 원래 존재하는 엔터티

      다른 엔터티와 관계에서 생성되지 않고 독립적으로 생성 가능

      다른 엔터티의 부모 역할

      다른 엔터티의 주식별자를 상속받지 않고 고유 주식별자 보유

      사원, 부서, 고객, 상품, 자재

    • 중심엔터티

      기본엔터티로부터 발생되어 그 업무에 있어 중심적인 역할

      발생량이 많고 다른 엔터티와의 관계를 통해 행위엔터티를 생성

      계약, 사고, 예금원장, 청구, 주문, 매출

    • 행위엔터티

      두 개 이상의 부모엔터티로부터 발생

      자주 내용이 바뀌거나 데이터량이 증가

      분석초기에 잘 나타나지 않으며 상세 설계단게, 프로스스와 상관

      모델링 진행에서 도출

      주문목록, 사원변경이력

    • 그 외 엔터티의 스스로 생성 여부에 따라 독립/의존엔터티로 구분 가능

      <사진>

문제

다음 중 다른 엔터티로부터 주 식별자를 상속받지 않고 자신의 고유한 주식별자를 가지며 사원, 부서, 고객, 상품, 자재 등이 예가 될 수있는 엔터티로 가장 적절한 것은?

① 기본 엔터티 (키엔터티)
② 중심 엔터티 (메인엔터티)
③ 행위 엔터티
④ 개념 엔터티

정답 : ①

기본엔터티(키엔터티)란 그 업무에 원래 존재하는 정보로서 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다. 예를 들어 사원, 부서, 고객, 상품, 자재 등이 기본 엔터티가 될 수 있다.

엔터티의 명명

가능하면 현업업무에서 쓰이는 용어 사용

가능하면 약어 사용x

가능하면 단순명사 사용

모든 엔터티에서 유일하게 이름이 부여

엔터티의 생성 의미대로 이름을 보여 자주 적절치 못한 이름이 발생

ex. 고객제품 경우 고객이 주문한 제품인지 고객이 지닌 제품인지 알 수 없음

문제

다음 중 엔터티의 이름을 부여하는 방법으로서 가장 부적절한 것은?

① 가능하면 약어를 사용하여 엔터티의 이름을 간결하고 명확하게 한다.
② 현업의 업무 용어를 사용하여 업무상의 의미를 분명하게한다.
③ 모든 엔터티에서 유일한 이름이 부여되어야 한다.
④ 엔터티가 생성되는 의미대로 자연스럽게 부여하도록한다.

정답 : ①

엔터티를 명명하는 일반적인 기준은 다음과 같다. 용어를 사용하는 모든 표기법이 다 그렇듯이 첫번째는 가능하면 현업업무에서 사용하는 용어를 사용한다. 두번째는 가능하면 약어를 사용하지 않는다. 세번째는 단수명사를 사용한다. 네번째는 모든 엔터티를 통틀어서 유일하게 이름이 부여되어야 한다. 다섯번째는 엔터티의 생성의미대로 이름을 부여한다.

profile
Alessandro Nesta

0개의 댓글