엔티티(Entity)
엔티티란?
식별이 가능한 객체로, 시스템 내에서 고유한 존재로 인식되는 개체임. 데이터베이스에서 각 엔티티는 특정 속성을 갖고 있으며, 그 자체로 구분할 수 있는 고유성을 가짐
엔티티의 특징
업무에 쓰이는 정보 : 조직 내에서 업무 처리를 위해 필요한 정보를 제공함. 예를 들어, 고객, 제품, 주문
유니크함을 보장할 수 있는 식별자 : 각 엔티티는 고유한 식별자를 가지고 있어 중복 없이 구분할 수 있음. 예를 들어, 회원 ID, 주문 번호
두 개 이상의 인스턴스 : 엔티티는 단 하나의 인스턴스로 존재하지 않으며 여러 인스턴스를 가질 수 있음. 예를 들어, 회원
반드시 속성이 있음 : 엔티티는 특정 속성을 가지며 이를 통해 엔티티를 정의함. 예를 들어, 고객
다른 엔티티와 한 개 이상의 관계 : 엔티티는 다른 엔티티와 관계를 맺음. 예를 들어, 고객과 주문
엔티티의 분류
유형 vs. 무형
- 유형(Tangible) 엔티티 : 물리적인 형태가 존재하며 안정적이고 지속적임. 예를 들어, 상품, 회원
- 개념(Conceptual) 엔티티 : 물리적인 형태가 존재하지 않으면서 개념적임. 예를 들어, 부서, 학과
- 사건 엔티티(Event) : 특정 행위나 이벤트로 빈번하게 발생하며 통계 자료로 활용됨. 예를 들어, 주문, 이벤트 응모
발생 시점
- 기본(Fundamental, Key) 엔티티 : 독립적으로 생성되어 자신만의 주 식별자를 가지며, 다른 엔티티의 부모 역할을 함. 예를 들어, 상품, 회원
- 중심(Main) 엔티티 : 기본 엔티티로부터 파생되어 행위 엔티티를 생성. 업무에 있어서 핵심적인 역할을 하며 데이터의 양이 많이 발생. 예를 들어, 주문
- 행위(Active) 엔티티 : 두 개 이상의 부모 엔티티로부터 파생되며, 보통 설계 초기 단계보다는 상세 설계 단계에서 많이 도출됨. 데이터가 자주 변경되거나 증가할 수 있음. 예를 들어, 주문 내역, 이벤트 응모 이력
속성(Attribute)
속성이란?
사물이나 개념의 특징을 설명해 줄 수 있는 항목으로 의미상 더 이상 쪼개지지 않는 레벨이어야 하고 프로세스에 필요한 항목이어야 함. 예를 들어, 상품 엔티티의 가격
속성값
엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터로 하나의 속성은 한 개의 속성값만 가질 수 있음. 예를 들어, 상품 엔티티의 가격
엔티티, 인스턴스, 속성, 속성값의 관계
엔티티 > 인스턴스 > 속성의 관계가 성립
- 한 개의 엔티티는 두 개 이상의 인스턴스를 가짐
- 한 개의 인스턴스는 두 개 이상의 속성을 가짐
- 한 개의 속성은 하나의 속성값을 가짐
속성의 분류
특성
- 기본 속성(Basic Attribute) : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성. 예를 들어, 상품 엔티티의 가격, 회원 엔티티의 이름
- 설계 속성(Designed Attribute) : 업무에 존재하지는 않지만 설계하다 보니 필요하다고 판단되어 도출해 낸 속성. 예를 들어, 상품 엔티티의 할인율
- 파생 속성(Derived Attribute) : 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성. 예를 들어, 생년월일로부터 파생한 나이
구성 방식
- 기본 키(PK, Primary Key) 속성 : 엔티티에 속한 각 인스턴스에 유니크함을 부여하는 속성. 예를 들어, 상품 엔티티의 상품코드, 학생 엔티티의 학번, 직원 엔티티의 사번
- 외래 키(FK, Foreign Key) 속성 : 다른 엔티티와 관계를 맺게 해주는 매개체 역할을 하는 속성으로 다른 엔티티의 PK 값과 일치하거나 NULL 값을 가질 수 도 있음. 예를 들어, 직원 엔티티의 부서코드, 학생 엔티티의 학과코드, 회원 엔티티의 회원등급코드
- 일반 속성 : PK, FK 속성을 제외한 나머지 속성을 일반 속성이라고 부름. 예를 들어, 상품 엔티티의 상품명, 가격, 학생 엔티티의 이름, 생년월일
도메인(Domain)
속성이 가질 수 있는 속성값의 범위로 엔티티를 정의할 때 데이터 타입과 크기로 나타낼 수 있음. 예를 들어, 우편번호의 다섯 자리 숫자 범위
'SQL' 카테고리의 다른 글
SQL 기본 RDB와 SELECT 문 (0) | 2025.03.04 |
---|---|
데이터 모델과 SQL 반정규화 (0) | 2025.03.03 |
데이터 모델과 SQL 정규화 (0) | 2025.03.02 |
데이터 모델링의 이해 관계와 식별자 (0) | 2025.03.01 |
데이터 모델링의 이해 개요 (0) | 2025.02.27 |