CertNote/ 출퇴근 학습 노트
로드맵
SQLD · 개발자SQL 개발자 (SQLD)
  • Week 1
    • 1.데이터 모델링 개요
    • 2.3단계 스키마와 모델링 단계
    • 3.엔터티
    • 4.속성
    • 5.관계
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← SQLD/Week 1/Day 3

기준: SQLD 출제 기준·오류 제보

SQLD· AssociateWeek 1 · Day 3읽기 약 8분
핵심 정리
  • 엔터티는 업무에 필요하고 유용한 정보를 저장·관리하기 위한 집합적인 것이다. 테이블의 후보가 된다.
  • 엔터티의 특징 여섯 가지: 업무에 필요, 식별자로 유일하게 식별, 인스턴스가 두 개 이상, 업무 프로세스가 이용, 속성 포함, 관계가 하나 이상.
  • 유무형에 따라 유형·개념·사건 엔터티로 나눈다.
  • 발생 시점에 따라 기본(키)·중심·행위 엔터티로 나눈다. 쇼핑몰이라면 고객·상품, 주문, 주문상품·주문이력 순이다.
  • 엔터티 이름은 현업 용어·단수 명사로, 모델 안에서 유일하게 짓는다.

Day 3 - 엔터티

무엇이 엔터티가 되나

쇼핑몰 기획 회의록에 "고객이 장바구니에 담은 상품을 주문하면 결제 후 배송한다"는 문장이 있다. 여기서 명사를 뽑으면 고객·장바구니·상품·주문·결제·배송이다. 이 명사들이 엔터티 후보다. 그러나 명사라고 다 엔터티가 되지는 않는다. 아래 특징을 모두 갖춰야 한다.

정의

  • 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)이다.
  • 업무 활동의 대상이 되는 실체 또는 개념이다. 눈에 보이는 상품도, 눈에 보이지 않는 주문도 엔터티가 된다.
  • 엔터티는 인스턴스의 집합이다. "고객" 엔터티 안에 C001 홍길동, C002 김영희 같은 인스턴스가 들어 있다.

엔터티의 특징

특징뜻엔터티가 아닌 예
업무에서 필요한 정보해당 업무가 관리해야 하는 정보다쇼핑몰 업무와 무관한 "고객의 혈액형" 집합
유일한 식별자로 식별 가능인스턴스 하나하나를 구분할 식별자가 있다구분할 방법이 없는 "방문자 수" 같은 값
인스턴스가 두 개 이상영속적으로 존재하는 인스턴스의 집합이다회사 정보처럼 인스턴스가 하나뿐인 것
업무 프로세스에 의해 이용업무 프로세스가 그 엔터티를 생성·조회·수정·삭제한다만들어 두고 어떤 업무도 쓰지 않는 것
속성을 포함엔터티를 설명하는 속성이 있다이름 외에 속성이 하나도 없는 것
관계가 하나 이상다른 엔터티와 최소 한 개 이상 관계를 맺는다어떤 엔터티와도 연결되지 않는 것
  • 인스턴스가 하나뿐이면 집합이 아니므로 엔터티로 보지 않는다. 쇼핑몰 회사 자체의 정보(상호, 사업자번호)가 한 건뿐이라면 엔터티로 만들지 않는다.
  • 업무 프로세스가 쓰지 않는 엔터티가 있다면 업무 분석이 덜 됐거나 필요 없는 엔터티라는 신호다. 모델링 중 프로세스가 빠졌는지 점검하는 기준이 된다.
  • 속성이 주식별자 하나뿐인 엔터티도 일반 업무 엔터티로는 보지 않는다. 다만 코드 엔터티처럼 예외로 허용하는 경우가 있다.

⚠️ "관계가 하나 이상" 규칙에는 예외가 있다. 통계성 엔터티, 코드성 엔터티, 시스템 처리용 내부 엔터티(트랜잭션 로그 등)는 관계를 생략해 그리기도 한다. 코드 엔터티는 여러 엔터티가 참조해 관계선이 지나치게 많아지기 때문이다.

유무형에 따른 분류

분류뜻쇼핑몰 예교재 예
유형 엔터티물리적 형태가 있다. 안정적이고 지속적으로 활용된다고객, 상품, 창고사원, 물품, 강사
개념 엔터티물리적 형태는 없지만 관리해야 할 개념적 정보다회원등급, 상품카테고리조직, 보험상품
사건 엔터티업무를 수행하는 중에 발생한다. 발생량이 많고 통계 자료로 쓰인다주문, 결제, 배송주문, 청구, 미납
  • "유형/무형" 두 가지로 줄여 말하기도 하지만, SQLD 교재의 분류는 유형·개념·사건 세 가지다. 무형에 해당하는 것이 개념과 사건이다.
  • 개념 엔터티와 사건 엔터티는 둘 다 형태가 없다. 차이는 업무 수행 중 발생하느냐다. "골드 등급"은 정해 두고 쓰는 개념이고, "주문"은 고객이 행동할 때마다 생기는 사건이다.
  • 보험상품은 유형처럼 보이지만 손에 잡히는 물건이 아니므로 개념 엔터티로 분류한다. 이름이 "상품"이라고 유형으로 단정하지 않는다.

발생 시점에 따른 분류

발생 시점 분류는 "다른 엔터티 없이 혼자 생길 수 있나"를 본다.

