词条 | 数据依赖 |
释义 | 数据依赖,数学概念,是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,数据依赖是现实世界属性间相互联系的抽象,属于数据内在的性质。在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。在编译学中,数据依赖是数据分析的一部分。 数学定义函数依赖 定义:设有一关系模式R(A1,A2,…,An),X和Y均为(A1,A2,…,An)的子集,对于R的值r来说,当其中任意两个元组u,v中对应于X的那些属性分量的值均相等时,则有u,v中对应于Y的那些属性分量的值也相等,称X函数决定Y,或Y依赖于X,记为X->Y。 例:有关系,学生(学号S#,姓名SN,系名SD),子集X(学号S#),子集Y(系名SD)。 每个学生有唯一的一个学号,学生中可以有重名的姓名,每个学生只能属于一个系,每个系有唯一的系代号。有此,可以找出学生关系模式中存在下列函数依赖: S#->SN;S#->SD 例:有关系,学校简况(学号S#,系名SD,系主任MN,课程CN,成绩G)。可写出函数依赖: S#->SD;SD->MN;S#,CN->G 根据函数依赖的不同性质,函数依赖可分为完全函数依赖、部分函数依赖和传递函数依赖。 2.2 完全函数依赖 定义:在R(U)中,如果X->Y,对于X的任意一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖,记为XY 。 例:(S#,CN)->G 2.3 部分函数依赖 定义:在R(U)中,如果X-> Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。 2.4 传递函数依赖 定义:在R(U)中,当且仅当X-> Y,Y->Z时,称Z对X传递函数依赖。 例:描述学生(S#)、班级(SB)、辅导员(TN)的关系U(S#,SB,TN)。一个班有若干学生,一个学生只属于一个班,一个班只有一个辅导员,但一个辅导员负责几个班。根据现实世界可得到一组函数依赖: F={S#->SB,SB->TN} 学生学号决定了所在班级,所在班级决定了辅导员,所以辅导员TN传递函数依赖于学生学号S#。 数据依赖还包括多值依赖和连接依赖两种形式。 -------------------------------------------------------------------------------------------------- 在计算机科学中数据依赖的定义数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。在编译学中,数据依赖是数据分析的一部分。 解说:假设有如下表述S1和S2, (I (S1) ∩ O(S2)) ∪ (O(S1) ∩ I(S2)) ∪ (O(S1) ∩ O(S2)) ≠ Φ 那么S2依赖S1。I(Si)是内存位置的集合,可由Si和S2读 O(Sj)是内存地址的集合,由Sj写, 则这里S1和S2就有一个必须遵守的执行顺序。 数据依赖的种类数据依赖有三种, 1. 流依赖(flow dependency),一个变量在一次表达式中赋值或修改然后用在后来的另一个表达式中。例 a=b*c ... d=a-e 2.反依赖(anti dependency),一个变量在一个表达式中被使用然后在后来一个表达式中被修改赋值。例 a=b*c ...... b=d+e 3.输出依赖,一个变量在一表达式中被修改赋值然后又在后来另一个表达式中被修改值,例 a=b+c ......a=d-e |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。