​ 数据库系统1——基本知识与关系模型。

​ 参考了中国人民大学的 Mooc 和战神的 Spoc 以及教材。

基础概念

一些名词:

  • 数据(Data):描述事物的符号记录。数据与其语义不可分。

  • 数据库 (DB):长期储存在计算机内的、有组织的、可共享的、相互关联的数据的集合。

  • 数据库管理系统 (DBMS):管理数据库的软件系统。

  • SQL(结构化查询语言):用于管理关系数据库管理系统,或在关系流数据管理系统(RDSMS)中进行流处理。

  • 数据库应用程序 (DBAP)

  • 数据库系统(DBS):指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

数据库管理技术发展过程

​ 三个阶段:人工管理阶段 $\rightarrow$ 文件系统阶段 $\rightarrow$ 数据库系统阶段

​ 阶段对比如下表(来自人大的Mooc)

image-20200304164606749

数据库管理系统功能

从用户角度考虑
  • 数据库定义:提供 数据定义语言(DDL) 以定义数据格式。
  • 数据库操纵:提供 数据操纵语言(DML)进行数据的增、删、改、(查) 操作。
  • 数据库控制:提供 数据控制语言(DCL) 让管理员对于数据的使用进行控制。
  • 数据库维护:转储、恢复、重组、性能检测、分析等。

DDL、DML、DCL 联合起来就是 SQL语言。(不过这句话我有点疑惑…)

从系统实现角度考虑
  • 语言编译器:将用数据库语言书写的内容翻译成DBMS的可执行命令。
  • 查询优化(执行引擎)与查询实现(基本命令的不同执行算法)
  • 数据存取索引:提供数据在磁盘、磁带等上的高效存取手段。
  • 通信控制:提供网络环境下的数据库操作与数据传输手段。
  • 事务管理:提供高可靠性并避免并发操作错误的手段。
  • 故障恢复:是数据库自动恢复到故障发生前的正常状态的手段。
  • 安全性控制:提供合法性检验,避免非授权用户非法访问的手段。
  • 完整性控制:提供数据集数据操作正确性检查的手段。
  • 应用程序接口(API):提供应用程序使用DBMS特定功能的手段。
  • 数据库数据装载、重组等实用程序
  • 数据库性能分析

数据库系统的结构

数据抽象

三层抽象:(不同的 Mooc 称呼不太一样233)

  • 视图层(外部层次)
  • 逻辑层(全局层次)
  • 物理层(内部层次)

模式与实例

​ 模式——对于数据可逻辑结构和特征的描述、不涉及具体的值且相对稳定。

​ 实例——模式的具体值,是数据库在将某一时刻的状态、随数据库的数据更新而改变。

数据独立性

  1. 逻辑独立性:用户应用程序与数据库的逻辑结构相互独立。
  2. 物理独立性:用户的应用程序与数据库中数据的的物理存储相互独立。

数据独立性是由DBMS的两层映像保证的。

三级模式与两层映像

三级模式

三级模式与之前的三层抽象相对应

  • 外模式(子模式)—— 局部角度
  • 逻辑模式 —— 全局角度
  • 内模式(物理模式、存储模式)
两层映像

三个层次的联系和转换,由DBMS内部提供

  • 外模式 - 逻辑模式(E-C)映像
    • 映像定义通常包含在各外模式描述中。
    • 保证了数据的逻辑独立性:在逻辑模式发生改变时,数据库管理员可以通过修改E-C映像是的外模式保持不变,从而使得依据外模式编写的应用程序无需修改。
  • 逻辑模式 - 内模式 (C-I)映像
    • 映像定义通常包含各逻辑模式描述中。
    • 保证了数据的物理独立性:物理存储模式发生变化时,通过修改映像使得逻辑模式不变,外模式不变,应用程序不变。

作用:

  • 保证了应用程序的稳定性,减少了应用程序的维护和修改。
  • 使得数据定义和描述从应用程序中分离开。
  • 数据的存取由DBMS管理,简化了应用程序的编制。

数据模型

这部分主要参考了人大的mooc

数据模型的分类

  1. 概念模型(信息模型)—— 按用户观点考虑、用于数据库设计

    • eg:实体—联系模型(E-R模型)
  2. 逻辑模型和物理模型
    1. 逻辑模型 —— 按照计算机系统的观点考虑、用于DBMS的实现
      • 网状模型、层次模型
      • 关系模型
      • 面向对象(O-O)数据模型、对象关系(O-R)数据模型
      • 半结构化数据模型
    2. 物理模型 —— 对于数据最底层的抽象、描述数据在系统内的表示和存取方法。

数据模型的组成要素

  • 数据结构 —— 描述系统的静态特性
  • 数据操作 —— 描述系统的动态特性
  • 完整性约束

层次模型、网状模型与关系模型

层次模型

满足以下两个条件的基本层次联系的集合为层次模型

  • 有且只有一个节点没有父亲节点——这个节点叫做根节点
  • 根节点以外的节点有且只有一个父亲节点
树状哒

数据结构——满足下列条件的树

  • 每个节点代表一个实体
  • 边表示对象之间的联系

特点

  • 只能处理一对多的实体联系(父节点唯一)
  • 任何记录值都只有按路径查看时才显示全部意义
  • 没有一个子女记录纸可以推理父亲记录值单独存在

层次模型的完整性约束

  • 无相应的父亲节点值就不能插入子女节点值
  • 删除父亲节点值时,子女节点值也要删除
  • 更新时,应更新所有相应记录,以保证数据一致性

优缺点

  • 优点:简单、(对于一对多而言)描述自然直观、易于理解、完整性支持良好

  • 缺点:多对多联系表示不自然,插入删除限制多,查询子女节点必须通过父亲节点,面向过程

eg:IMS数据库管理系统(1968)
网状模型

数据结构——满足下列条件的图

  • 每个节点是一个对象记录
  • 边表示对象之间的联系
  • 允许多个节点无父亲节点
  • 允许节点有多个父亲节点
  • 允许两个节点之间有多种联系
图状哒

完整性约束

  • 允许插入父亲节点值未确定的子女节点值
  • 允许只删除父亲节点值
  • 一些具体系统提供了一些完整性约束

优缺点

  • 优点:更加直观,性能良好、存取效率高
  • 缺点:结构复杂,不利于最终用户掌握;DDL、DML语言复杂,不易于用户使用;面型过程
eg:最早的网状数据库管理系统IDS(1964)

小结

  • 数据——信息载体
  • 数据库——数据集合

  • 数据库管理系统——软件系统

  • 数据库系统
本章重点:掌握数据库系统的基本概念,及与文件系统相比较的优势;掌握数据抽象中三级模式、两级映像、数据独立性等概念。


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!