跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲
Chapter 6 - 数据库系统基础知识
1 - 基本概念
1、数据库
数据库(Database,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
2、数据库管理系统
数据库管理系统(Database Management System,DBMS)是数据库系统的核心软件,要在操作系统的支持下工作,解决如何科学地组织和存储数据、如何高效地获取和维护数据的系统软件问题。其主要功能包括数据定义功能、数据操纵功能、数据库的运行管理、数据组织、存储、管理和数据库的建立与维护
2 - DBMS的特征与分类
1、DBMS的特征
- 数据结构化且统一管理
- 有较高的数据独立性
- 提供数据控制功能
2、DBMS的分类
- 关系数据库系统:是支持关系模型的数据库系统
- 面向对象的数据库系统:是支持以对象形式对数据建模的数据库系统
- 对象关系数据库系统:在传统的关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作的能力,这样形成的数据模型称为对象关系数据模型。基于对象关系数据模型的DBS称为对象关系数据库系统
3 - 数据库三级模式两级映像
数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构
- 外模式:也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述,由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL
- 概念模式:也称模式,是数据库中全体数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及行的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例
- 内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL
外模式/模式映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换
模式/内模式映像:该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换
DBMS的两级映像功能保证了数据的独立性
4 - 数据库的分析与设计过程
5 - 数据模型
基本概念
模型就是对现实世界特征的模拟和抽象,数学模型是对现实世界数据特征的抽象,数据模型是用来描述数据的一组概念和定义
数据模型的三要素:数据结构、数据操作、数据的约束条件
-
数据结构:是所研究的对象类型的集合,是对系统静态特性的描述
-
数据操作:是对数据库中各种对象的实例(值)允许执行的操作的集合,包括操作及操作规则。数据操作是对系统动态特性的描述
-
数据的约束条件:是一组完整性规则的集合。对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效、相容
E-R模型
实体-联系模型简称E-R模型,所采用的3个主要概念是实体、联系和属性
6 - 数据模型 关系模型
关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性
关系模型是由若干个关系模式组成的集合,一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念
关系模型的优点是:概念单一,存储路径对用户是透明的,所以具有更好的数据独立性和安全保密性,简化了程序的开发和数据库的建立工作
7 - 关系代数 关系模式相关名词
- 候选码(键):若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码
- 主码(键):若一个关系有多个候选码,则选定其中一个为主码
- 主属性:包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性
- 外码(键):如果公共属性在一个关系中是主属性,那么这个公共属性被称为另一个关系的外码。由此可见,外码表示了两个关系之间的相关联系
- 全码:若关系模式的所有属性组都是这个关系模式的候选码,则称为全码
8 - 数据库的完整性约束
完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性,因此完整性规则是为了防止对数据的意外破坏
关系模型的完整性规则是对关系的某种约束条件,完整性共分为三类:
- 实体完整性:规定基本关系R的主属性A不能取空值
- 参照完整性:若F是基本关系R的外码,它与基本关系S的主码相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值
- 用户定义完整性:就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定
9 - 关系代数
关系的三种类型
- 基本关系(通常又称为基本表、基表):是实际存在的表,它是实际存储数据的逻辑表示
- 查询表:查询结果对应的表
- 视图表:是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表
七种基本运算
关系代数表达式查询优化的原则如下:
- 提早执行选取运算:对于有选择运算的表达式,应优化成尽可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量以及从外存读块的次数
- 合并乘积与其后的选择运算为连接运算
- 将投影运算与其后的其他运算同时进行,以避免重复扫描关系
- 将投影运算和其前后的二目运算结合起来,因为没有必要为去掉某些字段再扫描一遍关系
- 在执行连接前对关系适当地预处理,就能快速地找到要连接的元组
- 存储公共子表达式。对于有公共子表达式的结果应存于外存(中间结果),这样当从外存读出它的时间比计算的时间少时,就可节约操作时间
10 - 关系型数据库SQL简介
SQL是在关系数据库中最普遍使用的语言,它不仅包含数据查询功能,还包括插入、删除、更新和数据定义功能
SQL具有综合统一、高度非过程化、面向集合的操作方式,两种使用方式,语言简洁且易学易用等特点
SQL支持关系数据库的三级模式结构:视图对应外模式、基本表对应模式、存储文件对应内模式
- SQL数据定义:创建表、修改和删除表、创建和删除索引、创建和删除视图
- SQL数据查询:SELECT查询、简单查询、连接查询、子查询和聚集函数
- SQL数据更新:插入、删除、修改
11 - 关系数据库的规范化
函数依赖
求候选码(键)
- 将关系模式的函数依赖关系用“有向图”的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有结点,则需要尝试性地将一些中间节点并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
规范化理论(概念)
关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到第几范式来评价模式规范化的程度
范式有1NF、2NF、3NF、BCNF(巴斯克斯范式)、4NF和5NF,其中1NF级别最低。这几种范式之间有$$ 5NF \subset 4NF \subset BCNF \subset 3NF \subset 2NF \subset 1NF $$成立
通过分解可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫做规范化
规范化理论(范式)
- 1NF(第一范式)
若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式(1NF)
- 2NF(第二范式)
若关系模式R$$\subset$$1NF,且每一个非主属性完全依赖于主键,则关系模式R$$\subset$$2NF。换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF
- 3NF(第三范式)
当2NF消除了非主属性对码的传递函数依赖,则称为3NF
3NF的模式必是2NF的模式,产生冗余和异常的两个重要原因是部分函数依赖和传递依赖
- BCNF(巴克斯范式)
当3NF消除了主属性对码的部分和传递函数依赖,则称为BCNF
一个满足BCNF的关系模式应具有以下性质:
- 所有非主属性对每一个码都是完全函数依赖
- 所有非主属性对每一个不包含它的码也是完全函数依赖
- 没有任何属性完全函数依赖于非码的任何一组属性
关系模式分解
对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有三种情况:
- 分解具有无损连接性
- 分解要保持函数依赖
- 分解既要有无损连接性,又要保持函数依赖
无损连接分解:指将一个关系模式分解成若干个关系模式后,通过自然连接和投影等运算仍能还原到原来的关系模式
12 - 数据库控制功能
事务管理
事务是一个操作序列,是数据库环境中不可分割的逻辑工作单位。事务的四个特性是原子性、一致性、隔离性和持久性
- 原子性Atomicity:事务的所有操作在数据库中要么全做,要么全都不做
- 一致性Consistency:一个事务独立执行的结果将保持数据的一致性,即数据不会因为事务的执行而遭受破坏
- 隔离性Isolation:一个事务的执行不能被其他事务干扰
- 持久性Durability:一个事务一旦提交,它对数据库中数据的改变必须是永久的,即便系统出现故障时也是如此
并发控制
并发操作是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作
并发操作带来问题的原因是事务的并发操作破坏了事务的隔离性
DBMS的并发控制子系统负责并发事务的执行,保证数据库的完整性不受破坏,避免用户得到不正确的数据
并发控制的主要技术是封锁
- 排他锁(X锁):又称写锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何形式的锁,直到T释放A上的锁
- 共享锁(S锁):又称读锁,若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁,直到T释放A上的S锁
备份和恢复
人为错误、硬盘损坏、计算机病毒、断电或是天灾人祸等都有可能造成数据的丢失,所以应该强调备份的重要性。
(1)静态转储和动态转储。静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是指在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行
(2)海量转储和增量转储。海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据
(3)日志文件。在事务处理的过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。一旦发生故障,DBMS的恢复子系统便利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。因此,DBMS利用日志文件来进行事务故障恢复和系统故障恢复,并可协助后备副本进行介质故障恢复
数据恢复有3个步骤:
(1)反向扫描日志文件,查找该事务的更新操作
(2)对事务的更新操作执行逆操作
(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到回到事务的开始标志
13 - 数据仓库和数据挖掘
数据仓库(Data Warehouse)可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业,为需要指导业务流程改进、监视时间,成本,质量以及控制等。数据仓库是依照分析需求、分析维度、分析指标进行设计的
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,它用于支持企业或组织的决策分析处理。是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于OLTP源系统
数据挖掘(Data Mining)就是从大量的数据中,提取隐藏在其中的,事先不知道的、
但潜在有用的信息的过程。数据挖掘的目标是建立一个决策模型,根据过去的行动数据
来预测未来的行为
14 - 大数据基本概念
大数据:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值
密度低四大特征