1.2 数据模型

数据模型是对现实世界数据特征的抽象。
通俗地讲数据模型就是现实世界的模拟。
数据模型应满足三方面要求:
  • 能比较真实地模拟现实世界;
  • 容易为人所理解;
  • 便于在计算机上实现;
数据模型是数据库系统的核心和基础。

一、两类数据模型

数据模型分为两类(两个不同的层次)
  • 概念模型,也称信息模型
    它是按用户的观点来对数据和信息建模,用于数据库设计。
  • 逻辑模型和物理模型
    逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系模型、半结构化数据模型等。
计算机系统的观点对数据建模,用于DBMS实现。
  • 物理模型是对数据最底层的抽象
    描述数据在系统内(磁盘上)的表示方式和存取方式。

图片1

二、概念模型

图片2

1、信息世界中的基本概念

图片3

图片4

实体-联系方法

图片5

三、数据模型的组成要素

  • 数据模型是严格定义的一组概念的集合
  • 精确地描述了系统的静态特性、动态特性和完整性约束条件
数据模型由三部分组成
  • 1、数据结构—描述系统的静态特性
  • 2、数据操作—描述熟悉同的动态特性
  • 3、完整性约束

1、数据结构

图片6

2、数据操作

图片7

3、数据的完整性约束条件

图片8

四、常用的数据类型

图片9

五、层次模型

层次模型是用树结构来表示各类实体以及实体之间的联系
表示方法:
  • 实体型:
    用记录描述,每个结点表示一个记录类型(实体)
  • 属性:
    用字段描述,每个记录类型可以包含若干个字段
  • 联系:
    用结点之间的连线表示记录类型(实体)之间的一对多的父子联系
层次模型的定义
满足下面两个条件的基本层次联系的集合为层次模型
  • 1、有且只有一个结点没有双亲结点,这个结点称为根结点
  • 2、根以外的其他结点有且只有一个双亲结点

1、层次模型的数据结构

图片10

图片11

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

层次模型的数据操纵
  • 查询
  • 插入
  • 删除
  • 更新
层次模型的完整性约束条件
  • 无相应的双亲结点就不能插入子女结点值
  • 如果删除双亲结点值,则相应的子女结点值也被同时删除
  • 更新操作时,应更新所有相应记录,以保证数据的一致性

3、层次模型的优缺点

优点:
  • 层次模型的数据结构比较简单清晰
  • 查询效率高,性能优于关系模型,不低于网状模型
  • 层次模型数据结构提供了良好的完整性支持
缺点:
  • 结点之间的多对多联系表示不自然
  • 对插入和删除操作的限制多,应用程序的编写比较复杂
  • 查询子女结点必须通过双亲结点
  • 层次数据库的命令(语言)趋于程序化

六、网状模型

网状数据库系统采用网状结构来表示各类实体以及实体间的联系
表示方法(与层次数据模型相同)
  • 实体型:
    用记录描述,每个结点表示一个记录类型(实体)
  • 属性:
    用字段描述,每个记录类型可以包含若干个字段
  • 联系:
    用结点之间的连线表示记录类型(实体)之间的一对多的父子联系
网状模型的定义
满足下面两个条件的基本层次联系的集合
  • 1、允许一个以上的结点无双亲
  • 2、一个结点可以有多于一个的双亲

1、网状模型的数据结构

图片12

图片13

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

  • 导航式的查询语言和增删改操作语言
  • 完整性约束条件不严格
  • 允许插入尚未确定双亲结点值的子女结点值
  • 允许只删除双亲结点值

图片14

3、网状模型的优缺点

优点
  • 能够更为直接地描述现实世界,如一个节点可以有多个双亲;
  • 具有良好的性能,存取效率较高
缺点
  • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利用最终用户掌握
  • DDL,DML语言复杂,用户不容易使用;
  • 记录之间联系是通过存取路径实现的,应用程序必须选择存取路径,加重了程序员的负担。

七、关系模型

  • 关系数据库系统采用关系模型作为数据的组织方式
  • 1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
  • 数据库厂商推出的数据库管理系统几乎都支持关系模型

1、关系模型的数据结构

图片15

图片16

图片17

图片18

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

图片19

3、关系模型的优缺点

优点:
  • 建立在严格的数学概念的基础上
  • 概念单一
  • 实体和各类联系都用关系来表示
  • 对数据的检索结果也是关系
  • 关系模型的存取路径对用户透明
  • 具有更高的数据独立性,更好的安全保密性
  • 简化了程序员的工作和数据库开发建立的工作
缺点:
  • 存取路径必须对用户透明,查询效率往往不如格式化数据模型
  • 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