【高级系统架构师】第三章 数据库系统
数据库系统 在软考中,一般有3-5分,还有下午的案例分析也有12分。这个章节难度很大,还需要懂点基本的数学知识。
主要考点: 数据库模式、ER模型、关系代数(最难)、规范化理论,数据库完整性约束、分布式数据库、数据仓库和数据挖掘
思维导图如下:
1、抽象级: 用户数据库(外模式)、概念级数据库(概念模式),物理级数据库(内模式)
个层次 | 外模式 | 对应视图 |
概念模式 | 数据库中的关系表 | |
内模式 | 涉及存储结构,有索引和文件 | |
两层映像 | 概念模式-内模式 | 存储结构变化,不用修改应用程序 |
外模式-概念模式 | 关系表变化,不用修改应用程序 | |
两个独立性 | 逻辑独立性 | 数据库的视图和基本表之间 |
物理独立性 | 基本表与存储文件之间 |
2、ER模型(下午的案例分析必考)
ER图来自需求分析,从数据库设计角度出发,主要是概念阶段设计。
分为三个要素:实体(矩形框,标注实体名称)、属性(椭圆形,与实体连接起来),实体之间的联系(菱形框表示,框内标注联系名和联系类型)、
本章节会重点考如何解决冲突和实现关系。 要注意一点:有始有终,确保流程走完
3、数据库设计
数据库设计 | 需求分析 | 数据字典、数据流程图、需求说明书 |
概念结构设计 | ER模型 | |
逻辑结构设计 | 依据三大范式,设计关系模式 | |
物理设计 | 结合数据库管理系统(mysql)和硬件,设计出数据库物理模式 |
3、关系代数(这个章节,最难,每次都选C)
并 | S1∪S2 | 合并两个关系模式并去重列 |
交 | S1∩S2 | 取S1和S2两个关系模式都有的部分 |
差 | S1⁻S2 | 在S1中但不在S2中。把S1含有S2的部分给删除 |
笛卡尔 | S1×S2 | 属性列数s1+s2 穷举出来 |
投影 | π3,1(S1) | 做列的投影 |
选择 | δ1=4(R) | 根据条件进行筛选 |
自然链接 | R⋈S | 找出S1和S2的公共字段,根据相同字段做等值连接,同时去掉重复的列 |
4、规范化
函数依赖 | 指定X,一定有唯一的Y与之对应。比如学号可以唯一确定姓名,姓名不可以唯一确定学号 |
部分函数依赖 | 某一属性依赖主键中一部分的时候就是部分函数依赖。 |
传递函数依赖 | A确定B,B确定C,从而A可以确定C。就像学号可以确定系号,系号又可以确定系名,于是学号可以确定系名。 |
超键 | 唯一标识元祖。它的要求比候选键和主键更宽松。 |
候选键 | 在超键基础上消除冗余属性。比如学号和姓名的组合键可以唯一标识元祖,但它有冗余属性所以不是候选键而是超键。 |
在有向图中,从入度为零的节点出发可以遍历到所有的结点的话,那么我们就说这个入度为零的结点是候选键。 | |
主键 | 学号和身份证号都是候选键,任选其一就是主键,而学号加身份证号作主键是不合适的。 |
国家总统候选人有多个,但最后的总统只可能有一个。 | |
外键 | 是其他关系的主键。关系表需要通过连接去判断,所以外键是必须要有的。 |
第一范式 | 只包含原子值。属性都是不可再分的数据项。比如把高级名称拆分为教授和副教授就是第一范式的应用。 |
第二范式 | 在第一范式的基础上,每一个非主属性完全依赖于主键。消除非主属性对候选键的部分依赖。 |
存在部分依赖会有数据冗余的问题,还有插入和删除异常的问题。 | |
第三范式 | 消除非主属性对候选键的传递依赖 |
BC范式 | 消除主属性对候选键的部分和传递依赖 |
每个属性都不部分依赖于候选键也不传递依赖于候选键,那么称R是BC范式 | |
R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。 |
|
派生属性 | 单价和数量可以确定总价,这个就是派生属性的应用。还有出生年月和年龄之间就有派生关系。 |
多值属性 | 一张关系表中家庭成员有多个,它就是多值属性。 |
待续。。。。