计算机中级-数据库系统工程师-关系数据库设计基础知识

张开发
2026/4/21 3:16:48 15 分钟阅读

分享文章

计算机中级-数据库系统工程师-关系数据库设计基础知识
一、关系数据库设计基础知识1. 函数依赖1定义定义关系模式定义设R(U)是属性集U上的关系模式X、Y是U的子集。若对R(U)的任何一个可能的关系rr中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等则称X函数决定Y或Y函数依赖于X记作X→Y。判断方法对于任意两个相同的X所对应的Y一定是相同的。例如学生关系中学号可以决定姓名因为相同学号对应的姓名必定相同但姓名不能决定学号因为可能存在同名不同学号的情况。语义特性函数依赖是语义范畴的概念只能根据属性具体含义来判断不能仅考察某一时刻的关系实例。平凡/非平凡依赖非平凡函数依赖X→Y且Y⊈X如(学号,课程号)→成绩平凡函数依赖X→Y且Y⊆X如(学号,课程号)→学号通常不考虑例题实例分析以学生关系学号姓名年龄性别为例正确依赖学号→姓名相同学号必对应相同姓名错误依赖姓名→学号可能存在同名不同学号的情况判断要点需考虑所有可能的关系实例不能仅凭当前数据判断。例如某学院当前无重名学生不能证明姓名→学号成立因为未来可能有新生重名。2. 完全函数依赖与部分函数依赖1定义完全函数依赖在R(U)中如果X→Y并且对于X的任何一个真子集X′都有X′不能决定Y则称Y对X完全函数依赖记作X→fY。例SC1(学号,课程号,成绩)中(学号,课程号)→成绩是完全函数依赖因为单独学号或课程号都不能决定成绩。部分函数依赖如果X→Y但Y不完全函数依赖于X即存在X的真子集X′能决定Y则称Y对X部分函数依赖记作X→pY。例SC2(学号,课程号,学生姓名,课程名称,成绩)中(学号,课程号)→学生姓名是部分函数依赖因为单独学号就能决定姓名(学号,课程号)→课程名称是部分函数依赖因为单独课程号就能决定课程名称例题识别关键当主码是属性组时需警惕部分函数依赖。如主码为(学号,课程号)时若存在学号→姓名则姓名对主码是部分依赖若仅存在(学号,课程号)→成绩则成绩对主码是完全依赖真子集验证判断完全依赖需验证主码所有真子集都不能决定该属性。例如验证(学号,课程号)→成绩是否完全依赖需分别验证学号和课程号单独都不能决定成绩。3. 传递函数依赖1定义基本概念在关系模式R(U,F)中若X→YY→Z且Y⊈XY↛X则称Z对X传递依赖。非平凡依赖要求Y不是X的子集否则就是平凡函数依赖如X→Y且Y⊆X。非等价关系若Y→X则X和Y等价如身份证号与医保卡号互相决定此时Z对X不构成传递依赖。关键限制条件Y⊈X避免平凡依赖。例如学号课程号(X)决定学号(Y)此时Y⊆X若学号决定姓名(Z)姓名不构成对X的传递依赖。Y↛X避免等价关系。如X身份证号→Y医保卡号且Y→X则医保类型(Z)可直接由X决定无需通过Y中转。例题案例背景供应商关系R(Sno,Sname,Status,City,Pno,Qty)函数依赖集F包含Sno→SnameSno→StatusStatus→City(Sno,Pno)→Qty传递依赖分析Sno→Status→City满足传递依赖条件Status⊈Sno且Status↛Sno故City对Sno传递依赖。部分依赖分析(Sno,Pno)是主码可推出(Sno,Pno)→Sname但Sno→Sname已存在故Sname对(Sno,Pno)部分依赖。同理(Sno,Pno)→Status也存在部分依赖因Sno→Status。2函数依赖基础补充定义对关系模式R(U)若任意两个元组在X上属性值相等时Y上的值也必相等则称X函数决定YX→Y。注意点需考察所有可能的关系实例不能仅凭当前数据判断。函数依赖是语义概念需根据业务逻辑确定。3完全与部分函数依赖完全依赖X→Y且对X的任意真子集X′X′↛Y。记作X→fY。例(学号,课程号)→f成绩缺一不可。部分依赖X→Y但存在X的真子集X′能决定Y。记作X→pY。例(学号,课程号)→p学生姓名因学号→学生姓名单独成立。4. 候选码和主码1基本概念候选码定义: 设K为R(U,F)中的属性组合若K→U且对于K的任何一个真子集K都有K不能决定U则K为R的候选码。主码选择: 若有多个候选码则选一个作为主码。术语对照:候选码 候选关键字主码 主关键字 主键属性分类:主属性包含在任何一个候选码中的属性非主属性不包含在任何候选码中的属性2候选码判定方法判定步骤:确认属性组合K能函数决定所有属性K→U验证K的任何真子集都不能决定U示例分析:供应商关系模式R(U,F) (Sno,Sname,Status,City,Pno,Qty)函数依赖集F {Sno→Sname, Sno→Status, Status→City, (Sno,Pno)→Qty}候选码判定过程(Sno,Pno)组合能决定所有属性真子集Sno不能决定Pno和Qty真子集Pno不能决定Sname,Status,City因此(Sno,Pno)是候选码3主属性判定判定规则: 只要属性出现在任何一个候选码中就是主属性示例1:关系模式R(ABCD)候选码1AB候选码2BC主属性A,B,C因为出现在候选码中非主属性D示例2选课关系:关系1SC(Sno,Cno,Sname,Cname,Grade)候选码(Sno,Cno)主属性Sno,Cno非主属性Sname,Cname,Grade关系2SC(Sno,Cno,Grade)候选码(Sno,Cno)主属性Sno,Cno非主属性Grade4关键考点常见题型:给定关系模式和函数依赖集求候选码区分主属性和非主属性解题技巧:从最小属性组合开始验证注意检查所有真子集的函数决定能力多个候选码时要找出全部候选码易错点:忽略真子集的验证混淆主属性和非主属性遗漏多属性候选码的情况5. 外码1定义与作用核心概念若关系模式R(U)中的属性或属性组X非R的码但X是另一个关系的码则称X是R的外码(Foreign Key)。设计原则通过外码建立表间联系避免孤立表现象。若所有表都独立无关联则无法实现跨表查询如统计某学院学生人数。存储规范关联字段应存储编号而非名称。例如学生表的班主任字段应存职工号而非姓名防止同名混淆。典型应用场景连接查询示例查询班主任王芳的学生需连接学生表含班主任编号和教师表含职工号和姓名通过班主任编号职工号 AND 姓名王芳实现统计计算机学院学生数需连接学生表含学院编号和学院表含编号和名称通过学院编号编号 AND 名称计算机学院实现6. 多值依赖1基本定义形式化描述设X,Y,Z是U的子集ZU−X−Y。若对R(U)的任一关系r给定(x,z)值时存在一组Y值仅由x决定而与z无关则称Y多值依赖于X记作X→→Y。关键特征体现属性间的一对多决定关系但不同于ER图中的实体关系。实例解析参考书目案例关系模式参考书目(课程,教师,参考书)示例数据(数学,王平,线性代数)(数学,王平,微分方程)(计算机网络,李莉,计算机网络基础)多值依赖课程→→参考书因为参考书集合仅由课程决定假设所有数学课参考书相同与任课教师无关2平凡性区分平凡多值依赖当Z∅时即关系模式中仅含X和Y属性非平凡多值依赖当Z≠∅时如参考书目案例中含无关属性教师7. 多值依赖的性质1对称性规则若X→→Y且ZU−X−Y则必有X→→Z记忆口诀决定一组必决定剩余2传递性特殊形式若X→→Y且Y→→Z则X→→Z−Y注意需减去Y3与函数依赖关系包含关系函数依赖是多值依赖的特例当Y值组仅含单个值时4合并规律并集规则若X→→Y且X→→Z则X→→YZ交集规则同条件下X→→Y∩Z差集规则同条件下X→→Z−Y5记忆技巧性质分类对称性、传递性、函数依赖特例、并/交/差三规则关键区别传递性中Z−Y的特殊处理区别于普通函数依赖二、知识小结知识点核心内容考试重点/易混淆点难度系数函数依赖定义X决定Y当且仅当相同X值对应相同Y值判断方法考察语义关系而非当前数据状态分类平凡/非平凡函数依赖关键判断必须考虑所有可能关系而非当前实例易错点将临时数据状态当作函数依赖依据★★★★完全函数依赖定义Y完全依赖于X当且仅当X的任何真子集都不能决定Y示例(学号,课程号)→成绩范式题核心考点主码为复合属性时必须检查部分依赖典型错误忽略真子集的判断★★★★★部分函数依赖定义Y部分依赖于X当存在X的真子集能决定Y示例(学号,课程号)→姓名因学号→姓名下午案例题高频考点需通过函数依赖集推导隐含关系警示点函数依赖集可能不完整★★★★传递函数依赖定义X→Y→Z且Y↛X时形成传递依赖示例学号→系主任→系主任电话解题关键必须满足Y不能决定X的条件常见陷阱循环依赖情况如身份证号↔医保卡号★★★★候选码定义能唯一决定全属性且最小化的属性组合求解方法检查属性闭包上午题必考点需计算所有候选码才能确定主属性易混淆点多个候选码时的主属性判定★★★★★外码定义非本关系码但为其他关系码的属性作用实现关系间连接查询设计题要点外码应引用其他表的主码典型错误使用非码属性作为关联字段★★多值依赖定义X→→Y当Y值集仅由X决定而与Z无关性质6条特殊性质对称/传递等2020年新考点需区分平凡/非平凡多值依赖难点与ER模型中一对多关系的本质差异★★★

更多文章