[SQL] SQL 데이터 모델링의 이해 2

언교동·2025년 5월 21일

SQL

목록 보기
1/6
post-thumbnail

엔터티(Entity)

엔터티란?

  • 업무에서 쓰이는 데이터를 용도별로 분류한 그룹

엔터티의 특징

  • 업무에서 쓰이는 정보여야 함
  • 유일성을 보장할 수 있는 식별자가 있어야 함
  • 2개 이상의 인스턴스
  • 반드시 속성을 가지고 있어야 함
  • 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함
  • 엔터티 명은 띄어쓰기 x

엔터티의 분류

유무형에 따른 분류

  • 유형 엔터티
    • 물리적인 형태
    • ex) 상품, 회원 등
  • 개념 엔터티
    • 물리적인 형태 x. 개념적
    • ex) 부서, 학과 등
  • 사건 엔터티
    • 행위를 함으로써 발생
    • ex) 주문, 이벤트 응모 등

발생시점에 따른 분류

  • 기본 엔터티
    • 업무에 원래 존재하는 정보
    • 독립적으로 생성됨
    • 자식 엔터티를 가질 수 있음
    • ex) 상품, 회원, 사원, 부서 등
  • 중심 엔터티
    • 기본엔터티로부터 파생되고 행위 엔터티 생성
    • 업무에서 중심적인 역할
    • 데이터 양 다량 발생
    • ex) 주문, 매출, 계약 등
  • 행위 엔터티
    • 2개 이상의 엔터티로부터 파생
    • 데이터가 자주 변경되거나 증가할 수 있음
    • ex) 주문 내역, 이벤트 응모 이력 등

속성(Attribute)

속성이란?

  • 엔터티의 특징을 나타내는 최소한의 데이터 단위

속성값

  • 엔터티에 속한 인스턴스를 구체적으로 나타내주는 데이터
  • 하나의 속성이 여러 개의 속성값을 갖는 경우 별도의 엔터티로 분리하는 것이 바람직함

엔터티, 인스턴스, 속성, 속성값의 관계

속성인스턴스엔터티

  • 한 개의 엔터티는 두 개 이상의 인스턴스를 가짐
  • 한 개의 인스턴스는 두 개이상의 속성을 가짐
  • 한 개의 속성은 하나의 속성값을 가짐

분류

특성에 따른 분류

  • 기본속성(Basic Attribute): 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
  • 설계속성(Designed Attribtue): 설계 중 필요하다고 판단되어 도출해낸 속성
  • 파생속성(Derived Attribute): 다른 속성의 속성값을 계산하거나 변형하여 생성한 속성

구성방식에 따른 분류

  • PK(Primary Key) 속성: 엔터티의 인스턴스들을 식별할 수 있는 속성
  • FK(Foriegn Key) 속성: 다른 엔터티의 속성에서 가져온 속성
  • 일반속성: PK, FK 를 제외한 나머지 속성

도메인

  • 속성이 가질 수 있는 속성 값의 범위

용어사전: 엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔터티와의 혼란을 예방하기 위해 이용하는 것
시스템 카탈로그: 사용자 테이블과는 별개로 시스템 자체에 관련이 있는 데이터를 담고 있는 데이터베이스


관계

  • 엔터티와 엔터티와의 관계

존재 관계

  • 존재 자체로 연관성이 있는 관계
  • ex) 직원과 부서, 학생과 학과

행위 관계

  • 특정한 행위를 함으로써 연관성이 생기는 관계
  • ex) 고객과 주문, 학생과 출석부

표기법

  • 관계명(membership): 관계의 이름
  • 관계차수(cardinality): 관계에 참여하는 수
  • 관계선택사양(optionality): 필수/선택 여부

식별자

  • 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성
  • ex) 회원번호, 학번, 사번

주식별자(Primary Key, PK)

주식별자의 특성

  • 유일성: 각 인스턴스에 유니크함을 부여하여 식별 가능하도록 함
  • 최소성: 유일성을 보장하는 최소 개수
  • 불변성: 속성 값이 되도록이면 변하지 않아야 함
  • 존재성: NULL ❌

분류

대표성 여부

  • 주식별자(Primary Identifier)

    • 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자
    • 다른 엔터티와 참조 관계로 연결
  • 보조식별자(Alternate Identifier)

    • 인스턴스를 식별할 수 있지만 PK 로 선정되지 않은 식별자
    • 다른 엔터티와 참조 관계로 연결되지 x

스스로 생성되었는지 여부

  • 내부식별자(Internal Identifier)

    • 엔터티 내부에서 스스로 생성된 식별자
  • 외부식별자(Foreign Indentifier)

    • 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할

단일 속성의 여부

  • 단일 식별자(Single Identifier)

    • 하나의 속성으로 구성
  • 복합 식별자(Composite Identifier)

    • 두 개 이상의 속성으로 구성

대체 여부

  • 본질 식별자(Natural Identifier)(= 원조식별자)

    • 업무 프로세스에 존재하는 식별자
    • 가공되지 않은 원래의 식별자
  • 인조 식별자(Artificial Identifier)(= 대리식별자)

    • 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자

식별자 vs 비식별자 관계

식별자 관계(Identification Relationship)

  • 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계

비식별자 관계(Non-Identification Relationship)

  • 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계

0개의 댓글