Data Model은 데이터베이스의 구조를 원하는 형태로 만들 수 있도록하는 수단을 제공한다. conceptual data models, logical data models, physical data models로 분류된다.
1. conceptual data models
- 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델
- 비지니스 요구 사항을 추상화하여 설명할 떄 사용
- 대표적으로 아래와 같은 entity-relationship model이 있다
%%{ init: { 'theme': 'default', 'themeVariables': { 'primaryColor': '#000', 'primaryTextColor': '#000', 'lineColor': '#fff' } } }%%
erDiagram CUSTOMER ||--o{ ORDER : places CUSTOMER { string name string custNumber string sector } ORDER ||--|{ LINE-ITEM : contains ORDER { int orderNumber string deliveryAddress } LINE-ITEM { string productCode int quantity float pricePerUnit }
- CUSTOMER, ORDER, LINE-ITEM을 엔티티(entity)라 하고 entity들간의 관계(relationship)를 표현것이다. 이를 Entity Relationship Diagram(ERD)라 한다.
CUSTOMER 엔티티(entity)에서 name, custNumber, sector들을 attribute(속성)이라고 부른다.
2. logical data models
- 이해하기 어렵지 않으면서 상세하게 DB를 구조화
- 다음과 같이 생긴 relational data model을 많이 사용
student id | 이름 | 전공 | 학년 |
---|---|---|---|
1 | 홍길동 | 외교 | 4 |
2 | 이황 | 경제 | 3 |
3 | 이순신 | 무역 | 2 |
- relational을 위의 table을 의미하고 각 row(행)는 데이터를 의미하며 "studnet id, 이름, 전공, 학년"은 속성(attribute)을 의미한다.
logical data models의 종류로 relational data model, object data model, object-relational data model이 있고 대부분 relational data model을 사용한다.
3. physical data models
- 컴퓨터에 데이터가 실제로 저장장치에 저장되는 형태에 가장 가깝게 데이터 구조를 표현할 수 있는 Data Model