본문 바로가기
카테고리 없음

데이터 모델링의 핵심 - 엔터티, 속성, 관계 (SQLD 대비)

by moment-love 2025. 1. 22.

 

데이터 모델링의 핵심 - 엔터티, 속성, 관계 (SQLD 대비)

 

데이터베이스 설계에서 중요한 개념 중 하나는 바로 엔터티(Entity)입니다.

엔터티는 우리가 관리해야 할 데이터의 집합으로, 비즈니스 로직에 맞는 정보를 구조화하여 다룹니다.

엔터티와 그에 속한 속성, 그리고 엔터티 간의 관계는 데이터베이스 설계에서 중요한 역할을 합니다.

 

이번 글에서는 엔터티의 개념, 속성의 특징, 그리고 엔터티 간 관계에 대해 자세히 설명하겠습니다.


 

엔터티(Entity)의 개념과 특징

 

엔터티란 무엇인가?

 

 

엔터티는 업무에서 관리해야 하는 데이터의 집합으로, 데이터를 용도별로 분류한 그룹입니다.

엔터티는 반드시 속성과 식별자를 포함하며, 다른 엔터티와 1개 이상의 관계를 가집니다.

 

 

엔터티의 분류

 

유형, 무형에 따른 분류

  • 유형 엔터티 : 물리적 형태가 있는 데이터
    • 예 : 상품, 회원
  • 개념 엔터티 : 물리적 형태는 없지만 논리적으로 존재하는 데이터
    • 예 : 학과, 부서
  • 사건 엔터티 : 특정 행위로 인해 발생한 데이터
    • 예 : 주문, 매출


발생 시점에 따른 분류

 

  • 기본 엔터티 : 기본 엔터티는 업무에서 원래 존재하는 독립적인 요소를 의미합니다.
    • 다른 엔터티에 의존하지 않으며, 자식 엔터티를 가질 수 있는 독립적인 특성을 가집니다.
      • 상품 : 제품의 정보를 저장하는 독립적인 데이터
      • 회원 : 고객 정보를 관리하기 위한 주요 데이터
      • 부서 : 조직 내 각 부서의 정보
업무의 핵심 데이터를 표현하며, 다른 엔터티의 부모가 되는 경우가 많습니다.

  • 중심 엔터티 : 중심 엔터티는 업무 과정에서 생성되며, 기본 엔터티로부터 파생된 데이터입니다.
    • 업무 프로세스의 주요 단계나 상태를 나타내며, 행위 엔터티를 생성하는 기반이 됩니다.
      • 주문 : 고객이 상품을 구매하는 행위와 관련된 데이터
      • 매출 : 판매가 완료된 후 기록되는 재무 데이터
      • 계약 : 업무 상의 합의 사항을 기록한 데이터

업무의 흐름을 나타내며, 기본 엔터티와 행위 엔터티를 연결하는 역할을 합니다.
데이터 모델의 중추 역할을 하므로 이름과 구조를 명확히 정의해야 합니다.

  • 행위 엔터티 : 행위 엔터티는 두 개 이상의 엔터티 간 상호작용이나 행위로 인해 생성된 데이터를 나타냅니다.
    • 주로 업무 기록이나 이벤트 로그를 저장합니다.
      • 주문 내역 : 주문 엔터티와 상품 엔터티 간의 상호작용 결과.
      • 이벤트 응모 이력 : 회원 엔터티와 이벤트 엔터티 간의 관계를 기록.

다른 엔터티로부터 파생되어 생성.
데이터를 추적하고 분석하는 데 사용되며, 업무의 세부적인 활동을 기록합니다.

 


 

엔터티의 특징
  • 2개 이상의 인스턴스

  • 반드시 속성을 가져야 합니다.
    • 하나의 인스턴스는 2개 이상의 속성을 가져야 합니다.
  • 즉 하나의 엔터티는 2개 이사의 속성을 가지게 됩니다.

  • 다른 엔터티와 1개 이상의 관계를 가져야 합니다.

엔터티 작성 시 주의점
  • 업무에서 실제 사용하는 용어를 기반으로 정의합니다.
  • 한글 약어를 지양하고, 단수 명사로 표현하며 명확히 서술합니다.
  • 중요한 엔터티는 ERD의 왼쪽 상단에 배치해 가독성을 높입니다.

 


 

속성의 특징과 역할

 

속성이란?

 

속성은 엔터티를 구성하는 최소 데이터 단위로, 엔터티의 특성을 설명합니다.

하나의 속성은 하나의 값만 가지며, 더 이상 분리되지 않는 데이터로 정의됩니다.

 

속성의 분류

 

 

