层次、网状、关系模型

来源:互联网 发布:开票软件下载步骤 编辑:程序博客网 时间:2024/05/17 02:23

层次、网状、关系模型都是逻辑上的,它们都是以一定的方式存储在数据库系统中,这是数据库管理系统的功能,是数据库管系统中的物理存储模型。

格式化模型

层次模型和网状模型统称为格式化模型。格式化模型中数据结构的基本单位是基本层次联系,基本层次联系指的是两个记录以及他们之间的一对多(包括一对一)的联系。它是单记录的操作方式。
格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段),实体之间的联系在格式化模型中转成记录之间的两两联系。

一、层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。它采用树形结构来表示各类实体以及实体间的联系。

1、层次模型的数据结构

满足一下两个条件的基本层次联系的集合为层次模型
1、有且只有一个结点没有双亲结点,这个结点称为根节点;
2、根以外的其他结点有且只有一个双亲结点。

层次数据库系统只能处理一对多的实体联系的原因:在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。
以下是一个层次模型的示例,它像一棵倒立的树,结点的双亲是唯一的。同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。
层次模型
层次模型的特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

2、层次模型的数据操纵与完整性约束

层次模型的数据操纵主要有查询、插入、删除和更新,进行插入、删除、更新操作时要满足其完整性约束条件。
插入:如果没有相应的双亲结点值不能插入它的子女结点值。
删除:如果删除双亲结点值,则相应的子女结点值也将同时被删除。

3、层次模型的优缺点

1)优点:数据结构比较简单清晰,数据库的查询效率高,提供了良好的完整性支持。
2)缺点:现实世界中很多联系是非层次性的,它不适用于结点之间具有多对多联系;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。

二、网状模型

网状数据模型的典型代表是DBTG(CODASYL)系统。

1、网状模型的数据结构

满足一下两个条件的基本层次联系的集合为网状模型
1、允许一个以上的结点无双亲;
2、一个结点可以有多于一个的双亲。
备注:层次模型实际上是网状模型的一个特例。

以下是网状模型的例子,网状模型中子女结点与双亲结点的联系可以不唯一。
网状模型的例子

2、网状模型的数据操纵与完整性约束

DBTG在末世数据定义语言中提供了DBTG数据库完整性的若干概念和语句,主要有:
1)支持记录码的概念。唯一标识记录的数据项的集合称为码,例如学生的学号,不允许有两个相同的学号。
2)保证一个联系中双亲记录和子女记录之间是一对多的联系。
3)可以支持双亲记录和子女记录之间的某些约束条件。

3、网状模型的优缺点

1)优点:能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点直接可以有多种联系;具有良好的性能,存取效率较高。
2)缺点:结构比较复杂,随应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(C、COBOL)中,用户不容易掌握和使用;由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

三、关系模型

关系模型是最重要的一种数据模型。

1、关系模型的数据结构

关系模型中的一些术语:

1)关系:一个关系对应通常说的一张表;
2)元组:表中的一行即为一个元组;
3)属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名;
4)码:也称为码键,表中的某个属性组,它可以唯一确定一个元组;
5)域:一组具有相同数据类型的值的集合。属性的取值范围来自某个域;
6)分量:元组中的一个属性值。
7)关系模式:对关系的描述,一搬表示为:关系名(属性1,属性2,…,属性n)

关系模型要求关系必须规范化的,关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。

2、关系模型的数据操纵与完整性约束

关系模型的数据操纵主要包括查询、插入、删除和更新数据,它的数据操纵是集合操作,操作对象和操作结果都是关系。
这些操作必须满足关系的完整性约束条件:实体完整性、参照完整性和用户定义的完整性。

3、关系模型的优缺点

1)优点:建立在严格的数学概念的基础上;概念单一,无论实体还是实体之间的联系都是用关系来表示。对数据的检索和更新结构也是关系(也就是我们常说的表);它的存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,简化了程序员的工作个数据库开发建立的工作。
2)缺点:存取路径的隐蔽导致查询效率不如格式化数据模型。