【软件设计师03】数据库系统
数据库系统
重点章节,上午下午题都有考察;规范化理论、关系代数必考
数据库模式、ER模型、关系代数与演算、规范化理论、并发控制、数据库完整性约束、分布式数据库、数据仓库与数据挖掘
1. 三级模式 - 两级映射
内模式:和物理层次数据库直接管理,负责管理数据的存储方式。
概念模式:对应数据库的“表”,根据业务应用分成若干张表,表之间有相应关联
外模式:对应数据库中的“视图”,使用户在对数据的控制上有了更多的手段,为了更灵活的处理方式。例如一些敏感信息可以进行过滤,或者在用户登录时只给予用户密码等基础信息给登录模块用,在用户信息模块不包含用户密码等;将一些字段组合成一个表整合成视图。
外模式 - 概念模式映射:即表与视图之间的映射关系
概念模式 - 内模式映射:即用户想改变存储结构,可以调整这种映射关系,而不需要修改用户应用程序。
2. 数据库设计过程
3. E-R模型
矩形-实体、椭圆-属性、菱形-联系
不会的回炉重造
4. 关系代数
主要出现在综合题里面选择题形式,一般给一个关系代数表达式找出与之等价的关系代数表达式,或者一个业务场景要完成什么职能写出关系代数表达式。
并、交、差、笛卡尔积、投影、选择、连接
并、交、差
s1-s2即s1中存在s2中不存在的部分
笛卡尔积
所有字段组成一张表,两个每一条记录之间进行排列组合;即属性数等于属性只和,记录数等于记录数之积。
投影、选择
是指定列的数据的操作;
是根据条件选择指定行
有时用数字来表示:Π1,2即1,2两列,σ1=No003即Sno=No003
连接
将相同的字段只保留一个;S1.Sno=S2.Sno;
如果没有写连接条件则是自然连接,对相同的字段进行等值过滤,相同字段保留时以左边为主保留;在下面两个关系表S1、S2中即只有Sno字段相同,根据它来判断。
5. 规范化理论 - 函数依赖
部分函数依赖:主键是两个属性的组合建,主键中一部分可以确定某个属性,则为部分函数依赖。
传递函数依赖:A -> B, B -> C 则可确定 A -> C
6. 规范化理论 - 价值与用途
在非规范化的关系模式中,可能存在的问题包括:数据冗余,更新异常,插入异常,删除异常
7. 规范化理论 - 键
超键、候选键、主键、外键
超键:唯一标识元组(一行记录),可以是多个属性,可以存在冗余属性
候选键:特殊的超键、在超键的基础上消除多余的冗余属性
主键:只能有一个
外键:其他关系的主键、表关联
图示法求候选键:
(1)将关系模式的函数依赖关系用“有向图”的方式表示
(2)找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能遍历图中所有结点,则该属性集即为关系模式的候选键。注:入度即为第一个只有指向箭头,没有被指箭头的属性
(3)若入度为0的属性集不能遍历图中所有结点(或没有入度为0的属性),则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,该集合即为候选键
1.A 2.ABCD 3.B
8. 规范化理论 - 范式
随着范式等级的提高,规范程度就会越高,数据表的拆分也将越来越细,而数据表拆分过细会造成性能方面的问题,因此,我们通常对范式的等级采取折中的方式,即做到三级范式。
第一范式:在关系模式R中,当且仅当所有域(列的取值范围,如性别的取值范围就是男和女)列的取值范围只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式
第二范式:当且仅当R是1NF,且每一个非主属性完全依赖(即:主键中的所有属性共同作用才能决定该属性)主键(且不存在部分依赖)时,则称R是第二范式
第三范式:当且仅当R是2NF,且E中没有非主属性传递依赖于码时,则称R是第三范式
BC 范式:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每一个依赖的决定因素必定包含R的某个候选码
如图:主属性即为构成候选键的属性,在该关系图中,ST和SJ都是候选键,因此,S,J,T三个属性都属于主属性
判断下图是否为BCNF:SJ,ST都是候选码
当SJ为候选码,存在依赖 SJ -> T
当ST为候选吗,存在依赖 T -> J,此依赖的决定因素是T不包含候选键ST,所以还没有达到BCNF
例题:C、D、A
9. 规范化理论 - 模式分解
详细解释:https://blog.csdn.net/a2272062968/article/details/116518009
例题:无损分解
10. 并发控制
1.一级封锁协议:事务T在修改数据R之前必须先对其加X(写锁或排他锁)锁,直到事务结束才释放。可防止丢失修改,该锁可以使得除了T以外的所有事务将不能访问R,而事务T则可以阅读或者修改R
2.二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S(读锁或共享锁)锁,读完后即可释放S锁。可防止丢失修改,还可防止读"脏"数据,该锁的作用是,所有的事务都可以访问R,但包括T在内的所有事务都不能修改R
3.三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,防止读"脏"数据与防止数据重复读
4.两段锁协议:可串行化(通过加锁解锁两个阶段使并发事务排队进行)的。可能发生死锁
11. 完整性约束
实体完整性:给数据表定义主键
参照完整性:即外键中的约束,如果表中有外键,该外键值只能为对应表中的主键内容,或者为null
用户自定义完整性:用户可以设置属性值的要求,如不能为负数
触发器:可以写脚本约束数据库,设置更复杂的约束逻辑
12. 数据库安全
13. 备份与恢复
备份
故障与恢复
14. 数据仓库与数据挖掘
数据仓库
数据仓库是一种特殊的数据库;数据库系统在刚刚建立时运行速度很快,但随着时间的推移,其存储的数据量越来越大,速度也将逐步下降,而为了提高速度,人们会优化存储,通常采用删除较久远历史数据来进行优化,而这些数据仍然具有部分价值,因此我们会专门用一个数据库来对其进行存放,而用来存放这种数据的数据库并不需要插入,添加,修改等操作,更多的操作是查询,因此我们将这种特殊用途的数据库称之为数据仓库
数据仓库的特点:
面向主题:不同与一般数据库的面向业务,数据仓库的数据是面向主题的
集成性:数据仓库会存储诸如月报表,周报表等集成式的数据,而普通数据库并不会这么干
相对稳定性:进去的数据将不会进行修改,删除等操作
反映历史变化(随着时间变化):隔一段时间会将数据导入进来
首先是从数据源中抽取,清理(使数据格式一致),装载(放到数据仓库中),刷新(定期向仓库中添加数据);数据集市即部门级的数据仓库,因为数据仓库的建立从企业全局的战略上讲具有非常大的风险,因此只建立部分数据库最后再将其整合则会降低风险,而其中部门级的数据库则称为数据集市
OLAP服务器的概念:即联机分析处理服务器,专门做分析处理工作的,最表层是数据的前端工具,前端工具最普通的如查询工具,报表工具,分析工具以及比较独特的数据挖掘工具
数据挖掘
15. 反规范化
由于规范化会使表不断拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增删改的速度,但会增加查询的工作了。系统需要进行多次连接,才能进行查询操作,使系统效率大大下降。
技术手段:增加派生性冗余、增加冗余列、重新组表、分割表