02_数据库系统数据模型&数据库系统结构

数据模型

数据模型也是一种模型,是对现实世界数据特征的抽象, 也就是说数据模型是用来描述数据,组织数据以及操作数据的.通俗的讲, 数据模型就是对现实世界的模拟. 数据模型是数据库系统的核心和基础.

数据模型的组成要素

数据模型通常由数据结构,数据操作和完整性约束条件三部分组成.

数据结构

数据结构描述数据库的组成对象以及数据对象之间的关系.

数据操作

数据操作是指对数据库中的对象或者数据的允许的操作的集合, 包括操作以及有关操作的规则.

完整性约束条件

数据的完整性约束条件是一组完整的规则. 比如字段的类型及长度等.

两类数据模型

数据模型应当遵循三方面要求, 一是能真实的模拟世界, 二是容易被人理解, 三是便于在计算机中进行实现.

根据应用的不同目的, 可以将这些模型划分为两大类, 分别从属于两个不同的层次 :

  • 概念模型 : 也称为信息模型, 他是按照用户的观点对数据和信息建模, 主要用于数据库设计.
  • 逻辑模型和物理模型 :
    • 逻辑模型 : 按照计算机系统的观点对数据建模, 主要用于数据库管理系统的实现. 包括层次模型, 网状模型, 关系模型, 面向对象的数据模型, 对象关系数据模型, 半结构化数据模型 等.
    • 物理模型 : 描述数据在计算机系统内部的表示方式和存储方式, 或者在磁盘上的存取方式, 对数据最底层进行抽象.
概念模型

概念模型用于信息世界的建模, 是现实世界到机器世界的第一层抽象, 是数据库设计人员进行数据库设计的有力工具, 也是数据库设计人员和用户之间进行交流的语言.

信息世界的基本概念 :

  • 实体 :

    客观存在且可以相互区分的事物称为实体, 例如一个人, 一间教室, 一个部门, 一门课 等.

  • 属性

    实体具有的某一特性称为一个属性, 一个实体可以由多个属性来刻画, 例如学生可以由 学号, 姓名, 性别等属性组成.

  • 唯一标识实体的属性集称为码. 例如学号是学生实体的码.

  • 实体型

    具有相同属性的实体必然具有共同的特征和性质, 用实体名及其属性的集合来抽象和刻画同类实体, 称为实体型. 例如 学生(学号, 姓名, 性别…)

  • 实体集

    同一类型实体的集合称为实体集. 比如: 全体学生

  • 联系

    不同实体之间的联系. 有 一对一 一对多 多对多 的联系.

逻辑模型
层次模型

描述 : 层次模型时数据库系统中最早出现的数据模型, 层次数据库系统采用层次模型作为数据的组织方式.

产品 : 典型的产品有 : IBM 的 IMS

数据结构 : 要满足两个条件

​ 1) 有且只有一个节点, 没有双亲节点, 这个节点称为根节点 .

​ 2) 根节点以外其他节点有且只有一个双亲节点.

在这里插入图片描述

数据操纵和完整性约束 :

​ 数据操作 : 增删改查

​ 约束 : 进行增删改时要满足完整性约束, 插入时如果没有双亲节点则不能插入, 再删除时要删除双亲节点则其子 节点也需要删除.

优缺点 :

​ 优点 : ① 结构简单清晰 ② 查询效率高 ③ 层次数据模型提供了良好的完整性支持.

​ 缺点 : ① 现实世界很多不是层次关系, 例如多对多关系不能表示 ② 如果一个节点有多个双亲节点, 只能通过冗余数据的方式或创建非自然的数据结构来进行表示. ③ 查询字节点必须通过双亲节点 ④ 结构严密, 层次命令区域程序化.

层次模型的物理存储 :

​ 层次模型的物理存储有两种实现方法:

  • 顺序法:按照层次顺序把所有的记录邻接存放,即通过物理空间的位置相邻来实现层次顺序。
  • 指针法:各个记录存放时不是按层次顺序,而是用指针按层次顺序把它们链接起来。
网状模型

描述 : 现实世界中多数的数据是非层次结构的, 因此网状模型可以消除这一弊病.

产品 : 典型的数据库是 OBTG 系统 亦称为 CODASYL 系统.

数据结构 : 满足下列两个条件

  1. 允许一个以上节点无双亲
  2. 一个节点可以由多个双亲

每一个节点代表一个实体, 每个实体包含若干个字段, 节点间的连线表示一对多的父子关系.

在这里插入图片描述

由于子节点与双亲节点之间的联系不是唯一的, 因此每个关系都需要进行记录.

数据操作以及约束 :

​ 操作 : 增删改查

​ 约束 :

优缺点 :

​ 优点 : ① 能够直接描述现实世界, 例如一个节点可以有多个双亲, 节点之间可以有多种联系. ② 具有良好的性能, 存取效率高

​ 缺点 : ① 结构太复杂, 随着项目的扩大, 结构越来越复杂 ② 网状模型的 DDL DML 复杂, 并且要嵌入一种高级语言, 例如 C COBOL, 用户不容易掌握. ③ 记录之间联系通过存取路径实现, 因此访问数据时必须选择适当的存取路径,因此用户必须熟悉系统结构的细节, 加重了编写应用程序的负担.

关系模型

描述 : 关系模型是最重要的一种数据模型, 关系数据库系统采用关系模式作为数据的组织方式.

产品 : MSYQL ORACLE SQLSERVER DB2…

