DB 모델링

[DB 모델링] 데이터 모델링 이론

beginner-in-coding 2025. 2. 12. 16:22

01. DB 모델링

  • 의미: DB를 만드는 것
    • DB: 실제 업무(실무)를 의미함
    • 모델링: 데이터를 그룹화 + 관계를 맺어주는 것
  • 단계
    1. 개념 모델링: 관찰, 분석
    2. 논리 모델링: 설계
    3. 물리 모델링: 구현
  • 데이터 모델 종류
    • 개체관계 모델(ER, Entity-Relationship Model)
    • 관계 모델(Relational Model)
    • 계층 모델(Hierarchical Model)
    • 망 모델(Network Model)
  • ER Model (Entity-Relationship Model)
    • ER Model: 표현하고자 하는 현업을 개체 + 관계로 표현
    • ERD (Entity-Relationship Diagram): ER 모델을 도식화
    • ER Model의 질적 특징 7가지
      1. 완전성 (Completeness): 빠지는 정보 X
      2. 정확성 (Correctness): ER 개념대로 데이터 모델 작성
      3. 최소성 (Minimality): 중복 X
      4. 자명성 (Self-explanation): 그림만 봐도 이해 가능
      5. 확장성 (Extensibility): 새로운 요구사항 수정이 용이
      6. 표현성 (Expressiveness): 추가적인 설명 없이도 이해 가능
      7. 가독성 (Readability): R/W 좋아야함

02. ER 모델 구성 요소

  • 구성 요소
    • 엔티티 (Entity): 그룹의 대표, 속성을 그룹화
      • 구성 요소: PK 속성, FK 속성, 일반 속성 
      • 개념들 중 가장 중요한 핵심 키워드를 기준으로 묶음
      • 둘 이상의 엔티티(객체)가 존재해야 함
      • 둘 이상의 속성이 존재해야 함
      • 각 인스턴스는 식별 가능
    • 관계 (Relationship)
      • 엔티티와 엔티티간의 존재하는 업무 규칙 정의/표현
      • 관계의 종류
        • 관계수 (cardinality): 엔티티의 인스턴스 : 다른 엔티티의 인스턴스 (최대 기준) 
          • 1:1(일대일), 1:N(일대다), N:M(다대다)
        • 선택성 (optionality): 상대 인스턴스의 존재 유무 
          • 필수 (Mandatory)
          • 선택 (Optional)
        • 식별성 (dentifier Inheritance)
          • 식별 관계: 의미상 더 긴밀한 관계 (같은 테이블로 봐도 무방)
            • 식별자 상속: 한 엔티티의 PK 이면서 다른 엔티티의 FK인 것
          • 비식별 관계: 주 식별자를 인조식별자로 지정하면 만들 수 있는 관계
        • 관계 유형
          • 기본 관계: 엔티티와 엔티티가 하나의 관계를 맺음 (1:1, 1:N)
          • 재귀적 관계: 엔티티가 자기 자신과 관계를 맺음 (계층적인 구조 표현)
          • 병렬 관계: 엔티티와 엔티티가 두개 이상의 관계를 맺음
            • 문제점: 데이터 찾기 어려움, 물리 설계 시 인덱스가 여러개 존재해야함
            • 관계 개선 방법: 중간에 엔티티를 추가 (인터페이스)
          • 슈퍼타입/서브타입 관계:
            • 슈퍼타입: 공통 속성을 관리 (OOP; 부모)
            • 서브타입: 개별 속성을 관리 (OOP; 자식)
          • 배타적인 관계: 하나의 엔티티와 두 개 이상의 관계를 가지는데, 관계들이 AND가 아닌 OR 
    • 속성 (Attribute)
      • 데이터를 표현하는 가장 작은 단위
      • 하나의 엔티티는 두 개 이상의 속성을 가짐
      • 구성
        • 속성명: 실체의 특성을 규정하는 속성 명칭
        • 식별자 여부: 해당 속성이 엔티티 식별자에 해당하는지 표시
        • 옵셔널리티: 해당 속성이 반드시 값을 가져야하는지 표시
          • Optional: 값을 갖지 않아도 됨 (NULL)
          • Manadatory: 반드시 값을 가져야함 (NOT NULL)
          • Canditional: 특정 조건에 해당할 경우 반드시 값을 가져야함
      • 분류: 속성 값의 구성이나 성격에 따라 나눔
        • 단순 속성(Simple) vs 복합 속성(Composite)
          • 단순 속성: 더 분해할 수 없는 원자 값
          • 복합 속성: 단순 속성들의 조합
        • 저장 속성(Stored) vs 파생 속성(Derived)
          • 저장 속성: 원래 존재하는 속성
          • 파생 속성: 저장 속성/다른 파생 속성에 의해 생겨난 속성 
          • 성능 비교
            • 저장 속성을 매번 계산하는 것: CPU 이용
            • 파생 속성을 불러오는 것: I/O를 사용
        • 단일 값(Single-value) vs 다중 값(Multi-value)
          • 단일 값: 하나의 값만 가지는 속성
          • 다중 값: 하나의 속성이 여러개의 값을 가지는 속성
          • 다중 값은 모델링 정규화 과정을 통해 별도 엔티티로 분리

03. 식별자 (Identifier)

  • 의미: 인스턴스를 개별적을 식별할 수 있는 속성(들)
  • 식별자의 특징 4 가지
    • 유일성 (Uniqueness): 모든 인스턴스를 유일하게 식별 가능해야 함
    • 최소성 (Minimum): 유일성을 만족하는 최소 속성들로 구성
    • 불변성 (Stability): 식별자의 값은 변하지 않아야함
    • 존재성 (Mandatory): 반드시 값이 존재해야함 (NOT NULL)
  • 식별자 종류 4 가지: 대표성 여부에 따른 구분
    • 고유 속성 여부: 실제 세계의 업무 기준
      • 본질 식별자: 업무에서 일반적으로 통용되는 식별자
      • 인조 식별자: 데이터를 효율적으로 관리하기 위해 생성/추가한 식별자
    • 대표성 여부: 상대적인 개념
      • 주 식별자
      • 대체(보조) 식별자

'DB 모델링' 카테고리의 다른 글

[DB 모델링] 관계형 데이터 모델 이론  (0) 2025.02.12