第一、数据库系统前言
1、综合知识和案例分析都有考到,主要是以下八个方面:数据库模式、ER模型、关系代数与元组演算、规范化理论、并发控制、数据库完整性约束、分布式数据库、数据仓库与数据挖掘。
第二、数据库三级模式两级映射
- 三级模式:外模式(也称用户模式、子模式),概念模式(数据库表,也叫模式),内模式(索引的建立,修改了数据库的物理结构)。
- 两级映射:外模式-概念模式映射(保证数据的逻辑独立性),概念模式-内模式映射(保证数据的物理独立性)
第三、数据库设计过程说明
- 设计过程:需求分析(数据流图,数据字典,需求说明书)、概念结构设计(ER模型)、逻辑结构设计(关系模式)、物理设计
第四、ER模型
- 概念:矩形表示实体,椭圆表示属性,菱形表示联系。
- 集成方法:多个局部E-R图一次集成;逐步集成,用累加的方式一次集成两个局部E-R。
- 属性冲突:包括属性域冲突和属性取值冲突。
- 命名冲突:包括同名异义和异名异义。
- 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
- 转换规则:一个实体型转换为一个关系模式;三个以上实体间的一个多元联系。
第五、关系代数
- 并:并集,两个集合中都有的数据只显示一次,去重。
- 交:交集,两个集合中都有的数据,去差异化。
- 差:差集,即A-B,是A中有的数据,B中没有。
- 笛卡尔积:集合 A × B A\times B A×B,即A中所有数据与B中所有数据进行组合,属性个数为两个集合属性个数之和。
- 投影:即选择A集合中的某些列,符号为 π \pi π。
- 选择:即选择A集合中的某些行,符号为 σ \sigma σ。
- 连接:相当于sql语句的连接操作,相对于笛卡尔积操作,若A,B有相同属性,只保留一次。
第六、关系代数_除法运算
-
概念:设两个关系R和S的元组数分别为r和s(r>s>0),那么 R ÷ S R \div S R÷S是一个(r-s)元的元组和集合。( R ÷ S R \div S R÷S)是满足下列条件的最大关系,其中每个元素t与S中的每个元组u组成的新元组必在关系R中。
-
解释:
(1)有关系模式RS(学生名,课程名)与关系模式S(课程名)。
(2)除法结果Z,应有1个属性,这个属性就是学生名。
(3) Z × S ( 笛 卡 尔 积 ) Z \times S(笛卡尔积) Z×S(笛卡尔积)的所有记录,均在RS关系中。
第七、规范化理论_函数依赖
-
概念:设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为 X → Y X \to Y X→Y。
-
推理规则:
1)自反律——若 Y ⊆ X ⊆ U Y\subseteq X\subseteq U Y⊆X⊆U,则 X → Y X \to Y X→Y。
2)增广律——若 Z ⊆ U Z\subseteq U Z⊆U且 X → Y X \to Y X→Y,则 X Z → Y Z XZ \to YZ XZ→YZ。
3)传递律——若 X → Y X \to Y X→Y且 Y → Z Y \to Z Y→Z,则 X → Z X \to Z X→Z成立。
第八、规范化理论的价值与用途
- 非规范化的问题:数据冗余、更新异常、插入异常、删除异常。
第九、规范化理论_求候选关键字
-
超键:唯一标识元组,消除多余属性,就是候选键。
-
候选键:多个主键。
-
主键:
-
外键:其他关系的主键。
-
候选键求解过程:
(1)将关系模式的函数依赖关系“有向图”的方式表示
(2)找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
(3)若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。
第十、规范化理论_范式
- 第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
- 第二范式(2NF):1NF消除非主属性对候选键的部分依赖,即每一个非主属性完全依赖主键,不存在部分依赖。如果主键为单属性,就一定是2NF,因为不存在部分依赖。
- 第三范式(3NF):2NF消除非主属性对候选键的传递依赖。
- BC范式(BCNF):3NF消除主属性对候选键的传递依赖,设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码,即 X → Y X \to Y X→Y的X部分必须是候选码。
- 作用:四大范式逐步优化,以解决以下问题:插入异常、删除异常、数据冗余。
第十一、规范化理论_模式分解
- 保持函数依赖分解:设数据库模式 σ = R 1 , R 2 , . . . , R k \sigma = {R1,R2,...,Rk} σ=R1,R2,...,Rk是关系模式R的一个分解,F是R上的函数依赖集, σ \sigma σ中的每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk}与F是等价的(即相互逻辑蕴含),那么称分解 σ \sigma σ保持FD。通俗讲,分解前和分解后,函数依赖集不变(除了冗余的依赖)。
- 无损分解:有损——不能还原;无损——可以还原。
- 无损连接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。
- 无损连接判断:若两依赖集为 R 1 , R 2 R_{1},R_{2} R1,R2,如果 R 1 ∩ R 2 R_{1}\cap R_{2} R1∩R2和 R 1 R_{1} R1- R 2 R_{2} R2,以及 R 2 R_{2} R2- R 1 R_{1} R1之间的依赖关系不存在,则属于有损连接分解。
第十二、数据库并发控制
-
事务:原子性、一致性、隔离性、持续性。
-
并发产生的问题:丢失更新、不可重复读问题、“脏”数据的读出。
-
封锁协议:S封锁、X封锁、一级封锁协议、二级封锁协议、三级封锁协议、四级封锁协议。
-
死锁:预防法,死锁的解除法。
-
事务服务器:包括多个在共享内存中访问数据的进程:
1)服务器进程:接收用户查询(事务)、执行查询并返回结果的进程。
2)锁管理器进程:包括锁授予、释放锁和死锁检测。
3)数据库写进程:有一个或多个进程用来将修改过的缓冲块输出到基于连续方式的磁盘中。
4)日志写进程:该进程将日志记录从日志记录缓冲区输出到稳定存储器上。
5)检查点进程:定期执行检查点操作。
6)进程监控进程:监控其他进程,一旦有进程失败,它将为失败进程执行恢复动作。
-
两阶段提交协议:
1)只要有一个参与者撤销事务,协调者就必须做出全局撤销决定。
2)只有所有参与者都同意提交事务,协调者才能做出全局提交决定。
第十三、数据库完整性约束
- 实体完整性约束:
- 参照完整性约束:
- 用户自定义完整性约束:
- 触发器:
第十四、数据库安全
- 用户标识和鉴定:最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式。
- 存取控制:对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
- 密码存储和传输:对远程终端信息用密码传输。
- 视图的保护:对视图进行授权。
- 审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。
第十五、数据库备份与恢复
- 冷备份:也称静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份下来。优点——备份快速,容易归档,容易恢复到某个时间点,维护成本低,高度安全;缺点——只能提供某一时间点上的恢复,备份过程数据库无法使用,不能按表或者用户恢复。
- 热备份:也称动态备份,利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。优点——备份快,备份过程中,数据库可以使用,恢复速度快,可在表空间或数据库文件级备份;缺点——出错的后果很严重,备份失败则需从头开始备份,难以维护。
- 完全备份:备份所有数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上一次备份之后变化的数据
- 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
- **静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
- 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
- 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。
- 日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。
故障关系 | 故障原因 | 解决方法 |
---|---|---|
事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
事务本身的不可预期故障 | 算术溢出、违反存储保护 | 由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态 |
系统故障 | 系统停止运转 | 通常使用检查点法 |
介质故障 | 外存被破坏 | 一般使用日志重做业务 |
第十六、分布式数据库系统
- 分布透明性:分片透明性(水平分片、垂直分片、混合分片),位置透明性,局部数据模型透明性。
- 分布式数据库管理系统的组成:LDBMS,GDBMS,全局数据字典,通信管理(CM)。
- 分布式数据库管理系统的结构:全局控制集中的DDBMS,全局控制分散的DDBMS,全局控制部分分散的DDBMS。
第十七、数据库优化
- 集中式数据库优化:硬件系统(CPU、内存、I/O、网络),系统软件,数据库设计(表与视图、索引、SQL优化),应用软件(数据库连接池)。
- 分布式数据库优化:通信代价
第十八、数据仓库与数据挖掘
- 特点:面向主题,集成的,相对稳定的(非易失的),反映历史变化(随着时间变化)。
- 方法:决策树,神经网络,遗传算法,关联规则挖掘算法。
- 关联分析:挖掘出隐藏在数据间的相互关系。
- 序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程。
- BI系统:数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段。
- 数据预处理:包括数据的提取(Extraction)、转换(Transformation)、加载(Load),即ETL过程。
- 数据分析:一般采用OLAP(联机分析处理,多维分析)和数据挖掘(隐藏联系)两大技术
第十九、联邦数据库
- 概念:联邦数据库系统(FDBS)是一个彼此协助却又相互独立的成员数据库(CDBS)的集合,它将成员数据库系统按不同程度进行集成,对该系统整体提供控制和协同操作的软件叫做联邦数据库管理系统(FDBMS)。
- 特征:分布性,异构性,自治性,透明性。
- 分类:紧耦合,松耦合。
第二十、NoSQL技术
- 概念:NoSQL(Not-only SQL),非关系型数据库,应对web2.0网络的超大规模和高并发。
关系数据库模式 | NoSQL模式 | |
---|---|---|
并发支持 | 支持并发、效率低 | 并发性能高 |
存储与查询 | 关系表方式存储、SQL查询 | 海量数据存储、查询效率高 |
扩展方式 | 向上扩展 | 向外扩展 |
索引方式 | B树、哈希等 | 键值索引 |
应用领域 | 面向通用领域 | 特定应用领域 |
- 常用数据库:Redis、MongoDB等。
第二十一、反规范化技术
- 问题:由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但是会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降。
- 解决方案:增加派生性冗余列,增加冗余列,重新组表,分割表。
第二十二、大数据基本概念
比较维度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |