📌 Entity, Attribute, Instance 개념 정리
데이터 모델링에서 Entity(개체), Attribute(속성), Instance(인스턴스) 개념을 이해하는 것이 중요하다. 이를 쉽게 설명하기 위해 간단한 예제와 함께 살펴보자.
🔹 개념 정리
- Entity (개체): 관리할 대상이 되는 데이터 (예: 학생, 강의, 도서 등)
- Attribute (속성): 개체가 가지는 정보 (예: 학번, 이름, 학년 등)
- Instance (인스턴스): 개체(Entity)의 실제 데이터 값 (예: 학번
2023001, 이름 김철수)
Entity는 데이터를 저장하는 개체, Attribute는 개체가 가지는 속성, Instance는 실제 데이터를 의미한다.
🎯 이해하기 쉬운 비유
📦 택배 시스템으로 설명하면?
- Entity (개체) → "택배 상자"
- Attribute (속성) → "택배 상자에 붙어 있는 송장 (수령인, 주소, 무게)"
- Instance (인스턴스) → "실제 배송 중인 특정 택배"
이렇게 비유하면 Entity, Attribute, Instance 개념이 더 쉽게 이해될 것이다! 🚀
🔹 Entity (엔터티)
"식별 가능한 객체"
✅ 엔터티의 특징
- 업무에서 사용되는 정보여야 함
- 유일성을 보장하는 식별자(Primary Key)가 있어야 함
- 두 개 이상의 인스턴스(Row)를 가져야 함
- 반드시 속성(Attribute)을 포함해야 함
- 다른 엔터티와 하나 이상의 관계(Relationship)를 가져야 함
🔹 엔터티의 분류
1️⃣ 유형에 따른 분류
- 유형(Entity): 물리적인 형태가 존재 (예:
학생, 도서)
- 개념(Entity): 물리적 형태 없이 개념적으로 존재 (예:
강의 계획)
- 사건(Entity): 행위를 통해 발생하며, 빈번하고 통계 자료로 활용 가능 (예:
주문 내역)
2️⃣ 발생 시점에 따른 분류
- 기본 엔터티: 원래 존재하는 독립적인 정보, 자식 엔터티를 가질 수 있음
- 중심 엔터티: 기본 엔터티에서 파생되며, 데이터 양이 많고 업무에서 중심적인 역할 수행
- 행위 엔터티: 두 개 이상의 엔터티에서 파생되며, 데이터의 수정과 증가가 잦음
🔹 Attribute (속성)
"객체의 특징"
예를 들어, "사람"이라는 객체가 있다면 이름, 나이, 생년월일 등 다양한 특징이 존재할 것이다. 이처럼 개체(Entity)의 특정 정보를 나타내는 요소를 속성(Attribute)이라고 한다.
🔹 속성의 분류
1️⃣ 특성에 따른 분류
- 기본 속성 (Basic Attribute): 업무 프로세스에서 바로 정의할 수 있는 속성
- 설계 속성 (Designed Attribute): 업무에 존재하지 않지만 설계 시 필요하다고 판단되는 속성 (예:
고유번호)
- 파생 속성 (Derived Attribute): 다른 속성의 값을 계산하거나 특정 규칙으로 변형하여 생성하는 속성
2️⃣ 구성 방식에 따른 분류
- PK (Primary Key) 속성: 엔터티의 인스턴스를 식별할 수 있는 속성
- FK (Foreign Key) 속성: 다른 엔터티의 속성에서 가져온 속성
- 일반 속성: PK, FK를 제외한 나머지 속성
🔹 도메인 (Domain)
"속성이 가질 수 있는 값의 범위"
예를 들어, 성별 속성의 도메인은 [남, 여] 와 같이 미리 정의된 값의 범위를 가진다.
📖 참고 도서: 《SQL개발자 SQLD 과외노트》 - 정미나, 시대에듀