데이터 모델링

yanju·2024년 10월 1일
0
post-thumbnail

데이터 모델링

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

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

많은 프로젝트에서 ER 모델을 통해 데이터 모델링을 수행하며, 관계형 모델과 관계형 데이터베이스를 통해 데이터를 저장하고 관리한다

데이터 모델링 작업은 현업 인터뷰, 업무 지침서, 용어집, 산출물 등 현행 업무를 파악하여 개념들을 정리하고 분류하여 엔터티, 속성, 관계로 형상화하는 과정이다

상품, 가입처럼 복합 정보를 포괄적으로 수용하고 있는 경우 엔터티로 식별한다
생년월일, 가입금액 등 단일 정보는 속성으로 식별한다

상품, 예금/대출 관계처럼 어떤 개념(상품)이 다른 개념(예금/대출)을 포함하거나 개인, 기업처럼 동등한 지위를 가지는 개념을 식별하여 별도 엔터티로 도출한다
또는 슈퍼타입과 서브타입으로 집합을 정의한다

ER 모델(Entity-Relationship Model)

ER 모델은 표현하고자 하는 현실 세계의 업무를 개체(Entity)와 관계(Relationship)라는 두 가지 개념으로 표현한다
개체와 개체 간의 관계를 표현하는 ER 표기법을 사용하여 표현한다
ERD(Entity-Relationship Diagram)는 ER 모델에서 사용하는 실체와 관계를 도형을 사용하여 도식화한다

ER 모델의 질적 특성

  • 완전성(Completeness)
  • 정확성(Correctness)
  • 최소성(Minimality)
  • 자명성(Self-explanation)
  • 확장성(Extensibility)
  • 표현성(Expressiveness)
  • 가독성(Readability)

완전성

ER 모델은 업무적인 요구사항을 표현하고 있어야 한다
ER 모델에 언급되고 있는 개념들이 요구사항을 만족하는지 검토한다

ex. 상품 단가가 변경되면 주문 시 상품 수량뿐만 아니라 상품 금액을 같이 관리해야 한다

정확성

ER 모델의 개념대로 데이터모델을 작성해야 한다

  • 엔터티 대신 속성을 사용하지 않아야 한다
  • 슈퍼타입 관계를 명확히 한다
  • 슈퍼타입과 서브타입 사이의 상속을 표현한다
  • 관계와 관련된 개별 엔터티를 명확히 정의해야 한다
  • 관계 대신 엔터티를 사용하지 않아야 한다
  • 카디널리티와 옵셔널리티를 명확하게 표현해야 한다
ex. 한 명의 직원이 두 개 이상 부서의 부서장으로 겸임할 수 있고, 부서장이 공석인 경우도 있다

최소성

요구사항의 모든 특성이 ER 모델에 한 번만 나타나도록 설계해야 한다
중복이 나타나면 중복 데이터를 문서화 한다

ex. 부서와 직원 엔터티에서 특정 부서의 직원 수는 직원 엔터티에서 특정 부서에 속한 직원 수를 구하면 되므로 부서에서 직원 수 속성을 가질 필요는 없다

자명성

별도의 보조자료 없이 설명이나 증명을 하지 않아도 요구사항에 대한 뜻이나 의미를 명확히 설명할 수 있어야 한다

ex. 쇼핑몰에서 주문한 사람과 받는 사람이 다를 수 있으므로, 배송정보를 별도로 관리하여 요구사항을 반영할 수 있다

확장성

새로운 요구사항을 쉽게 반영할 수 있도록 유연한 모델을 설계해야 한다
대표적인 방법이 엔터티를 일반화하여 엔터티를 통합하는 것이다

ex. 고객 유형 속성을 추가하여 개인, 법인 말고도 단체 등을로 고객 범위를 확장할 수 있고, 유형에 따라 주민등록번호, 법인등록번호, 단체등록번호 등으로 식별할 수 있다

표현성

ER 모델은 요구사항을 자연스럽게 표현하고 추가적인 설명 없이도 ER 모델의 의미를 쉽게 이해할 수 있도록 명확하게 설계해야 한다

ex. 주소1, 주소2 보다는 고객기본주소, 고객상세주소 등으로 속성명을 부여하는 것이 더 직관적이다

가독성

ER 모델을 읽기 쉽고 그 뜻을 쉽게 알아차릴 수 있도록 표현해야 한다

  • 일반적으로 위에서 아래로, 왼쪽에서 오른쪽으로 표현한다
  • 엔터티 크기는 속성의 수를 고려해서 그린다
  • 순환관계 또는 부분집합 표현 시 부모 엔터티를 자식 엔터티 위에 표현한다
  • 관계는 굽은 선을 최소화하고, 수직/수평 직선을 사용하며, 관계선의 교차는 최소화한다
  • 속성은 중요한 정보를 위쪽에 표시하고 비슷한 특성(성별, 나이 등 신체 특성)을 서로 가까운 위치에 표시한다

0개의 댓글