数据库复习——最小依赖集的求解
博主学校所使用的教材是由斯坦福大学的知名计算机科学家Jeffrey D. Ullman和Jennifer Widom所著的《数据库系统基础教程》,机械工业出版社出版
为了加深对知识点的理解,博主额外购买了由中国人民大学教授王珊所著的《数据库系统概论》,高等教育出版社出版
—————————————————————————————
之前在复习此类题型时遇到了许多困惑,网上的方法也是参差不齐。经过询问老师和汇总分析,个人总结如下:
求解方法:
(1)将题干所给的函数依赖右部都拆成单属性(例如A→BC拆成A→B和A→C),得到的新的函数依赖关系可以设为F’
(2)求解F’中每个函数依赖的左侧元素在F’中的闭包(求得的闭包要除去右侧本身决定的元素),若右侧元素依旧出现在闭包中,则舍去这个函数依赖关系
(3)对于左部元素不为1的函数依赖关系,去掉左侧一个属性X,求其剩余闭包是否含有右侧属性,来判断是否多余。如果不包含,则X不为冗余,不可删,否则反之
可以通过一道例题来加深理解:
有函数依赖{AB→C,DE→C,B→D},求其最小函数依赖
解:
(1)右侧都为单属性,无需分解
(2)(AB)+ =ABD ,(DE)+ =DE , B+ =B 都符合
(3)左侧属性AB,求B+ =BD,不含C,故A不可删
左侧属性AB,求A+ =A, 不含C,故B不可删
同理,DE中的D、E也不冗余
故最小依赖集为:{AB→C,DE→C,B→D}