《数据库系统概念》(王珊)——Chapter6:关系数据理论 ------数据依赖,函数依赖,码

来源:互联网 发布:区和县的区别 知乎 编辑:程序博客网 时间:2024/05/21 19:40

糟糕的数据库逻辑设计

1.  信息冗余2.  数据不一致风险3.  增删改异常

问题原因:

模式中存在不合适的数据依赖

解决方案:

模式分解:用规范化理论改造关系模式,消除其中不合适的数据依赖

数据依赖

分类

1.  函数依赖:2.  多值依赖:3.  连接依赖:...

数据依赖对关系模式的影响

1.  信息冗余2.  数据不一致风险3.  增删改异常

关系模式的简化表示

R<U, F>其中:    R是关系模式名    U是属性集合    F是函数依赖集合

函数依赖

概念

关系模式:R(U),U是属性集属性集X,Y都是U的子集关系模式的一个实例:关系r若:在关系r中没有任何两个元祖在X上取值相同,Y上取值不同则:X函数确定Y,Y函数依赖X,X->Y
要求
关系模式R的任何实例r在任何时刻都要满足

如何确定函数依赖?

1.  函数依赖属于语义范畴的概念,只能根据数据的语义来确定函数依赖。2.  业务规则或者约定(若允许重名,则函数依赖name->number失效)

分类

1.平凡与非平凡

若存在函数依赖:X->Y,则    平凡函数依赖:Y是X的子集        举例:(sno,cno)->sno    非平凡函数依赖:Y不是X的子集        举例:(sno,cno)->grade对于任意关系模式,平凡依赖总是成立,不能反映新的语义。换句话,这种依赖没用!

2.完全与部分

若存在函数依赖:X->Y,X'是X的任意一个真子集    完全函数依赖:X'->Y不成立    部分函数依赖:x'->Y成立

3.传递依赖

X->Y(完全依赖)(Y->X不成立),Y->Z则:X->Z

码:包括主码,候选码,超码主码:在候选码中选取的一个码全码:整个属性组是码候选码:完全函数确定属性组U。最小的超码。任何一个真子集都不是候选码超码:部分函数确定属性组U外码:并非是本关系模式的码,却是另一个关系模式的码主属性:包含在任何一个候选码中的属性非主属性:不包含在任何一个码中的属性
阅读全文
1 0