数据库模型
A层次模型的数据结构
满足以下两个条件的基本层次联系的集合为层次模型
1、有且只有一个结点没有双亲结点,这个结点称为根节点;
2、根以外的其他结点有且只有一个双亲结点。
层次数据库系统只能处理一对多的实体联系的原因:在层次模型中,每个结点表示一个记录类
型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的
联系。
以下是一个层次模型的示例,它像一棵倒立的树,结点的双亲是唯一的。同一双亲的子
女结点称为兄弟结点,没有子女结点的结点称为叶结点。
层次模型的特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱
离双亲记录值而独立存在。
2、层次模型的数据操纵与完整性约束
层次模型的数据操纵主要有
查询、插入、删除和更新,进行插入、删除、更新操作时要满足其完整性约束条件。
插入:如
果没有相应的双亲结点值不能插入它的子女结点值。
删除:如果删除双亲结点值,则相应的子
女结点值也将同时被删除。
3、层次模型的优缺点
1)优点:数据结构比较简单清晰,数据库的
查询效率高,提供了良好的完整性支持。
2)缺点:现实世界中很多联系是非层次性的,它不
适用于结点之间具有多对多联系;查询子女结点必须通过双亲结点;由于结构严密,层次命令
趋于程序化。
B网状模型的数据结构
满足一下两个条件的基本层次联系的集合为网状模型
1、允许一个以上的结点无双亲;
2、一个结点可以有多于一个的双亲。
备注:层次模型实际上是网状模型的一个特例。
网状模型的数据操纵与完整性约束
DBTG在末世数据定义语言中提供了DBTG数据库完整性的若干
概念和语句,主要有:
1)支持记录码的概念。唯一标识记录的数据项的集合称为码,例如学
生的学号,不允许有两个相同的学号。
2)保证一个联系中双亲记录和子女记录之间是一对多
的联系。
3)可以支持双亲记录和子女记录之间的某些约束条件。
3、网状模型的优缺点
1)优
点:能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点直接可以有多种联系;
具有良好的性能,存取效率较高。
2)缺点:结构比较复杂,随应用环境的扩大,数据库的结
构就变得越来越复杂,不利于最终用户掌握;网状模型的DDL、DML复杂,并且要嵌入某一种高
级语言(C、COBOL)中,用户不容易掌握和使用;由于记录之间的联系是通过存取路径实现的
,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重
了编写应用程序的负担。
C关系模型
关系模型是最重要的一种数据模型。
1、关系模型的数据结构
关系模型中的一些术语
:
1)关系:一个关系对应通常说的一张表;
2)元组:表中的一行即为一个元组;
3)属性:
表中的一列即为一个属性,给每一个属性起一个名称即属性名;
4)码:也称为码键,表中的
某个属性组,它可以唯一确定一个元组;
5)域:一组具有相同数据类型的值的集合。属性的
取值范围来自某个域;
6)分量:元组中的一个属性值。
7)关系模式:对关系的描述,一搬表
示为:关系名(属性1,属性2,…,属性n)
关系模型要求关系必须规范化的,关系必须满足
一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的
数据项,也就是说,不允许表中还有表。
2、关系模型的数据操纵与完整性约束
关系模型的数
据操纵主要包括查询、插入、删除和更新数据,它的数据操纵是集合操作,操作对象和操作结
果都是关系。
这些操作必须满足关系的完整性约束条件:实体完整性、参照完整性和用户定义
的完整性。
3、关系模型的优缺点
1)优点:建立在严格的数学概念的基础上;概念单一,无论
实体还是实体之间的联系都是用关系来表示。对数据的检索和更新结构也是关系(也就是我们
常说的表);它的存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,简化了
程序员的工作个数据库开发建立的工作。
2)缺点:存取路径的隐蔽导致查询效率不如格式化
数据模型。