一、关系模式设计的问题
1.S-L-C关系模式问题
S-L-C关系模式会出现问题:包括
- 数据冗余问题
- 数据更新问题
- 数据插入问题
- 数据删除问题
解决问题的方法:
进行模式分解,消除不良的函数依赖,从而获得良好的关系模式
二、函数依赖
1.基本概念
X→Y : X函数决定Y,或Y函数依赖于X
2.术语和符号
如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖
如果X→Y,但Y包含于X,则称X→Y是平凡的函数依赖
如果X→Y,并且对于X的任意真子集都有 Y不依赖X ’,则称Y函数完全依赖X,
对于X的任意真子集都有 Y依赖X ’,则称Y函数部分依赖X
如果X→Y(非平凡函数依赖,并且X不依赖Y)、Y函数决定Z,则称Z传递函数依赖X
2.函数依赖的推理规则
- 自反律
- 增广律
- 传递律
- 合并规则
- 分解规则
- 伪传递规则
- 复合规则
自反律(平凡的函数依赖)
Y包含于X包含于U(R的属性全集),则X→Y在R上成立
增广律
X→Y在R上成立,Z包含于U,则XZ→YZ在R上成立
传递律
X→Y,Y→Z在R上成立,则X→Z在R上成立
合并规则
X→Y,X→Z在R上成立,则X→YZ在R上成立
分解规则
X→Y,Z包含于Y在R上成立,则X→Z在R上成立
伪传递
X→Y,YW→Z在R上成立,则XW→Z在R上成立
复合规则
X→Y,W→Z在R上成立,则XW→YZ在R上成立
由合并规则和分解规则得到
如果A1到An是关系模式R的属性集,那么X → A1…An成立的充分必要条件是X → Ai ( i = 1,2,…,n)成立