9.1关系模型设计的问题:数据冗余问题,数据更新问题,数据插入问题,数据删除问题
9.2函数的依赖
9.2.1基本概念
1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
9.2.2一些术语和符号
平凡函数依赖:当属性集Y是属性集X的子集时,必然存在函数依赖X→Y,这种类型称为平凡的函数依赖
非平凡函数依赖:如果Y不是X的子集,则X→Y为非平凡的函数依赖
部分函数依赖:X的某个真子集X’,有X’→Y,则称Y对X部分函数依赖
完全函数依赖:X的任何一个真子集X’,都没有X’→Y,则称Y对X完全函数依赖
传递函数依赖:若X→Y,没有Y→X,Y→Z,Y∉X,Z∉Y,则称Z对X传递函数依赖
9.2.3函数依赖的推理规则
1.Armstrong公理
(1).A1自反律:若Y⊆X⊆U,则X→Y为F所蕴含;
(2). A2增广律:若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含;
(3).A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。
2.Armstrong公理推论
合并规则:若X→Y,X→Z同时在R上成立,则X→YZ在R上也成立。
分解规则:若X→Y,Z⊆Y在R上成立,则X→Z在R上也成立。
伪传递规则:若X→Y,YW→Z在R上成立,且XW→YZ在R上也成立。
复合规则:若X→Y,W→Z同时在R上成立,则XW→YZ在R上也成立
9.2.4闭包及候选键求解方法
1.函数依赖集的闭包
定义:在关系模式 R(U,F)中 U是R的属性全集 F是R上的一组函数依赖。 设X Y是U的子集,对于关系模式R的任一关系r,如果r满足F,则r满足X--->Y,那么称F逻辑蕴含X---->Y,或称函数依赖X--->Y可由F导出。
2.属性闭集包
3.候选键的求解方法
对于给定的关系模式RE(, , … , )和函数依赖集F,可将其属性分为以下四类。
(1)L类:仅出现在F中的函数依赖左部的属性;
(2)R类:仅出现在F的函数依赖右部的属性;
(3)N类:在F的函数依赖左右两边均未出现的属性;
(4)LR类:在F的函数依赖左右两边均出现的属性。
对于给定的关系模式R及其函数依赖集F,有以下结论。
(1)若X是L类属性,则X必为RE的任意候选键的成员;若X(X∈RE)是L类属性,且包含了RE的全部属性,则X必为RE的唯一候选键;
(2)若X是R类属性,则X不在任何候选键中;
(3)若X是N类属性,则X一定包含在R的任一候选键中;
(4)若X是LR类属性,则X可能包含在关系模式R的某个候选键中
9.2.5极小函数依赖集
如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,亦称为最小依赖集或最小覆盖(minimal cover)。
(1)F中任一函数依赖的右部仅含有一个属性
(2)F中不存在这样的函数依赖X->A,使得F与F-{X->A}等价。
(3)F中不存在这样的函数依赖X->A,X有真子集Z使得F-{X->A}∪{Z->A}与F等价。
最小依赖集不是唯一的,它与对各函数依赖及X->A中X各属性的处置顺序有关
————————————————
版权声明:本文为CSDN博主「Blue~236」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_70160395/article/details/125123402