数据库

2024-01-10 05:08:27

数据库(4-9分)

课程摘要

数据库模式

三级模式包括外模式、模式和内模式,分别对应视图级别、表级别和文件级别。

  • 外模式是用户与数据库系统的接口
  • 模式是数据库中全部数据的逻辑结构和特征的描述
  • 内模式是数据物理结构和存储方式的描述

对于内模式而言,是定义所有内部的记录类型,索引和文件的组织方式,以及数据控制方面的细节。所以如果对一个表创建聚簇索引,那么改变的是数据库的内模式

骚戴理解:

外模式(用户模式或子模式)------视图

概念模式(模式)----基本表

内模式(存储模式)------存储文件、索引

关系表类型

数据库模式

讲解地址:43-数据库模式_哔哩哔哩_bilibili

三级模式结构

真题

解析

此题考察数据库概念中的数据库三级模式,出自书本6.1.4,属于重点考察内容。三级模式包括外模式、模式和内模式,分别对应视图级别、表级别和文件级别。外模式是用户与数据库系统的接口,模式是数据库中全部数据的逻辑结构和特征的描述,内模式是数据物理结构和存储方式的描述。对于内模式而言,是定义所有内部的记录类型,索引和文件的组织方式,以及数据控制方面的细节。所以如果对一个表创建聚簇索引,那么改变的是数据库的内模式

分布式数据库

分布式数据库的特点

骚戴理解:全局的一致性、可串行性、可恢复性这里可能会出选择题

分布式数据库的组成和结构

分布透明性

骚戴理解:分片透明性是最高层次的透明性,局部映像透明性(逻辑透明):是最低层次的透明性,该透明性提供数据到局部数据库。

两阶段提交协议2PC

真题

真题

真题

真题

讲解地址:44-分布式数据库_哔哩哔哩_bilibili

数据库设计过程

骚戴理解:逻辑结构设计除了和关系模式、规范化理论有关,还和视图、完整性约束、应用处理说明书有关,也就是如果问你视图是哪个阶段的?你得知道是逻辑结构设计阶段的

真题

真题

讲解地址:45-数据库设计过程_哔哩哔哩_bilibili

真题

真题

需求分析阶段

真题

概念结构设计阶段

E-R模型-联系类型判断

概念结构设计

骚戴理解:这里的要知道有哪三种冲突和理解它们的含义

讲解地址:46-概念结构设计阶段_哔哩哔哩_bilibili

真题

骚戴理解:这里一开始我觉得是命名冲突,因为人力部门定义的是员工号和培训师定义的培训师号我觉得是同一个意思的不同命名,但是这里更多的是包含关系,如果是包含关系的话就是结构冲突

逻辑结构设计

骚戴理解:逻辑设计把E-R图转为对应的关系模式

一对一转换

骚戴理解:一对一转换就是把其中一个实体的属性的码和联系的属性放到另一个实体的属性中,俗称双剑合璧,例如上面的厂长的码是姓名,它们的联系是管理,联系的属性是任期,那么就把姓名和任期和工厂的属性合在一起,形成新的关系模式,也就是工厂(厂号,厂名,地点,姓名,任期)

一对多转换

骚戴理解:一对多转换就是把一对应的那个实体的码和联系的属性放到多对应的实体里面即可,例如这里的一是指的仓库实体,多指的是商品,然后把仓库实体的码,也就是仓库号,和这两个的联系-仓储的属性,也就是数量,放到商品里面去,商品原来是货号、品名、价格,现在成了商品(货号、品名、价格、数量、仓库号)

多对多转换

骚戴理解:多对多转换就是把联系单独作为一个新的关系,把对应联系的实体的主键的组合作为这个新关系的主键,同时还要把联系的属性也放进来

真题

骚戴理解:这个题目是每个实体可以转成一个关系模式,然后联系也可以转一个关系,所以是4个

真题

讲解地址:48-逻辑结构设计_哔哩哔哩_bilibili

真题

真题

骚戴理解:这里第54题我是选了A选项,但是如果一个病人总是找一个医生来看病的话,那么通过病历号和职工号是没办法唯一标识一条记录的,所以还要加一个就诊时间才能唯一标识一条记录

讲解地址:2011年上半年第51、52、53、54题_哔哩哔哩_bilibili

