MongoDB模型设计基础(更新中)

什么是数据模型

根据Steve Hoberman建模经典教程:

数据模型是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流沟通的目的。

数据模型希望通过一个逻辑化,物理化的模型来给大家提供在同一个层面交流的目的。

 

数据模型设计的元素

  • 实体 Entity
    • 描述业务的主要数据集合
    • 谁,什么,何时,何地,为何,如何
  • 属性 Attribute
    • 描述实体里面的单个信息
  • 关系 Relationship
    • 描述实体与实体之间的数据规则
    • 结构规则:1-N,N-1,N-N
    • 引用规则:电话号码不能单独存在

 

传统模型设计:从概念到逻辑到物理

从概念模型到逻辑模型,最后到物理模型。也就是从需求角度入手,完成逻辑设计,最后生成需要的表结构。

 

 

从开发者的视角:概念模型

 

 

从开发者的视角:逻辑模型

 

 

从开发者的视角:第三范式下的物理模型

 

 

 

模型设计小结

 

JSON文档设计模型

MongoDB文档模型设计的三个误区

  1. 不需要模型设计
  2. MongoDB应该用一个超级大文档来组织所有数据
  3. MongoDB不支持关联或者事务

关于JSON文档模型设计

文档模型设计处于是物理模型设计阶段(PDM)

JSON文档模型通过内嵌数组或引用字段来表示关系

文档模型设计不遵从第三范式,允许冗余。

 

 

 为什么说MongoDB是无模式

 

在完成逻辑模型的时候,也就完成了大部分json模型的建模

 

 

 文档模型的设计原则:性能和易用

 

 

关系模型VS文档模型

传统上来讲,由于MongoDB是通过文档来组织数据的,所以人们认为MongoDB是没有模型设计的,或者不需要模型设计的。其实不管是什么数据库,要想高效、易用的组织数据,模型设计是必不可少的,方式方法也是相通的。

 

posted @ 2020-04-09 22:00  liekkas01  阅读(498)  评论(0编辑  收藏  举报