MongoDB 数据模型(1/5)数据模型设计基础
什么是数据模型?
数据模型是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流、沟通的目的。
数据模型设计的元素
- 实体 Entity
- 描述业务的主要数据集合
- 谁,什么,何时,何地,为何,如何...
- 属性 Attribute
- 描述实体里面的单个信息。
- 关系 Relationship
- 描述实体与实体之间的数据规则。
- 结构规则:1-N,N-1,N-N
- 引用规则:电话号码不能单独存在。
传统模型设计:从概念到逻辑到物理
概念模型 CDM | 逻辑模型 LDM | 物理模型 PDM | |
---|---|---|---|
目的 | 描述业务系统要管理的对象。 | 基于概念模型,详细列出所有实体、实体的属性及关系。 | 根据逻辑模型,结合数据库的物理结构,设计具体的表结构,字段列表及主外键。 |
特点 | 用概念名词来描述现实中的实体及业务规则,如“联系人”。 | 基于业务的描述和数据库无关。 | 技术实现细节,具体的数据库类型相关。 |
主要使用者 | 用户 需求分析师 |
需求分析师 架构师及开发者 |
开发者 DBA |
从开发者的视角:第三范式下的物理模型
第三范式原则:数据在库内尽量不存在冗余。
Contact | ContactGroup | Group | ||
---|---|---|---|---|
contact_id name gender phones groups addresses |
1 : N | group_id contact_id |
N : 1 | group_id name description created |
Address | Province | |||
Contact | 1 : N | address_id type province_id address |
N:1 | province_id province_name |
数据模型设计小结
- 数据模型的三要素:
- 实体
- 属性
- 关系
- 数据模型的三层深度:
- 概念模型、逻辑模型、物理模型
- 一个模型逐步细化的过程。