真题

真题

骚戴理解:这个题目的54小题我是选了B,因为我觉得电话和联系方式是一个东西,属于命名冲突,这就是搞混淆了,命名冲突出现在E-R图组合里,而这里只是一个自然连接,说白了就是我想太多了

真题

完整性约束

骚戴理解:实体完整性就是主键不能为空,参照完整性就是一个表的外键它可以为空,但是它必须要在另外一个表中找的到,例如员工的部门号是唯一的,这个部门号可以作为员工的外键,然后还有一张部门表,部门表的id就是员工表中的部门号,而员工表的这个部门号必须要在部门表中找的到对应的值,部门号可以为空,因为刚入职的员工会有没有分配部门的情况,自然没部门号

真题

真题

关系模型概念

数据模型

骚戴理解:这里的箭头可以理解为决定的意思,例如学号--->姓名,可以理解为学号决定姓名

讲解地址:47-关系模型基本概念_哔哩哔哩_bilibili

真题

关系模型

骚戴理解:这个主属性的描述有问题,其实说白了就是所有候选键都是主属性,其他都是非主属性

元组就是表中一行数据,属性就是表中的列表名称

关系代数

关系代数运算符

集合运算符

骚戴理解:集合运算符只有差不熟

关系运算符中的投影和选择

骚戴理解:投影就是选中指定的列把他们重新合在一起组成新的关系,如上图中的πA,C(R) 其实就是把A列和C列重新拼在一起组成新的关系(π1,3(R)和πA,C(R) 是等价的,只是说这个是用列号来表示的)

选择就是选中符合条件的指定的行然后把它们拼在一起组成新的关系,如上图的

是选择B列中有5的行然后拼在一起组成新的关系,这里要注意如果是要指定某列的值等于哪个数(像上面的这个)那就要单引号引起来,不然的话意思就变了,61=5(S)指的是s关系表中第一列和第五列相等的那就拼装在一起,这里没有第五列,所以上面用61=3(S)结果是2 3 2,其次特别注意投影和选择的符号别搞混淆

关系运算符中的连接

θ连接

骚戴理解:连接其实就是在两个关系的笛卡尔积中选择符合条件的行,而上面这种连接其实就是用比较运算符来进行比较

骚戴理解:这上面的字母比较是比较26字母先后顺序

等值连接

骚戴理解:等值连接就是笛卡尔积中某一列和另外一列相等就符合要求,然后选择出来就行了

自然连接

骚戴理解:自然连接也是在笛卡尔积的基础上去选择符合条件的行,自然连接是没有选择条件的,不像等值连接,它有条件,然后根据条件去选择,同时自然连接要去重,自然连接的条件是看有哪些公共的属性(其实就是列名一样),像上图明显A和C是两个关系中都有的公共属性,所以就是在笛卡尔积中找R.A=S.A并且R.C=S.C(也就是两个关系职中A和C必须同时相等才是符合要求的,如果有三个公共属性,那么这三个公共属性要求在两个关系中都相同,以此类推),符合这个条件的就找出来

左外连接

右外连接

全外连接

骚戴理解:全外连接是自然连接的结果加左右外连接的结果

逻辑运算符

骚戴理解:这里与和或是用来连接上面选择或者投影的条件的连接词,与就是and,或就是or,或只要两边条件有一方满足就可以了

真题

真题

真题

答案:(55)B (56) A

讲解地址:2009年上半年第55、56题_哔哩哔哩_bilibili

骚戴理解:这样的题目要特别注意区分到底是笛卡尔积还是自然连接,不要混淆了

真题

答案:(51)C (52)A

讲解地址:2012年下半年第51、52题_哔哩哔哩_bilibili

骚戴理解:自然连接的做题技巧:首先找两个关系的公共属性,上图的C和D,所以属性就有5个(原来7个减去重复的2个),也就知道了是几元关系或者几个属性,然后在看笛卡尔积中公共属性是否都相同,这里我是不画笛卡尔积的,直接看,其实就是找两个关系的C和D一样的,好比上面的adce和cebc中C和D都一样(也就是我图上红色框画出来的),所以这一行可拼在一起作为新的关系的一个元祖,组成结果就是adcebc(去重)。这只是其中一个不是最终答案,不知道你们看懂没?反正我是懂了!