특성에 따른 속성의 분류

 

  • 기본 속성 : 업무에서 바로 정의 가능한 필수 데이터

  • 설계 속성 : 데이터의 고유성을 보장하기 위해 추가된 속성
    • 예 : 학번, 사번
  • 파생 속성 : 성능 향상을 위해 계산된 속성
    • 예 : 평균, 재고

 

분해 여부에 따른 속성의 분류

 

  • 단일 속성 : 하나의 의미로 구성된 것
    • 예 : 회원 ID, 이름
  • 복합 속성 : 여러 개의 의미가 있는 것
    • 예 : 주소 (시, 군, 면, 등으로 분해할 수 있음)
  • 다중 속성 : 속성이 여러 개의 값을 가지는 것
    • 예 : 상품 리스트
      • 1차 정규화, 별도 엔터티 생성을 해야 합니다.

속성의 특징

 

  • 더 이상 분리되지 않는 데이터 단위 : 속성은 데이터를 설명하는 가장 작은 단위
    • 예: 고객 엔터티의 "이름", "전화번호", "주소" 등

  • 하나의 속성은 하나의 값만 가짐 : 속성은 단일 값을 가져야 하며, 여러 값을 가지면 안 됩니다.
    • 여러 값을 가지는 경우, 1차 정규화를 통해 속성을 분리해야 합니다.
      • 예: "주소"가 "시+구+동"으로 구성되어 있다면 이를 분리하여 저장.

  • 주식별자(PK)에 함수적으로 종속되어야 함 : 속성은 반드시 주식별자에 완전 함수적 종속성을 가져야 합니다.
    • 부분 종속이 발생하면 2차 정규화를 통해 새로운 엔터티를 생성하여 문제를 해결해야 합니다.


속성 설계 시 유의점

 

  • 속성은 반드시 주식별자(PK)에 함수적 종속성을 가져야 하며,
  • 복합 속성이나 다중값 속성은 정규화를 통해 분리해야 데이터 무결성을 유지할 수 있습니다.

도메인 이란
  • 도메인 : 속성이 가질 수 있는 속성 값의 범위

 

관계란? 관계의 종류와 특징

 

관계란

 

관계는 엔터티 간의 상호작용을 나타내며, 속성 간의 연결로 구성됩니다.

관계는 크게 두 가지로 나뉩니다

 

존재 관계

 

  • 엔터티들이 존재 자체로 관계를 맺는 경우
    • 예 : 부서와 사원 간의 관계

 

행위 관계

 

  • 엔터티들이 특정 행위를 통해 관계를 맺는 경우
    • 예 : 주문과 고객 간의 관계

 

UML 다이어그램에 따른 관계 분류

 

 

연관 관계

 

  • 필수적 관계(존재적 관계)로, 항상 서로 연관됩니다. UML에서는 실선으로 표현됩니다.

의존 관계

 

  • 비식별자 관계(선택적 관계)로, 상대 엔터티의 행위에 따라 관계가 형성됩니다. UML에서는 점선으로 표현됩니다.

 

 

관계 표기 및 체크 사항

 

관계 표기 방법

 

 

  • 관계명 : 관계의 이름은 시작 엔터티에서 끝 엔터티로 이어지며, 동사를 사용해 명확히 기술해야 합니다.

  • 관계 차수 : 1:1, 1:M, M:N으로 엔터티 간 참여 속성의 수를 표시합니다.

  • 관계 선택 사양 : 필수적 관계인지, 선택적 관계인지를 명확히 정의합니다.

관계 정의 시 체크 사항

 

 

  • 두 엔터티 간 연관 규칙이 존재하는가?

  • 정보 조합이 필요하거나 발생하는가?

  • 관계를 표현하는 동사가 적절히 사용되었는가?

  • 관계를 설명하는 규칙이 명확히 서술되어 있는가?

 

 


 

결론 : 데이터 모델링에서 핵심적인 개념 - 엔터티, 속성, 관계

 

엔터티, 속성, 관계는 데이터 모델링에서 핵심적인 개념으로,

비즈니스 로직을 정확하게 반영하기 위해 반드시 이해하고 설계해야 합니다.

 

엔터티의 특성과 관계를 명확히 정의함으로써 데이터베이스를 효율적으로 구축하고 관리할 수 있습니다.

이러한 개념들을 제대로 활용하면, 더 나은 데이터 설계를 통해 시스템의 성능과 관리 편의성을 높일 수 있습니다.

 

데이터 모델링을 할 때, 엔터티와 관계의 정의를 정확히 지정하고, 이를 기반으로 속성을 설계하는 것이 매우 중요합니다.

 

 

반응형