在讲范式之前,我们先来了解有关范式的基本概念,听懂了有利于后面的学习。
1. 函数依赖
首先一个好的关系模式是不会出现以下问题的:
- 插入异常
- 删除异常
- 更新异常
- 数据冗余尽量少
如果出现那是由于 数据依赖,其中数据依赖分为:函数依赖,多值依赖,连接依赖等等。
所以,当关系模式出现问题,解决方法为—— 规范化理论(找到关系模式中不适合的数据依赖,并消除它们)
在范式这里经常使用函数依赖。那么什么是函数依赖呢?关系R中的属性 X,R 中的属性 Y 只有唯一值与之对应,则称 X 函数决定 Y 或称 Y 函数依赖于 X ,记作 X—>Y 。其中,X 称为决定因素。以下关系模型经常简化为 R<U,F>,如下图。
这里给出一个例子,后面就根据这个例子来讲解。
非常主要
在函数依赖中还有以下几种分类:
1.1 平凡函数依赖和非平凡函数依赖
(1)X→Y
且 Y∉X
,则 X→Y
是非平凡函数依赖。例如 (sno,cno)→grade
(2)X→Y
且 Y∈X
,则X→Y
是平凡函数依赖。例如 (sno,cno)→sno
, (sno,cno)→cno
1.2 完全函数依赖和部分函数依赖
(1)X→Y
,在 x 的真子集 X'
,Y
均不依赖于 X'
,则称 Y 完全函数依赖于 X。在箭头上面加上 F。
(2)X→Y
,在 x 的真子集X'
,Y存在依赖于X'
,则称Y完全函数依赖于 X
。在箭头上面加上 P。
例如以下的例子
1.3 传递函数依赖
X→Y
,Y→Z
所以 X→Z
,Z 传递函数依赖于 X。
例如,sno→sdept
,sdept→sloc
,所以 sno→sloc
。