developer-soyun 2024. 11. 4. 09:02

데이터 모델링이란?

데이터모델

  • 현실 세계의 정보나 데이터를 시스템으로 구축하기 위해, 추상화하여 체계적으로 표현한 모형

데이터 모델링

  • 영속성을 갖는 데이터에 대한 시스템 구조를 사람이 이해할 수 있도록 형상화하는 과정

 

과정

  1. 개념적 : 사람이 정보로서 의미 있는 대상을 인지하고, 식별하는 과정
  2. 논리적 : 식별한 것을 기호 등을 통해 추상화하여 표현
  3. 물리적 : 정보시스템의 데이터베이스로 구축하기 위해 추상화된 모델을 구체화된 형태로 변환

데이터모델의 예시

  • 개체관계 모델(ER, Entity-Relationship Model)
    • 가장 대표적이다
    • 인식(개념) 단계의 데이터 모델을 지향한다
  • 관계 모델(Relationship Model)
    • 관계관리를 위한 데이터 모델에 적합하다
  • 계층 모델 (Hierarachical Model)
  • 망 모델(Network Model)

 

*ER 모델을 통해 데이터 모델링을 수행하며, 관계형 모델과 관계형 데이터베이스를 통해 데이터를 저장하고 관리한다


  • 데이터 모델링은 업부에서 사용하는 각종 데이터를 시스템의 데이터베이스에 기록하여 지속적으로 관리하고 활용하기 위해 데이터를 구조화하고 형상화하는 과정이다
  • 업무에서 요구하는 각종 데이터를 시스템 측면에서 체계화하고 구체화하여 데이터 모델로 표현한다
  • 현행 업무를 파악하여 개념들을 정리하고 분류하여 엔티티, 속성, 관계로 형상화하는 과정이다

 

ER 모델 (Entity Relationship Model)

  • 현실 세계의 업무를 개체(또는 실체, Entity)와 관계(Relationship)라는 두 가지 개념으로 표현하는 모델이다
  • 개체와 개체 간의 관계를 ER 표기법을 사용하여 표현한다
  • ERD(Entity Relationship Diagram)은 ER 모델에서 사용하는 실체와 관계를 도식화한 것으로, 미리 약속한 도형을 사용하여 표현한 것이다

ERD 예시 그림


ER 모델의 질적 속성

  • 완전성 (Completeness)
    • ER모델은 현실 세계의 모든 업무적인 요구사항을 표현하고 있어야한다
    • ex) 상품 단가 변경 주문 시 상품 수량, 상품 금액을 같이 관리
  • 정확성 (Correctness)
    • ER 모델의 개념대로 데이터모델을 작성해야한다
    • 엔티티 대신 속성 사용 X
    • 슈퍼타입 관계를 명확히!
    • 슈퍼타입과 서브타입 사이의 상속(Inheritance)를 표현
    • 관계와 관련된 개별 엔티티를 명확히!
    • 카디널리티(Cardinality)와 옵셔널리티(Optionality)를 명확히!
    • ex) 한 명의 직원이 두개 이상 부서의 부서장으로 겸임할 수 있고, 부서장이 공석인 경우도 있다
  • 최소성(Minimality)
    • 요구사항의 모든 특성이 ER 모델에 한번만 나타나게 설계
    • 중복 데이터 (Derived Data)를 반드시 문서화
    • ex) 부서와 직원 엔티티에서 특정 부서의 직원 수는 직원 엔티티에서 특정 부서에 속한 직원 수를 구하면 되므로, 부서에서 지원수 속성을 가질 필요 X
  • 자명성(Self-explanation)
    • 요구사항에 대한 뜻이나 의미를 명확히 설명할 수 있어야한다
    • ex) 쇼핑몰에서 주문한 사람과 받는 사람이 다를 수 있으므로, 배송정보를 별도로 관리하여 요구사항을 반영할 수 있다
  • 확장성(Extensibility)
    • 새로운 요구사항을 쉽게 반영할 수 있도록 유연한 모델을 설계
    • 엔티티를 일반화하여 엔티티를 통합하는 것
    • ex) 고객유형 속성 추가 → 고객 범위 확장
  • 표현성(Expressiveness)
    • 추가적인 설명 없이도 ER 모델의 의미를 쉽게 이해할 수 있도록 명확하게 설계!!
    • ex) 주소1, 주소2 보다는 고객기본주소,고객상세주소 등으로 속성명을 부여
  • 가독성(Readablility)
    • ER 모델을 읽기 쉽고 그 뜻을 쉽게 알아차릴 수 있도록 표현
    • 위에서 아래, 왼에서 오
    • 엔티티 크기 : 속성의 수를 고려, 부모 엔티티는 자식 엔티티 위에 표현
    • 굽은 선 최소화, 수직/수평 직선을 사용
    • 관계선의 교차는 최소화
    • 속성은 중요한 정보를 위쪽에 표시, 비슷한 특성은 서로 가까운 위치에 표시