真题

讲解地址:2020年下半年第54、55题_哔哩哔哩_bilibili

骚戴理解:完全外连接是自然连接+左外连接新增的+右外连接新增的(如上图的右边一样,完全外连接有6个元组)

真题

骚戴理解:这里我还很自信秒选D选项,笑死,这里要注意自然连接是比笛卡尔积效率更高的,有自然连接就直接在自然连接里面选择,反正记住数据量越少,无论是做笛卡尔积运算还是自然连接运算都是效率越高,只是自然连接效率高于笛卡尔积

真题

答案:D

讲解地址:2016年下半年第56题_哔哩哔哩_bilibili

骚戴理解:这个题目我没搞得太懂,我是理解为R×S的效率是最低的,例如R关系属性值有100,S关系属性值有100个,那么R×S是10000个,然后在这10000个中查询符合条件的那自然效率极低,反而如果范围缩小的去查,那自然效率更高,D选项中在做笛卡尔积运算之前先进行了一次筛选,这样范围就小了,效率就高了

真题

真题

真题

真题

答案:B

骚戴理解:这里要注意如果是公共属性那就必须要指名是哪个关系的,如果不是公共的属性指不指定是哪个关系的都可以,例如这题C和D是公共属性,所以要说清楚是R关系的C还是S关系的C,也就是R.C还是S.C,我最开始选了A

讲解地址:2010年上半年第52题_哔哩哔哩_bilibili

真题

答案:(54)C (55)B

讲解地址:2016年下半年第54、55题_哔哩哔哩_bilibili

骚戴理解:这里我最开始是没懂哪里来的1=5和3=6,这里其实自然连接的条件,要求要公共属性相同才可以,自然连接也是建立在笛卡尔积的基本上,也就是自然链接可以转换成笛卡尔积的写法,其次特别注意如上题的2>7和2>'7'的含义大不相同,2>7表示第二列大于第七列,2>'7'表示第二列的值大于7,加了单引号表示值为7,最后自然连接是要去重的,如果两个关系有重复的列值,一般是保留左边的关系,去掉右边关系中重复的列值

真题

讲解地址:2021年上半年第54、55、56题_哔哩哔哩_bilibili

骚戴理解:这个题目一开始我看见是三个关系我就动不了手,其实这三个表应该都是独立的,也就是这里不像前面的题目一样要你把它们这些关系拼接成一个新的关系,而是让你求拼装的那些条件都是什么?值得一提是自然连接是要求要有公共属性的,所以第二个空在投影的里面必须包含商品号,即必须包含1,所以A是错的,基本上可以看出这样的题目都是用的排除法快速求解(其中汉字一定是要单引号引起来的)

真题

*真题

骚戴理解:这个第二小题有点难度,我一开始把投影和选择搞混淆了,π才是投影

关系代数转SQL语句

投影转SQL语句

选择转SQl语句

笛卡尔积转SQl语句

自然连接转SQl语句

骚戴理解:先把它的关系代数变形为上面等价的笛卡尔积表达式,然后在转SQL

真题

真题

真题

骚戴理解:这里的序列号是合并之后的序列号(因为是自然连接要去重),这个π1,3,6,7是自定义的投影,如果说只是63<6(R?S)转成等价的式子那就是π1,2,3,4,5,8,9(63<6(R?S))

总之就是如果给你指定的字母求对应的数字序列的题目那就是求笛卡尔积序列

如果是给你指定的序列要求对应的字母那就是自然连接后的序列

讲解地址:2013年下半年第51、52、53、54题_哔哩哔哩_bilibili

真题

答案是C D B

骚戴理解:这里特别注意这样的题目如果是自然连接的话,除了去重以外,还有一个隐藏的条件就是重复的列值要相同,例如上面的R.C=S.C和R.D=S.D

讲解地址:2014年下半年第53、54、55题_哔哩哔哩_bilibili

真题

讲解地址:2018年上半年第52、53题_哔哩哔哩_bilibili

真题

骚戴理解:做这样的题目第一要细心看清楚列号对应的属性,第二看清楚是R×S还是R?S,如果是R?S的话那就要去重(也就是去掉重复的属性列,一般是去掉后面关系的重复列,例如R(A,B,C,D)和S(A,B,F,G)那自然连接的结果是R.A,R.B,R.C,R.D,S.F,S.G),可以看到S关系的A和B都去掉了,保留的是前面R关系的A和B

