第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

第9次作业-知识点整理:关于函数依赖定义、函数依赖类型

这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13106
这个作业的目标 知识点整理:关于函数依赖定义、函数依赖类型

思维导图(平台:boardmix).

  • 始(制作过程):
  • 终(最终效果):

1.函数依赖的定义.

(1)定义
    函数依赖(Functional Dependency,FD)是数据库设计的核心部分,理解它们非常重要。
下面先解释概念的常规意义,然后再给出它的定义。
    先来看一个数学函数:y=f(x),即给定一个x值,y就确定了唯一的一个值,那么就说y
函数依赖于x,或×函数决定y,可以写成x一v,式子左边的变量称为决定因素,右边的变量称
为依赖因素。这也是取名为函数依赖的原因。
   在 Students关系中,因为每个学号Sid 的值都对应着唯一一个学生的名字 Sname,可以
将其形式化为
                      Sid→Sname
因此,可以说名字 Sname函数依赖于学生的学号 Sid,学生的学号 Sid决定了学生的名字
Sname。
   再如,学号 Sid 和课号Cid 可以一起决定某位同学某科的成绩Cscore,将其形式化为
              (Sid, Cid) →Cscore
这里,决定因素是(Sid,Cid)的组合。

若X→Y且Y→X,则X↔Y,
不依赖则是在箭头上画上斜线,
简单说,若X→Y,
那么在关系r上任意两个元组,若ti[X]=tj[X],
那么ti[Y]=tj[Y],为了方便理解,可以联想到函数的单映射和双映射。
函数依赖可以理解为属性之间的一种约束条件,它能够用于判断建立的关系表是否合理

(2)平凡函数依赖
若属性集Y是X的子集,则必然存在函数依赖X→Y,这种函数依赖就是平凡的函数依赖,
其他类型的函数依赖就是非平凡的函数依赖。

这里是对属性集是否包含而言的,不是指属性的域的包含关系

(3)函数依赖于属性之间联系的关系
当X与Y有1:1联系时,一定有X↔Y;
当X与Y有m:1联系时,有X→Y;
当X与Y有m:n联系时,X、Y之间不存函数依赖。

2.函数依赖的逻辑蕴涵.

(1)逻辑蕴涵
设F是关系模式R的函数依赖集,X、Y是属性集U的子集,X→Y是一个函数依赖,
若在F中,能够用其他函数依赖关系推导出X→Y,则X→Y为F的逻辑蕴涵,
或F逻辑蕴涵X→Y,记作F|=X→Y。
(2)闭包
F是R的函数依赖集,被F逻辑蕴涵的函数依赖的集合称为F的闭包
记作F+  F+={X→Y | F|=X→Y}。

除了函数依赖集的闭包外,属性集也存在闭包运算,如下
属性集X的闭包X+ =

3.函数依赖的推导规则.

定律名称 条件 结果
(1)自反律 Y⊆X⊆U X→Y
(2)增广律 X→Y,Z⊆U XZ→YZ
(3)传递律 Y→Y,Y→Z X→Z
(4)合并律 X→Y,X→Z X→YZ
(5)伪传递律 X→Y,YW→Z XW→Z
(6)分解律 X→Y,Z⊆Y X→Z
(7)复合律 X→Y,W→Z XW→YZ

以上的XY这样的形式,不是离散中的集合求交集,而是将他们合并
此外如:Y⊆X,是Y中的属性是X中属性的子集,如Y(姓名,性别),X(姓名、性别、年龄),那么Y就⊆X

4.完全函数依赖与部分函数依赖.

(1)完全函数依赖

若X→Y,且对于X的任意真子集X’,都不满足X’→Y,则Y对X完全函数依赖,记作

(2)部分函数依赖

若X→Y,且对于X的任意真子集X’,存在X’→Y,则Y对X部分函数依赖,记作

元组中其它属性对主键或其候选键都是完全函数依赖的上述的X的子集,
是指X属性集中的部分属性,而不是属性域的子集

5.传递函数依赖.

(1)传递函数依赖

X→Y,且Y→X不成立,而有Y→Z(其中Y不属于X,Z不属于Y),则有Z对X传递函数依赖,记作

为什么不能有Y→X,是因为,如果这个条件成立,X→Z就不是传递得来的,
而是直接能得到的属于关系不存在的限制也是一样,是为了排除平凡函数依赖

6.候选键在函数依赖中的定义.

(1)定义
U是关系R的属性集,若属性集X→U在R上成立,X是R的一个超键
在X是超键的基础上,若X的任一真子集X’ 都有X’ →U不成立,
那么X是R上的一个候选键

由此可知,其他所有属性对于候选键都是完全函数依赖的

(2)如何在函数依赖中寻找候选键(对属性进行分类)
  • R类:只出现在→右边的属性,则它是非主属性
  • N类:在→两边都没出现过的属性,它是主属性
  • LR类:在→左右两边都出现过的属性,且X+包含了R的所有属性,则X是唯一的候选键
  • L类:只出现在→左边的属性,必为候选键之一,若X+包含了R的所有属性,则X是唯一的候选键

7.总结.

总结:

本文深入探讨了函数依赖的概念及其在数据库设计中的关键作用。通过学习完全函数依赖、部分函数依赖和传递函数依赖,我们强调了函数依赖在确保数据库的数据完整性、一致性和性能方面的不可或缺性。

首先,我们理解了函数依赖的基本定义,其中自变量与因变量之间的关系是数据库设计的基石。通过实际示例和解释,我们揭示了函数依赖如何帮助我们规范数据库中的数据,确保数据的一致性。

其次,我们深入研究了三种常见的函数依赖类型:完全函数依赖、部分函数依赖和传递函数依赖。这些类型的理解对于设计复杂数据库架构至关重要,因为它们可以帮助我们确定数据关系,消除冗余信息,提高数据库性能。

然后,在实际数据库设计中,函数依赖的应用不仅仅是一种理论概念,还是一种强大的工具,用于确保数据的准确性和一致性。通过合理定义和使用函数依赖,我们可以避免数据异常和错误,提高数据库的可维护性。

最后,函数依赖是数据库领域中不可或缺的概念,它有助于我们构建高效、可靠的数据库系统。无论您是数据库管理员、开发人员还是数据科学家,深入理解和应用函数依赖都将提高您在数据库领域的专业素养,并为您的项目和组织带来巨大的益处。在未来的数据库设计和管理中,不要忽视函数依赖的重要性,它将成为您成功的关键因素之一。

posted @ 2023-11-16 20:37  慕言ya  阅读(91)  评论(0编辑  收藏  举报