详解数据模型

数据模型。

数据模型的基本概念

数据是现实世界符号的抽象,而数据模型则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库的信息表示与操作提供一个抽象的框架。数据模型所描述的内容分成三个部分,数据结构,数据操作与数据约束。

1.数据结构

数据模型中的数据结构主要描述数据的类型、内容、性质以及数据之间的联系等。数据结构是数据模型的基础,数据操作与约束都建立在数据结构上。

2.数据操作

数据模型中的数据操作主要描述在相应数据结构上的操作类型与操作方式。

3.数据约束

数据模型中的数据约束主要描述数据结构内数据见的语法、语义联系,他们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确,有效与相容。

E-R模型

长期一来被广泛使用的概念模型是E-R模型。该模型将现实世界的要求转化为实体、联系、属性等几个基本概念,以及它们间的两种基本连接关系,并且可以用一种图非常直观地表示出来。

1.E-R模型的基本概念

现实世界中的事物可以抽象为实体,实体是概念中的基本单位,它们是客观存在的且又能相互区别的事物。

现实世界中事物均有一些特性,这些特性可以用属性来表示。属性刻画了实体的特征。

现实世界中事物的关联称之为联系。在概念世界中联系反映了实体集间的一定关系。这种联系的个数可以是一个也可以是多个。两个实体之间的联系实际上是实体集之间的函数关系。

函数关系还是那些,一对一,一对多或多对一,多对多……其中一对一简记为1:1,它是最常见的函数关系。一对多简记为1:M,多对一简记为M:1,这两种函数关系其实算一种,举个例子,学生与其宿舍房间的关系是多对(有好多学生入住这一个宿舍),但是宿舍房间对学生的关系就是一对多。多对多简记为M:N,这种关系相对复杂一些,比如教师与学生的关系。一个教师可以教很多学生,同时,一个学生又可以被多个老师教。

2.E-R模型三个基本概念之间的连接关系。

E-R模型的基本概念是哪三个?

实体,联系,属性。这三者结合起来才能表示现实世界。

实体是概念世界中的基本单位,属性附属于实体,属性本身并不构成独立单位。属性有属性域,每个实体可以取这个域内的值。一个实体的所有属性取值的集合叫做元组。在概念世界中,元组可以表示实体,也可以区别实体。

实体有型和值之分,和之前讲的数据一样。

联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述,因此,联系与属性间也有连接关系。

实体集间可通过联系建立关系。一般而言,实体集间无法建立直接关系,他只能通过联系才能建立起连接关系。

在E-R模型中有三个基本概念以及它们之间的两种基本连接关系。它们将现实世界中的错综复杂现象抽象成简单明了的几个概念关系,具有极强的概括性和表达能力。

3.E-R模型的图示法

E-R模型可以通过一个很直观的图来表示,这种图叫做E-R图。在E-R图中我们下面不同的几何图形表示这三个概念和两个连接关系。

首先是实体集表示法。用矩形表示,在里面写实体集的名字。

然后是属性表示法。用椭圆。里面写属性名。

最后是联系表示法。用菱形。内写联系名。

要表示之间有关系,连起来就好了。

(图片来自网络,博主有点懒)(摊┑( ̄Д  ̄)┍

连起来大概是这么个玩意。

然后,这鬼东西还有两种不同的模型。

层次模型

层次模型是最早发展起来的数据库模型。它的基本结构是树形。这种结构方式在现实生活中非常普遍。自顶向下,层次分明。既然基本结构是树,那么树的一些性质它也是满足的。

性质1 每棵树有且仅有一个无双亲结点,称之为根。

性质2 树中除根节点外所有一个节点有且只有一个父节点。

由性质2,这种模型是受到一定限制的。在对这种模型进行插入或者删除操作时,一定要注意满足约束条件。层次模型的结构简单,操作简单,层次模型的性能是比较高的。但是由于它受文件系统影响大,模型限制较多,在实际使用上效果并不是很理想。它并不适合表示非层次关系。

大概长这个样:(图片来自网络)

·网状模型

网状模型的出现略晚于层次模型。如果从图论的角度去理解网状模型,它就是一张无向图。网状模型在结构上要稍微好一点,它的要求没有层次模型那么严格。

在实现中,网状模型将通用的网络拓扑结构分成一些基本结构。一般采用的分解方法是将一个网络分成若干个二级树,也就是只有两个层次的树。为了实现的方便,一般规定根节点与任一叶节点间的联系都是一对多的(有时候也是一堆一)。

在网状模型的标准中,基本结构简单二级树叫系,系的基本数据单位是记录,它相当于E-R模型中的实体集。记录又可以由若干数据项组成,它相当于E-R模型中的属性。系有一个首记录,它相当于简单二级树的根,若干个成员记录相当于叶。

(图片来自刚才的图,博主懒)(摊┑( ̄Д  ̄)┍

关系模型

1.关系的数据结构

关系模型用表格来表示。这个表格我们一般称二维表。二维表由框架以及元组组成。

表框架由n和属性组成,n称作属性元数。每个属性有一个取值范围,称为值域。

在表框架中按行可以存放数据,每一行的数据称为元组。实际上,一个元组是由n个元组分量构成的。一个表框架可以放m个元组,m称为基数。

这种二维表的元组个数是有限的,各个元组互不相同,元组次序可任意交换,元组的分量是不可以再分割的基本数据项,属性名各不相同,属性与次序无关,属性的分量具有与该属性相同的值域。

如果一个二维表能够满足上面的性质,那么它被称为关系。以这种二维表为基本结构建立的模型就是关系模型。

关系模型中的一个重要概念是键。键具有标识元组、建立元组间联系等重要作用。在二维表中凡能唯一标识元组的最小属性集称为该表的键。

二维表可能有很多的键,它们称为该表的候选键。

从二维表的所有候选键中选一个作为用户的键,称为主键。表A中的某个属性集是某表B的键,则称该属性集为A的外键。

在关系元组的分量中允许出现空值,表示信息空缺。空值表示未知或者不可能的值,一般表示为NULL。

2.关系操纵

关系模型的数据操纵即是建立在关系上的数据操纵。一般有查询、增加、删除和修改这四种操作。

用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系之间的查询。

这四种操作可以分解成六种基本操作:关系的属性指定;关系的元组选择;两个关系的合并;一个或多个关系的查询;关系中元组的插入;关系中元组的删除。

3.关系中的数据约束

关系模型中存在一些约束。

首先是实体完整性约束,它要求主键不能为NULL。这是数据库完整性的最基本的要求,因为主键是唯一决定元组的,如果为空值那么就不符合定义了。

然后是参照完整性约束。它不允许关系引用不存在的元组,即在关系中的外键要么是所关联关系中所实际存在的元组,要么为空。

最后是用户自定义的一些完整性约束。这个是针对具体情况由用户进行编写的。

实体完整性约束和参照完整性约束是关系数据库必须遵守的规则,在任何一个关系数据库管理系统中均由系统自动支持。

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2018-2020 Shawn Zhou
  • Powered by Hexo Theme Ayer
  • PV: UV:

感谢打赏~

支付宝
微信