DataBaseSystem:Logic Data Model

时间:2021-08-23 03:04:35

本篇内容来自《数据库系统概论(第五版)》(王珊 萨师煊),主要是整理数据库的基本概念,供自己复习查阅。

数据库常用逻辑数据模型

常用模型有:网状模型关系模型面向对象数据模型对象关系数据模型半结构化数据模型。其中,层次模型和网状模型又统称为格式化模型,最重要的是关系模型

层次模型(hierarchical model)

层次模型是典型的树结构模型。模型中每个节点表示一个记录类型,类型的联系用有向边表示。因为是基于树结构的模型,所以只能表示一对多的实体联系。层次模型的用语和数据结构的基本相同。

层次结构的完整性约束(特点):任何给定的记录值只能按其层次路径查看,子女(child)记录值无法脱离双亲(parent)记录值独立存在。层次模型的主要操作无非是增删改查,但同时会有树结构特有的约束条件,即:无双亲则无法插入子节点,删除双亲连带删除子节点。

由于基于树结构,层次模型的优缺点也比较容易总结得到:

  • 数据结构简单清晰。
  • 查询效率高。
  • 完整性支持良好。
  • 无法处理多对多的实体联系。
  • 查询子女节点必须通过双亲节点。
  • 结构过于死板。

网状模型(network model)

现实中很多事物的联系往往不是层次关系的,这时就需要网状模型。网状模型的典型是DBTG系统(又称CODASYL系统)。网状模型也很好理解,概念性的描述即:允许一个以上的节点无双亲,一个节点也可以有多个双亲节点。这是一个典型的图结构

联系图结构的特点,也容易得出网状模型的优缺点:

  • 更为直观,应用更广泛。
  • 性能良好,存取效率高。
  • 结构复杂,且复杂度上升快。
  • 模型的DDL(Data Definition Language,数据定义语言)和DML(Data Manipulation Language,数据操纵语言)复杂,不便于用户使用。
  • 网络拓扑复杂,存取路径的选择比较困难,要求用户了解系统细节。

关系模型(relational model)

关系模型是建立在严格的数学概念上的(不像前两者建立在简单的数据结构上)。在关系模型中,我们通常把一种关系映射到一张规范化的二维表上。

关系模型的基本概念

  • 表的行为一个元组,简单理解即一个实体对象;表的列为一个属性,每个属性对应一个不重复的属性名,属性记录实体的信息。
  • 码(key):如果表中的某一个属性组(若干属性的集合)可以区分所有的元组(类似每个学生的学号都可以确定一个学生,这时的学号就是一个属性组,只不过这个属性组只有一个属性),那这个属性组就称为该关系的码。
  • 域(domain):域是一组具有相同数据类型的值的集合。如:性别域为{男,女}。
  • 分量:元组中的一个属性值。
  • 分量必须是不可分割的,即不允许嵌套表。
  • 关系模式:通常采用如下方式描述一个关系:关系名(属性名[,属性名])。
  • 关系模型的数据操作主要也是增删改查,并且都是集合操作,即操作对象和操作结果都是关系。

关系模型的优缺点

  • 非格式化模型,建立在数学概念上。
  • 概念单一,无论是实体还是实体间的联系统一用关系表示,对数据的操作对象和操作结果都是关系,数据结构简单、清晰,对用户友好。
  • 存取路径对用户透明,所以数据独立性更高、安全保密性更好,开发工作量较少。
  • 查询效率不如格式化模型,需要开发者做额外优化。