数据库技术基础
导航
目录一、基础概念
数据库系统
★人员
- 系统分析员和数据库设计人员
- 应用程序员
- 最终用户
- 数据库管理员
数据库管理系统
功能
- ★数据定义
- ★数据操作
- ★数据库运行管理
- ★数据组织、存储和管理
- ★数据库的建立和维护
- ★其它功能
特征
- ★数据结构化且统一管理★有较高的数据独立性
- ★数据控制功能
- 数据库的安全性
- 数据库的完整性
- 并发控制
- 故障恢复
DBMS分类
- 关系数据库系统(RDBS):是支持关系模型的数据库系统,借助于集合代数等概念和方法来处理数据库中的数据。
- 面向对象的数据库系统(OODBS):支持以对象形式进行数据建模的数据库管理系统。
- 对象关系数据库系统(ORDBS):在传统的关系数据模型基础上,提供元组、数组和集合等更为丰富的数据类型以及处理新的数据类型的能力。
数据库技术的发展
- 人工管理阶段(20世纪50年代中期以前)
- 特点:数据量较少;数据不保存;没有软件系统对数据进行管理。
- 文件系统阶段(20世纪50年代后期至20世纪60年代中期)√
- 特点:数据长期保存;使用文件系统管理数据;文件结构多样化。
- 数据库系统阶段(20世纪60年代后期至今)
- √特点:数据结构化;共享高;冗余低,易扩充;独立性高;由DBMS统一管理和控制。
数据库体系结构
- 集中式数据库系统(20世纪60年代中期)
- 硬件结构决定;单用户数据库系统;高性能数据库系统。
- C/S(客户端/服务器)体系结构
- 前端客户机系统和后端服务器系统;事务服务器和数据服务器。
- 并行数据库系统
- 由多个物理上连在一起的CPU组成,而分布式系统的各个CPU在地理上式分开的。
- 分为共享内存式多处理器和无共享式并行体系结构。
- 分布式数据库系统
- 分布式DBMS包括物理上分布、逻辑上集中的分布式结构和物理上逻辑上都分布的分布式数据库结构两种。
二、数据模型
数据模型基本概念
-
模型 对现实世界特征的模拟和抽象
-
数据模型 对现实世界数据特征的抽象
-
数据模型的三要素 数据结构、数据操作、数据的约束条件
-
概念数据模型 主要用于数据库设计
- E-R模型
-
基本数据模型 用于实现DBMS
- 层次模型、网状模型、关系模型
实体的属性
- 简单属性
- 复合属性
- 单值属性
- 多值属性
- NULL属性
- 派生属性
扩充的E-R模型
- 弱实体 实体对于另一些实体具有很强的依赖关系例如:家属总是属于某职工的
- 特殊化 一个实体集按照某些特征可以区分为几个子实体
- 例如:学生实体集可以分为研究生、本科生等子集
- 概括
- 聚集
超类和子类模型使用特殊化圆圈和连线的一般方法来表示,双竖边矩表示 子类,“U"表示特殊化,圆圈中的"0"表示全特殊化,“D表示不相交特殊化。
层次模型
- 采用树型结构表示数据与数据间的联系。
网状模型
- 采用网络结构表示数据与数据间联系。
关系模型
- 用二维表格结构表达实体集
- 用外键表示实体间联系的数据模型称为关系模型
- 关系同网状和层次模型的最大区别
- 用表中的数据而不是通过指针链来表示和实现实体间的联系
三、数据库的控制功能
事务概述
- 定义
- 事务是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应呈序对数据库的操作都应该以事务的方式执行。
- 4个特性(ACID)
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(lsolation)
- 持久性(Durability)
事务状态
- 5种状态活动状态、部分提交状态、失败状态、提交状态、中止状态
- 状态转换Begin-Transation、 End-Transation、Commit-Transation、 Abort-Transation
SOL中事务定义语句
- 事务开始BEGIN TRANSACTION
- 事务结束END TRANSACTIONR
- OLLBACK事务回滚 表示事务非成功地结束
- COMMIT 事务提交 表示事务成功结束
日志文件
有两种格式供数据库系统采用
- 以记录为单位的日志文件 事务标识、操作类型、操作对象、更新前数据的旧值、更新后数据的新值
- 以数据块为单位的日志文件 包括事务标识、被更新的数据块
- 登记日志文件时必须严格按照并发事务执行的时间次序来登记,且先写日志文件后写数据库
故障种类
- 事务故障
- 由于事务程序内部错误而引起的,有些可以预期,如金额不足等;有些不可以预期,如非法输入、运算溢出等(逻辑错误)。
- 系统进入一种不良状态,导致事务无法继续执行(系统错误)
- 系统故障(通常称为软故障)
- 特定类型的硬件错误、操作系统故障、DBMS代码错误、突然停电等
- 介质故障(称为硬件故障)
- 是指外存故障,例如磁盘损坏、磁头碰撞,瞬时强磁场干扰等
两个操作Undo/Redo
- Undo
- 撤销事务(Undo) 使数据库回复到执行前的正确状态将未完成的事务撤销,
- Redo
- 重做事务(Redo) 对已经提交的事务重新执行
事务故障的恢复
事务故障的恢复由系统自动完成,对用户是透明的
- 步骤1:反向(从后向前)扫描日志文件,查找该事务的更新操作
- 步骤2:对该事务的更新操作执行逆操作,也就是将日志记录更新前的值写入数据库
- 步骤3:继续反向扫描日志文件,查找该事务的其他更新操作,并作同样处理
- 步骤4:如此处理下去,直到读到了此事务的开始标记,事务故障恢复就完成
系统故障的恢复
在系统重启之后自动执行的
- 正向(从头到尾)扫描日志文件,找出故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION 记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION 记录,无相应的COMMIT记录),将其事务标识记入撤销(UNDO)队列
- 反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,也就是将日志记录中更新前的值写入数据库。
- 正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作,也将是将日志记录中更新后的值写入数据库
介质故障的恢复
需要DBA的介入
- 装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态。
- 转入相应的日志文件副本,重做已完成的事务
介质故障的恢复需要DBA的介入
- DBA只需要重装最近转储的数据库副本和有关的各日志文件副本
- 然后执行系统提供的恢复命令
- 具体的恢复操作仍由DBMS完成
封锁
- 排它锁
- (简称X锁)又称写锁
- 保证了其他事务在T释放A上的锁之前就不能再读取和修改A
- 共享锁
- (简称S锁)又称读锁
- 保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改
- 封锁的粒度
- 封锁对象的大小称为封锁的粒度
- 封锁对象
- 可以是逻辑单元(如:属性、元组、关系、索引项、整个索引,甚至整个数据库)
- 可以是物理单元(如:数据页,索引页)
封锁协议
- 三级封锁协议
- 一级封锁协议 解决丢失更新问题
- 二级封锁协议 解决了读“脏”数据;不能保证可重复读
- 三级封锁协议 防止丢失修改;不读“脏”数据;防止了不可重复读
- 两段封锁协议
- 保证可串行化
- 第一阶段是获得封锁
- 第二阶段是释放封锁
活锁
- 举个例子来说明活锁的概念,如果事务T1封锁了数据R,事多T2又请求封锁R,于是T2等待。若T3也请求封锁R,当T1释放了R上的锁之后系统首先批准了T3 的请求而T2仍等待。之后T4又请求封锁R,当T3释放了R上的封锁后,系统批准了T4的请求,如此继续下去,T2有可能永远等待,这就形成了活锁
- 避免活锁的简单方法是采用先来先服务的策略
死锁
- 举例来说明死锁的概念,如果事务T1封锁了数据R1,T2封锁了数据R2然后T1又请求封锁R2 ,因为T2已经封锁了R2,所以T1等待T2释放R2:接着T2有申请封锁R1,而T1已经封锁了R1,T2则只能等待T1释放R1上的锁。这样就出现了这样的情况,即T1在等待T2,而T2又在等待T1T1和T2两个事务永远不能结束,这就形成了死锁
- 目前在数据库中解决死锁问题主要有两种方法√
- 一个是采取一定的措施来预防死锁的发生
- 另一个是允许发生死锁,并采用一定手段定期诊断系统中是否有死锁,如果发现了死锁则立即解除掉
四、数据库安全机制
用户标识与鉴别
访问控制
- 自主存取控制
- 授权
- 角色
- 强制存取控制
- 基于角色的存取控制
视图机制
数据加密
审计
备份/恢复
聚合、推理和多实例
五、数据仓库
改据仓库的基本特性
- 面向主题的
- 数据是集成的
- 数据是相对稳定的
- 数据是反映历史变化的
数据仓库的数据模式
- 星状模式
- 一个事实表
- 一级维表
- 雪花模式
- 一个事实表
- 多级维表
- 事实星状模式
- 不止一个事实表
- 共享维表
数据仓库的体系结构
- 三层体系
- ·底 层 数据仓库服务器
- 中间层 OLAP服务器
- 顶层 前端工具口
- 从结构的角度
- 企业仓库
- 数据集市
- 虚拟仓库
数据转移
- 简单转移
- 清洗
- 集成
- 聚集和概括
多维分析的基本动作
- 切片
- 切块
- 旋转
OLAP 中的基本概念
- 变量
- ·维
- 维的层次
- 维的成员
- 多维数组
- 数据单元
六、数据挖掘
数据挖掘相关技术
- 关联分析 Apriori、FP-growth
- 序列模式分析 AprioriAll、Apriorisome、GsP
- 回归分析
- 分类 C4.5、ID3、Logistic回归、朴素贝叶斯
- 聚类 K-Means、DBSCAN、EM
数据挖掘的应用过程
- 确定挖掘对象
- 准备数据
- 建立模型
- 数据挖掘
- 结果分析
- 知识应用