6.3函数依赖的公理系统为了以下目的,需要建立函数依赖的推理系统(1)求关系模式的候选码(2)判断关系模式的范式级别(3)给定一组函数依赖,需要导出另外一些函数依赖,或判断另外的函数依赖是否成立。例如 FD={A → B,B → C}, 判断 A → C是否成立?■本节内容:1.逻辑蕴涵;2.Armstrong函数依赖公理系统:3.函数依赖集的闭包;4.属性集闭包;5.函数依赖集的等价和覆盖:6.最小函数依赖集。6
6 6.3 函数依赖的公理系统 为了以下目的,需要建立函数依赖的推理系统: (1) 求关系模式的候选码 (2) 判断关系模式的范式级别 (3) 给定一组函数依赖,需要导出另外一些函数依赖, 或判断另外的函数依赖是否成立。 例如 FD={A B,B C},判断 A C是否成立? 本节内容: 1. 逻辑蕴涵; 2. Armstrong函数依赖公理系统; 3. 函数依赖集的闭包; 4. 属性集闭包; 5. 函数依赖集的等价和覆盖; 6. 最小函数依赖集
逻辑蕴涵(参见P190定义6.11关系模式R<U.F>,F是其函数依赖集,X、Y是U的属性子集,r是R的任何一个关系,如果从F的函数依赖能够推出X一Y,则称F逻辑蕴涵XY,记作FX>Y。示例:R<U, F>, U={X, Y}, F= (X-→>Y}则F逻辑蕴涵以下函数依赖:X-x, X->Y,Y-→Y,XY-X, XY-Y, XY-XY
7 逻辑蕴涵(参见P190.) 定义6.11 关系模式R<U, F>,F是其函数依 赖集,X、Y是U的属性子集,r是R的任何一个 关系,如果从F的函数依赖能够推出XY,则 称 F逻辑蕴涵 XY,记作F├ XY 。 示例: R<U, F>, U={X, Y}, F = {XY} 则 F逻辑蕴涵以下函数依赖: XX, XY, YY, XYX,XYY,XYXY
函数依赖集的闭包F+(参见P191.定义6.12在关系模式R<U,F>中,被F所逻辑蕴涵的函数依赖的全体所构成的集合称作F的闭包,记作 F+ =X→YIFX→Y■显然,FCF+。■F+的计算很麻烦,F不大,其F+也可能很大。例如:设 R<U, F>, U={X, Y, Z}, F = {X-→Y, Y-→>Z)F+=(X->X, X->Y, X-→Z,Y-Y, Y-→>Z, Z →>Z.Xy-x, xy-y, xy-xy, xz-x, ......8
8 函数依赖集的闭包F + (参见P191.) 定义6.12 在关系模式R<U,F>中,被F所 逻辑蕴涵的函数依赖的全体所构成的集合称 作F的闭包,记作 F+ = {XY | F├ XY} 显然,F F+ 。 F+的计算很麻烦,F不大,其F+也可能很大。 例如: 设 R<U, F>, U={X, Y, Z}, F = {XY, YZ} F+ = { XX, XY,X Z, YY, YZ, Z Z, XYX,XYY,XYXY, XZ→X, .}
Armstrong公理系统(参见P190.)函数依赖公理系统由Armstrong于1974年首先提出。设关系模式 R<U.F>,U为属性全集,F是U上的一组函数依赖,X、Y、Z是U的属性子集,对R有以下推理规则:A1 自反律(reflexivity):若 Y _X,则 X→Y。A2 增广律(augmentation):若X→Y,则XZ→YZ。A3传递律(transitivity):若XY,YZ,则XZ。注意:由自反律所得到的函数依赖是平凡的,自反律的使用并不依赖于函数依赖集F
Armstrong公理系统(参见P190.) 函数依赖公理系统由Armstrong于1974年首先提出。 设关系模式 R<U, F>,U为属性全集,F是U上的一组 函数依赖,X、Y、Z是U的属性子集,对R有以下推 理规则: A1 自反律(reflexivity):若 Y X, 则 X Y。 A2 增广律(augmentation): 若 X Y ,则 XZ YZ。 A3 传递律(transitivity): 若 X Y,Y Z,则 X Z 。 注意: 由自反律所得到的函数依赖是平凡的, 自反律的 使用并不依赖于函数依赖集F
A公理系统的正确性和完备性Armstrong公理的正确性(即有效性)及完备性。■正确性:用Armstrong公理从F中导出的函数依赖必为F所蕴涵。■完备性:为F所蕴涵的函数依赖都能用Armstrong公理从F中导出。公理的正确性保证由F出发根据公理推导出的每一个函数依赖一定在F+中。公理的完备性保证用公理能推出所有的函数依赖,即F+中的所有函数依赖都能由F出发用公理推导出来。这个问题很重要,因为,如果F+中居然有一个函数依赖不能用公理推导出来,那么,这些公理就不够用,就不完备,还必须补充新的公理。10
10 A公理系统的正确性和完备性 Armstrong公理的正确性(即有效性)及完备性。 正确性:用Armstrong公理从F中导出的函数依赖 必为F所蕴涵。 完备性:为F所蕴涵的函数依赖都能用Armstrong 公理从F中导出。 公理的正确性保证由F出发根据公理推导出的每一个 函数依赖一定在F+中。 公理的完备性保证用公理能推出所有的函数依赖, 即 F+中的所有函数依赖都能由F出发用公理推导出来。 这个问题很重要, 因为, 如果F+中居然有一个函数依 赖不能用公理推导出来, 那么, 这些公理就不够用, 就 不完备, 还必须补充新的公理