[DB/SQLD] 데이터모델링
데이터 모델링
현실세계를 데이터베이스로 표현하기 위해서 추상화한다. 데이터 모델링은 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석, 설계하면서 점점 더 상세해진다.
데이터 모델링 특징
- 추상화(Abstraction) : 공통적인 특징을 찾고 간략하게 표현.
- 단순화(Simplification) : 복잡한 문제를 피하고 누구나 이해할 수 있게 표현.
- 명확화(Clarity) : 의미적 해석이 모호하지 않고 명확하게 한가지 의미로해석되어야 한다.
데이터 모델링 단계
- 개념적 모델링(Conceptual Data Modeling)
- 중요한 부분을 위주로 모델링하는 단계로 업무적 관점에서 모델링하며 기술적인 용어는 가급적 사용하지 않는다.
- 엔터티와 속성을 도출하고 개념적 ERD(Entity Relationship Diagram)을 작성한다. - 추상화 수준이 가장 높은 수준의 모델링
- 논리적 모델링(Logical Data Modeling)
- 개념적 모델링을 논리적 모델링으로 변환하는 작업.
- 식별자를 도출하고 관계, 속성 등을 모두 표현하고 필요한 모든 릴레이션을 정의.
- 정규화를 수행해 데이터 모델의 독립성을 확보, 재사용성을 높인다.
- 물리적 모델링(Physical Modeling)
- 구축할 데이터베이스 관리 시스템에 데이터베이스를 실제로 구축. 즉 테이블, 인덱스, 함수 등을 생성.
- 성능, 보안, 가용성을 고려해 구축.
데이터 모델링 관점
- 데이터 : 비즈니스 프로세스에서 사용하는 데이터를 의미. 구조 분석과 정적 분석이 있다.
- 프로세스 : 비즈니스 프로세스에서 수행하는 작업을 의미한다. 시나리오 분석, 도메인 분석, 동적 분석이 있다.
- 데이터와 프로세스 : 프로세스와 데이터 간의 관계를 의미한다. CRUD(create, read, update, delete)분석.
데이터 모델링을 위한 ERD(Entity Relationship Diagram)
데이터 모델링의 표준으로 사용되고 있다. 엔터티와 엔터티 간의 관계를 정의하는 모델링 방법이다.
ERD 작성 절차
- 엔터티를 도출하고 그린다.
- 엔터티를 배치한다.
- 엔터티 간의 관계를 설정한다.
- 관계명을 서술한다.
- 관계 참여도를 표현한다.
- 관계의 필수 여부를 표현한다.