无损连接和保持函数依赖

骚戴理解:这里我一开始怎么也搞不懂怎么判断保持函数依赖,后面我自创了一个画图的方法来做题,能做对题,但是可能这个方法本身原理可能是错误的,不过考试嘛,能快速做对题目才是王道,而不是追根究底!以下面的2009年真题为例,讲解骚戴独家解题方法

回炉重造地址:无损连接和保持函数依赖_哔哩哔哩_bilibili

真题

骚戴理解:以下分析判断是否无损连接和判断是否保持函数依赖的做题技巧

判断是不是无损连接就把分解后的关系进行自然连接,然后和属性集U进行比较,看看有没有少哪个字母,例如A选项,可以看到这三个关系都没有公共的,所以无法进行自然连接,看C选项,R1的AC和R3的AB都有公共的A,所以可以自然连接为ABC,但是ABC和R2的ED没有公共的属性,所以这三个关系自然连接的结果就是ABC,和原来的属性集U相比,很明显缺少DE,所以这个C选项是有损连接,D选项R1的ABC和R3的ACE有公共的属性AC,那么自然连接后就是ABCE,然后和R2的ED也有公共属性E,所以再自然连接后就是ABCDE,和原来的属性集U一样的,所以是无损

判断是否保持函数依赖的方法是画图,例如D选项R1的ABC在图上面的表示就是A、B、C互相连接,这个连接就表示这两个点是互通的,如下所示

可以看到R1的ABC其实就是把这三个点用一根线连接起来,表示ABC这三个点之间是互通的,可以把他理解为三个地方ABC,然后可以从A地方去B地方,也可以去C地方,那么其他的R2和R3同理,在图上画出来后如下所示

然后拿着题目的F函数依赖去这个图里面找,看看能不能走通,例如A->B在图中可以看到A是可以到达B的,再看DE->B,这里要拆分为D->B和E->B,注意了,这个只限于在图中去判断的时候才能这样拆分,它本身是是不符合Armstrong公理系统的,然后去图中看,发现D->E->A->B可以走通,所以D->B没问题,同理,E->B也可以走通,这里你就想象成上面的就是一个地图,字母就是地点,箭头就是路,然后看看能不能从一个地点到达另外一个地点,如果不行,那就说明不保持函数依赖,如果可以就继续,直到把F依赖集的所有的路都走通,这样就很好理解了

同样的画图思路,我也画一个错误的选项图再看看走不走得通,例如C选项,画图如下所示

通样,拿着下面的F函数依赖一个个去看这些地点能不能走通,例如A->B可以走通,DE->B,这里要拆分为D->B和E->B,然后图,发现D地点没法到B地点,因为没有路,除非飞过去,所以这就不保持函数依赖。再补充一点,如果是B->DE这样的函数依赖可以拆分为B->D,B->E,然后同理去看看路走不走得通,最后强调,这个拆分DE->B或者B->DE这样的函数依赖的方式只限于这样的画图中取判断,千万不要和Armstrong公理系统的规则搞混淆了,这是骚戴规则!

真题

骚戴理解:如果主键不是一个组合属性,那么就不可能会有部分依赖,如果关系模式中少于三个元素,那么不可能有传递依赖

真题

真题

真题

骚戴理解:是否保存函数依赖就直接看分解后的两个关系中是否有原来函数依赖集的那些关系依赖,如果没有那就不保持!

讲解地址:2013年上半年第55题_哔哩哔哩_bilibili

真题

骚戴理解:判断是有损连接还是无损连接直接把分解后的关系作自然连接,看看得到的结果是不是跟原来的R一致,如果不一致那就是有损连接,否则无损连接,在这里的自然连接就是把分解后所有关系的属性列合在一起去个重就可以了,例如上面的把分解后的两个关系中的属性列合在一起是A1A2A1A3,A1重复,去重后是A1A2A3,跟R对比少了A4,是有损连接,这里要注意自然连接是必须要两个关系有公共的属性自然连接才有值,否则就是空集,例如上面的都有公共属性A1,所以自然连接不是空集,但如果是(A1,A2),(A3,A4)这样的就没有公共属性,自然连接就是空集,如果多个关系自然连接,只要有一个自然连接结果是空集,那就整个关系自然连接的结果都是空集