数据结构 : 关系模式与以往的模式不相同, 他是建立在严格的数学概念上. 从用户的角度来看, 关系模式是由一组关系组成, 每个关系的数据结构时一张规范化的二维表. 例如 : 学生表

学号姓名性别
10001张三
10002李四
10003王五

关系模型中的术语 :

  • 关系 : 一个关系就对应一张表.
  • 元组 : 表中的一行就是一个元组.
  • 属性 : 表中的一列就是一个属性, 给每个属性起一个名字叫做属性名.
  • 码 : 表中的某个属性组, 可以唯一确定一个元组. 如学生表的学号.
  • 域 : 域是一组相同数据类型的值得集合, 属性的取值范围来自某个域. 比如大学生的年龄属性的域为 (15-45岁).
  • 分量 : 元组中的一个属性值.
  • 关系模式 : 对关系的描述, 一般表示为 : 学生(学号,姓名,年龄,性别)

关系模型要求关系必须是规范化的, 最基本的一条就是一个分量必须是一个不可分的数据项, 即不能表中有表.

数据操作与完整性约束 :

​ 数据操作 : 增删改查

​ 完整性约束 : 实体完整性 用户完整性 参照完整性

优缺点 :

​ 优点 :

​ 关系模型建立在严格的数学概念基础之上.

​ 关系模型的概念单一, 无论实体或者实体之间的关系都用关系表示.

​ 关系模型的存取路径对用户透明, 从而具有更高的数据独立性, 更好的安全保密性.

​ 缺点 :

​ 由于存储路径对用户透明, 查询效率不如格式化数据模型, 为了提高性能, 数据库管理系统必须对查询请求进行优化, 因此增加了数据库管理系统的难度, 不过用户不需要对系统内部进行优化.

数据库系统的结构

数据库系统结构可以有多种不同层次不同角度.

数据库开发人员角度 : 数据库系统有三级结构模式.

用户角度 : 单用户结构 主从式结构 分布式结构 等.

数据库系统的模式概念

在数据模型中有型和值得概念 :

​ 型 : 型是对一类数据的结构和属性的说明.

​ 值 : 值时型的一个具体赋值.

模式 :

​ 模式是数据库中全体数据的逻辑结构和特征的描述, 他只涉及型的描述, 不涉及具体的值.

实例 :

​ 模式的一个具体值称为实例, 同一个模式有很多实例.

例如 :

​ 模式 : 学生选课模式中包含学生记录, 课程记录, 学生选课记录

​ 实例1 : 2018 级所有学生的记录, 课程记录, 以及学生的选课记录 并且实例时不断变化的, 比如学生退学时学生记录也会改变…

​ 实例2 : 2019 级所有学生的记录, 课程记录以及学生的选课记录, 与实例 1 数据是不同的.

模式是相对稳定的, 实例是变动的, 因为数据库中的数据是不断变动的, 模式反映的是数据的结构及其联系, 而实例反映的是数据库某一个时刻的状态.

数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统是由外模式, 模式 和 内模式三级组成.

在这里插入图片描述

内模式 :

内模式也称为存储模式, 一个数据库只有一个内模式, 他是物理存储结构和存储方式的描述, 是数据在数据库内部的组织方式. 例如记录的存储方式是堆存储, 还是按照某个属性的升序存储.

模式 :

模式也称为逻辑模式, 是数据库全体数据的逻辑结构和特征的描述, 是所有用户公共数据视图. 是数据库模式的中间层, 既不涉及物理存储, 有不涉及应用程序, 一个数据库只有一个模式.

外模式 :

外模式也称为子模式或者用户模式, 是数据库用户(程序员或者最终用户)所能看见和使用的局部数据的逻辑结构和特征的描述, 与某一个应用有关的数据的逻辑表示.

一般因为权限的问题不同的用户看到的外模式有时候是不同的, 因此一个模式可以对应多个外模式.

数据库的二级影像功能和数据独立性

数据库系统的三级映像是对数据的三个抽象级别, 他把数据的具体组织留给数据库管理系统管理, 使用户能逻辑的, 抽象的使用数据, 而不必关系数据在计算机中的具体表示方法与存储方式, 为了能够在系统内部实现三个抽象层次的联系和转换, 数据库管理系统在这三级映像之间提供了两层映像: 外模式/模式映像 以及 模式/内模式映像. 从而保证了数据具有较高的逻辑独立性和物理独立性.

外模式/模式映像

模式描述的是数据的全局逻辑结构, 外模式描述的是局部的逻辑结构, 对于同一个模式可以有多个外模式, 对于每一个外模式, 数据库系统都有一个外模式/模式映像,他定义了外模式与模式之间的对应关系.

映象定义通常包含在各自外模式的描述中.

保证数据的逻辑独立性 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变.

应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性.

比如 : DBA 把 Student 表拆分成两个表 StudentX 和 StudentY, 因此以前应用程序如果查询 Student 表就会查询不到, 但是我们可以通过外模式/模式映像进行处理, 我们可以建立一个视图将 StudentX 和 StudentY 连接名为 Student, 这样应用程序就可以不用改动, 从而保证了逻辑独立性.

模式/内模式映像

当数据库的存储结构改变时(例如选用了另一种存储结构), 由数据库管理员对模式/内模式进行修改, 可以使模式保持不变, 从而应用程序也不会改变, 保证了程序和数据的物理独立性, 简称数据的物理独立性.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值