层次、网格和关系模型都是逻辑的,它们都以一定的方式存储在数据库系统中。 这是数据库管理系统的一种功能,是数据库系统中的物理存储模型。
模型层次模型和网格模型统称为格式模型。 格式化模型数据结构的基本单元是基本级联系,基本级联系是指两条记录之间的一对多(包括一对一)联系。 这是一张唱片的操作方法。
格式模型中的图元由记录表示,图元属性对应于记录中的数据项(或字段),并且图元之间的联系被转换为格式模型中记录之间的两个联系。
一方面层次模型层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。 它采用了表示各种实体和实体之间联系的树结构。
1、层次模型的数据结构是满足以下两个条件的基本层次关系集合为层次模型
1、有,但只有一个节点没有父母。 将该节点称为根节点;
2、有根以外的其他节点,只有一个父母。
层次数据库系统只能处理一对多实体联系的原因:在层次模型中,每个节点表示一个记录类型,记录类型之间的联系用节点之间的联系(有向边)表示,这种联系是父子之间的一对多联系
以下是一个倒立的类似树的分层模型示例,节点的父母是唯一的。 将同一个父母的子节点称为兄弟节点,没有子节点的节点称为叶节点。
层次模型的特征:任何给定的记录值只能在层次路径上看到,没有一个孩子的记录值可以独立存在于父母的记录值之外。
2、层次模型的数据操作和完整性约束层次模型的数据操作主要有查询、插入、删除和更新,插入、删除、更新操作时应满足其完整性约束条件。
插入:如果没有对应的父节点值,则无法插入其子节点值。
删除:删除父节点的值时,也会删除相应子节点的值。
3、层次模型的优缺点1 )优点:数据结构比较简单清晰,数据库查询效率高,提供了良好的完整性支持。
2 )缺点:现实世界中许多联系是非层次的,不适用节点间多对多联系。由于查询儿童节点必须经过父母节点的结构严密,层次指令趋于程序化。
二.网格模型网格数据模型的典型代表是dbtg(codasyl )系统。
1 .网格模型的数据结构满足以下两个条件的基本层次联系的集合是网格模型
1、允许一个或多个节点没有父母;
2、一个节点可以有多个父母。
注:分层模型实际上是网格模型的特殊情况。
以下是网格模型的例子,在网格模型中孩子节点和父母节点的联系可以不是唯一的。
2、网格模型的数据操作和完整性约束DBTG用终末期的数据定义语言给出了DBTG数据库完整性的一些概念和句子,主要是:
1 )支持记录代码的概念。 唯一标识记录的数据项的集合称为代码。 例如,学生的学校号码不能有相同的两个学校号码。
2 )在一个联系中保证父母记录与子女记录之间是一对多的联系。
3 )可以支持父母记录和孩子记录之间的某些约束。
3、网格模型的优缺点1 )优点:能更直接地描述现实世界。 例如,一个节点可以有多个父母,如果节点直接有多个联系,则具有出色的性能和访问效率。
2 )缺点:结构复杂,随着APP环境的扩大,数据库结构越来越复杂,不利于最终用户理解的网格模型的DDL、DML复杂,嵌入某些高级语言(c、COBOL ),用户由于记录之间的联系是通过访问路径实现的,因此APP应用程序在访问数据时必须选择适当的访问路径。 因此,用户需要了解系统结构的详细信息,这给创建APP应用程序带来了负担。
三、关系模型关系模型是最重要的数据模型。
1、关系模型数据结构关系模型中的一些术语:
1 )关系)一个关系对应于通常所说的表
2 )元组)表中一行为元组;
3 )属性)表中的列是属性,给各属性赋予作为名称的属性名称;
4 )代码)也称为代码密钥,可以在表中的属性组中唯一指定元组;
5 )域)具有相同数据类型的值的集合。 属性的值范围来自域。
6 )分量)元组中的一个属性值。
7 )关系模型)关系的记述在搬家后,被表示为关系名(属性1,属性2,属性n )
关系模式需要规范关系,关系必须满足一定的规范条件。 这些规范条件中最基本的一个,必须是关系各成分不可分割的数据项。 也就是说,不允许表中有表。
2、关系模型的数据操作和完整性约束关系模型的数据操作主要包括查询、插入、删除和更新数据,其数据操作为集合操作,操作对象与操作结果相关。
这些操作必须满足关系完整性约束,如图元完整性、参照完整性和用户定义的完整性。
3、关系模型的优缺点1 )优点:基于严格数学概念的概念单一,实体与实体之间的联系用关系表示。 它还涉及搜索和更新数据的机制(即,这是一个常见的表)。 其访问路径对用户透明、独立、安全敏感,简化了程序员工作的数据库开发建设。
2 )缺点:由于访问路径的隐藏,查询的效率不及格式数据模型。