软件设计师 - 超键、无损连接、函数依赖
1.闭包
在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+ 。
闭包算法:
result:=α;
while(result发生变化)dofor each 函数依赖β→γ in F dobeginif β∈result then result:=result∪γ;end
2.超键
方法一:函数依赖集F下最小的α函数 ,使得 :α的闭包 = 函数依赖集F的全部属性
方法二:画图法;
如上图,对于关系模式R(U,F),U={A,B,C,D,E,F},F={A->B,A->C,C->D,AE->F},则R的超键为AE。
将F中每个函数依赖映射在有向图中,能遍历全图的最小节点集合即为超键;
单独一个A无法遍历到F,因为AE才能到F,所以AE的集合可以遍历全图;
3.无损连接
3.1.主关系分成成两个子关系;
方法一:满足以下一个条件,就是无损连接
R1 ∩ R2 -> R1 - R2 或 R1 ∩ R2 -> R2 - R1
方法二:计算 (R1∩R2)+ 是否等于全部属性,是的话就是无损连接;
3.2.主关系分成成多个子关系;
画图法,某一排全部为a;
详见链接A;
4.保持函数依赖
步骤一:如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(这是一个充分条件)。
步骤二:如果上述判断失败,并不能断言分解不是保持依赖的,还要使用下面的通用方法来对判断失败的函数依赖做进一步判断。
该方法的表述如下:
判断函数依赖算法:
对F上的每一个需要进行步骤二确定的α→β使用下面的过程:
result:=α;
while(result发生变化)dofor each 分解后的Rit=(result∩Ri)+ ∩Riresult=result∪t
当遍历中,发现 {α,β} ∈ result ,则α→β函数依赖在分解后是保持的;
当遍历结束,仍没有 {α,β} ∈ result ,则α→β函数依赖在分解后是不保持的;
5.充分条件、必要条件、充要条件
充分条件,A能推出B,A是B的充分条件;
必要条件, 没有A就没有B,A是B的必要条件;
充要条件,A能推出B,同时B能推出A
参考链接:
A.数据库中的无损连接分解和是否保持函数依赖的判定
B.无损分解和保持依赖
C.模式分解是否保持函数依赖的判断方法以及例子
软件设计师 - 超键、无损连接、函数依赖相关推荐
- 关系模式判断候候选关键字 与 函数依赖无损连接
关系模式判断候候选关键字 与 函数依赖无损连接 例题:设关系模式R(U, F),其中R上的属性集U={A, B, C, D, E},R上的函数依赖集F={A→B,DE→B,CB→E,E→A,B→D}. ...
- 函数依赖 主码 主属性 非主属性 候选键 超键 详解
最近做项目要搞数据库看到范式那一节头脑发晕,概念都忘了,于是从网上搜罗并整理一下: 函数依赖部分参考:https://blog.csdn.net/jsj13263690918/article/deta ...
- 软考(软件设计师)考点总结 -- 超详细整理
分值比例与题型 上午题: 下午题: 考点总结 软考软件设计师考点总结,结合历年真题(2012-2020)整理. 计算机组成与体系结构: 数据表示.计算机结构.运算器与控制器.输入输出方式.中断.DM ...
- 软件设计师知识体系归纳总结
软件设计师知识体系归纳总结 历年考点 上午题 下午题 第一章 计算机组成原理及体系结构 1.数据的表示 1.1进制转换 (1) R进制转十进制 (2) 十进制转R进制 (3) 二进制 八进制 十六进制 ...
- 软件设计师中级复习资料
计算机组成与体系结构 CPU的组成 Central Processing Unit[主要是运算器+控制器] 详细:[运算器.控制器.寄存器组合内部总线等组成] 运算器:负责算术和逻辑运算,如加减乘除. ...
- 软件设计师中级复习小总结
软件设计师中级复习小总结 计算机与体系结构 K = 1024 k = 1000 B 字节 b 位 1字节 = 8位 8bit(位)=1Byte(字节) 1024Byte(字节)=1KB KB,MB,G ...
- 2023 上半年软件设计师知识点复习总纲
前言:全国计算机技术与软件专业技术资格(水平)考试(以下简称IT职业资格考试)是由中华人民共和国人事部主管,国家计算机网络与信息安全管理中心主办的一项国家级.权威性的计算机职业技能水平认证考试.主要为 ...
- 软件设计师---数据库
笔记有错误欢迎直接在评论区进行纠正!我将不再维护软件设计师笔记! 数据库上午题大概是6分+下午题一个大题15分 数据模型的分类 概念数据模型 结构数据模型 三级模式结构和两级映射 三级模式结构 外模式 ...
- 2021年05月软件设计师真题透析
2021年05月软件设计师上午真题及答案解析 1. 在 CPU 中,用( )给出将要执行的下一条指令在内存中的地址. A.程序计数器 B.指令寄存器 C.主存地址寄存器 D.状态条件寄存器 答案:A, ...
最新文章
- Chrome 静默打印及其它启动参数
- AXI_03 AXI_LITE_SLAVE_IP核设计与验证
- 2.6.24及以上版本内核裁剪后启动黑屏的解决办法
- IDEA的postfix自定义,自定义postfix
- [文摘]Eclipse中如何批量替换
- 重构代码 —— 函数即变量(Replace temp with Query)
- emacs,objective-c mode 代码补全!
- 【素材分享】冒险岛 枫叶素材(AI矢量文件+ASS绘图代码+PNG图片)
- CMS(内容管理系统)
- linux用户及组管理实训,实训 Linux下用户和组的管理和权限命令操作.doc
- 固件编辑器android,定制 Android 固件
- 实时错误‘429’:ActiveX控件不能创建对象
- HAL + RT_Thread = STM32外设用不了? NoNoNo!!
- 解决不支持S/W HEVC(H265)解码/找不到FFmpeg64.dll
- 《金匮要略》试卷二(A)
- Android日常开发收集的Tips
- 调查问卷生成json字符串
- 2022世界杯冠军预测,机器学习为你揭晓
- 失传万年的PS致富经典(五)
- 团贷网面试php,团贷网的钱还能要回来吗?