层次模型
定义:
- 有且只有一个节点没有双亲结点;
- 除根节点以外的其他节点有且只有一个双亲结点。
特点:任何一个给定的记录值只能按其层次路径查看,没有任何子女节点可以脱离双亲结点单独存在。
数据操纵:插入、查询、更新和删除。
完整性约束:当没有相应的双亲结点值时无法插入;删除双亲结点时,相应的子女结点一并被删除。
优点:
- 数据结构比较清晰。
- 查询效率高。
- 提供了两道的完整性支持
缺点:
- 现实中有很多联系无法使用层次模型进行描述(如多对多联系)。
- 由于一个结点只能有一个双亲结点,用来描述有多个双亲结点的情况时会导致冗余(容易产生数据不一致问题)
- 查询子女结点必须通过双亲结点。
- 由于结构严密,层次命令趋于程序化。
网状模型
定义:
- 允许一个以上的结点无双亲结点。
- 结点可以有多于一个的双亲结点。
数据操纵:增加、查询、更新、删除。
完整性约束:网状模型完整性约束较弱,一般采用:唯一标识码、双亲结点和子女结点之间是一对多联系等。
优点:
- 网状模型可以更直的描述现实世界。
- 存取效率更高。
缺点:
- 结构较为复杂。
- 网状模型的数据操纵语言(DML)复杂。嵌入高级程序语言时可读性较低。
- 记录之间的联系通过存取路径实现,用户操作时必须了解系统结构细节,加重了编写应用程序的负担。
关系模型
定义:每个关系使用一张规范化的二维表描述。
基础概念:
- 关系:一个关系通常对应一张表
- 元组:表中的一行,通常对应一个实体。
- 属性:表中的一列即为一个属性,标识实体的某个特征。
- 码(key):可以唯一确定一个元组。
- 域:一组具有特定数据值的集合。
- 分量:元组中的一个属性。
- 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2…)。
数据操纵:增加、查询、更新、删除。
完整性约束:
- 实体完整性
- 参照完整性
- 用户定义完整性
优点:
- 关系模型有严格的数学概念支撑。
- 关系模型概念单一,信息清晰明了。
- 关系模型的存取路径对用户透明,具有更高的数据独立性。
缺点:关系模型查询效率较低,需要数据库管理系统对用户请求进行优化,加大了数据库管理系统的开发难度。
数据库系统的三级模式结构
外模式:
- 定义:数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。
- 外模式通常是模式的子集,与具体的应用程序对接。一个数据库可以有多尔外模式。
- 外模式是保证数据库安全的一个重要措施,每个用户只能访问对应的外模式中的数据,数据库中的其余数据不可见。
模式:
- 定义:是数据库中全体数据的逻辑结构和特征描述,是所有用户的公共数据视图。
- 模式是数据库数据在逻辑层级上的视图,与具体的应用程序无关(外模式负责),也不涉及数据的物理存储(内模式负责),是数据库系统模式结构的中间层。
内模式:
- 定义:是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。一个数据库只能有一个内模式。