c23 [DB] 데이터 모델링
본문 바로가기
[Database]

[DB] 데이터 모델링

by Jarvis2304 2023. 5. 1.

 

▶ 데이터 모델링 (data modeling)

- 현실 세계에 존재하는 데이터를, 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

- 현실의 문제를 전자적 형태인 컴퓨터로 옮기는 것

- 데이터 모델링을 쉽게 할 수 있도록 도와주는 도구가 데이터모델

- 데이터 모델은, 데이터 모델링의 결과물을 표현하는 도구

 

데이터베이스 설계 · 데이터 모델링 과정 

업무파악(요구 사항 분석) → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링

 

 

(1) 업무파악 · 요구 사항 분석 

- 현실세계에서 데이터베이스로 구축하기 위한 요구 사항 분석 및 업무파악

- 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악

- 즉, 데이터 베이스를 사용해 실제 업무를 처리하는 사용자에게 필요한 데이터의 종류와 처리 방법 같은 다양한 요구 사항을 수집

→ 수집한 요구 사항을 분석하여 그 결과를 "요구 사항 명세서"로 작성하는 것이 요구 사항 분석 단계에서의 주요 작업

 

 

(2) 개념적 데이터 모델링 

- 현실 세계에서 중요 데이터를 추출하여 개념 세계로 옮기는 작업

- 요구 사항 분석 단계의 결과물인 요구 사항 명세서를 바탕으로 시작

- 사용자의 요구 사항을, 개념적 데이터 모델을 이용하여 모델링

 

- 개념적 데이터 모델은 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구

- 개념적 데이터 모델은 개발에 사용할 DBMS의 종류에 독립적이면서, 중요한 데이터 요소와 데이터 요소 간의 관계를 표현할 때 사용 ex) E-R 모델 (개념적 구조 or 개념적 스키마라고함)

→ 사용자의 요구 사항을 분석한 결과를 "E-R 다이어그램"으로 표현하는 것이 개념적 설계 단계에서의 주요 작업

 

 

(3) 논리적 데이터 모델링

- 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

- 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용하여 개념적 설계 단계에서 생성한 개념적 구조(E-R 다이어그램)를 기반으로 논리적 구조를 설계

- 개념적 데이터 모델을, 논리적 데이터 모델을 이용하여 모델링

 

- 논리적 데이터 모델은 개념적 구조(E-R 다이어그램)를 논리적 모델링하여 데이터베이스의 논리적 구조료 표현하는 도구 ex) 관계 데이터 모델 (논리적 구조 or 논리적 스키마라고함)

→ 개념적 설계 단계에서 생성한 E-R 다이어그램을 관계 데이터 모델 "릴레이션(테이블)"로 변환하여 DBMS가 처리할 수 있도록 하는 것이 논리적 설계 단계에서의 주요 작업

이용하여 모델링

 

 

 

(4) 물리적 데이터 모델링

- 논리적 설계 단계에서 생생된 논리적 구조(관계 데이터 모델)를 기반으로 물리적 구조를 설계

- 데이터베이스를 저장 장치에 실제로 저장하기 위한 내부 저장 구조와 *접근 경로등을 의미

- 저장 장치에 적합한 저장 레코드와 인덱스의 구조 등을 설계, 저장된 데이터와 인덱스에 빠르게 접근하게 할 수 있는 탐색 기법 등을 정의

→ 데이터베이스를 실제로 구축할 컴퓨터 시스템의 저장 장치와 운영체제의 특성을 고려하여, 효율적인 성능을 지원하면서도 사용할 "DBMS로 구현이 가능한 물리적인 구조를 설계" 하는 것이 물리적 설계 단게에서 수행하는 주요 작업

 

*데이터베이스 내부 저장 구조는 디스크에 저장되는데, 이때 디스크는 블록이라는 단위로 데이터를 저장. 이러한 블록 단위로 데이터를 읽고 쓰기 때문에, 데이터베이스에 접근하기 위해서는 어떤 블록에서 어떤 위치에 있는 데이터를 읽어야 하는지를 결정하는 "접근 경로"가 필요

 

 

(5) 구현

- 이전 설계 단계의 결과물을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성

- 이때 사용되는 SQL 문은 테이블이나 인덱스 등을 생성할 때 사용되는 데이터 정의어(DDL)임

 

 

 

 

'[Database]' 카테고리의 다른 글

[JDBC] 커넥션 풀  (0) 2024.03.31
[JDBC] 개요  (0) 2024.03.29
[DB] ER 다이어그램(개념적 데이터 모델)  (0) 2023.05.05
[DB] 데이터 모델  (0) 2023.05.02
[DB] DB, DBMS, Database System  (0) 2023.05.01

댓글