분류뜻쇼핑몰 예
기본 엔터티 (키 엔터티)업무에 원래 존재하는 정보다. 다른 엔터티에 의존하지 않고 독립적으로 생성된다. 자신의 고유한 주식별자를 가지며 다른 엔터티의 부모 역할을 한다고객, 상품, 사원, 부서
중심 엔터티기본 엔터티로부터 발생하고 업무의 중심 역할을 한다. 데이터 양이 많고, 다른 엔터티와 관계를 맺어 행위 엔터티를 만든다주문, 결제
행위 엔터티두 개 이상의 부모 엔터티로부터 발생한다. 내용이 바뀌는 일이 잦거나 데이터 양이 계속 늘어난다주문상품, 주문변경이력
  기본 엔터티            중심 엔터티             행위 엔터티
  ┌──────┐
  │ 고객 │ ─────────▶ ┌──────┐
  └──────┘            │ 주문 │ ──────────▶ ┌──────────┐
                      └──────┘             │ 주문상품 │
  ┌──────┐                                 └──────────┘
  │ 상품 │ ───────────────────────────────────────▲
  └──────┘
  • 주문은 고객이 있어야 생긴다. 그래서 고객은 기본 엔터티, 주문은 중심 엔터티다.
  • 주문상품은 주문과 상품 두 부모로부터 생긴다. 그래서 행위 엔터티다.
  • 행위 엔터티는 분석 초기에는 잘 드러나지 않는다. 상세 설계 단계나 프로세스와 상관 모델링을 하면서 도출되는 경우가 많다.
  • 기본 엔터티의 주식별자는 부모에게서 물려받지 않고 자기 것이다. 고객번호는 고객이 스스로 갖는다.

두 분류를 함께 보면

같은 엔터티가 두 기준에서 각각 어디에 드는지 정리하면 헷갈림이 줄어든다.

엔터티유무형발생 시점
고객유형기본
상품유형기본
회원등급개념기본
주문사건중심
주문상품사건행위
  • 두 기준은 서로 다른 축이다. "사건 엔터티 = 중심 엔터티"처럼 일대일로 대응하지 않는다.
  • 회원등급은 형태가 없어 개념 엔터티이면서, 다른 엔터티 없이 정해 둘 수 있어 기본 엔터티다.
  • 특정 엔터티의 분류는 업무를 어떻게 정의하느냐에 따라 교재·예시마다 달라질 수 있다. 시험에서는 정의 문장(독립적 생성 / 기본 엔터티로부터 발생 / 두 개 이상 부모)을 기준으로 판단한다.

엔터티 이름 짓기

원칙좋은 예나쁜 예
현업 업무에서 쓰는 용어주문구매요청트랜잭션
약어 쓰지 않기주문상품주상
단수 명사고객고객들, 고객목록
모든 엔터티에서 유일한 이름배송, 반품배송배송(두 곳에서 서로 다른 뜻으로)
생성 의미대로 이름 부여주문변경이력이력
  • 단수 명사를 쓰는 이유는 엔터티 자체가 이미 집합이기 때문이다. "고객들"이라고 쓰면 집합의 집합처럼 읽힌다.
  • 이름이 유일해야 의사소통에서 오해가 없다. 같은 "배송"이 한쪽에서는 출고, 다른 쪽에서는 반품 회수를 뜻하면 모델을 보는 사람마다 다르게 읽는다.

내일은 엔터티를 채우는 속성의 종류와 도메인을 다룬다.

📖 용어

  • 엔터티(Entity) : 업무에 필요한 정보를 저장·관리하기 위한 집합. 테이블 후보가 된다.
  • 인스턴스(Instance) : 엔터티에 담긴 하나하나의 실제 값 묶음. 고객 엔터티의 홍길동 한 명.
  • 식별자 : 엔터티 안의 인스턴스를 하나씩 구분해 주는 속성. 고객번호 같은 것.
  • 사건 엔터티 : 업무를 하는 도중 생겨나는 엔터티. 주문·결제처럼 발생량이 많다.
  • 기본 엔터티(키 엔터티) : 다른 엔터티 없이 독립적으로 생기는 엔터티. 다른 엔터티의 부모가 된다.
  • 중심 엔터티 : 기본 엔터티에서 생겨나 업무의 중심 역할을 하는 엔터티.
  • 행위 엔터티 : 두 개 이상의 부모 엔터티에서 생겨나는 엔터티. 데이터가 계속 쌓인다.
  • 코드성 엔터티 : 등급·상태처럼 값 목록을 관리하는 엔터티. 관계를 생략해 그리기도 한다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 엔터티의 특징으로 적절하지 않은 것은?

문제 2

다음 중 발생 시점에 따른 엔터티 분류에서 중심 엔터티에 해당하는 것으로 가장 적절한 것은? (쇼핑몰 업무 기준)

문제 3

엔터티의 유무형에 따른 분류에 대한 설명으로 가장 적절한 것은?

문제 4

두 개 이상의 부모 엔터티로부터 발생하고, 내용이 바뀌는 일이 잦거나 데이터 양이 계속 증가하며, 상세 설계 단계나 프로세스와 상관 모델링 중에 도출되는 엔터티는?

문제 5

엔터티 명명 규칙에 대한 설명으로 가장 적절하지 않은 것은?

이전3단계 스키마와 모델링 단계Week 1 · Day 2다음 속성Week 1 · Day 4

참고 공식 자료

  • SQLD 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 무엇이 엔터티가 되나
  • 정의
  • 엔터티의 특징
  • 유무형에 따른 분류
  • 발생 시점에 따른 분류
  • 두 분류를 함께 보면
  • 엔터티 이름 짓기
  • 용어
  • 연습 문제