数据库系统1——基本知识与关系模型。
参考了中国人民大学的 Mooc 和战神的 Spoc 以及教材。
基础概念
一些名词:
数据(Data):描述事物的符号记录。数据与其语义不可分。
数据库 (DB):长期储存在计算机内的、有组织的、可共享的、相互关联的数据的集合。
数据库管理系统 (DBMS):管理数据库的软件系统。
SQL(结构化查询语言):用于管理关系数据库管理系统,或在关系流数据管理系统(RDSMS)中进行流处理。
数据库应用程序 (DBAP)
数据库系统(DBS):指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
数据库管理技术发展过程
三个阶段:人工管理阶段 $\rightarrow$ 文件系统阶段 $\rightarrow$ 数据库系统阶段
阶段对比如下表(来自人大的Mooc)
数据库管理系统功能
从用户角度考虑
- 数据库定义:提供 数据定义语言(DDL) 以定义数据格式。
- 数据库操纵:提供 数据操纵语言(DML)进行数据的增、删、改、(查) 操作。
- 数据库控制:提供 数据控制语言(DCL) 让管理员对于数据的使用进行控制。
- 数据库维护:转储、恢复、重组、性能检测、分析等。
DDL、DML、DCL 联合起来就是 SQL语言。(不过这句话我有点疑惑…)
从系统实现角度考虑
- 语言编译器:将用数据库语言书写的内容翻译成DBMS的可执行命令。
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法)
- 数据存取索引:提供数据在磁盘、磁带等上的高效存取手段。
- 通信控制:提供网络环境下的数据库操作与数据传输手段。
- 事务管理:提供高可靠性并避免并发操作错误的手段。
- 故障恢复:是数据库自动恢复到故障发生前的正常状态的手段。
- 安全性控制:提供合法性检验,避免非授权用户非法访问的手段。
- 完整性控制:提供数据集数据操作正确性检查的手段。
- 应用程序接口(API):提供应用程序使用DBMS特定功能的手段。
- 数据库数据装载、重组等实用程序
- 数据库性能分析
数据库系统的结构
数据抽象
三层抽象:(不同的 Mooc 称呼不太一样233)
- 视图层(外部层次)
- 逻辑层(全局层次)
- 物理层(内部层次)
模式与实例
模式——对于数据可逻辑结构和特征的描述、不涉及具体的值且相对稳定。
实例——模式的具体值,是数据库在将某一时刻的状态、随数据库的数据更新而改变。
数据独立性
- 逻辑独立性:用户应用程序与数据库的逻辑结构相互独立。
- 物理独立性:用户的应用程序与数据库中数据的的物理存储相互独立。
数据独立性是由DBMS的两层映像保证的。
三级模式与两层映像
三级模式
三级模式与之前的三层抽象相对应
- 外模式(子模式)—— 局部角度
- 逻辑模式 —— 全局角度
- 内模式(物理模式、存储模式)
两层映像
三个层次的联系和转换,由DBMS内部提供
- 外模式 - 逻辑模式(E-C)映像
- 映像定义通常包含在各外模式描述中。
- 保证了数据的逻辑独立性:在逻辑模式发生改变时,数据库管理员可以通过修改E-C映像是的外模式保持不变,从而使得依据外模式编写的应用程序无需修改。
- 逻辑模式 - 内模式 (C-I)映像
- 映像定义通常包含各逻辑模式描述中。
- 保证了数据的物理独立性:物理存储模式发生变化时,通过修改映像使得逻辑模式不变,外模式不变,应用程序不变。
作用:
- 保证了应用程序的稳定性,减少了应用程序的维护和修改。
- 使得数据定义和描述从应用程序中分离开。
- 数据的存取由DBMS管理,简化了应用程序的编制。
数据模型
这部分主要参考了人大的mooc
数据模型的分类
概念模型(信息模型)—— 按用户观点考虑、用于数据库设计
- eg:实体—联系模型(E-R模型)
- 逻辑模型和物理模型
- 逻辑模型 —— 按照计算机系统的观点考虑、用于DBMS的实现
- 网状模型、层次模型
- 关系模型
- 面向对象(O-O)数据模型、对象关系(O-R)数据模型
- 半结构化数据模型
- 物理模型 —— 对于数据最底层的抽象、描述数据在系统内的表示和存取方法。
- 逻辑模型 —— 按照计算机系统的观点考虑、用于DBMS的实现
数据模型的组成要素
- 数据结构 —— 描述系统的静态特性
- 数据操作 —— 描述系统的动态特性
- 完整性约束
层次模型、网状模型与关系模型
层次模型
满足以下两个条件的基本层次联系的集合为层次模型
- 有且只有一个节点没有父亲节点——这个节点叫做根节点
- 根节点以外的节点有且只有一个父亲节点
树状哒
数据结构——满足下列条件的树
- 每个节点代表一个实体
- 边表示对象之间的联系
特点
- 只能处理一对多的实体联系(父节点唯一)
- 任何记录值都只有按路径查看时才显示全部意义
- 没有一个子女记录纸可以推理父亲记录值单独存在
层次模型的完整性约束
- 无相应的父亲节点值就不能插入子女节点值
- 删除父亲节点值时,子女节点值也要删除
- 更新时,应更新所有相应记录,以保证数据一致性
优缺点
优点:简单、(对于一对多而言)描述自然直观、易于理解、完整性支持良好
缺点:多对多联系表示不自然,插入删除限制多,查询子女节点必须通过父亲节点,面向过程
eg:IMS数据库管理系统(1968)
网状模型
数据结构——满足下列条件的图
- 每个节点是一个对象记录
- 边表示对象之间的联系
- 允许多个节点无父亲节点
- 允许节点有多个父亲节点
- 允许两个节点之间有多种联系
图状哒
完整性约束
- 允许插入父亲节点值未确定的子女节点值
- 允许只删除父亲节点值
- 一些具体系统提供了一些完整性约束
优缺点
- 优点:更加直观,性能良好、存取效率高
- 缺点:结构复杂,不利于最终用户掌握;DDL、DML语言复杂,不易于用户使用;面型过程
eg:最早的网状数据库管理系统IDS(1964)
小结
- 数据——信息载体
数据库——数据集合
数据库管理系统——软件系统
- 数据库系统
本章重点:掌握数据库系统的基本概念,及与文件系统相比较的优势;掌握数据抽象中三级模式、两级映像、数据独立性等概念。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!