[SQLD] 데이터 모델링의 3요소

yjkim97·2023년 8월 5일

자격증

목록 보기
6/24
post-thumbnail

데이터 모델링의 구성요소에는 개체(Entitiy) 속성(Attribute) 관계(Relationship) 가 있다.

1️⃣ 개체 (Entity)

  • Table
  • DB에서 Entity는 식별이 가능한 객체라는 의미를 가진다.

Entity 특징

  1. 의미있는 정보이어야한다
    ex) 쇼핑몰이니 당연히 쿠폰을 발급할 것이라고 예상하고 '쿠폰' Entity를 도출해 놓았지만 실제로는 쿠폰을 발급하지 않는다면, 이는 불필요한 Entity로 제거 대상이다.

  2. 유니크한 식별자가 존재한다
    ex) 상품코드, 학번

  3. 2개 이상 인스턴스를 가진다
    ex) 현재 Entity에는 데이터가 1개만 존재하고 앞으로도 1개만 존재한다면 이는 불필요한 Entity로 제거 대상이다. (Entity는 2개이상의 인스턴스 집합체)

  4. 반드시 2개 이상 속성(Attribute)를 가진다
    Entity는 반드시 자신을 상세하게 나타낼 속성을 가지고 있어야 한다.

  5. 다른 Entity와 1개 이상의 관계를 맺는다
    각각의 Entity는 다른 Entity와 연관성을 가지고 있어야 한다.

여기서 인스턴스란 Table의 Row와 같은 개념이다.


⭐️ Entity의 분류

유형 vs 무형에 따른 분류

  1. 유형 엔티티 : 물리적인 형태
  2. 개념 엔티티 : 물리적인 형태 없음, 개념적
  3. 사건 엔티티 : 행위를 함으로써 발생

발생시점에 따른 분류

  1. 기본 엔티티 : 주식별자, 독립적, 자식 엔티티 가질 수 있음 (ex. 상품)
  2. 중심 엔티티 : 기본 엔티티로부터 파생, 행위 엔티티를 생성, 핵심역할 (ex. 주문)
  3. 행위 엔티티 : 2개 이상 엔티티로부터 파생 (ex. 주문내역)

Entity 명명규칙

  1. 가능하면 현업업무에서 사용하는 용어를 사용
  2. 가능하면 약어를 사용하지 않는다
  3. 단수명사를 사용한다
  4. Entity명은 중복되면 안된다
  5. Entity 생성의미대로 이름을 부여한다

2️⃣ 속성 (Attribute)

  • Column
  • 의미상 더이상 쪼개지지 않는 레벨
  • 프로세스에 필요한 항목이어야 한다.
  • 더 이상 분리되지 않는 최소의 데이터 단위

Attribute 특징

  1. 1개 속성은 1개 값만 가질 수 있다.

⭐️ Attribute의 분류

특성에 따른 분류

  1. 기본 속성 (Basic Attribute) : 업무 분석을 통해 정의
  2. 설계 속성 (Designed Attribute) : 설계 단계에서 필요하다고 판단되어 정의
  3. 파생 속성 (Derived Attribute) : 계산 또는 규칙으로 인해 생성한 속성 - ex. 합계, 평균치

구성방식에 따른 분류

이건 흔히 아는 분류이다.
1. PK 속성
1. FK 속성
1. 일반 속성


3️⃣ 관계 (Relationship)

  • Entity와 Entity와의 관계를 의미 (매핑)

Relationship 분류

  1. 존재 관계 : ex. 직원/부서, 학급/학생
  2. 행위 관계 : ex. 학생/출석, 회원/주문
  • 데이터 모델링에서는 존재와 행위 관계를 구분할 수 없다.
  • UML에서는 연관과 의존관계에 대한 표기법이 존재한다.

Relationship 표기법

  1. 관계명 (Membership) : 관계의 이름, 명확한 문장, 현재형
  2. 관계차수 (Cardinality) : 관계에 참여하는 수, 관계의 기수성 , 1:1, 1:M, M:N
  3. 선택사양 (Optionality) : 필수 여부

⭐️ 관계 체크 사항

  1. 두 개 Entity 사이 연관규칙 존재 여부
  2. 두 개 Entity 사이 정보의 조합 발생 여부
  3. 업무기술서, 장표에 관계연결을 가능하게하는 동사 여부
  4. 업무기술서, 장표에 관게연결에 대한 규식 서술 여부

4️⃣ 기타

도메인 (Domain)

속성이 가질 수 있는 값의 범위
속성에 대해 구체적으로 정의함 -> 각 속성에 대해서 어떤 유형의 값이 들어가는지 명확하게 정의하는 개념

용어사전

Entity, Attribute 이름 정의시 공통된 룰 적용을 위한 사전

식별자 (Identifiers)

각각의 인스턴스를 구분 가능하게 만들어주는 대표 속성

우리가 아는 PK.

식별자 특징

  1. 유일성 : Entity전체에서 유니크해야함
  2. 최소성 : 유일성을 보장하는 최소 개부의 속성이어야 함
  3. 불변성 : 변하지 않는 값
  4. 존재성 : Not Null

⭐️ 식별자 분류

  • 주 식별자 : 식별자 특징을 모두 가진 대표 식별자, 다른 Entity와 참조관계
  • 보조 식별자 : 인스턴스를 식별할 수 있지만 대표 식별자가 아님, 다른 Entity에서 참조하지 않음
  • 내부 식별자 : Entity 내부에서 스스로 생성된 식별자
  • 외부 식별자 : 다른 Entity에서 온 식별자 (참조)
  • 단일 식별자 : 하나의 속성으로 구분된 식별자
  • 복합 식별자 : 2개 이상 속성으로 구분된 식별자
  • 원조 식별자 : 가공되지 않은 원래의 식별자
  • 대리 식별자 : 주 식별자의 속성이 두개이상인 경우 그것들을 하나로 묶어서 사용하는 식별자 (인조 식별자)

Reference

profile
어제는 🐸두꺼비 오늘은 😄YJ

0개의 댓글