目录
- 第三章、数据库系统
- 1、数据库模式
- 1.1、三级模式--两级映射
- 1.2、数据库设计过程
- 2、ER模型
- 3、关系代数与元组演算
- 4、规范化理论
- 4.1、函数依赖
- 4.2、价值与用途
- 4.3、键
- 4.4、范式
- 4.5、模式分解
- 5、并发控制
- 6、数据库完整性约束
- 7、数据备份
- 8、数控故障与恢复
- 9、数据仓库与数据挖掘
- 10、反规范化
- 11、大数据
第三章、数据库系统
1、数据库模式
1.1、三级模式–两级映射
外模式(用户模式):用户能够直接看到和访问的数据,它是用户使用数据库系统的视图。
概念模式(全局模式):全局的数据逻辑结构,它是一个数据库所有用户共同使用的数据视图。
内部模式(存储模式):数据物理存储的方式和存储结构
模式/内模式的映像:实现概念模式到内模式之间的相互转换。
外模式/模式的映像:实现外模式到概念模式之间的相互转换
1.2、数据库设计过程
2、ER模型
集成的方法:
多个局部E-R图一次集成。
逐步集成,用累加的方式一次集成两个局部E一R。
集成产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
3、关系代数与元组演算
并:将两个关系合并为一个,包含两个关系中所有的元组,重复的元组只保留一份。
交:取两个关系中都出现过的元组,删除其他元组,得到一个新的关系
差:取一个关系中出现过的元组,但在另一个关系中未出现过的元组,得到一个新的关系
笛卡尔积:将两个关系的每个元组进行组合,得到一个新的关系,新的关系的元组数为原来两个关系元组数之积
投影:操作可以将关系中的某些属性筛选出来,形成一个新的关系
选择:操作可以通过指定某些条件,从关系中选择符合条件的元组,形成一个新的关系
连接:操作是将两个关系合并成一个新的关系,需要指定连接条件。连接操作分为内连接、外连接等类型
自然连接是一种数据库连接(join)操作,它通过比较两个表之间的相同列,自动匹配这些列的值,然后返回符合条件的结果集。自然连接操作的结果是一个新的表,其中包含了两个表中相同列的匹配记录,且只保留一份,即两个表中相同列的重复值只会出现一次
4、规范化理论
4.1、函数依赖
设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称函数依赖于x,记为X→Y。
部分函数依赖:在一个关系模式中,如果一个非键属性(Non-Key Attribute)依赖于关系模式的一个候选键(Candidate Key)的一部分属性,而不是全部属性,那么就存在部分函数依赖。换句话说,一个属性对于关系模式的某个候选键是部分函数依赖,当且仅当该属性仅依赖于候选键的一部分属性,而不是整个候选键
举个例子,考虑一个关系模式包含属性(A,B,C)和候选键为(A,B)。如果属性 C 只依赖于属性 A,而不依赖于属性 B,则属性 C 对候选键(A,B)存在部分函数依赖
传递函数依赖:在一个关系模式中,如果一个非键属性依赖于关系模式的一个非键属性,而非键属性又依赖于关系模式的一个候选键,则存在传递函数依赖。换句话说,一个属性对于关系模式的某个候选键是传递函数依赖,当且仅当该属性依赖于一个非键属性,而非键属性又依赖于候选键
举个例子,考虑一个关系模式包含属性(A,B,C)和候选键为(A,B)。如果属性 C 依赖于属性 B,属性 B 依赖于属性 A,则属性 C 对候选键(A,B)存在传递函数依赖。
4.2、价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
数据冗余是指在多个表中重复存储相同的数据。虽然冗余数据可以提高数据检索和查询效率,但它也会占用更多的存储空间,并增加数据更新和维护的复杂度
更新异常是指在一个表中更新某些数据时,由于数据的冗余存储,可能会导致其他相关表中的数据不一致或出现错误
插入异常是指在向一个表中插入数据时,由于某些相关的数据还没有被插入,或者某些数据没有被正确地插入,导致插入操作无法完成或出现错误
删除异常是指在从一个表中删除某些数据时,由于数据的冗余存储,可能会导致其他相关表中的数据也被删除或者无法删除。这种情况下,可能会导致数据的丢失或数据不一致的问题。
4.3、键
超键:能唯一标识一条记录的一组属性集合,也就是能够确定关系中唯一记录的属性集合
例如,在一个学生信息表中,可能存在多个超键,例如学号、身份证号码、学生姓名与出生日期等。任意一个超键都可以用来唯一确定一条记录。
候选键:指在关系中能够唯一标识元组的属性集合,即该属性集合能够保证每个元组的唯一性,并且不存在该属性集合的任何子集能够保证每个元组的唯一性。
主键:是一列或一组列,用于唯一地标识表中的每一行。主键的值必须是唯一的,且不能为 NULL。
外键:是一种关系数据库中的约束(Constraint),用于确保在一个表中的数据引用另一个表中的数据时的一致性和完整性
求解候选键:
- 将关系模式的函数依赖关系用“有向图”的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
A B C D
4.4、范式
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
例:下表所示的关系R是否满足1NF,如果不满足,应如何调整?
第二范式(2NF):当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?
第三范式(3NF):当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。‘
思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?
BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
例:关系模式STJ (S,T,J)中,S表示学生,T表示老师,J表示课程。每一老师只教一门课程。每门课程有若干老师,某一学生选定某门课,就对应一个固定老师。
4.5、模式分解
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式
将一个具有函数依赖:学号→姓名,课程号→课程名,(学号,课程号)→分数的关系模式:成绩(学号,姓名,课程号,课程名,分数),分解为:成绩(学号,课程号,分数);学生(学号,姓名);课程(课程号,课程名)。
根据学号→姓名,对上表进行处理,将b12改成符号a2;然后考虑裸程号→课程名,将b14改为a4,得下表:
从上图中可以看出,第1行已全部为a,因此本次R分解是无损联接分解。
5、并发控制
原子性(Atomicity) 是指事务是一个不可分割的操作单位,要么全部执行成功,要么全部失败回滚。
一致性(Consistency)是指事务执行前后,数据库从一个一致性状态变为另一个一致性状态,保证数据的完整性和一致性。
隔离性(Isolation) 是指多个事务并发执行时,每个事务都应该感觉不到其他事务的存在,即每个事务执行时的中间状态对其他事务是隔离的,防止出现数据冲突和丢失等问题。
持久性(Durability) 是指事务一旦提交,对数据库中的数据所做的更改就应该永久保存下来,即使发生系统故障也不应该丢失。
一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读两段锁协议。可串行化的。可能发生死锁
两段锁协议。可串行化的。可能发生死锁
6、数据库完整性约束
实体完整性约束是用于确保一个关系表中的每一行都有一个唯一的标识符,这个标识符通常是该表的主键
参照完整性约束是用于确保一个关系表中的外键只能引用另一个表中已经存在的主键
用户自定义完整性约束是指一些特定的约束,例如检查一个字符串是否符合一定的格式,或者检查一个数值是否在某个范围内等等
触发器是一种数据库对象,它会在数据库管理系统中某些指定的事件发生时自动执行一些动作,通常用于实现数据完整性、数据一致性、数据安全等功能
数据库安全
7、数据备份
冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据
(1)静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。(2)静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
(3)动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
(4)动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。
日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
8、数控故障与恢复
9、数据仓库与数据挖掘
- 面向主题
- 集成的
- 相对稳定的(非易失的)
- 反映历史变化(随着时间变化)
决策树
神经网络
遗传算法
关联规则挖掘算法
关联分析:挖掘出隐藏在数据间的相互关系。
序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
分类分析:为每一个记录赋予一个标记再按标记分类。
聚类分析:分类分析法的逆过程。
10、反规范化
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降
技术手段
增加派生性冗余列
增加冗余列
重新组表
分割表
11、大数据
比较难度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
大数据处理系统应该具有的重要特征
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本向下兼容性