[SQLD] 16. 엔터티 (Entity)

TJK·2025년 8월 11일
0

엔터티 (Entity)

엔터티(Entity)는 데이터 모델링의 가장 기본 단위로, 시스템을 구축하고자 하는 업무 영역에서 관리해야 할 정보의 대상을 의미함. 데이터로 저장되고 관리되어야 하는 의미 있는 '정보의 주인공(명사)'으로, 물리 모델에서는 테이블(Table)로 구현됨.


1. 엔터티의 특징 (엔터티의 조건)

업무에서 사용되는 모든 명사가 엔터티가 될 수 있는 것은 아니며, 엔터티로 정의되기 위해서는 다음의 특징들을 만족해야 함.

특징설명예시 (User 엔터티)
업무 관련성해당 업무에서 필요로 하고 관리해야 하는 정보여야 함.User(사용자)는 시스템의 핵심 주체이므로 필수 정보임.
식별 가능성유일한 식별자(Primary Key)에 의해 각 인스턴스를 명확하게 구분할 수 있어야 함.user_id를 통해 동명이인 사용자도 유일하게 식별 가능함.
인스턴스 집합성2개 이상의 인스턴스(실제 데이터)를 포함하는 집합이어야 함.User 엔터티는 '라이언', '춘식이' 등 여러 명의 사용자 데이터를 가짐.
업무 프로세스 활용반드시 하나 이상의 업무 프로세스에서 사용되어야 함.User는 '게시물 작성', '댓글 달기' 등 다양한 업무 프로세스에 관여함.
속성 포함반드시 하나 이상의 속성(Attribute)을 가져야 함.Useruser_id 외에 name, email 등 여러 속성을 가짐.
관계 설정최소 하나 이상의 다른 엔터티와 관계를 맺어야 함.UserPost와 1:N 관계, Profile과 1:1 관계를 맺음.

2. 엔터티의 종류

엔터티는 성격과 역할에 따라 여러 기준으로 분류할 수 있으며, 특히 발생 시점에 따른 분류가 중요함.

2.1 유/무형에 따른 분류

  • 유형 엔터티 (Tangible Entity): 물리적으로 존재하는 객체. (예: User, Product)
  • 개념 엔터티 (Conceptual Entity): 물리적 형태는 없으나 개념적으로 존재하는 객체. (예: Course, Department)
  • 사건 엔터티 (Event Entity): 업무 프로세스 수행 시 발생하는 행위를 표현하는 객체. (예: Order, Enrollment)

2.2 발생 시점에 따른 분류 (SQLD 핵심 포인트)

종류정의특징예시 (User, Post, Like)
기본 엔터티
(Fundamental)
다른 엔터티에 의존하지 않고, 독립적으로 생성될 수 있는 엔터티.- 업무의 기반이 되는 정보.
- 다른 엔터티의 부모 역할.
User (사용자는 다른 정보 없이도 가입 가능)
중심 엔터티
(Main)
기본 엔터티로부터 파생되며, 업무의 중심에서 다양한 행위와 관계를 맺는 엔터티.- 기본 엔터티와 행위 엔터티의 중간에 위치.
- 데이터 양이 많은 경향.
Post (게시물은 User가 있어야만 생성 가능)
행위 엔터티
(Associative)
두 개 이상의 엔터티 사이에서 발생하는 행위를 표현하기 위해 생성된 엔터티.- 주로 N:M 관계를 해소하기 위해 생성됨.
- 시간이 지남에 따라 데이터가 지속적으로 누적됨.
Like (UserPost 사이의 '좋아요' 행위)

3. 엔터티 명명 규칙

모델의 가독성과 의사소통의 명확성을 위해 엔터티 이름을 정할 때 지켜야 할 원칙.

  1. 현업 용어 사용: 개발 용어가 아닌, 실제 업무에서 사용하는 이름으로 명명함. (예: 고객, 주문)
  2. 약어 사용 지양: 의미를 명확히 전달하기 위해 가급적 약어를 사용하지 않음. (예: Customer > CUST)
  3. 단수 명사 사용: 엔터티는 하나의 개념 집합을 의미하므로, 단수형으로 표현하는 것을 권장함. (※ 이론적 원칙)
  4. 고유한 이름 부여: 하나의 데이터 모델 내에서 엔터티 이름은 유일해야 함.
  5. 생성 의미 반영: 이름만으로도 어떤 데이터를 담고 있는지 유추할 수 있도록 명명함.

4. 시험 문제 유형 및 함정 포인트

  • 엔터티 조건: 엔터티의 6가지 특징(조건)을 나열하고, 이 중 틀린 것을 찾거나 각 조건에 대한 설명을 바르게 연결하는 문제가 출제됨.
  • 엔터티 식별: 주어진 업무 시나리오에서 어떤 명사가 엔터티가 될 수 있는지, 또는 될 수 없는지를 묻는 문제가 나옴. (예: '하나의 값만 갖는 코드', '업무와 관련 없는 정보'는 엔터티가 아님)
  • 엔터티 종류 구분 (핵심): '기본', '중심', '행위' 엔터티의 개념을 묻고, 주어진 ERD나 시나리오에서 각 엔터티가 어떤 종류에 해당하는지 구분하는 문제가 단골로 출제됨. 특히, N:M 관계를 해소하기 위해 생성된 테이블은 대부분 행위 엔터티라는 점을 기억해야 함.
  • 엔터티 명명 규칙: 좋은 엔터티 명명 규칙에 대한 설명 중 옳지 않은 것을 고르는 문제가 나올 수 있음. '단수 명사 사용'이 이론적 원칙이라는 점을 기억하는 것이 좋음.
profile
Hello world!

0개의 댓글