11.数据库系统
数据库模式
三级模式-两层映射

ER模型
数据库设计过程


- 集成的方法
- 多个局部E-R图一次集成
- 逐步集成
- 集成产生的冲突及解决办法
- 属性冲突
- 包括属性域冲突和属性取值冲突
- 命名冲突
- 包括同名异义和异名同义
- 结构冲突
- 包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同
- 属性冲突
E-R图转换为关系模式
- 一对一进行任意归并
- 一对多归并到多端
- 多对多不能进行归并,需要新建联系
- 三个以上的实体之间的一个多元联系则需要转换成实体数+关系数个联系
关系代数
并-交-叉

笛卡尔积-投影-选择

自然连接

规范化理论
- 非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。
函数依赖
设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

键
- 候选键
- 唯一标识元组,且无冗余
- 候选键可以有1个也可以有多个
- 候选键可以是单属性,也可以是多属性组合
- 主键
- 从候选键中任选一个
- 外键
- 其它关系的主键
- 不是本关系的候选键
求候选键
- 将关系模式的函数依赖关系用‘有向图’的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有节点,则该属性集即为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有节点,则需要尝试性的将一些中间结点并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
范式

无损分解
- 保持函数依赖分解
- 设数据库模式p={R1,R2,…,RK}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,…,FK}与F是等价的(即相互逻辑蕴含),那么称分解p保持FD
- 无损分解
- 有损
- 不能还原
- 无损
- 可以还原
- 有损
- 无损联接分解
- 指将一个关系模式分解成若干个关系模式后,通过自然联结和投影等运算仍能还原到原来的关系模式

并发控制
基本概念

- 一级封锁协议
- 事务T在修改数据R之前必须先对其加X锁,直到事务结束后才释放
- 可以防止丢失修改
- 二级封锁协议
- 一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后可释放S锁
- 可防止丢失修改,还可以防止读“赃”数据
- 三级封锁协议
- 一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放
- 可以防止丢失修改,防止读“赃数据”与防止数据重复读
- 两端锁协议
- 可串行化的。可能发生死锁
- S锁
- 对于T1如果对A加了读锁,其它事务只能在A上加读锁,不能加写锁,事务T1自己可以升级S锁到X锁
- X锁
- 对于T1如果对A加了写锁,其他事务不能对A加任何锁
数据库完整性约束
- 实体完整性约束
- 主键
- 唯一,且非空
- 参照完整性约束
- 外键
- 外键必定是其他属性的码,或者为空
- 用户自定义完整性约束
- 限定取值区间
- 触发器
- 脚本编程
数据库安全
- 用户标识和鉴定
- 最外层的安全保护措施,可以使用用户账户,口令及随机数检验等方式
- 存取控制
- 对用户进行授权,包括操作类型(查询、插入、删除、修改)和数据对象(主要是数据范围)的权限
- 密码存储和传输
- 对远程终端信息用密码传输
- 视图的保护
- 对视图进行授权
- 审计
- 使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来
数据备份
- 冷备份
- 也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来
- 热备份
- 也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来
- 冷备份
- 优点
- 非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上(只需将文件再复制回去);能归档方法相结合,做数据库“最佳状态”的恢复;低度维护,高度安全
- 缺点
- 单独使用时,只能提供到某一时间点上的恢复;再实施备份的全过程中,数据库必须要作备份而不能做其他工作;若磁盘空间有限,只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
- 优点
- 热备份
- 优点
- 可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍然可以使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的
- 缺点
- 不能出错,否则后果严重;若热备份不成功,所得结果不可用于时间点的恢复;因难于维护,所以要特别小心,不允许失败
- 优点
备份方式
- 完全备份
- 备份所有数据
- 差量备份
- 只备份上一次完全备份之后变化的数据
- 增量备份
- 备份上一次备份之后变化的数据
- 日志文件
- 事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存再独立的文件中
数据库故障与恢复
| 故障关系 | 故障原因 | 解决方法 |
|---|---|---|
| 事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
| 事务本身的不可预期故障 | 算术溢出、违反存储保护 | 由于DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态 |
| 系统故障 | 系统停止运转 | 通常使用检查点法 |
| 介质故障 | 外存被破坏 | 一般使用日志重做业务 |
分布式数据库
体系结构

各种概念
- 分布透明性
- 分片透明性
- 分不分片,用户感受不到
- 位置透明性
- 数据存放再那里,用户不用管
- 局部数据模型透明性(逻辑透明)
- 用户不用关系局部数据模型
- 分片透明性
- 分布式数据库管理系统-组成
- LDBMS
- GDBMS
- 全局数据字典
- 通信管理(CM)
- 分布式数据库管理系统-结构
- 全局控制集中的DDBMS
- 全局控制分散的DDBMS
- 全局控制部分分散的DDBMS
联邦数据库
- 联邦数据库系统(FDBS)是一个彼此协作却又相互独立的成员数据库(CDBS)的集合,它将成员数据库系统按不同程度进行集成,对该系统整体提供控制和协同操作的软件叫做联邦数据库管理系统(FDBMS)
- 联邦数据库特征
- 分布性
- 异构性
- 自治性
- 透明性
- 联邦数据库分类
- 紧耦合
- 松耦合
NoSQL
NoSQL(Not-only SQL):随着互联网web2.0网站的兴起,传统的关系数据库再应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展

- 缺点
- 成熟度不够,大量关键特性有待实现
- 开源数据库产品的支持力度有限
- 数据挖掘与商务智能支持不足,现有的产品无法直接使用NoSQL数据库
- NoSQL数据库专家较少,大部分都处于学习阶段
- SQL + NoSQL = MoreSQL/NewSQL
- redis、mongodb、flare、cassandra、couchdb、oracle nosql database、Tokyo cabinet
反规范化
由于规范化会使表不断的拆分,从而导致数据表过多,这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统的效率大大的下降
- 技术手段
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
内存数据库
- 内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且再数据缓存、快速算法、并行操作方面也进行了相应的改进、所以数据处理比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道
- 常见的内存数据库包括:redis,extremedb,tt,fastdb,sqlite,microsoft sol server compact,mysql的memory存储引擎等
数据库性能优化

大数据

- 大数据处理系统应该具有的重要特征
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性
6783

被折叠的 条评论
为什么被折叠?



