关于数据库的BCNF范式?BCNF定义:关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF.请问以上定义中的“X必含有码”的意思是不是指“X必须是候选码”
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 21:24:59
![关于数据库的BCNF范式?BCNF定义:关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF.请问以上定义中的“X必含有码”的意思是不是指“X必须是候选码”](/uploads/image/z/12482523-27-3.jpg?t=%E5%85%B3%E4%BA%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84BCNF%E8%8C%83%E5%BC%8F%3FBCNF%E5%AE%9A%E4%B9%89%EF%BC%9A%E5%85%B3%E7%B3%BB%E6%A8%A1%E5%BC%8F%E4%B8%AD%2C%E8%8B%A5X%E5%87%BD%E6%95%B0%E7%A1%AE%E5%AE%9AY%E4%B8%94Y%E4%B8%8D%E5%9C%A8X%E5%86%85%E6%97%B6X%E5%BF%85%E5%90%AB%E6%9C%89%E7%A0%81%2C%E5%88%99%E6%AD%A4%E5%85%B3%E7%B3%BB%E5%B1%9E%E4%BA%8EBCNF.%E8%AF%B7%E9%97%AE%E4%BB%A5%E4%B8%8A%E5%AE%9A%E4%B9%89%E4%B8%AD%E7%9A%84%E2%80%9CX%E5%BF%85%E5%90%AB%E6%9C%89%E7%A0%81%E2%80%9D%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF%E4%B8%8D%E6%98%AF%E6%8C%87%E2%80%9CX%E5%BF%85%E9%A1%BB%E6%98%AF%E5%80%99%E9%80%89%E7%A0%81%E2%80%9D)
关于数据库的BCNF范式?BCNF定义:关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF.请问以上定义中的“X必含有码”的意思是不是指“X必须是候选码”
关于数据库的BCNF范式?
BCNF定义:关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF.
请问以上定义中的“X必含有码”的意思是不是指“X必须是候选码”
关于数据库的BCNF范式?BCNF定义:关系模式中,若X函数确定Y且Y不在X内时X必含有码,则此关系属于BCNF.请问以上定义中的“X必含有码”的意思是不是指“X必须是候选码”
不是,而是X必含有候选码,候选码与码在这里是一个概念.
X确定Y,X未必是一个属性,也可能是一组属性的,但这组里不能含有Y,否则(x,y)->y什么也说明不了的!因为y->y,增广率(x,y)->y,所以这里说X不能含Y或称Y不在X内.例如U是码,则x一定要包含U,如(u,z)->y则X一定要含有码的.但如果出现这种情况这不是了,U是(a,b),而x是(b,c,d)则X->Y,那么,x中因为没有(a,b)所以x不含码,那么一定不是BCNF!
其实这个BCNF的概念是在1NF上下的定义.如果在1NF中用否定方式下定义的话是:X决定于Y,Y不包含于X,X若不存在码,则该一定不是BCNF.
当然还可以在第三范式下一个定义,关系属于第三范式,X是码的真子集,若不存在X->Y则关系属于BCNF.
BCNF是第三范式的修改正,但不是消除传递依赖的,这点楼下错了,而是消除部分依赖的!也就是说非码属不能依赖于码的一部分.如果(a,b,c)是码,若存在(a,b)这个部分能确定一个非码属性时,则不符合BCNF!
消除传递依赖是第二范式向第三范式规范的一个条件.在第二范式的基础上,不存在依赖传递,则属于第三范式!有人学艺不精!