首页 理论教育 函数依赖和码的定义:现代数据库原理与索引设计

函数依赖和码的定义:现代数据库原理与索引设计

时间:2023-10-21 理论教育 版权反馈
【摘要】:(一)函数依赖的定义函数依赖是属性之间的一种联系。如果这种情况成立,就可以说职称函数依赖于职工号。(二)码的定义在前面我们已对码进行了直观的定义,下面用函数依赖的概念对码做出较为精确的形式化的定义。所以,主码和外部码提供了一个表示关系间联系的途径。

函数依赖和码的定义:现代数据库原理与索引设计

(一)函数依赖的定义

函数依赖是属性之间的一种联系。假设给定一属性的值,就可以唯一确定(查到)另一个属性的值。例如,知道职工号的值,就可以得出其对应的职称的值。如果这种情况成立,就可以说职称函数依赖于职工号。

所谓函数依赖是指在关系R中,XY为R的两个属性或属性组,如果对于R的所有关系r都存在,对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作X—Y,其中X为决定因素,Y为被决定因素。

此定义可简单表述为如果属性X的值决定属性Y的值,那么属性Y函数依赖于属性X。换一种说法是,如果知道X的值,就可以获得Y的值。

1.若Y不依赖于函数X,记作X↛Y。

2.若X→Y,Y→X,记作X↔Y。

前面讨论的属性间的三种联系,并不是每一种联系中都存在函数依赖。

1.如果两属性集X、Y间是1∶1联系,则存在函数依赖X↔Y。例如职工关系模式中,如果不允许同名职工存在,则有职工号—姓名。

2.如果两属性集X、Y间是m∶1联系,则存在函数依赖X→Y。例如,职工号—职称,职工号—部门。

3.如果两属性集X、Y间是m∶n联系,则不存在函数依赖,即X↛Y。例如职称与部门。

(二)码的定义

在前面我们已对码进行了直观的定义,下面用函数依赖的概念对码做出较为精确的形式化的定义。

1.定义1(www.xing528.com)

设K是关系模式R(U,F)中的属性组,K+是K的任一真子集。若K→U,则K为R的候选码(Candidate Key)。

可见,如果某个属性或属性组K满足以下两个条件,则认为K是关系R的候选码:

(1)K决定关系的所有其他属性,也就是说,不能存在两组不同的元组在属性组K上的取值相同。

(2)没有一个K的真子集能够决定关系的所有其他属性。

2.定义2

设有两个关系模式R和S,X是R的属性或属性组,并且X不是R的码,但X是S的码(或与S的码意义相同),则称XR的外部码(Foreign Key),简称外码。

设有如下两个关系模式:

职工(职工号,姓名,性别,职称,部门号)。

部门(部门号,部门名,电话,负责人)。

其中,部门号不是职工表的码,而是部门表的码,所以部门号在职工表中称为外码。

关系间的联系可通过同时存在于两个或多个关系中的主码和外部码的取值来建立。例如,要查询某个职工所在部门的详细情况,只需查询部门表中的部门号与该职工部门号相等的记录即可。所以,主码和外部码提供了一个表示关系间联系的途径。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