SQLD

#2 데이터 모델링(엔티티)

sundori 2024. 7. 4. 20:24

목차

    엔터티란?

    사전 의미: '독립체'로, 그 자체로 존재하는 독립된 객체를 의미한다.

    데이터베이스 의미: 식별이 가능한 객체로, 현실 세계에서 식별할 수 있는 모든 개체를 의미합니다. 예를 들어, 사람, 물건, 사건 등을 엔터티로 볼 수 있다.

     

    엔터티의 주요 특징

    1. 식별 가능성: 엔터티는 고유하게 식별될 수 있어야 합니다. 각 엔터티는 하나 이상의 속성을 통해 식별됩니다. 이를 위해 주로 기본 키(Primary Key)를 사용한다.
    2. 속성 (Attributes): 엔터티는 여러 속성을 가질 수 있으며, 각 속성은 엔터티의 특성을 나타냅니다. 예를 들어, '고객' 엔터티는 이름, 주소, 전화번호 등의 속성을 가질 수 있다.
    3. 관계 (Relationships): 엔터티는 다른 엔터티와 관계를 맺을 수 있습니다. 예를 들어, '고객' 엔터티는 '주문' 엔터티와 관계를 맺어 고객이 주문을 하는 상황을 모델링할 수 있다.

    엔터티의 예시

    1. 고객 (Customer):
      • 속성: 고객 ID, 이름, 주소, 전화번호
      • 식별자: 고객 ID
    2. 제품 (Product):
      • 속성: 제품 ID, 이름, 가격, 재고수량
      • 식별자: 제품 ID
    3. 주문 (Order):
      • 속성: 주문 ID, 주문 날짜, 고객 ID
      • 식별자: 주문 ID
      • 관계: 고객 - 주문 (고객이 주문을 한다)

    엔터티의 종류

    1. 강한 엔터티 (Strong Entity):
      • 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있는 엔터티입니다.
      • 예: 고객, 제품
    2. 약한 엔터티 (Weak Entity):
      • 다른 엔터티에 의존하여 존재하는 엔터티입니다. 약한 엔터티는 강한 엔터티와의 관계를 통해 식별됩니다.
      • 예: 주문 항목 (주문 엔터티에 의존)

    하지만 이렇게 이야기를 하면 이해가 어려울 수 있다. 엔터티는 더 쉽게 말해 객체이며 객체는 현실 세계에서 우리가 식별하는 모든 것을 말한다. 스마트폰, 자전거, 태블릿 등등 모두가 객체가 될 수 있다는 것이다. 물건을 구매하는 우리(고객)도 객체가 될 수있다.

     

    - 엔터티 : Table
    - 인스턴스 : Row
    - 속성 : Column

     

    이렇게 각각의 엔터티(객체)는 자신의 고유하게 가지고 있는 특징을 나타내기 위해 속성(Attribute)을 갖는데 속성의 개수는 엔터티(객체)마다 상이하고 용도에 따라 매우 많을 수도 적을 수도 있다. 예를 들어 우리 '회원'이라는 엔터티는 '아이디', '비밀번호', '이름' .... 등을 말이다.

     

    그리고 이러한 엔터티의 특징이 더 있는데 쓰이는 정보여야하며 유니크함을 보장할 수 있는 식별자가 있어야한다.

    무슨 소리냐하면 학생이라는 엔터티가 쇼핑몰 시스템에 필요할가? 아니다 그저 회원만 필요하다고 보면된다. 

    유니크함을 보장해야한다는 예를들어 같은 아이디를 가진 사람이 여러 명이라면 로그인을 했을 때 어떻게 누가 누구인지 식별할 것인가? 불가능하다 따라서 각 엔터티는 고유 식별자를 가지게 된다.

     

    그리고 2개 이상의 인스턴스를 가지고 있어야한다. 예를들어 회사의 사장은 1명인데 이러한 경우 엔터티로 만들 필요가 없다.

    반드시 속성을 가지고 있어야지만한다. 스마트폰에 배터리가 없는 것과 같다.

    다른 엔터티와 1개 이상의 관계가 있어야한다. 예를 들어 회원 엔터티는 주문 엔터티와 연관이 있다처럼 보면된다.

    'SQLD' 카테고리의 다른 글

    #5 데이터 모델링(식별자)  (0) 2024.07.15
    #4 데이터 모델링(관계)  (0) 2024.07.09
    #3 데이터 모델링(속성)  (0) 2024.07.08
    #1 데이터 모델링  (0) 2024.07.04