数据的四种常用的数据模型以及三实体之间的联系
三个世界
现实世界
现实世界,客观存在的世界。
信息世界
- 概念:信息世界是现实在人们头脑中的反映,经过人脑的分析、归纳和抽象,形成信息,人们把这些信息进行记录、整理、归类和格式化后,就构成了信息世界。
- 实体:客观存在并且可以互相区别的“食物”称为实体。实体可以是具体的人、事和物,如:一个学生、一本书、一辆汽车、一种物资,也可以是抽象的事件,一堂课、一次比赛。
- 属性:实体所具有的某一特性称为属性,例如:学生的属性有姓名、年龄、学号之类的
- 实体型:具有相同属性的实体必然具有共同的特征。所以用实体名及其属性集合来描述同类对象,如学生(姓名、学号、年龄…)
- 实体集:同型实体的集合称为实体集。如所有学生和所有课程
- 码:能唯一标识一个实体属性或属性集称为实体的码,比如学号不会重复,就可以成为候选码
- 域:属性的取值范围该属性的域,比如学号成11位
- 联系:单个实体型内部的联系通常是指组成实体的各属性之间的联系
两个实体型间的联系
- 一对一联系(1:1):
实体集A中的一个实体至多和实体集B中一个实体相对应,反之,实体集B中的一个实体至多和实体集A中一个实体相对应,则称实体集A与实体集B位一对一联系,记作1:1例如班级与班长
-一对多联系(1:n)
实体集A中的一个实体至多和实体集B中多个实体相联系,反之实体集B中的一个实体至多和实体集A中一个实体相联系,记作1:n - 多对多联系(m:n)
实体集A中的一个实体至多和实体集B中n个实体相对应,反之实体集B中的一个实体至多和实体集A中m个实体相联系记作m:n
一对一是一对多联系的特例,而一对多联系有事多对多联系的特例
这个关系还涉及概念模型的E-R表示方法
数据模型
数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存储路径,它是数据库系统的核心和基础。
数据模型是一种模型,用来描述数据、组织数据对数据进行操作。
常用数据模型有三种层次模型、网状模型、关系模型
层次模型
层次模型是数据库系统中最早出现的数据模型
- 1.层次模型的数据结构
层次模型用树形数据结构来表示实体间的联系,例如:家族关系、行政机构。
每个结点表示一个记录型,每个记录型可包含若干个字段,记录型描述的是实体,字段描述实体的属性,各个记录型及其字段都必须命名。结点带箭头的连线表示记录间的联系。
层次模型有如下几个特点:
(1)每颗层次模型构成的有向树示意图,仅有一个结点没有双亲,该结点就是根结点。
(2)根结点以外的其他结点有且仅有一个双亲结点
(3)父子结点之间的联系是一对多(1:n)的联系。父结点中的一个记录值可能对应n个子结点,而子结点中的一个记录值只能对应父结点中的一个记录值。==因此,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义。 - 2.层次模型的数据操纵与数据完整性的约束
层次模型的数据操纵主要是查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件:
(1)进行插入操作时,如果没有相应的双亲结点值就不能能插入子女结点值。
(2)进行删除操作时,如果删除双亲结点,则子女的值也会被一同删除
(3)修改操作时,应修改所有相应的记录,以保证数据的一致性 - 3.层次模型的优缺点
层次模型的主要优点如下
(1)层次模型结构比较简单,层次分明,以便在计算机内实现
(2)结点间联系简单,从根结点到树中任一结点均存在一条唯一的层次路径,当要存取某个结点的记录值时,沿着这条路径很快就能找到该记录值,因此,以该种模型建立的数据库系统查询效率很高
(3)提供了良好的数据完整性支持
层次模型的缺点如下:
(1)不能直接表示两个以上的实体型间的复杂联系呵实体间多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。
(2)对数据的插入和删除的操作
(3)查询子女结点必须通过双亲结点
网状模型
- 1.现实世界种事务之间的联系更多是非层次关系,用层次模型表示这种关系很不直观,网状模型克服了这一个弊病:
在层次模型中,只能有一个根结点,并且根结点以外的其他结点只能有一个双亲结点,允许多个结点没有双亲结点,允许结点可以有多个双亲结点。因此网状模型是采用有向图结构表示记录型与记录型之间联系的数据模型,它可以更直接地描述现实世界,层次模型实际上是网状模型地一个特例 - 2.网状模型有如下特点:
(1)有一个以上地结点没有双亲结点
(2)允许结点有多个双亲结点
(3)允许两个结点之间有多种联系(复合联系)
-3. 网络模型的数据操纵与数据完整性的约束:
网状模型地数据操纵主要包括查询、插入、删除和修改数据。进行插入、删除、修改操纵时要满足网状模型地完整性约束条件
(1)插入数据时,允许插入尚未确定双亲结点值得子女结点值。
(2)删除数据时,允许只删除双亲结点值
(3)修改数据时,可直接表示非树形结构,而无需像层次模型那样增加冗余结点 - 网状模型得优缺点
网状模型的优点主要有两点:
(1)能更为直接地描述客观世界,可表示实体间地多种复杂联系
(2)具有良好地性能和存储效率
网状模型地缺点主要有以下几点:
(1)数据结构复杂,随着应用环境地扩大,数据库地结构越来越复杂,不便于终端用户掌握
(2)其数据定义语言(DLL)和数据操纵语言(DML)语言及其复杂,不易于用户掌握
(3)由于记录间地联系本质上是通过存储路径实现的,应用程序在访问数据库时要指定存取路径,即用户需要了解系统结构地细节,加重了编写应用程序地负担
关系模型
- 1.关系模型地数据结构是一张规范化地二维表,它由表名、表头和表体三部分构成。表名即二维表地名称,表头决定二维表的结构,每个二维表又可称为关系。
这种模型就是现在我们使用的SQL基本表 - 2.有以下几个概念需要知道:
(1)关系:与关系实例,一个关系实例对应由行和列组成的一张二维表,关系相当于实例,例如学生表,就是一个关系
(2)元组:元组是二维表格中的一列,给学生表中一个学生记录即为一个元组
(3)属性:二维表格中的一列,给每一个属性起一个名称即属性名,如学生表中有几个属性:如学号、姓名、性别之类的
(4)域:属性的取值范围,如年龄的域是(15到24),性别的域是(男、女)
(5)分量:每一个元组对应的列的属性值,即元组中的一个属性值
(6)候选键:如果一个属性或若干属性的组合中不包含多余的属性,能够唯一标识一个关系的元组,则称该属性或属性的组合为候选键。一个关系可有多个候选键。如学生表中学号就可以标识一个学生
(7)主键:当一个关系中有多个候选键时,可以从中选择一个作为主键。一个关系只能有一个主键
(8)主属性和非主属性:包含在任意一个候选键中的属性称为主属性,不包含在任意一个
(9)关系模式。关系模式是对关系的描述一般表示为:关系名(属性1、属性2…,属性n),关系模式时关系模式的“型”,是关系的框架结构。如学生关系的关系模式可以表示为:学生(学号、姓名、性别、年龄、系别)
在关系模式中,实体是用关系来表示的,如
学生(学号、姓名、性别、年龄、系别)
选课(课程号,课程名,学分)
(10)关系实例。关系实例是关系模式的“值”,是关系的数据,相当于二维表中的数据 - 3.关系模式的优缺点
关系模式的优点有以下三点:
(1)关系模式与非关系模式不同,它有严格的数学理论根据
(2)数据结构简单、清晰、用户易懂、易用,不仅用关系描述实体,而且用关系描述实体间的联系
(3)关系的模型的存储路径对用户透明,从而具有更高的数据独立性、更好的安全保密性
关系模式的缺点
缺点是查询效率不如非关系模型。
面相对象的模型
类似于JAVA中的面向对象,分为对象、类,有继承
面向对象模型能完整地描述现实世界地数据结构,具有丰富地表达能力,但模型相对比较复杂、涉及的知识比较多,因此,面向数据库尚未达到关系数据库地普及程度。