讲解地址:2015年上半年第52题_哔哩哔哩_bilibili

真题

讲解地址:2017年下半年第54、55题_哔哩哔哩_bilibili

函数依赖

骚戴理解:

  • 完整函数依赖就是一个组合里的任何真子集不能够决定依赖关系,例如(学号,课程号)----->成绩这是一个组合关系的函数依赖,表示学号和课程号两个一起决定成绩,这其中任何子集不能单独来确定这个依赖关系,例如学号不能单独决定成绩,课程号也是不能单独决定成绩,这就是完整函数依赖,如果不是一个组合,就是一一对应的函数依赖关系那一定是完整函数依赖,例如学号---->姓名这样的就是完整函数依赖,它不是一个组合,(学号,课程号)----->成绩这样的才是一个组合,这里还要理解真子集的含义,例如(A,B,C)的真子集有(A),(B),(C),(A,B),(A,C),(B,C)跟数学里的概念是一样的
  • 部分函数依赖就是一个组合里任意真子集能够决定依赖关系,例如(学号,课程号)---->姓名这个组合关系的函数依赖中,单一个学号就能够决定姓名了,也跟就不需要课程号,所以这就是部分函数依赖

Armstrong公理系统

骚戴理解:除了记住这些规则以外,还要知道这些规则叫什么,叫合并规则还是分解规则,还是其他的啥规则

真题

讲解地址:52-Armstrong公理系统_哔哩哔哩_bilibili

真题

候选键

骚戴理解:如果只有一个候选键那就是主键,有多个候选键那就挑一个做主键,这里看不懂就直接看下面的题目的做题技巧

真题

骚戴理解:这里主要是之前我有个误解,我觉得AC如果是候选键的话那AC是一个整体,不能用C--->B这个依赖关系,事实上可以直接用

做题技巧:但凡出现在箭头右边的都不可能是候选键,例如上面这题箭头右边有B和C,那直接排除,剩下一个A,也就是这个A一定是候选键或者候选键中一定要有A,然后发现A不能单独推出U,所以就试一下AC和AB能不能推出,然后主属性是指候选键包含的属性那就是主属性,例如上面的AC和AB为候选键,那主属性就有ABC

讲解地址:2011年上半年第55、56题_哔哩哔哩_bilibili

这些题目在我没听这个博主的课之前是完全不会做,但是现在我都会做,所以后面题目都是没听直接做的,就不会有什么笔记,讲解地址就放这一个,顺序跟视频题目顺序是一样的,以此类推,不懂直接去听讲解

真题

骚戴理解:这个题目考软设的时候没有见过,也从来没有通过画图去看能推导出什么关系,现在发现通过画图来看能推导什么关系不要太简单,这个图是根据依赖集画出来的,例如A1->A2A5,那就画成A1分别指向A2和A5的箭头,其实就是转成有向图,同理,其他的也一样,图画好后,直接去拿选项一个个从图中判断,例如A选项的

A5->A1A2,就直接从图上面看,从A5出发,有没有箭头直接或者间接指向A1和A2的,从图看出,A5连指出的箭头都没有一个,所以A选择明显错了,C选项A3->A2A4, 直接看A3有没有箭头直接或者间接指向A2和A4的,课看到A3直接指向A2,并没有直接指向A4,但是A3->A2,A2->A4,通过传递性,那么A3->A4,所以C是对的,其他选项一样的道理,我就不一一推导了,这可比拿着那几个破公式去硬生生的推导容易了几万倍,我都不知道拿公式怎么推导,无从下手

真题

骚戴理解:这两个题目应该是同一个意思,只是题目1用闭包的形式展示出来而已

真题

真题

真题

骚戴理解:某个关系的主键为全码,那这个关系的主键就是它所有属性组合在一起,例如上面的主键就是HLMP

真题

真题

骚戴理解:这里的什么是冗余的这个我是第一次见到这样的题型,我的做法是直接把对应的选项去掉看能不能用A1这个主键去推出对应的U,如果可以那就是冗余的,一个个试,试出C是多余的,在F中去掉C选项的这个函数依赖照样退出U

真题

真题

