자격증/SQLD
[개미의 걸음 SQLD 1과목] 데이터 모델링의 이해
IT개미 데이터
2020. 12. 3. 07:07
728x90
데이터 모델링
주어진 데이터로부터 논리적 데이터 구조를 구성하는 작업
즉, 고객의 업무 프로세스를 이해하고 이를 바탕으로 정의한 규칙을 데이터 모델로 표현하는 작업
- 고객과의 의사소통을 통한 고객의 업무 프로세스 이해
- 이해한 고객의 업무 프로세스를 바탕으로 데이터 모델링 표기법을 사용해 모델링
→ 현실세계를 데이터베이스로 표현하기 위해 고객의 업무 프로세스를 추상화
→ 소프트웨어를 분석*설계하면서 점점 더 구체화
데이터 모델링의 세가지 요소
데이터 모델링을 구성하는 개념 3가지는 데이터 모델에 대한 이해의 근간이 됨
1. 업무가 관여하는 어떤 것[Things] |
2. 어떤 것이 가지는 성격[Attributes] |
3. 업무가 관여하는 어떤 것 간의 관계[Relationship] |
데이터 모델링의 특징
- 현실세계에서 공통적인 특징을 찾아 일정한 구조에 맞추어 간략하게 표현하는 추상화
- 복잡한 현실을 제한된 언어나 표기법을 통해 표기하는 단순화
- 누구나 이해 가능하도록 정확하게 현상을 표기하는 정확화/명확화
데이터 모델링 목적
- 데이터 모델링 표기법에 맞춰 표현함으로써 해당 업무 내용을 정확하게 분석
→ 단순한 시스템 구현을 넘어 업무의 흐름 분석 및 업무 형상화 목적
→ 데이터베이스 구축만을 위한 것이 아니라 업무를 설명하고 분석하는 부분에서도 매우 중요 - 분석된 모델을 바탕으로 데이터베이스를 구축함으로써 개발 및 데이터관리에 사용
데이터 모델링 고려사항
- 데이터베이스에 같은 정보를 여러 개 저장하지 않도록 하는 중복성 최소화
→ 데이터 중복을 제거하기 위해 정규화 작업 진행
→ 중복된 데이터 제거를 통한 데이터 모델의 독립성 확보 - 데이터 정의를 데이터의 사용 프로세스와 분리하는 높은 유연성
- 데이터간의 상호 연관관계를 명확하게 정의함으로써 유지하는 일관성
데이터 모델링 단계
개념적 모델링 [Conceptual Data Modeling] |
* 고객의 업무 프로세스 분석 후 업무 전체에 대해 데이터 모델링 수행하는 단계 * 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계 → 추상화 수준이 가장 높은 수준의 모델링 * 계층형 데이터 모델, 네트워크 모델, 관계형 모델에 관계없이 업무 측면에서 모델링 * Entitiy와 Attribute를 도출하고 개념적 ERD[Entity Relationship Diagram]를 작성 |
논리적 모델링 [Logical Data Modeling] |
* 개념적 모델링을 논리적으로 변환하는 단계 * 정규화를 통해 데이터 모델의 독립성 확봉 * 식별자를 정의하고 Attribute, Relationship 등을 모두 표현 |
물리적 모델링 [Physical Modeling] |
* 실제 데이터베이스를 구축하기 위해 Table, Index, Function등을 생성하는 단계 * 성능, 보안, 가용성 등 물리적인 측면을 고려하여 데이터베이스 구축 |
# ERD[Entity Relationship Diagram]
더보기
1976년 Peter Chen이 만든 Entity Relationship Model 표기법
- Entity와 Entity 간의 관계를 정의하는 모델링 방법
- 사실상의 데이터 모델링 표준
- 복잡하지 않고 이해하기 쉬워야 함
ERD 작성 절차
1. Entity 도출 * 고객의 업무 프로세스에서 관리가 필요한 정보를 추출 |
2. Entity 배치 * 중요한 Entity는 가급적 왼쪽 상단에 배치 → 일반적으로 사람은 눈을 왼쪽에서 오른쪽으로 이동하려는 경향을 가지므로 |
3. Entity 간 관계 설정 |
4. 관계명 기술 * 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당 |
5. 관계 참여도 표현 * 관계 참여도는 한 개의 Entity와 다른 Entity 간의 참여하는 관계 수를 의미 * 관계 차수로 표기 |
6. 관계의 필수 여부 표현 |
데이터 모델링 관점
데이터 | 비즈니스 프로세스에서 사용되는 데이터를 의미 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법 → 구조 분석, 정적 분석 |
프로세스 | 비즈니스 프로세스에서 수행하는 작업을 의미 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법 시나리오 분석, 도메인 분석, 동적 분석 |
데이터와 프로세스 | 프로세스와 데이터 간의 관계를 의미 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법 CRUD[Create, Read, Update, Delete] 분석 |
좋은 데이터 모델 요소
완전성 | 업무에 필요한 모든 데이터가 정의되어 있어야 한다. |
중복배제 | 하나의 데이터베이스에 동일한 데이터가 없어야 한다. → 중복시 저장공간 낭비 |
업무규칙 | 업무에 사용되는 규칙들을 데이터 모델에 표현해야 함 → 모든 사용자가 해당 규칙에 대해 동일하게 판단하고 데이터 조작 가능 |
데이터 재사용 | 통합성[회사 전체 관점에서 설계]과 독립성[데이터가 Application에 독립적으로 설계]을 고려 최근에는 확장성을 강조하기 위해 많은 부분을 통합한 데이터 모델의 형태를 가짐 |
의사소통 | 주어진 업무를 데이터 관점에서 분석하고 설계한 데이터 모델은 의사소통을 위해 분석과정에서 도출되는 업무 규칙을 최대한 자세히 표현해야 함 |
통합성 | 공통 데이터를 도출하고 이를 전 영역에서 사용하기 적절한 통합된 형태로 설계 → 통합데이터 모델은 데이터 재사용성을 향상시킴 |
728x90