对于满足一组函数依赖F的关系模式R<U,F>,其任何一个关系r,若函数依赖X->Y都成立,则称F逻辑蕴涵X->Y。
对上述逻辑蕴涵的解释:在一个关系模式中,U为关系模式R属性集总体,F为关系模式R属性集U上的一组函数依赖,例如U(A,B,C),F[A->B,A->C],根据此条件能推导出在关系模式中任何一个关系AB->C都成立,这样便称为F逻辑蕴涵AB->C.
为解决X->Y是否为F逻辑蕴涵这个问题,Armstrong提出了一套推理规则
Armstrong公理系统:设U为属性集总体,F是U上的一组函数依赖集F,于是有关系模式R<U,F>,对R<U,F>有以下的推理规则:
- 自反律:若Y⊆X⊆U,则X->Y为F所蕴涵
举例证明:
学生关系模式
学生姓名 | 年龄 | 电话号码 |
---|---|---|
张三 | 18 | 133****1111 |
张三 | 18 | 133****2222 |
李四 | 18 | 133****3333 |
U为(学生姓名,年龄,电话号码)
X为(学生姓名,年龄)
Y为(学生姓名)
选取任意两个元祖r,t,如果r[x]=t[x]
(如r[x]=
张三 | 18 |
---|
这条电话号码尾号为1111的记录,
t[x]为
张三 | 18 |
---|
这条电话号码尾号为2222的记录,
属性X上值对应相等
),由于Y是X的子集,那么一定存在着在选取的r,t元祖中,r[Y]=t[Y]
- 增广律:若X->Y为F所蕴涵,且Z⊆U,则XZ->YZ为F所蕴涵
证明:在关系模式R中,选取任意两个元祖r,t,若选取的元祖r,t存在r[XZ]=t[XZ](XZ表示X∩Z,对应XZ属性值相等),那么一定能推出r[X]=t[X],r[Z]=t[Z](分开后的X,Y在r,t上对应的属性值相等),
(如
姓名 | 年龄 | 电话 | 班级 |
---|---|---|---|
张三 | 18 | 1111 | 01 |
张三 | 18 | 2222 | 01 |
X(姓名),Z(年龄),Y(班级) 并且X->Y
选取r(第一条元祖)
张三 | 18 | 1111 | 01 |
---|
得到r[XZ]
张三 | 18 |
---|
选取t (第二条元祖)
张三 | 18 | 1111 | 02 |
---|
得到t[XZ]
张三 | 18 |
---|
图中r[XZ]=t[XZ],能推出r[X]=t[X]=“张三” r[Z]=t[Z]=18)
又因为X->Y,X属性能确定唯一Y,所以元祖上X属性相等那么Y属性也一定相等,即r[X]=t[X] 推出r[Y]=t[Y](如姓名张三一定能推出班级为01),所以r[ZY]=t[ZY],XZ->YZ为F所蕴涵
- 传递律:若X->Y,Y->Z为F所蕴涵,则X->Z为F所蕴涵
证明:在关系模式R中,选取任意两个元祖r,t,若选取的r,t元祖在X属性上相等,r[X]=t[X],因为X决定Y,所以在r,t元祖在Y属性上的值相等,r[Y]=t[Y],又因为Y决定Z,所以在r,t元祖上的Z属性一定相等r[Z]=t[Z],所以X->Z为F所蕴涵。