骚戴理解:这里可以立马确定A1,但是单独A1推不出来U,所以直接快速排除没有A1的候选键直接选C,都不用一个个试了,候选键必须包含A1

真题

骚戴理解:第二题中用到了那个推理规则,A-->BC那么就可以得出A-->B,A-->C,这是分解法则,经常用到,需要掌握的,然后看看有没有A-->B,B-->C这样的的,因为这样可推出A-->C,这里用公式去推导很抽象,建议用上面教的骚戴画图法则去做,很快可以得出正确答案!

真题

骚戴理解:这里注意AC-->D是不能拆了,如果是 AC-->DE的话应该可以拆成AC-->D和AC-->E

真题

真题

讲解地址:2021年下半年第52、53题_哔哩哔哩_bilibili

骚戴理解:这里主要是第二题有个推理的过程,A和B我是推理出来了,然后C选项是可以推出A1-->A4和A2-->A4,然后就得出A1A2-->A4,这个的话在推理原则里并没有这条,所以只是可以这样理解,相比D选项压根推不了,所以这里选择最优解为D选项,总体来说题目不严谨,直接骚戴画图法则秒选D选项

范式判断

讲解地址:53-范式判断_哔哩哔哩_bilibili

第一范式

骚戴理解:上面这个是不符合第一范式,因为它的工资可以再进行细分,要符合第一范式那就变成下面这样就可以了

第一范式存在的问题

骚戴理解:第一范式说白了就是看属性列表能不能在继续分,能继续分那就不符合第一范式,然后第一范式会有数据冗余和更新异常(包括修改,删除,插入异常)这些问题并存在部分函数依赖

  • 数据冗余容易理解,例如上图画出来的可以看出是内容是一样的,那就重复了很多次这就是数据冗余
  • 更新异常中的修改异常,好比修改红色框中的张三为张四,那就必须把所有的张三都改成张四,如果只改一条就会出现问题,查询学号为001的数据的时候那姓名可能是张三也可能是张四,这就是修改异常
  • 更新异常中的删除异常,好比删除高等数学这个课程名,但是上面这个表中要删除高等数学这个课程名那整一条数据都会被删除掉,也就是孙七这条记录都删除了,而我只是想删除这个课程,这就是删除异常
  • 更新异常中的插入异常,好比我只是想要插入一个学生的信息是插入不成功的,因为上面这个表中主键是学号和课程号,由于主键的完整性约束,不能为空或部分为空,无论是单独插入学生信息还是单独插入课表信息都是插入失败,必须两个都插入才能成功,这就是插入异常

第二范式

骚戴理解:第二范式是在第一范式的基础上解决了部分函数依赖的问题得来的,第二范式要求每个非主属性都完全依赖于候选键,上面的例子中候选键是学号和课程号,所以学号和课程号都是主属性,其他的都是非主属性,例如姓名是非主属性,由于姓名是由学号决定的,跟课程号毫无关系,所以姓名只是部分依赖于候选键,因此不符合第二范式的要求,但是符合第一范式

关系模式分解

骚戴理解:前面说的那个例子符合第一范式不符合第二范式,只要消除了部分函数依赖就能够转为第二范式,往往都是通过分解关系来实现消除部分函数依赖的,例如上面的把前面的关系分解成三个关系后就都满足于完全函数依赖(也就是把一个表分解为三个表),所以它是符合第二范式的

回炉重造地址:关系模式分解消除部分函数依赖_哔哩哔哩_bilibili

第二范式存在的问题

骚戴理解:第二范式只是解决了第一范式的部分函数依赖问题,但是数据冗余和更新异常没有完全解决,因为存在传递函数依赖,例如上面的 学号-->学院,学院-->院长,得出学号-->院长

第三范式

骚戴理解:第三范式是在第二范式的基础上,并且消除了非主属性的传递依赖问题得到的,原来学号-->学院,学院-->院长,得出学号-->院长这是传递依赖,一般把后面的那个关系直接给拿出来单独作为一个关系,例如这个传递依赖中把后面的学院-->院长从原来的关系中抽离出来作为一个新的关系就可以解决传递依赖这个问题了

第三范式的问题

第三范式只是解决了第二范式的传递函数依赖问题,但是数据冗余和更新异常没有完全解决,因为存在主属性对候选码的部分依赖和传递依赖

