본문 바로가기
프로그래밍/CS

데이터 모델(Data model)의 개념

by 숙님 2023. 8. 4.
728x90

1. 개념

- 정의: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델 

- 표시 요소 

연산 - 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 
- 릴레이션을 조작하기 위한 관계 연산(SELECT, PROJECT, JOIN 등)
구조 - 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 
제약 조건 - 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 
- 릴레이션의 특정 칼럼에 설정하는 제약을 의미 

 

2. 절차 

요구조건 분석 - 도출된 요구사항 간 상충관계 해결
- 요구사항 범위 파악
- 외부 환경과의 상호작용 분석을 통해 데이터 요구 분석 
개념적 설계 - 요구에 대한 트랜잭션을 모델링하는 단계 
- 현실 인식을 추상적, 개념적으로 표현하여 구조를 도출 
논리적 설계 - 트랜잭션의 인터페이스를 설계하는 단계 
물리적 설계  - 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계 
- 테이블, 인덱스, 뷰, 파이션 등 객체를 생성 
- 반 정규화 수행 

 

3. 적용 사례(아마존 홈페이지에 나와있는 데이터 모델링에 대한 설명을 정리)

- 개념적 데이터 모델

예를 들어 자동차 대리점에 대한 개념적 데이터 모델은 다음과 같은 데이터 엔터티를 표시할 수 있다

  1. 대리점이 갖고 있는 다양한 매장에 대한 정보를 나타내는 Showrooms 엔터티
  2. 대리점이 현재 보유하고 있는 여러 대의 자동차를 나타내는 Cars 엔터티
  3. 대리점에서 자동차를 구매한 모든 고객을 나타내는 Customers 엔터티
  4. 실제 판매에 대한 정보를 나타내는 Sales 엔터티
  5. 대리점에서 일하는 모든 판매원에 대한 정보를 나타내는 Salesperson 엔터티

이 개념적 모델에는 다음과 같은 비즈니스 요구 사항도 포함된다 

  • 모든 자동차는 특정 쇼룸 소속이어야 합니다.
  • 모든 판매에는 최소 한 명의 판매원과 한 명의 고객이 연결되어 있어야 합니다.
  • 모든 자동차에는 브랜드 이름과 제품 번호가 있어야 합니다.
  • 모든 고객은 전화번호와 이메일 주소를 제공해야 합니다.

 

- 논리적 데이터 모델

자동차 대리점 예에서 논리적 데이터 모델은 개념적 모델을 확장하고 다음과 같이 데이터 클래스를 더 심층적으로 확인

  • Showrooms 엔터티에는 텍스트 데이터 형식의 이름 및 위치 필드와 숫자 데이터 형식의 전화번호 필드가 있습니다.
  • Customers 엔터티에는 xxx@example.com 또는 xxx@example.com.yy 형식의 이메일 주소 필드가 있습니다. 필드 이름은 100자 이하여야 합니다.
  • Sales 엔터티에는 고객 이름 필드, 판매원 이름 필드, 날짜 데이터 형식의 판매 날짜 필드 및 10진수 데이터 형식의 금액 필드가 있습니다.

 

- 물리적 데이터 모델

  • Sales에서 판매 금액은 float 데이터 형식이고 판매 날짜는 타임스탬프 데이터 형식입니다.
  • Customers에서 고객 이름은 문자열 데이터 형식입니다.
  • S3 Glacier Flexible Retrieval 용어에서 볼트는 데이터의 지리적 위치입니다. 

 

4. 데이터 모델링 프로세스 

출처: 아마존

 

댓글