数据库建模与设计(一)抽象思想和ER图

写在前面

我们学习计算机进行产品开发时总要根据甲方需求设计,那一个好的软件首先就要有一个好的数据库,基于一个好的数据库设计才能大程度的达到用户需求,所以我们要根据需求设计出一个好的数据模型。
什么是数据模型和概念模型?
表达计算机世界的模型是数据模型(依赖于逻辑层,如关系、网状和层次模型);表达信息世界的模型称为概念模型(独立于计算机系统,如E-R模型、O-O模型),而信息世界则是对现实世界(就是需求)的理解与抽象。抽象的层次如下图所示


数据建模的过程其实就是将现实世界的信息进行抽象,而“抽象”其实就是:理解、区分、命名、表达

1.E-R模型

E-R模型认为现实世界是由一组称作实体的基本对象和这些对象之间的联系构成的,而我们需要做的是叭这些东西抽象成一个模型。
E-R模型一定要明白下面几个基本概念:实体、属性、联系、关键字/码,这样一张图就很容易理解这几个概念了


实体与实例
在有些书上来讲不管类还是个体都叫做实体,但我们还是要注意区分,我们一般将实体的型(类、类型)叫做实体,而实体的一个个的个体(或者说值,也就是在实体中的一个个属性有了确定的时候)我们叫做实例。

ER图中关联关系有三种:

1对1(1:1):1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
1对多(1:N):1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

2.chen方法表示E-R图

chen方法的表示规定:



可以注意到上面完全参与联系和部分参与的区别表示,双实线为完全参与,单实线一边为部分参与
要注意的是联系也可能需要属性刻画
1)我们先将不同的实体分别用属性刻画完全,然后找到其中的关键字
2)分析每个实体之间的联系,建模的重点是将实体相关联起来,然后标出联系是一对多还是多对多等等
3)检查是否覆盖了完成的需求,并符合规范(从语法和内容两方面看)

3.Crow's Foot 方法表示E-R模型

这是另一种表示E-R图形的方式
(这个我们不考,所以不做太多解释,和E-R模式的基本思想差不多,只是在表达方式做了一些修改)




再看抽象层次

计算机工作者必须具备的一种能力就是抽象能力,从现实世界抽象为抽象的信息,再将信息抽象为计算机世界中的模型等。
“型”与“值”其实就是最基本的抽象,型和值在数据库学科中关于型和值的例子有很多,例如数据模型和模式;又比如面对对象编程中的类和实例。对于一个问题,它的型可能是更高级抽象的值。
建模的不同层次:模型与元模型;模型(型)与实例(值)

数据库设计中的抽象

这其实是建模的一个基本思想,回归本质其实是数据结构中学过的树和图的模式类型。对实际问题的抽象可以将实际问题抽象为模型。对模型的抽象可以将模型抽象为元模型。根据节点一级一级向上递进其实也就是我们所学过的树。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容