【系统分析师之路】第十五章 数据库系统记忆敲出
系统分析师数据库系统记忆敲出
-
- 【系统分析师之路】第十五章 数据库系统记忆敲出
-
- 一. 数据库的三级模式和两层映射
- 二. 关系代数
- 三. E-R模型
- 四. 局部ER图集成整体ER图时可能产生的问题
- 五. 函数依赖
- 六. 数据库设计过程
- 七. 范式
- 八. 规范化理论的价值和用途
- 九. 规范化理论中的键
- 十. 数据库的完整性约束
- 十一. 分布式数据库与联邦数据库
- 十二. 数据库备份
- 十三. 数据库安全
- 十四. 数据库的恢复
- 十五. 反规范化
- 十六. 数据库中事务的概念和特点
- 十七. 数据库的并发执行中的问题
- 十八. 数据库并发控制
- 十九. 并发控制再认识
- 二十. 数据库的优化
- 二十一. NoSQL
- 二十二. 数据仓库和数据挖掘
- 二十三. 保持函数依赖的分解,有损无损分解
- 二十四. 大数据
- 二十五. 内存数据库
一. 数据库的三级模式和两层映射
数据库系统其实也是层次结构的系统。它分为三层分别是外模式,模式和内模式。外模式对应视图,概念模式对应关系表,内模式对应数据处理物理存储。而两级映射分别指外模式到模式的映射,以及模式到内模式的映射
把数据库系统做成层次结构有一点好处,就是当修改一个层次的时候,只影响相邻的层次,不是相邻的层次不会受到影响。
比如我们修改了关系表,如果应用系统只是利用视图来获取并表示数据的话,只修改关系表不修改视图,那么是不会影响的到应用程序的。
二. 关系代数
在数据库原理里面,常用的关系代数有并交差笛卡尔积,投影选择和连接等。
关系模式A和B并就是A和B并在一起并除去重复的部分。
关系模式A和B交就是取A和B之间的交集,也就是将两个关系模式中都有的部分搞成一个新的关系模式。
关系模式A-B的差集就是,选出A中独有的部分,也就是关系模式A减去AB之间的交集得到。
笛卡尔积:就是两个关系中所有的元素相乘的操作。
投影:按列投影。用一个派的符号来表示,投影可以简单理解为选列的操作,投影中的数字就是代表要选择的列的No。
选择:按行选择。根据选择的条件在行中选出满足这个选择条件的行的操作。选择的符号很像蜗牛的形状。
连接:可以理解为净化版的笛卡儿积的运算,它显示将两个关系模式S1和S2进行笛卡儿积的运算,然后使用选择运算筛选出我们要的行,去掉重复的行;再在此基础上执行投影操作,去掉我们不需要的列。最后得到的就是连接在结果。连接一般使用两个争锋相对的三角形符号来表示,在这对三角形的下面一般要写上连接的条件,不写条件的情况下它就是自然连接的操作。
笛卡儿积和自然连接的区别在哪里?
笛卡儿积不会把公共的部分给去掉,而自然连接会去掉公共的部分。
三. E-R模型
在ER模型中,我们会使用方框表示实体,菱形表示联系,椭圆表示属性。
ER图中有三种关系:1对1,1对多,多对多;在概念模型转化为关系表的时候就会涉及到联系的转化。
针对1对1的联系,联系可以放在两个实体的任意的一边;
针对1对多的联系,联系必须放在对多的那个实体的那一边;
针对多对多的联系,联系需要单独地做成一个关系表了。学生-选课-课程就是一个经典的多对多关系。
四. 局部ER图集成整体ER图时可能产生的问题
ER模型集成的方式有两种,一种是一次性集成,另外一种是逐步的集成。
在集成ER图的过程中,难免会遇上冲突,这里所说的冲突有三种:属性冲突,命名冲突和结构冲突;
1)属性冲突
属性冲突比较好理解,对于同一属性来说,比如性别,有的地方使用1和0来记录,也有直接记录汉字男和女,那么这个时候就有了属性的冲突;
2)结构冲突
结构冲突,有的关系表的表名叫教师表,而在另一个地方出现教师这个属性,那么这个时候就是结构冲突;
3)命名冲突
老师在教职工表中是职工,在其他表中是老师,这个就是命名冲突;
五. 函数依赖
学号可以函数依赖确定姓名,但是姓名却无法通过函数依赖的方式来确定学号;因为姓名有重名,重名的姓名无法唯一确定他的学号。这就是函数依赖。函数依赖包括了部分函数依赖和传递函数依赖两种。函数依赖是范式,规范化理论的基础。
比如我们可以使用学号和课程号决定姓名,但其实即使没有课程号只有学号的场合下,就可以确定姓名了,这就是部分函数依赖。
A能函数确定B,而B又可以函数确定C,只要B不能函数确定A,那么我们就说A传递函数依赖于C。
六. 数据库设计过程
数据库的设计分为四个阶段,首先要对数据库进行需求分析,明确范围的边界,它的主要产出物是数据字典,数据流图和需求说明书;然后进行概念结构设计,该阶段主要产出物就是ER图;第三步进行的是逻辑结构的设计,主要就是把ER图分解为一个个的数据库中的关系模式表;最后进行的就是物理设计,在这里需要参照的是OS特征,硬件特征以及DBMS的特征。
规范化理论转换规则都是在逻辑结构设计时需要考虑的东西。
在实际工作中,我们进行概念模式设计的时候,往往不会一气呵成地画出一张整体的ER图,而是使用了先局部再合并为整体ER图的方式来进行概念结构的设计。
七. 范式
第一范式:所有的属性都已经是原子,不可以再往下拆分。高级职称人员可以进一步拆分为教授和副教授,这就不满足第一范式。
第二范式:满足第一范式而且消除了非主属性对主属性的部分函数依赖。要知道单个主属性的情况下是不可能存在函数依赖的。
第三范式:消除了非主属性对主属性的传递依赖。
BC范式:消除了主属性对于候选键的传递依赖。如果一个关系模式中没有非主属性,也就是说所有的属性都是主属性,那么就肯定都满足第二第三范式。再在这个基础上判断是否是BC范式,先画出所有的函数依赖关系,BC范式要求所有函数依赖的左边都是候选键才可以。
八. 规范化理论的价值和用途
在非规范化的模式中,可能存在下面的问题:数据冗余,更新异常,插入异常,删除异常,我们对关系数据库进行规范化的时候,其实就是解决这些冗余和异常而做的。
规范化到什么一个程序其实是没有一个统一的标准的,也没有说一定要规范化到第几范式样之后才算OK的说法,但是任何事物都有物极必反的道理,有规范化当然也有逆规范化的存在;规范化程度越高,在进行关系数据库查找时势必要进行大量的自然连接操作,性能也会为此大打折扣,但是如果有数据冗余,就可以较少量的自然连接,也就有更加快的查找速度了。这也就是为什么会有逆规范化的存在的理由。
九. 规范化理论中的键
在规范化理论中有超键,候选键,主键和外键这四种。
外键最容易区分和理解,外键是其他关系表的主键,是用来做表与表之间的连接用的
超键是可以唯一标识元祖的键
候选键其实和超键一个意思,只是候选键在超键的基础上除去了冗余属性
而主键就是从候选键中选出来的一个键,用来作为主属性定义数据库中关系表的,如果一个关系模式中后选键是唯一的,那么主键就是候选键。
比如学号姓名可以确定性别,那么学号和姓名的组合就是超键,但在这个关系中姓名是可有可无的,没有姓名同样学号也可以确定性别,于是在这里候选键就是学号,姓名是冗余的属性。
十. 数据库的完整性约束
完整性约束有实体完整性约束,参照完整性约束和自定义完整性约束三种。有些复杂的数据库完整性约束,可以通过触发器去实现。
实体完整性就是说每一个关系模式都必须要有主键,主键不能为空

本文详细探讨了数据库系统的各个方面,包括三级模式、关系代数、E-R模型、函数依赖、数据库设计过程、范式理论及其价值、完整性约束、分布式与联邦数据库、备份与恢复策略、安全性及并发控制。同时,介绍了反规范化、事务特性、并发执行问题及解决办法,并深入讨论了NoSQL、数据仓库、数据挖掘和大数据的概念。最后,概述了内存数据库的优势,揭示了数据库领域的广泛性和深度。
最低0.47元/天 解锁文章

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



