Database

[Modeling] Ch03. 논리 모델링

OptimizerStart 2025. 5. 18. 22:15

[Modeling] Ch03. 논리적 모델링

데이터 모델링의 설계 단계의 논리적 모델링에 대해 다루겠다. 

 

논리적 모델링의 핵심 키워드 및 암기 사항

- 논리적 모델링 특징 : 업무적 상세함

- 엔티티 정의  : 엔티티 종류 5개, 행위 엔티티 유형 4가지, 이력 엔티티의 관리 분류 기준,

- 관계 정의 : 관계 종류 -2, 관계 중요 구성 -3

- 속성 정의 : PK 특성 4가지, PK, FK 정의 및 기능, 인조 식별자 사용 상황 -4

데이터 모델링 절차

 

 

논리적 모델링

  1. 엔티티 도출 및 정의 ⇔ Class
  2. 관계 도출 및 정의 ⇔ Relationship
  3. 속성 도출 및 정의 ⇔ iv ( iv의 타입, 이름, 제약조건)

특징

  • 명확, 구체적
    • 시스템 측면에서 명확하다
    cf. 개념 모델링 : 개략, 업무 중심이기 때문.
  • 개념 모델링과 논리 모델링 사이를 계속 왔다갔다 함.

엔티티 도출 및 정의

핵심 엔티티 key entity 판단 기준 -4 ⭕ 암기

  1. 유형 및 분류 Type & Category
    • Type : 코드 데이터
      • 단일 레벨로 구분. 열거형 속성
      • ex. 고객 유형 코드 : 개인(01), 법인(02), VIP(03)
      • 코드 사용이유: 저장공간 줄어듦, 통계, 정렬 용이
    • Category : 분류. ex. 대, 중, 소
      • 다단계(계층적) 카테고리 정보를 관리하기 위한 속성
      • ex. 대 001, 중 01, 02 .. (동일 계층 안 내용들을 열거형 이라 부르지 않음. )
  2. 업무 규칙 및 지식 Rule & Knowledge
    • ex. 회원등급
    • 업무 행위, 사건, 이벤트 → 5W1H 로 정의가능이벤트 : 봄맞이, 졸업맞이
    • 사건 : 오배송
    • ex. 고객은 7일 이내 환불해야한다. - 법
  3. 업무 주체 및 대상 Subject & Object
    • 업무 주체 : who
    • 대상 : what
  4. 장소 where

중요 엔티티 main entity

 

정의

  • 핵심 엔티티의 종류인 업무 주체(subject )와 업무 대상(obejct)의 업무 행위로 생긴 엔티티

특징

  • 주요 업무에서 자주 발생되는 데이터 관리
  • ex. 주문, 배송, 발주

행위 엔티티 action entity 유형 -4 ⭕ 암기

  • 중요 엔티티를 중심으로 x4 엔티티 생성
    • 상세, 상태, 이력은 기본으로 있어야함.
  • 이미 정해진 엔티티를 역할에 따라 그룹화
  • 핵심 엔티티는 최종 상태만 저장됨.
  • 대부분 테이블에 상태 엔티티(테이블) 필요함

ex. 배송완료

  1. 상세
    • 핵심, 중요 엔티티를 특정 기준으로 그룹화 한 엔티티
  2. 상태 ⭕ 필수
    • 계속 바뀜. 값은 사전에 업무적으로 정해진 값 사용
    • 대부분 테이블이 상태 테이블 필요
    ex. 고객 - 휴먼, 정지 상태 (로그인 n회 실패 시)
  3. 이력
    • 시간의 흐름 내포
    • 값의 변경이 없을 수 있음. 상태의 값이 바뀌는 걸 계속 기록하기 때문
    • 어디가 변경되면 이력 엔티티가 변경이 되는가? 상태 엔티티
    • ex. 주문 완료 → 배송 완료
    • 특정 시점의 데이터로 되돌릴 수 있음
    • 속성 전체 or 일부 대상 관리
    • 변경 시점 관리
      • 점이력 . 시점
      • 선분 이력. from ~ to 관리 ex. 가격
  4. 교차