骚戴理解:例如上图就是存在主属性对候选码的部分依赖这个问题,在F函数关系依赖中,红色画出的就是存在主属性对候选码的部分依赖的问题,因为候选码是(书店和图书)。而它书店就能够推出店长,跟图书没啥关系,所以存在部分依赖

回炉重造地址:第三范式和消除传递函数依赖_哔哩哔哩_bilibili

BC范式

骚戴理解:BC范式是在第三范式的基础上解决了存在主属性对候选码的部分依赖和传递依赖这个问题,同时还消除了插入和删除异常,下面就是把上面的表再进行分解,解决了存在主属性对候选码的部分依赖和传递依赖这个问题从而到达了BC范式

回炉重造地址:消除主属性对候选码的部分、传递函数依赖_哔哩哔哩_bilibili

第四范式

回炉重造地址:第四范式_哔哩哔哩_bilibili

总结范式

骚戴理解:

1、一般软考中的相关题目是都符合第一范式的,不需要考虑

2、判断非主属性是否对候选键存在部分函数依赖,说白了就是看非主属性能不能只靠候选键的一部分就可以推理出来(靠候选键组合中任意一个主属性就可以推出那个非主属性的就不是第二范式,但是如果是组合中其中一个和其他非主属性组合在一起推出非主属性的那就没问题)

3、看有没有传递依赖,存在传递依赖不符合第三范式

4、看主属性对候选码有没有传递依赖或部分依赖,也就是主属性可以由候选码中任意一个就推出来那就不符合BCNF范式

5、看有没有多值依赖,并且多值依赖的左边是码,例如A->B,A->C,并且A是码,那就符合第四范式

6、最后得直到只有达到BCNF或者4NF范式的时候才能消除更新异常和冗余数据的问题

7、整个判断里面考的简单一些的就是考到第三范式,第三范式到BCNF范式以及BCNF范式到第4范式就不好判断了,难度就大了

做题技巧

骚戴理解:首先知道软考的相关这类题都是符合第一范式的,所以可以直接判断是否符合第二范式,判断第二范式首先要知道这个关系的候选键是什么?这是为了知道哪些属性是主属性?哪些是非主属性?这个例题中零件号和供应商的组合属性是候选键,所以主属性是零件号和供应商,其他都是非主属性,然后判断非主属性是否对候选键存在部分函数依赖,说白了就是看非主属性能不能只靠候选键的一部分就可以推理出来(靠候选键组合中任意一个主属性就可以推出那个非主属性的就不是第二范式,但是如果是组合中其中一个和其他非主属性组合在一起推出非主属性的那就没问题),例如零件名称是非主属性,根据函数依赖关系,零件号-->零件名称,可以看出这个非主属性只需要零件号就能推出来,跟候选键中的供应商没屁关系,所以就是存在部分依赖,不符合第二范式!所以是第一范式!

骚戴理解:候选码是EM,所以主属性是E和M,非主属性是N,Q,L,然后去函数依赖集里看非主属性能不能只靠候选键的一部分就可以推理出来,发现E可以直接推出N,不需要M,也就是我所说的只靠候选键的一部分就可以推出某个非主属性,所以不符合第二范式,应该是第一范式!

骚戴理解:候选键是学生和时间的组合,主属性就是时间和学生,非主属性就是课程,教师,成绩,教室,这些非主属性都不能由候选键的部分推理出来,所以符合第二范式,然后在判断符不符合第三范式

骚戴理解:这里由于存在传递函数依赖,所以不符合第三范式,挺难搞的这个题,它用到了伪传递原则,然后可以推理出(时间,学生)时间-->课程这个关系,由于这两个时间是一样的所以去掉一个后最终是(时间,学生)-->课程,然后课程-->教师,所以得到(时间,学生)-->教师,这是传递函数依赖,因此不符合第三范式,所以可以看出其实就是把那些关系通过那些原则去变形,挖掘其中隐藏的关系,看看有没有存在传递函数依赖的,有就不符合第三范式

回炉重造地址:判断传递函数依赖技巧_哔哩哔哩_bilibili

真题

*真题

