软考自查:数据库系统
数据库系统
内容提要
- 数据库模式
- ER模型
- 关系代数与元组演算
- 规范化理论
- 并发控制
- 数据库完整性约束
- 分布式数据库
- 数据仓库与数据挖掘
三级模式-两级映射
数据库设计过程
E-R模型
集成的方法:
- 多个局部E-R图次集成。
- 逐步集成,用累加的方式-次集成两个局部E-R。
集成产生的冲突及解决办法:
- 属性冲突:包括属性域冲突和属性取值冲突。
- 命名冲突:包括同名异义和异名同义。
- 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
E-R模型
一个实体型转换为一个关系模式
1:1联系 1: n联系 m:n联系
三个以上实体间的一个多元联系
在数据库逻辑结构的设计中,将E-R模型转换为关系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系m:n: p, 最少可转换为__C__个 关系模式。A.2 B.3 C.4 D.5
关系代数
- 并
- 交
- 差
- 笛卡儿积
- 投影
- 选择
- 联接
规范化理论-函数依赖
设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。
规范化理论-价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
规范化理论-键
规范化理论-求候选键
将关系模式的函数依赖关系用“有向图”的方式表示找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
例题
答案:A
规范化理论-范式
规范化理论-第一范式
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
规范化理论-第二范式
第二范式(2NF):当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
规范化理论-第三范式
第三范式(3NF):当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。
规范化理论-BC范式
BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其中F中每个依赖的决定因素必定包含R的莫个候选码。
规范化理论-模式分解
保持函数依赖分解
设数据库模式p={R1, R2, . Rk}是关系模式R的一个分解,F是R 上的函数依赖集,p 中每个模式Ri上的FD集是Fi。如果{F1, F2, - Fk} 与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD
无损分解
什么是有损,什么又是无损? 有损:不能还原。 无损:可以还原。
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式
规范化理论-模式分解-例题讲解
思考题:
有关系模式:成绩(学号,姓名,课程号,课程名,分数)函数依赖:学号一>姓名,课程号->课程名,(学号,课程号)->分数 若将其分解为: 成绩(学号,课程号,分数) 学生(学号,姓名) 课程(课程号,课程名)
请思考该分解是否为无损分解?
由于有:学号->姓名,所以:成绩(学号,课程号,分数,姓名)由于有:课程号一>课程名,所以:成绩(学号,课程号,分数,姓名,课程名)
将一个具有函数依赖:学号->姓名,课程号->课程名,(学号,课程号)->分数的关系模式:成绩(学号,姓名,课程号,课程名,分数),分解为:成绩(学号,课程号,分数);学生(学号,姓名);课程(课程号,课程名)。
初始表如下:
根据学号->姓名,对上表进行处理,将b12改成符号a2;然后考虑课程号->课程名,将b14改为a4,得下表:
从上图中可以看出,第一行已全部为a,因此本次R分解时无损联接分解。
规范化理论-模式分解
定理:如果R的分解为p={R1,R2},F为R所满足的函数依赖集合分解p具有无损联接性的充分必要条件是: R1∩R2->(R1-R2)或R1∩R2->(R2-R1) 其中,R1∩R2,表示模式的交,为R1与R2中公共属性组成,R1-R2,或R2 -R1表示模式的差集,R1一R2表示R1中去除R1和R2的公共属性所组成。当模式R分解成两个关系模式R1和R2时,如果R1与R2的公共属性能函数决定R1中或R2中的其它属性,这样的分解就具有无损联接性。
并发控制-基本概念
- 基本概念
并发控制-存在的问题实例
并发控制-封锁协议
- 一级封锁协议。事务T在修改数据R之前必须先对其加x锁,直到事务结束才释放。可防止丢失修改
- 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
- 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
- 两段锁协议。可串行化的。可能发生死锁
数据库完整性约束
- 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
- 触发器
数据库安全
- 数据库安全
数据备份
- 冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
- 热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
数据备份
- 完全备份:备份所有数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上-次备份之后变化的数据
(1)静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
(2)静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
(3)动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
(4动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上-次转储后更新过的数据。
日志文件:事务日志是针对数据库改变所做的记录。它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
数据库故障与恢复
- 数据库故障与恢复
数据仓库与数据挖掘
- 面向主题
- 集成的
- 相对稳定的(非易失的)
- 反映历史变化(随着时间的变化)
数据挖掘方法分类
方法
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
分类
- 关联分析:挖掘出隐藏在数据间的相互关系。
- 序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程。
反规范化
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降
技术手段
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
大数据
对海量数据处理的技术
传统数据和大数据的比较
- 传统数据和大数据的比较
大数据处理系统应该具有的重要特征
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性
愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。
作者:菜鸟-传奇
本文版权归作者和博客园共有,重在学习交流,不以任何盈利为目的,欢迎转载。
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。