关系数据库模式
1.定义相关项1
在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构中的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。
实际上,
- 关系的概念对应于程序设计语言中变量的概念
- 关系模式对应的于程序设计语言中类型的定义的概念
关系数据库的值是这些关系模式在某一个时刻而对应的关系的集合,通常称之为关系数据库。
定义:关系的描述称为关系模式(Relation Schema),可以形式化地表示为:
R
(
U
,
D
,
d
o
m
,
F
)
R (U , D , dom,F)
R(U,D,dom,F)
其中,R表示关系名;U是组成该关系的属性名集合;D是属性的域;dom是属性向域的影像集合;F为属性间数据的依赖关系集合。
通常将关系模式简记为:
R
(
U
)
或
R
(
A
1
,
A
2
,
A
3
,
…
,
A
n
)
R(U)或R(A_1,A_2,A_3,\dots,A_n)
R(U)或R(A1,A2,A3,…,An)
其中,R为关系名,A1,A2,A3,…,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。
通常在关系模式主属性上加下划线标识该属性为主码属性。
2.关系运算
集合运算符、专门的关系运算符、算数比较符和逻辑运算符。
根据运算符的不同,关系代数运算可分为传统的集合运算和专门的关系运算。传统的集合运算是从关系的水平方向进行的,包括并、交、差以及广义笛卡尔积。专门的运算关系既可以从关系的水平方向进行运算,又可以向关系的垂直方向运算,包括选择、投影、连接以及除法。
并、差、笛卡尔积、投影、选择是5中基本的运算,因为其他运算可以通过基本的运算导出。
运算符 | 含义 |
---|---|
集合运算符 | ∪ 并 \cup 并 ∪并 − 差 -差 −差 ∩ 交 \cap交 ∩交 × 笛 卡 尔 积 \times 笛卡尔积 ×笛卡尔积 |
专门的关系运算符 | σ 选 择 \sigma选择 σ选择 π 投 影 \pi投影 π投影 ⋈ 连 接 \bowtie连接 ⋈连接 ÷ 除 \div除 ÷除 |
比较运算符 | |
逻辑运算符 | ¬ 非 \neg非 ¬非 ∨ 与 \vee与 ∨与 ∧ 或 \wedge或 ∧或 |
3.函数依赖
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。
- 函数依赖。设R(U)是属性集U上的关系模式,X、Y是U的子集。若R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作 X → Y X \rightarrow Y X→Y
- 非平凡的函数依赖。如果 X → Y X \rightarrow Y X→Y,但 Y ∉ X Y \not\in X Y∈X,则称 X → Y X \rightarrow Y X→Y是非平凡依赖
- 平凡依赖的函数依赖。如果 X → Y X \rightarrow Y X→Y,但 Y ⊆ X Y \subseteq X Y⊆X,则称 X → Y X \rightarrow Y X→Y是平凡的函数依赖。
- 完全函数依赖。在R(U)中,如果 X → Y X \rightarrow Y X→Y,并且对于X的任何一个真子集 X ′ X' X′都有 X ′ X' X′不能决定Y,则称Y对X完全函数依赖。记作: X → f Y X \xrightarrow{f} Y XfY。 例子:给定一个学生选课关系SC(Sno,Cno,G),可以得到 F = { ( S n o , C n o ) → G } F = \{(Sno,Cno) \rightarrow G\} F={(Sno,Cno)→G},对(Sno,Gno)中的任何一个真子集Sno或Gno都不能决定G,所以G完全依赖于Sno,Gno。
- 部分函数依赖。如果 X → Y X \rightarrow Y X→Y,但Y不完全幻术依赖于X,则称Y对X部分函数依赖,记作 X → p Y X \xrightarrow{p} Y XpY。部分函数依赖也称为局部函数依赖。
- 传递依赖。在R(U,F)中,如果 X → Y , Y ∉ X , Y → Z X\rightarrow Y,Y \not\in X,Y \rightarrow Z X→Y,Y∈X,Y→Z,则称Z对X传递依赖
- 码。设K为R(U,F)中的属性的组合,若 K → U K \rightarrow U K→U,且对于K的任何一个真子集 K ′ K' K′都有 K ′ K' K′不能决定U,这K为R的候选码。若有多个候选码,则选一个作为主码。候选码通常也称为候选关键字。
- 主属性和非主属性。包含在任何一个候选码中的属性称为主属性,否则称为非主属性。
- 外码。若R(U)中的属性或属性组X非R的码,但X是另一个关系的码,则称为X的外码。
- 函数依赖的功力系统
试题
题一
2019年下半年53题
给定关系R(U,Fr),其中属性集U={A,B,C,D},函数依赖集
F
r
=
{
A
→
B
C
,
B
→
D
}
Fr = \{A \rightarrow BC , B \rightarrow D\}
Fr={A→BC,B→D};关系S(U,Fs),其中属性集
U
=
{
A
,
C
,
E
}
U=\{A,C,E\}
U={A,C,E} ,函数依赖集
F
s
=
{
A
→
C
,
C
→
E
}
Fs = \{A \rightarrow C , C \rightarrow E\}
Fs={A→C,C→E}。R和S的主键分为___1___关于Fr和Fs的叙述,正确的是___2___
(1)
A. A和A
B. AB和A
C. A和AC
D. AB和AC
(2)
A. Fr蕴含 A->B,A->C,但Fr不存在传递依赖
B. Fs蕴含A->E,Fs存在传递依赖,但Fr不存在传递依赖
C. Fr,Fs分别蕴含A->D,A->E,故Fr,Fs都存在传递依赖
D. Fr蕴含A->D,Fr存在传递依赖,但是Fs不存在传递依赖
解:A、C
1题:关系R与S中的属性A可以推出两个关系式其他全部属性,所以主键都是A
2题:
R中,A->BC等价与A->B并且A->C,又B->D所以A->D,存在传递依赖
S中,A->C,C->E所以A->E,存在传递依赖
本节内容取自《软件设计师教程 第5版》 ↩︎