骚戴理解:这里我是看存不存在主属性对候选码的部分依赖或传递依赖来判断能不能达到BC范式,对于R2关系来说,主属性是学生和课程,非主属性是成绩,候选键是学生和课程的组合,可以看到候选键中是包含主属性的,所以不存在主属性对候选码的部分依赖,就一个函数关系依赖,也不存在主属性对候选码的传递依赖,所以满足BC范式,第四范式主要是看存不存在多值依赖,所谓的多值依赖就是一个属性决定很多个其他属性,例如A-->B,A-->C,A-->D,这里一个A决定了BCD三个属性,也就是多值依赖

讲解地址:2010年下半年第54、55、56题_哔哩哔哩_bilibili

真题

真题

真题

真题

真题

骚戴理解:这里分享一个判断第二范式的技巧,找到主属性A2和A5后,那么其他都非主属性都知道了,直接看非主属性是怎么得到的?如果是由单独的一个A2或A5就能得到那就不符合第二范式的要求,例如上面题目的A1是由A5和A6一起得到的,所以这个A1是不存在部分函数依赖的,如果说上面关系中有A5-->A1,那就存在部分函数依赖,同理,再看A3是由A1得到的,跟A2和A5没屁关系,所以也不存在部分函数依赖的,总之,只有非主属性是靠单独的一个主属性就能推理得到的那就是存在部分函数依赖,不符合第二范式,其他都是不存在部分函数依赖的

*真题

骚戴理解:这个题目跟前面做的不一样,它并没有给函数依赖关系,而是直接给了个表,首先不要慌,可以看到每一列都有重复的,所以一定是一个组合的候选键,这里选员工号和家庭成员组合为候选键,为什么不选成员关系呢?因为成员关系中可能会有多个兄弟姐妹,所以主属性是员工号和家庭成员,然后姓名是可以直接由员工号推出,存在部分函数依赖,不符合第二范式,主要是分解表怎么分解?自己看视频去

讲解地址:2009年上半年第52、53、54题_哔哩哔哩_bilibili

*真题

骚戴理解:这里我第一想法是分解成A选项,但是当我看到库存量的时候我发现单靠一个供应商决定不了,所以A选项是有问题的,库存量应该是由零件号和供应商组合决定,所以C选项没问题

讲解地址:2010年上半年第56题_哔哩哔哩_bilibili

*真题

讲解地址:2016年上半年第54、55、56题_哔哩哔哩_bilibili

关系模式的规范化

非规范化存在的问题

讲解地址:50-非规范化存在的问题_哔哩哔哩_bilibili

并发控制

事务四大特征

并发产生的问题

封锁协议

讲解地址:55-并发控制_哔哩哔哩_bilibili

真题

真题

数据库的安全性

真题

讲解地址:56-数据库的安全性_哔哩哔哩_bilibili

数据库备份与恢复技术

数据备份

讲解地址:57-数据库备份与恢复技术_哔哩哔哩_bilibili

真题

真题

数据库性能优化

讲解地址:58-数据库性能优化_哔哩哔哩_bilibili

无家可归

真题

真题

真题

真题

解析

此题考察嵌入式数据库的相关概念,出自书本16.2.3节,属于偏门题。基于网络的数据库系统主要由客户端、通信协议和远程服务器三部分组成,其中客户端提供接口给嵌入式程序,在逻辑上看作远程服务器的一个客户端。通信协议规范客户端与远程服务器之间的通信。远程服务器维护服务器上的数据库数据。基于文件的数据库一般采用文件方式存储数据库数据,即按照一定格式储存在磁盘中。D选项的说法错误,因为其所描述的是基于文件的数据库的特点,而非基于网络的数据库系统。

真题

解析

此题考察嵌入式数据库的相关概念,出自书本16.2.3章节。嵌入式数据库管理系统(EDBMS)就是在嵌入式设备上使用的DBMS。由于用到EDBMS的嵌入式系统多是移动信息设备,例如,掌上电脑、PDA、车载设备等移动通信设备,位置固定的嵌入式设备很少用到,因此,嵌入式数据库也称为移动数据库或嵌入式移动数据库。EDBMS的作用主要是解决移动计算环境下数据的管理问题,移动数据库是移动计算环境中的分布式数据库。嵌入式数据库管理系统一般只提供本机服务接口且只为前端应用提供基本的数据支持,支持多线程并发操作。

文章来源:https://blog.csdn.net/qq_50954361/article/details/134761380
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。