关系数据库设计 函数依赖 逻辑蕴含

函数依赖:

属性集 α 决定属性集 β ,则称有函数依赖 α → β α \to β αβ

逻辑蕴含:

F能推出 原不直观存在于 函数依赖集F 中的函数依赖 α → \to β,则成α → \to β被函数依赖集F逻辑蕴含

函数依赖的闭包 F + F^+ F+:

​ 由关系模式R直观得到的函数依赖F所推出的所有隐含的或未隐含的(直观的)函数依赖的集合
举例:

F中有α–>β,β–>ω
则函数闭包 F + F^+ F+中存在α–>ω

Armstrong公理(以下的αβ形式表示α和β的并集):

1.  自反律(叫大推小更确切):
	​集合A能推出其集合子集b
    
2.  增补律(加了也不影响)
	若α-->β,则αω-->βω
	
3.  传递律(一传十十传百)
	α-->β,β-->ω,则α-->ω

Armstrong公理推论(以下的αβ形式表示α和β的并集):

1. 合并律(合并右边)
		α-->β,α-->ω,则α-->βω
	
2. 分解律(分解右边)
		α-->βω,则α-->ω,α-->β
	
3. 伪传递律(左边加一点)
		α-->β,βπ-->ω则απ-->ω

属性的闭包

​在关系模式R所对应的F+中,有 α → β α\toβ αβ ,则所有β组成的集合 α + α^+ α+ 叫做α的属性闭包

属性闭包算法:

result=A //此处A是一个属性集,result就是要计算的属性闭包
for each α-->β in F:
	if α in result:   //α已经在属性闭包里了,即A-->α是成立的
	result=result+β   //增加属性闭包

正则覆盖 F + F^+ F+

​ 将原函数依赖集F中的函数依赖α–>β中的部分(α或β属性中)冗余属性删除。 F + F^+ F+ 和 F 的函数依赖的闭包是相同的

属性是否冗余判断条件,对于α–>β函数依赖(哪边冗余F在哪边)

  1. α属性集中有属性A是冗余的, ( α − A ) → β (α-A)\to β (αA)β 成立:

    F 逻辑蕴含 $(F-(α\toβ)) \cup ((α-A)\toβ) $

  2. β属性集中有属性b是冗余的,$α\to (β-b) $成立

    ( F − ( α → β ) ) ∪ ( α → ( β − b ) ) (F- (α \to β)) \cup (α \to (β-b) ) (F(αβ))(α(βb)) 逻辑蕴含 F

无损分解

将关系模式R分解成 关系模式$ R_1和R_2$,则:

$R_1 \cap R_2 \to R_1 或 R_2 $ ;即$R_1 和 R_2 的交集是R_1 或 R_2 $的super key


查看其他精彩文章
深入分析HashMap
AOP核心原理和SpringAOP
10分钟入门SpringAOP

  • 31
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值