데이터 모델링/01. 데이터 모델링 이론
데이터 모델링이란? (1)
developer-soyun
2024. 11. 4. 09:02
데이터 모델링이란?
데이터모델
- 현실 세계의 정보나 데이터를 시스템으로 구축하기 위해, 추상화하여 체계적으로 표현한 모형
데이터 모델링
- 영속성을 갖는 데이터에 대한 시스템 구조를 사람이 이해할 수 있도록 형상화하는 과정
과정
- 개념적 : 사람이 정보로서 의미 있는 대상을 인지하고, 식별하는 과정
- 논리적 : 식별한 것을 기호 등을 통해 추상화하여 표현
- 물리적 : 정보시스템의 데이터베이스로 구축하기 위해 추상화된 모델을 구체화된 형태로 변환
데이터모델의 예시
- 개체관계 모델(ER, Entity-Relationship Model)
- 가장 대표적이다
- 인식(개념) 단계의 데이터 모델을 지향한다
- 관계 모델(Relationship Model)
- 관계관리를 위한 데이터 모델에 적합하다
- 계층 모델 (Hierarachical Model)
- 망 모델(Network Model)
*ER 모델을 통해 데이터 모델링을 수행하며, 관계형 모델과 관계형 데이터베이스를 통해 데이터를 저장하고 관리한다
- 데이터 모델링은 업부에서 사용하는 각종 데이터를 시스템의 데이터베이스에 기록하여 지속적으로 관리하고 활용하기 위해 데이터를 구조화하고 형상화하는 과정이다
- 업무에서 요구하는 각종 데이터를 시스템 측면에서 체계화하고 구체화하여 데이터 모델로 표현한다
- 현행 업무를 파악하여 개념들을 정리하고 분류하여 엔티티, 속성, 관계로 형상화하는 과정이다
ER 모델 (Entity Relationship Model)
- 현실 세계의 업무를 개체(또는 실체, Entity)와 관계(Relationship)라는 두 가지 개념으로 표현하는 모델이다
- 개체와 개체 간의 관계를 ER 표기법을 사용하여 표현한다
- ERD(Entity Relationship Diagram)은 ER 모델에서 사용하는 실체와 관계를 도식화한 것으로, 미리 약속한 도형을 사용하여 표현한 것이다
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 모델을 읽기 쉽고 그 뜻을 쉽게 알아차릴 수 있도록 표현
- 위에서 아래, 왼에서 오
- 엔티티 크기 : 속성의 수를 고려, 부모 엔티티는 자식 엔티티 위에 표현
- 굽은 선 최소화, 수직/수평 직선을 사용
- 관계선의 교차는 최소화
- 속성은 중요한 정보를 위쪽에 표시, 비슷한 특성은 서로 가까운 위치에 표시