Database

[Modeling] Ch01. 데이터 모델링 이론

OptimizerStart 2025. 5. 12. 00:14

[Modeling] Ch01. 데이터 모델링 이론

 

데이터 모델링

  • 데이터 모델을 만드는 것.
  • 실제 업무를 분석해서 테이블을 그루핑하고 테이블과 관계를 맺어주기
  • 실제 업무를 본뜻 것

데이터 모델

  1. 그룹화 (테이블) iv
  2. 관계 (Relationship) 줄긋기

모델링

모델을 만드는 것

 

모델

  • 실제(업무)를 관찰하여 본떠 만든것
  • 진짜가 아닌 이상적, 가상적인 것.
    ex. 패션 모델, 모델 하우스, 프라모델
  • OOP와 유사.
    • 관찰 분석(개념 설계) → 설계(논리 설계) → 구현(물리 설계)
    • 개념설계 : 업무 분석 (개념 모델링)
    • 논리 설계 : 이상적 설계
      • 모든지 가능하다고 판단하고 이상적으로 설계
    • 물리 설계 : 현실적 설계
    • 개념 설계, 논리 설계가 중요. 물리설계는 기술적 요소 고려해야함.

DB 모델링

설계

  1. 테이블
  2. 관계
  • Table(그룹)을 설계
  • 그룹(테이블)을 만들고 관계를 맺어줌

데이터모델 종류

  • 개체 관계 모델
  • 관계 모델
  • 계층 모델
  • 망 모델

개체 관계 모델 Entity-Relationship Model

  • 실제 업무를 객체와 관계로 표현
  • 개체 Entity로 테이블 Table 만듦.
  • [ OOP ] Class cf. Entity

특성

  • 완정성 : 업무 내용 빠진 것 있으면 안됨
  • 최소성 : 중복X
  • 자명성 : 이해하기 쉬워야함
  • 확장성 : 큰 변경 없이 바꿀 수 있어야함. 변경 유리.

구성 요소

  • 엔티티 Entity 현실세계에 실제로 존재. 개념적인 것
    • 엔티티(객체)는 정확히 엔티티 타입(클래스) 임.

엔티티 Entity

종류

  • 일반화/특수화 과정으로 발생
  • 슈퍼타입 엔티티 공통 속성. 하나 이상의 서브타입 엔티티와 관계를 맺음
  • 서브타입 엔티티 특수 속성. 슈퍼 타입의 모든 특성(식별자, 속성, 관계) 상속 받음. 서브타입에만 존재하는 고유 속성을 관리. 개별적

일반화 및 특수화

  • 일반화 generalization JOIN 개수 늘림. 추상화. 공통적인 것을 묶음
    • 계층 표현 방식 -2
      1. 고정된 관계ex. 대댓글 (제한 있는 경우), 상중하
      2. 관계가 있다. = JOIN = 원래 하난데 쪼갰다.
      3. 동적인 관계 재귀관계 self join
      4. ex. 대대..댓글
  • 특수화 specialization JOIN 개수 줄임. 슈퍼타입 엔티티를 2개 이상의 서브 엔티티로 분할. 일반화 반대.

ERD

  • 그룹의 관계를 그림으로 그린것.
  • 그룹 만들고 줄 긋기
  • Diagram 그림

사이트 분석 방법

  1. 화면 보고 뭐가 있는지 적고
  2. 그루핑

SW 갖춰야 할 사항 cf. ER모델 특성

  1. 신뢰
  2. 확장
  3. 유지 보수

관계 Relationship

  • 엔티티간의 업무 규칙 정의

구성 ⭕ 암기

  • 관계 수 (카디널리티) 대응되는 인스턴스 개수 여러개 >
    • 1 : 1 , 1 : M, N : M
    • 어떤 엔티티의 인스턴스 하나가 다른 엔티티의 인스턴스 몇 개 연결 가능한지
  • 선택성 필수 | , 선택 O
    • 상대 인스턴스를 꼭 가리켜야하는지
    • 최소 인스턴스 수
    • 상대 엔티티에 표시된 것으로 해석
  • 식별자 상속 식별자(PK) . 다른 개체의 PK 상속 실선(─) , 비식별자(점선)
    • 식별 관계 PK 와 FK를 동시에 갖고있음 ⭕ 암기
      • 가까운 관계
      • 다른 테이블의 PK를 내 PK로 포함해 갖고있는것
      • 한 테이블에 위치해도 됨
    • 비식별 관계 두 엔티티간 거리가 멂. NOT PK

유형

  • 기본 관계
  • 재귀적 관계
    • 자기 자신(엔티티)와 관계를 맺음
    • 계층적인 구조 표현 (self join)
    • 필수 관계 못가짐 ✅왜?
  • 병렬 관계
  • 슈퍼타입/ 서브타입 관계

 

참고 서적

[핵심 데이터 모델링] 유동오