SQLD - PART 2
📌 데이터 모델링의 이해
1) 데이터 모델링
- 데이터 모델링은 현실 세계를 데이터 베이스로 표현하기 위해 추상화 한다.
- 데이터 모델링을 하기 위해서는 고객과의 의사소통을 통해 고객의 업무프로세스를 이해하여야 한다.
- 고객의 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해서 모델링을 한다.
- 데이터 모델링은 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링 해야 한다.
- 데이터 모델링은 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석, 설계하면서 점점 더 상세 해진다.
- 데이터 모델링은 고객의 비즈니스 프로세스를 이해하고 비즈니스 프로세스의 규칙을 정의한다.
정의된 비즈니스 규칙을 데이터 모델로 표현한다.
2) 데이터 모델링의 특징 (추 - 단 - 명)
- 데이터 모델링은 추상화 해야 한다. --> 추상화는 공통적인 특징을 찾고 간략하게 표현한다.
- 데이터 모델링은 단순화 해야 한다. --> 복잡한 문제를 피하고 누구나 이해할 수 있게 표현한다.
- 데이터 모델링은 명확해야 한다. --> 의미적 해석이 모호하지 않고 명확하게 해석되어야 한다.
특징 | 설명 |
추상화 (Abstraction) | 현실세계를 간략하게 표현한다. |
단순화 (Simplication) | 누구나 쉽게 이해할 수 있도록 표현한다. |
명확성 (Clarity) | 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다. |
3) 데이터 모델링의 단계 (개 - 논 - 물)
① 개념적 모델링(Conceptual Data Modeling)
- 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해 데이터 모델링을 정한다.
- 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계이다.
- 업무적 관점에서 모델링하며 기술적인 용어는 가급적 사용하지 않는다.
- 엔터티(Entity)와 속성(Attribute)을 도출하고 개념적 ERD(Entity Relationship Diagram)를 작성한다.
- 엔터티란 실체, 객체라는 의미로 실무적으로는 엔터티라고 부른다.
즉, 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명할 수 있다.
- 엔터티는 사람, 장소, 물건, 사건, 개념 등 명사에 해당한다.
- 엔터티는 업무상 관리가 필요한 관심사에 해당한다.
② 논리적 모델링(Logical Data Modeling)
- 개념적 모델링을 논리적 모델링으로 변환하는 작업이다.
- 식별자를 도출하고 필요한 모든 릴레이션(관계)을 정의한다.
- 정규화를 수행해서 데이터 모델의 독립성을 확보한다.
- 정규화의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는다는 것이다.
- 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)을 유지할 수 있으며, DB의 저장 용량 줄일 수 있다.
③ 물리적 모델링(Physical Modeling)
- 데이터베이스를 실제 구축한다. 즉, 테이블, 인덱스, 함수 등을 생성한다.
- 성능, 보안, 가용성을 고려해서 구축한다.
[데이터 모델링 단계]
데이터 모델링 단계 | 설명 |
개념적 모델링 | - 전사적 관점에서 기업의 데이터를 모델링 한다. - 추상화 수준이 가장 높은 수준의 모델링이다. - 계층형 데이터 모델, 네트워크 모델, 관계형 모델에 관계없이 업무 측면에서 모델링 한다. |
논리적 모델링 | - 특정 데이터베이스 모델에 종속한다. - 식별자를 정의하고 관계 , 속성 등을 모두 표현한다. - 정규화를 통해 재사용성을 높인다. |
물리적 모델링 | - 구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계이다. - 성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축한다. |
[데이터 모델링 관점]
관점(View) | 설명 |
데이터 | - 비즈니스 프로세스에서 사용되는 데이터를 의미한다. - 구조 분석, 정적 분석 |
프로세스 | - 비즈니스 프로세스에서 수행하는 작업을 의미한다. - 시나리오 분석, 도메인 분석, 동적 분석 |
데이터와 프로세스 | - 프로세스와 데이터 간의 관계를 의미한다. - CRUD(Create, Read, Update, Delete) 분석 |
'Certification > SQLD 개발자' 카테고리의 다른 글
[SQLD 개발자] 6. 3층 스키마(3-Level Schema) (0) | 2023.01.13 |
---|---|
[SQLD 개발자] 5. ERD 작성 단계에 대한 설명 (0) | 2023.01.12 |
[SQLD 개발자] 3. Oracle XE , SQL Developer 설치 및 테스트 (0) | 2023.01.11 |
[SQLD 개발자] 2. SQL Developer 소개 및 Oracle 설치법 (0) | 2023.01.11 |
[SQLD 개발자] 1. 준비 과정 (0) | 2023.01.11 |