본문 바로가기
SQL

데이터 모델링의 이해 엔티티와 속성

by 피갓자 2025. 2. 28.

데이터 모델링의 이해 엔티티와 속성
데이터 모델링의 이해 엔티티와 속성

엔티티(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