Database의 구조를 표현하는 데 사용되는 개념 집합.
(참조 원문: A data model is a collection of concepts for describing data)
data model은 다음 세 가지로 분류된다.
1. 개념적 데이터 모델(high-level data model)
2. 물리적 데이터 모델(low-level data model)
3. 구현 데이터 모델(representational data model).
1. 개념적 데이터 모델(high-level data model)
DB 사용자가 이해하는 데이터베이스 구조이다. High-level이라는 표현처럼, 실제 사람이 데이터를 받아들이는 방식에 가깝게 데이터베이스 구조를 설명한다.
예를 들어 miniworld에서 우리가 저장해야 할 실제적인 요소인 entity, 그 entity들을 설명하는 attribute, entity 간의 관계를 나타내는 relationship으로 이루어진 ER(Entity-Relationship) model이 있다.
2. 물리적 데이터 모델(low-level data model)
데이터를 실제로 어떻게 저장할 것인지, 파일 구조나 인덱스 등은 어떤 방식으로 구성되는지 실제 데이터가 데이터구조를 나타내는 방식으로 설명하는 데이터 모델이다.
3. 구현 데이터 모델(Representational data model)
DBMS에서 사용되는 모델로, 앞선 두 모델의 중간적인 성격을 지닌다. 상세한 물리적인 정보는 추상화하면서 데이터의 구조를 표현한다.
이 부분이 처음에 이해가 잘 안 되어서 구글링을 통해 좀 더 알아보았다. high-level과 다른 점을 파악하지 못했기 때문이다.
high-level data model은 완전히 개념적으로 데이터베이스 구조를 설명하는 것으로 그 데이터의 타입이나 제약조건 등을 완전히 무시한다. 반명 representational data model은 개념적으로 데이터베이스 구조를 설명하되, 그 데이터의 타입, 제약조건 등 구조적인 디테일까지 설명하는 것으로 이해하였다.
솔직히 아직 디테일한 예제 등을 보지 못했다 보니 쓰면서도 무슨 소리인지 감이 잘 안 온다. 나중에 뒷장을 보고 돌아와서 보충해서 다시 써야 할 것 같다.