파게로그
데이터 모델링의 이해 본문
데이터 모델링
- 현실 세계를 데이터베이스로 표현하기 위해서 추상화하는 것
데이터 모델링의 특징
- 추상화(abstraction)
현실 세계를 간략하게 표현함 - 단순화(simplification)
누구나 쉽게 이해할 수 있도록 표현함 - 명확화(clarification)
의미가 명확하게 해석되어야 하며, 한 가지 의미를 지녀야 함
데이터 모델링의 단계
- 개념적 모델링(conceptual data modeling)
- entity와 attribute를 도출하고 개념적 ERD를 작성한다.
- 비즈니스 프로세스를 분석하고 업무 전체에 대해 데이터 모델링을 수행한다.
- 업무적 관점에서 모델링한다.
- 기술적인 용어 사용은 자제한다.
- 중요한 부분을 위주로 모델링한다. - 논리적 모델링(logical data modeling)
- 정규화를 수행해서 데이터 모델의 독립성을 확보한다.
- 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.
- 개념적 모델링을 논리적 모델링으로 변환하는 작업이다.
- 계층형 데이터 모델, 네트워크 모델, 관계형 모델 등 특정 데이터베이스 모델에 종속된다. - 물리적 모델링(physical modeling)
- 테이블, 인덱스, 함수 등을 생성하여 실제로 데이터베이스를 구축한다.
- 성능, 보안, 가용성 등을 고려한다.
데이터 모델링의 관점
- 데이터의 관점
- 비즈니스 프로세스에서 사용되는 데이터를 의미함
- 구조 분석, 정적 분석 - 프로세스의 관점
- 비즈니스 프로세스에서 수행하는 작업을 의미함
- 시나리오 분석, 도메인 분석, 동적 분석 - 데이터와 프로세스의 관점
- 프로세스와 데이터 간의 관계를 의미함
- CRUD 분석
데이터 모델링을 위한 ERD(Entity Relationship Diagram)
- entity를 도출하고 그린다.
- entity를 배치한다.
- entity 간의 관계를 설정한다.
- 관계명을 서술한다.
- 관계 참여도를 표현한다.
- 관계의 필수 여부를 표현한다.
Crow's Feet Notation
- relation cardinality
- ring: 0
- dash: 1
- crow's feet: n(다수 혹은 그 이상) - identification relationship
- solid line: identifying(부모테이블의 PK를 자식테이블의 PK로 사용)
- dotted line: non-identifying - 예시
고리와 실선 → 0 혹은 1
실선과 실선 → 정확히 1
고리와 까마귀 발 → 0개 이상
실선과 까마귀 발 → 1개 이상
'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글
엔티티 식별자(entity identifier) (0) | 2021.03.15 |
---|---|
관계(relationship) (0) | 2021.03.15 |
속성(attribute) (0) | 2021.03.15 |
엔티티(entity) (0) | 2021.03.14 |
3층 스키마(3-Level Schema) (0) | 2021.03.14 |
Comments