关系模式设计的问题 函数依赖

关系模式设计的问题

一.关系模式设计的问题 张表
1.假设有描述学生选课及住宿情况的关系模式
S-L-C CSno,Sname,Ssex,Sdept,Slol,Cno,Grade)
主键(Sno,Cno)
2.问题

1.数据冗余问题
数据重复        空间浪费,数据不一致
2.数据更新问题
繁琐,信息不一致
3.数据插入问题
例:新成立一个系,但未召生,Sno.Cno为空,而主键不能为空
4.数据删除问题
例列:一名同学选了一门课,之后放弃,删除时会删除该同学其余基本信息
3.数据的增,删改都称为操作异常.
原因:这个关系没有设计好,某些属性之间存在“不良”的函攻依赖关系

解决方法:关系规范理访是要改造这个关系模式,并避免上述问题
进行模式分解 即把一个关系模式分解成两个或多个关系模式在分解中都那些“不良”的时依赖,从而获得良好的关系模式

 函数依赖
1 基本概念
在关系数据库中讨论函数成函教依确性重的是样受上的要.例如:省=f(城市)
只要给出一个具体的城市值,就会有唯一的“省”值和它对应 如 '衡阳市”在“湖南省”,这里“城市”是自变量X,“省”是因变量或函数值Y。一般把X函数决定Y,或Y函数依赖与X表示为 X--->Y
根据以上讨论可以写出较直观的函数依赖定义,即如果有一个关系模式R(A1.A2    An),X和Y为{A1,A2,.....An}的子集,r是R的任一具体关系,那么对于关系r中任意一个x值,都只有一个Y值与之对应,则称X函数决定Y或y函数依赖于x。

例如,对学生关系模式Student (Sno, Sname,Sdept, Sage) 有以下函数依赖关系Sno→ Sname.
Sno → Sdept, Sno→ Sage 
对学生选课关系模式SC(Sno, Cno,Grade)有以下函数依赖关系:
(Sno, Cno)→ Grade

下面给出函数依赖的形式化定义
定义 9.1    设有关系模式( A1  A2 …,An),X和Y均为{A1,A2,......An}的子集 ,是R的任一具体关系t1,t2是r中的任意两个元组。如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。
在以上定义中特别要注意,只要t1[X]=t2[X],t1和[Y]=t2[Y]成立,就有X--->Y。
2 一些术语和符号
设有关系模式R(A,A,…,A,),X和Y均为A,4,…,A. 的子集,则有以下结论:
(1)如果X→Y,但Y不包含于X,则称X一Y是非平凡的函数依赖。如不做特别说明,我们讨论的都是非平凡的函数依赖。
(2)如果y不函数依赖于X,则记作X---->/Y。
(3)如果X→Y,则称X为决定因子。
(4)如果X一>Y,并且Y一X,则记作X<--->Y
(5)如果,并且对于X的一个任意子集X"都有X"--->/Y,则称Y完全函数依赖于X,记作X—f>Y;如果x'一>Y成立,则称Y部分函数依赖于X,记作X一p>Y
(6)如果X→Y(非平凡函数依赖,并且Y---/>X)、Y→Z,则称Z传递函数依赖于X
(7)设K为关系模式R的一个属性或属性组,若满足:
K→fA1  K---f>A2 .........K---f>An
则称K为关系模式R的候选键(或候选码)。称包含在候选键中的属性为主属性,不包含在 若任何候选码中的属性称为非主属性。


例9.1 设有关系模式SC(Sno, Sname, Cno, Credit, Grade),其中各属性分别为:学号、姓名、课程号、学分和成绩,主键为(Sno,Cno),则有如下函数依赖:
Sno→ Sname                姓名函数依赖于学号
(Sno, Cno)—p>Sname       姓名部分函数依赖于学号和课程号 
(Sno,Cno)----f>Grade             成绩完全函数依赖于学号和课程号
例9.2 设有关系模式S(Sno, Sname, Sdept, Dept_master),其中各属性分别为:学号、姓名、所在系和系主任(假设一个系只有一个主任),主键为Sno,则有如下函数依赖关系:
Sno —→f Sname                 姓名完全函数依赖于学号
由于有:
Sno--->fSdept                         所在系完全函数依赖于学号
Sdept —f>Dept_master           系主任完全函数依赖于所在系
因此:
Sno ---传递>Dept_master                系主任传递函数依赖于学号

函数依赖的推理规则
1.Amstrong 公理

(1)自反律(reflexivity)
若Y\inX\subseteqU 则X一Y在R上成立。即一组属性函数决定它的所有子集
例如,对关系模式SC(Sno, Sname, Cno, Credi,Grade)

有:(Sno, Cno)→Cno和 (Sno, Cno)→ Sno
(2)增广律(augmentation)。
著X一Y在R上成立,且Z \subseteqU,则XZ→YZ在R上也成立。
(3)传递律(transitivity)。
若X一Y和Y→Z在R上成立,则X→Z在R上也成立。
2. Armstrong 公理推论

(1)合并规则(union rule)。
若x→Y和X→Z在R上成立,则X→YZ在R上也成立。
例如,对关系模式Student (Sno, Sname, Sdept, Sage),有Sno→(Sname, Sdept),Smo-age

则有 Sno→(Sname, Sdept, Sage)成立。
(2)分解规则(decomposition rule)。
若X→Y和Z\subseteqY在R上成立,则X→Z在R上也成立。
从合并规则和分解规则可得到如下重要结论:
如果A1 …An,是关系模式R的属性集,那么X→A1…An成立的充分必要条件是X一Ai(i=1,2,…,n)成立。

(3)伪传递规则(pseudo-transitivity rule)。
若X→Y和YW→Z在R上成立,则XWZ在R上也成立。
(4)复合规则(composition rule)。
若X→Y和W→Z在R上成立,则XW→YZ在R上也成立。
例如,对关系模式SC(Sno, Sname,Cno, Credit, Grade)

有:Sno→ Sname 和 Cno→ Credit 成立
则有:(Sno, C
no)→(Sname, Credit)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关系模式、属性依赖和函数关系都是关系数据库中的基本概念,它们分别表示了数据库中的数据结构和数据之间的关系。 1. 关系模式关系模式指的是关系表格(也称为关系)的结构描述,包括表格中的属性、属性的数据类型、属性之间的联系等信息。关系模式可以看作是关系表格的元数据,它定义了表格的结构和属性的含义,但并不包含表格中的具体数据。 2. 属性依赖:属性依赖指的是一个关系表格中一个或多个属性对其他属性的决定关系。例如,在一个学生表格中,学生的年龄和出生日期之间存在函数依赖,因为根据出生日期可以推算出学生的年龄。属性依赖对于关系数据库的设计和优化非常重要,它可以帮助我们更好地理解数据之间的关系,避免数据冗余和不一致性。 3. 函数关系:函数关系指的是一个关系表格中一个或多个属性对其他属性的计算关系。例如,在一个订单表格中,订单的总金额可以通过订单数量和单价的乘积计算得出。函数关系也对于关系数据库的设计和优化非常重要,它可以帮助我们更好地理解数据之间的计算关系,避免重复计算和错误计算。 综上所述,关系模式、属性依赖和函数关系都是关系数据库中的重要概念,它们共同构成了一个完整的数据模型,帮助我们更好地管理和利用数据库中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值