이력 관리 -5 ⭕ 중요.

  1. 일부 속성
  2. 전체 속성
  3. 점 이력
  4. 선분 이력
  5. 현재 상태(최종 상태) 포함

 

 

관계 도출 및 정의

관계 종류 -2  암기

  1. 상속 관계 PK, FK (종속)
  2. 참조 관계 (포함)
    1. 식별
    2. 비식별

관계 표현 방식 -3 ⭕ 암기

  1. 관계수 1: N
  2. 필수 선택 (O,X)
  3. 식별/비식별 FK&PK
    • 식별 : 상속을 통해 FK가 PK가 되는 것

관계 정의

  • 관계수, 필수 선택, 식별자 상속를 정의

M:N 관계

  • 데이터 중복 발생하여 새로운 테이블을 추가해 관계 개션 필요
  • 관계 테이블 (= 교차 테이블)
    • 두 테이블 간 의 관계 엔티티. 중복 제거함.
  • 급하진 않으니 M:N 다대다로 관계를 지정했다가 향후 바꿔도 됨.

 

 

속성 도출 및 정의

  • PK를 맨위에 적고, 아래에는 비슷한 걸 그룹화함

🔵 [설계]  엑셀에 최대한 자세히 적고, 안써도 되는 속성까지 모두 넣고, 필요없으면 안쓰면 됨.

  • 속성명은 자세히 작성

속성 정의

  • 속성에 대한 설명
  • 데이터 발생 규칙 작성
    • 언제 테이블에 데이터가 들어가는가.
    • 언제 객체를 생성하는가

식별자(PK) 지정

종류

  1. 본질 식별자
  2. data 의미가 있음. O
    • sequence로 만듦
    • data 자체가 의미 없음 X인조 식별자

인조 식별자 사용 상황 ⭕ 중요.암기

1. 엔티티 통합

  • 여러 엔티티를 통합할 때 통합 엔티티에서 각 엔티티 PK 중 뭘 PK로 선택할지 모를때
  •  

2. 식별자 상속으로 Key 개수 줄일 때

  • 엔티티 상속을 하면 Key 개수가 증가하여 인조키로 대체함
  • 기존 PK(기존 엔티티 속성 및 FK)를 NOT NULL로 내리고, 인조키 추가

상속으로 많아진 Key를 인조키로 대체

3. 암호화된 식별자 대신

  • ex. 카드번호

4. 업무상 편의

  • 실무상 PK를
  • NULL로 저장했다가 향후에 값을 넣어야하는 경우 있음
  • ex. 사업자등록번호가 PK일 때, 돈은 받았는데 사업자 등록 번호 등록전에 물건을 보내야하는 경우

키 특징 ⭕ 암기

  1. 불변성
  2. 최소성 min
  3. 유일성 unique
  4. 존재성 not null

데이터 표준화

표준 도메인

  • 자주 쓰는 타입을 일관되게 사용하는 것.

ex. 금액, 수량, 설명

  • 금액 10자리, 수량 5자리
  • 설명 VARCHAR
    • 긴 설명 VARCHAR(500), 중간 VARCHAR(100), 짧은 VARCHAR(50)

도메인 표준화

  • 표에 있는 걸로 사용하고 필요 시 추가 정의

코드 테이블

 

 

코드 테이블을 하나로 합친 것 ⭕ 중요

  • 코드 유형 ID가 PK, Type이 됨.
  • 사용 여부 (Y,N), 정렬 순서 필요

코드 체계 ⭕중요

  • 분류형 : 코드를 만들 때 부모 코드를 포함해 자식 코드를 만듦
    • 파일 경로 형식 “/aaa/bbb/test.*” 부모코드
    • 트리로 표현이 쉬움

참고

- <핵심 데이터 모델링, 유동오, DBian>