1. 데이터 모델링
- 데이터 모델링은 현실 세계 정보를 데이터베이스로 표현하기 위해 추상화하는 것을 말합니다.
- 데이터 모델링을 하기 위해서는 클라이언트와의 의사소통을 통해 클라이언트의 업무 프로세스를 이해하고 작업해야 합니다.
- 클라이언트의 업무 프로세스와 요구사항을 이해한 후 데이터 모델링 표기법을 사용해서 모델링을 합니다.
- 데이터 모델링은 클라이언트가 쉽게 이해할 수 있도록 복잡하지 않게 모델링해야 합니다.
- 데이터 모델링은 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석/설계하면서 더욱더 상세하게 표현이 됩니다.
- 데이터 모델링은 고객의 비즈니스 프로세스를 이해하고, 비즈니스 프로세스의 규칙을 정의합니다.
- 정의된 비즈니스 규칙을 데이터 모델로 표현하면 됩니다.
1) 데이터 모델의 관점
관점 | 설명 |
데이터 | - 비즈니스 프로세스에서 사용되는 데이터를 의미합니다. - 구조분석, 정적 분석 |
프로세스 | - 비즈니스 프로세스에서 수행하는 작업을 의미합니다. - 시나리오분석, 도메인 분석, 동적 분석 |
데이터와 프로세스 | - 프로세스와 데이터 간의 관계를 의미합니다. - CRUD(Create, Read, Update, Delete) 분석 |
## 이론 문제 확인하기
데이터 모델의 3가지 관점이 아닌 것은?
1. 스키마
2. 데이터
3. 프로세스
4. 데이터와 프로세스
정답 : 1
데이터 모델의 3가지 관점은 데이터, 프로세스, 데이터와 프로세스입니다.
2. 데이터 모델링의 특징
- 데이터 모델링의 주요 특징을 확인해보겠습니다. 특징을 잘 기억해서 시험에 적용하세요.
특징 | 설명 |
추상화(Abstraction) | 현실 세계 데이터의 공통적인 특징을 찾고 간략하게 표현합니다. |
단순화(Simpleification) | 복잡하지 않게 모델링하여 누구나 쉽게 이해할 수 있도록 표현합니다. |
명확성(Clarity) | 명확하게 의미가 해석되어야 하고, 한가지 의미를 가져야 합니다. |
## 이론 문제 확인하기
다음 중 데이터 모델링의 주요 특징으로 옳지 않은 것은?
1. 단순화
2. 명확화
3. 복잡화
4. 추상화
정답 : 3
데이터 모델링의 주요 특징은 추상화, 단순화, 명확화입니다.
3. 데이터 모델링의 단계
- 데이터 모델링은 3단계로 구분이 됩니다.
- 개념을 잡고, 논리적으로 표현한 후, 물리적으로 구축하는 것입니다.
- 자세한 것은 아래 도표를 통해 보겠습니다.
- 위의 말을 조금 어려울 수 있어서 아래 그림으로 보도록 하겠습니다.
- 예를 들어 영화관 관련 데이터베이스를 설계한다고 보겠습니다.
- 우선 클라이언트와 데이터 모델링을 하기 위한 의사소통을 합니다.
- 클라이언트와 이야기한 내용은 추상화시켜 개념적 모델링을 합니다.
- 영화관에 오는 회원이 있겠구나~ 하고 엔터티를 만들고, 회원의 속성은 어떤 것들이 있을까 생각을 해봅니다.
- 영화관련도 있겠구나~하고 엔터티를 만들고, 영화에는 어떤 속성이 필요한지 적어봅니다.
- 이런 식으로 추상화시켜 나가는 것을 개념적 모델링이라고 합니다. - 개념적 모델링을 논리적 모델링으로 변화하는 작업을 합니다.
- 개념적 모델링에서는 추상화를 시켰다고 한다면, 논리적 모델링에서는 좀 더 구체적으로 만듭니다.
- 각각의 엔터티에 식별자(기본키)를 도출하고, 필요한 모든 관계(릴레이션)를 정의합니다.
- 특히, 데이터들을 다 분리하는 정규화를 수행해서 데이터 모델의 독립성도 확보합니다.
- 정규화라는 것은 영화에 모든 정보를 다 담으면 복잡해지니까, 영화파일, 장르, 연령, 제작 등등 엔터티로 분리해서 관계를 설정해 주는 것입니다. - 논리적 모델링한 것을 실제 데이터베이스로 구축하는 물리적 설계를 합니다.
- 설계한 것을 실제 데이터베이스로 만들었습니다.
** 이건 예시일 뿐 실제와는 다를 수 있습니다.
## 이론 문제 확인하기
다음 중 데이터 모델링 절차로 옳은 것은?
1. 물리적모델링 → 논리적모델링 → 개념적모델링
2. 개념적모델링 → 논리적모델링 → 물리적모델링
3. 논리적모델링 → 물리적모델링 → 개념적모델링
4. 개념적모델링 → 물리적모델링 → 논리적모델링
정답 : 2
데이터 모델링 절차는 개념적모델링 → 논리적모델링 → 물리적모델링 순입니다.
4. 데이터 모델링을 위한 ERD(Entity Relationship Diagram)
- 개념적 모델링 시에 개념적 ERD를 작성한다고 했습니다.
- ERD는 1976년에 피터첸이 표기법을 만들었으며, 사실상 데이터 모델링의 표준으로 사용되고 있습니다.
- 엔터티와 엔터티 간의 관계를 정의하는 모델링 방법입니다.
- 위에서 예시로 들었던 영화관 DB설계로 간단하게 설명을 해보겠습니다.
1) ERD 작성 절차
① 엔터티를 도출하고 그립니다. 영화관에서 관리하는 집합을 도출합니다.
② 엔터티를 배치합니다.
- 엔터티를 도출한 후 엔터티를 배치합니다.
- 중요한 엔터티를 왼쪽 상단에 배치합니다.
③ 엔터티 간의 관계를 설정합니다.
④ 관계명을 서술합니다. 엔터티간의 어떤 행위나 존재가 있는지 표현합니다.
⑤ 관계참여도를 표현합니다.
- 관계참여도는 한개의 엔터티와 다른 엔터티 간의 참여하는 관계 수를 의미합니다.
- 즉, "회원은 여러 장을 예매할 수 있다"와 같은 의미를 표현하는 것입니다.
⑥ 관계의 필수 여부를 표현합니다.
- 필수는 반드시 존재해야 하는 것입니다.
- 예를 들어 "모든 회원은 반드시 하나의 예매를 해야 한다"와 같은 의미를 표현합니다.
2) ERD 작성시 고려사항
- 중요한 엔터티를 가급적 왼쪽 상단에 배치한다.
- ERD는 이해가 쉬워야 하고, 너무 복잡하지 않아야 한다.
## 이론 문제 확인하기
ERD 작성 절차로 올바르게 연결된 것은?
============================================
A : 엔터티를 도출하고 그린다.
B : 엔터티를 배치한다.
C : 엔터티 간 관계를 설정한다.
D : 관계명을 서술한다.
E : 관계 참여도를 표현한다.
F : 관계의 필수 여부를 표현한다.
============================================
1. A → B → C → D → E → F
2. A → B → C → F → E → D
3. A → B → C → D → F → E
4. B → A → C → D → E → F
정답 : 1
엔터티를 먼저 도출하고, 엔터티 간의 관계설명 및 관계명 서술하고 참여도 등을 표현합니다.
5. 데이터 모델링 고려사항
- 데이터 모델링 시 고려사항을 보겠습니다.
1) 데이터 모델의 독립성
- 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있습니다.
- 독립성을 확보하기 위해서는 중복된 데이터를 제거해야 합니다.
- 데이터 중복을 제거하는 방법이 바로 정규화입니다.
2) 고객 요구 사항의 표현
- 데이터 모델링으로 고객과 데이터 모델러 간에 의사소통을 할 수 있어야 하므로, 고객의 요구사항을 간결하고 명확하게 표현해야 합니다.
3) 데이터 품질 확보
- 데이터베이스 구촉 시에 데이터 표준을 정의하고 표준 준수율을 관리해야 합니다.
- 데이터 표준을 확보해야 데이터 품질을 향상할 수 있습니다.
## 이론 문제 확인하기
다음 중 데이터 모델링에서 고려할 사항이 아닌 것은?
1. 데이터 모델의 독립성
2. 고객의 요구사항 표현
3. 데이터 모델의 다양성
4. 데이터 품질 확보
정답 : 3
데이터 모델링 시 고려사항은 데이터 모델의 독립성, 고객의 요구사항 표현, 데이터 품질 확보 입니다.
=====================================================================================
** 기출문제 더보기
## 1번문제
데이터베이스 모델링 관점 중에서 CRUD 메트릭스와 관련이 있는 것은?
1. 프로세스 관점
2. 데이터 관점
3. 데이터와 데이터 간의 상관 관점
4. 데이터와 프로세스의 상관 관점
정답 : 4
- 데이터 모델링의 관점은 데이터관점, 프로세스관점, 데이터와 프로세스관점이 있습니다.
- 데이터관점 : 업무에서 사용하는 데이터, 구조분석을 합니다.
- 프로세스관점 : 수행하는 작업, 업무 시나리오 분석을 하니다.
- 데이터와 프로세스관점 : 업무와 데이터의 관계로, CRUD(CREATE, READ, UPDATE, DELETE)메트릭스를 합니다.
'자격증 > SQLD 자격증' 카테고리의 다른 글
[SQLD자격증강좌] 8강 정규화(Normalization) - 오쌤의 니가스터디 (0) | 2024.03.07 |
---|---|
[SQLD자격증강좌] 7강 엔터티 식별자 - 오쌤의 니가스터디 (0) | 2024.03.07 |
[SQLD자격증강좌] 6강 관계(RelationShip) - 오쌤의 니가스터디 (0) | 2024.03.07 |
[SQLD자격증강좌] 4강 엔터티(Entity) - 오쌤의 니가스터디 (0) | 2024.03.06 |
[SQLD자격증강좌] 3강 3층 스키마(3-Level Schema) - 오쌤의 니가스터디 (0) | 2024.03.06 |