数据依赖的公理系统
- 补充:候选码只有一个非主属性,单属性 至少是第二属性
- 非主属性为空为第三范式
- 所有决定方都是码 为 BCNF
- Armstrong公理系统
- 一套推理规则,是模式分解算法的理论基础
- 用途
- 求给定关系模式的码
- 从一组函数依赖求得蕴涵的函数依赖
- 函数依赖的闭包
- 【F的闭包定义】:
- 在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F +。
- 属性集X关于函数依赖集F的闭包
- 设F为属性集U上的一组函数依赖,X、Y 属于U, XF+={ A|X→A能由F根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F的闭包。
- 数据依赖的公理系统(续)
- 对X(i)中的每个元素,依次检查相应的函数依赖,将依赖它的属性加入B
- 实例
- A的闭包是A B的闭包是BD
- 分类候选码计算方法
- 定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
- 闭包包含所有
- 定理2:对于给定的关系模式R及其函数依赖集F,如果X(X∈R)是R类属性,则X不在任何候选码中。
- 定理3:设有关系模式R及其函数依赖集F,如果X 是R的N类属性,则X必包含在R的任一候选码中。
- 例子
- 多属性依赖集候选码求解法
- 示例
- 最小函数依赖集
- 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,亦称为最小依赖集或最小覆盖。
- (1)F中任一函数依赖的右部仅含有一个属性。
- (2)F中不存在这样的函数依赖X→A, 使得F与F-{X→A}等价。
- 即F中的函数依赖均不能由F中其他函数依赖导出
- (3)F中不存在这样的函数依赖X→A, X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
- 说明:每个函数依赖集至少存在一个最小依赖集,但并不一定惟一。
- 示例
- 计算最小依赖集算法
- 解析:①A→B 看后面A的闭包是否有B 有则可以去掉A→B A→C C→A 推不出A→ B 不可去掉
- 捂住②B→A 看剩余的闭包是否有A B的闭包推出C,C推出A ,可以去掉 剩下4个
- 捂住③也是新② B推不出C 留下 此时①③④⑤留着
- 捂住A→C A的闭包可以推出B B推出C 可以推出C 则没有留下的必要④去掉
- 捂住C→A C的闭包是自己 推不出A留下 即①③⑤留下
- 解析:①一定留下 ②也留的话从③开始捂住B可以推出A,A可以推出C 删去③
- 捂住第④个 A推出B B推出A推不出C留下 此时①②④留下
- 捂住⑤ C的闭包是自己 留下即①②④⑤
- 定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
- 【F的闭包定义】: