关系数据理论

关系模式又五部分组成,是一个五元组:
R(U,D,DOM,F) 其中 R 是符号化的元组语义
U 为一组属性,D 为属性组U中的属性所来自的域
DOM 为属性到域的映射,F为属性组U上的一组数据依赖

由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组:R<U,F>

第一范式(NF)

作为二维表,关系要符合一个最基本的条件:
每个分量必须是不可分开的数据项

数据依赖(关系内部属性与属性的约束关系)
主要类型:
(1)函数依赖
例如:一个学号只对应一个学生,一个学生只在一个系中学习
Sname = f(Sno) ,Sdept = f(Sno)
即Sno函数决定Sname,Sno函数决定Sdept
记作 Sno->Sname,Sno->Sdept

【定义】设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元祖在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X->Y

【例】Student(Sno,Sname,Ssex,Sage,Sdept),假设不允许重名,则有:
Sno->Ssex, Sno->Sage,Sno->Sdept,Sno->Sname,Sname->Ssex,Sname->Sage,Sname->Sdept
在这里插入图片描述
平凡函数依赖和非平凡函数依赖
在这里插入图片描述
若X→Y,则X称为这个函数依赖的决定因素
若X→Y,Y→X,则记作X←→Y
若Y不函数依赖于X,则记作X↛Y

完全函数依赖和部分函数依赖
在这里插入图片描述

传递函数依赖
在这里插入图片描述
【例】在关系Std(Sno,Sdept,Mname)中,有:
Sno->Sdept,Sdept->Mname,Mname传递函数依赖于Sno

候选码可以唯一的确定一个元组

超码的某个真子集为候选码,候选码为最小的超码
在这里插入图片描述
若关系模式R中有多个候选码,则选定其中的一个做为主码

主属性与非主属性:
包含在任意一个候选码中的属性,称为主属性(任一候选码中含有的属性全都为主属性)
不包含在任何码中的属性称为非主属性

整个属性组是码,称为全码

关系模式R中属性或属性组X并非是R的码,但X是另一个关系模式中的码,则称X是R的外部码(也称外码

范式
在这里插入图片描述
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。

2NF

在这里插入图片描述

【例】S-L-C(Sno,Sdept,Sloc,Cno,Grade),Sloc为学生的住处,并且每一个系的学生住在同一个地方。S-L-C的码为为(Sno,Cno)
函数依赖有:
在这里插入图片描述
非主属性Sdept,Sloc并不完全依赖于码,关系模式S-L-C不属于2NF

一个关系模式不属于2NF,会产生以下问题
(1)插入异常
(2)删除异常
(3)修改复杂

解决方法:用投影方法把关系模式S-L-C发呢借我两个关系模式
SC(Sno,Cno,Grade)
S-L(Sno,Sdept,Sloc)

SC的码为(Sno,Cno),SL的码为Sno,这样使得非主属性对码都是完全函数依赖了

3NF

在这里插入图片描述
(没有传递依赖)

【例】S-L中Sno →Sdept( Sdept ↛ Sno), Sdept→Sloc,可得Sno → Sloc。
解决的办法是将S-L分解成
S-D(Sno,Sdept)∈ 3NF
D-L(Sdept,Sloc)∈ 3NF

BCNF

(扩展的第三范式)
在这里插入图片描述
(1)没有部分函数依赖和传递函数依赖
(2)决定因素中包含码

【例】关系模式S(Sno,Sname,Sdept,Sage)
假设Sname具有唯一性

  1. S中有两个候选码:Sno,Sname 非主属性:Sdept,Sage
  2. 非主属性不存在对码的传递依赖和部分依赖,所以S∈3NF
  3. S中决定因素Sno,Sname包含码,所以S也属于BCNF

多值依赖

【例】设学校中某一门课程由多个教师讲授,他们
使用相同的一套参考书。每个教员可以讲授多门课
程,每种参考书可以供多门课程使用

建立关系模式Teaching(C,T,B)
课程C
教师T
参考书B
在这里插入图片描述

在这里插入图片描述

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

4NF

在这里插入图片描述

规范化小结

在这里插入图片描述

习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值