关系数据库的模式设计(转贴)

关系模式的设计问题
  
   关系数据库的设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起核心作用。
  
  例:R(TNAME,ADDRESS,C#,CNAME)
  
  
  
  限定事实:一个教师只有一个地址;
  
   一个教师可教若干门课;
  
   每门课程只有一个教师任教。
  
   所以R的键是(TNAME,C#)。
  
   实际使用中存在的问题:
  
   1.数据重复
  
   2.更新异常
  
   3.插入异常
  
   4.删除异常
  
  采用对属性间的函数依赖来解决,使用分解方法,将R分解成两个模式:
  
   R1(TNAME,ADDRESS)
  
   R2 (TNAME,C#,CNAME)
  
   分解后,四个问题解决基本解决。即每个教师的地址只存放一次,即使一个教师没有教学任务,他的地址也可存放在R1中。
  
   但是这种分解并非最佳。例如要检索教某门课的教师的地址,就需要进行联接操作,但是代价太大。
  
  
  
  函数依赖
  
  
  
  函数依赖的定义
  
   设有关系模式R(A1,A2,…,An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。 X→Y为模式R的一个函数依赖。
  
  这里的t1[X]表示元组t1在属性集X上的值,t2[X]表示元组t2在属性集X上的值,函数依赖是对关系R的一切可能的当前值r定义的,不是针对某个特定关系。
  
   函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。不能只看到关系模式R的一个特定关系,就推断那些函数依赖对于R成立。
  
  在关系模式R中,要判断FD是否成立,惟一的办法是仔细考察属性的含义。即函数依赖实际是对现实世界的断言。
  
  
  
   例:学习关系R(S#,SN,C#,G,CN,TN,TA)
  
   在R中的关系r中,存在函数依赖:
  
   S#→SN(每个学号只能有一个学生姓名)
  
   C# →CN(每个课程只能对应一门课程名)
  
   TN →TA(每个教师只能有一个年龄)
  
   (S#,C#) →G(每个学生学习一门课只能有一个成绩)
  
  
  
  函数依赖的逻辑蕴涵
  
   这里主要研究对于给定的一组函数依赖,如何判断另外一些函数依赖是否存在。
  
   定义:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y,记为F︱=X→Y。
  
   被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。
  
  
  
  •键
  
   键是惟一标识实体的属性集。这里把键和函数依赖结合起来,做一个准确的定义。
  
   设有关系模式R(A1,…,An),F是R上的函数依赖集,X是{A1,…,An}的一个子集。如果
  
   1.X→A1A2…An∈ F+,且
  
   2.不存在X的真子集Y,使得Y→A1A2…An成立,则称X是R的一个候选键。
  
  
  
  在定义中A1A2…An是A1∪A2∪…∪An的简写。1表示X能惟一决定一个元组;2表示X能满足1而又无多余的属性集。
  
  例:设关系模式R(XYZ),已知FD是X→Y和Y→Z,那么可以推出X→XYZ也在F+中,但X的真子集(此处是空集)不可能函数决定XYZ,因此,X是模式R的键。
  
  
  
  例:R(S#,SNAME,SEX,AGE)
  
  在该模式中,S#→ (S#,SNAME,SEX,AGE)
  
   S#不存在任何真子集,所以S#是键。
  
   (S#,SNAME)也可以决定R中的全部属性,但它不是键,因为其中含有真子集S#,可以决定R的所有属性。
  
  
  
  
  
  函数依赖的推理规则
  
  
  
   ARMSTRONG推理规则
  
  设有关系模式R(A1,A2,…,An)和属性集U= A1A2…An,X,Y,Z,W都是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:
  
  
  
  1.自反律
  
   如果YÍXÍU,则X→Y在R上成立。
  
  
  
  2.增广律
  
   如果X→Y为F所蕴涵,ZÍU,则XZ→YZ在R上成立。(XZ表示X∪Z)
  
  
  
  3.传递律
  
   如果X→Y和Y→Z在R上成立,则X→Z在R上也成立。
  
  
  
  4.合并律
  
   如果X→Y和X→Z成立,那么X→YZ成立。
  
  
  
  5.伪传递律
  
   如果X→Y和WY→Z成立,那么WX→Z成立。
  
  
  
  6.分解律
  
   如果X→Y和ZÍY成立,那么X→Z成立。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值