第2章 关系型数据库基础
σ性别=‘男’ ∧ 年龄>20(学生)
学号 姓名 性别 年龄 98001 张明 男 29 98003 王军 男 28
关系代数
投影(Projection ) —— 列查询
四川农业大学 潘勇浩
2016
在关系R中按指定的列序选出若干属性列组成新的 关系,记作:∏A(R)= { t[A] | t∈R },其中A为一 个R的属性名(或属性序号)的序列。注意投影结果中 必须消去重复的元组。
辅助专门的关系运算的运算 比较运算 逻辑运算 >,<,≥,≤,=,≠ 与(∧),或(∨),非(┐)
关系代数
并(Union )
四川农业大学 潘勇浩
2016
设关系R和关系S是相容(具有相同的度,且对应 的属性取自同一个域)的,则关系R和关系S的并 由属于R或属于S的元组组成,记为: R∪S = { t | t∈R ∨ t∈S }
关系模型的基本概念
四川农业大学 潘勇浩
2016
如果关系R的一个属性组F不是R的主码,但F与 另一关系S(R和S可以是同一关系)的主码相对应, 则称F为关系R的外码(Foreign key)。并称关系 R为参照关系(referencing relation),关系S称 为被参照关系(referenced relation)。
关系模型的基本概念
关系应具备如下性质:
1. 不允许出现两个以上完全相同的元组
四川农业大学 潘勇浩
2016
2. 元组次序是任意的
3. 理论上没有列序
4. 每一列的值来自于同一个域,是同一类型的数据。
5. 不同的列可来自于同一个域,每一列称为一个属性,
有唯一的属性名。 6. 属性值是不可再分的数据项,即具有原子性。
姓名 张三 李四 王五 语文 58 45 68
D1 = 姓名 = {张三,李四,王五} D2 = 分数 = {x|0≤x≤100}
数学 政治 69 77 89 74 74 62
关系模型的基本概念
四川农业大学 潘勇浩
2016
关系的结构描述称为关系模式(Relation schema), 它可以形式化地表示为一个五元组:
学生
学号 98001 98002 98003 98004 98005 98006 98007 姓名 性别 年龄 张明 男 29 李华 女 30 王军 男 28 孙六 女 27 赵龙 女 18 周艺 女 22 钟伟 男 19
σ年龄<20(学生)
学号 姓名 性别 年龄 98005 赵龙 女 18 98007 钟伟 男 19
S
学历 高中 大学
补助 78 240
关系代数
选择(Selection ) —— 行查询
四川农业大学 潘勇浩
2016
从关系R中选出满足条件F的元组组成新关系,记 作: σF(R)= { t | t∈R ∧ F(t) } ,其中F为一个 由属性名(或属性序号)、常量、简单函数用比较运 算符和逻辑运算符组成的逻辑表达式。
参照关系
学 生 选 课
被参照关系 姓名 张三 李四 王五 课程号 K01 K02 K01 外码
课 课程号 课程名 学分 程 K01 数据结构 3
学号 98001 98002 98003
K02 K03
主码
软件工程 数据库
4 3
关系模型的完整性约束
四川农业大学 潘勇浩
2016
实体完整性(Entity integrity):主码属性值不能为空值 参照完整性(Referential integrity):若F是关系R 的外 码,则F的取值要么为空,要么取被参照关系S 的某一 主码值。 用户自定义的完整性(User-Defined integrity):用户 按实际需要对属性或元组定义的规则或条件。
n
m
i 1
i
关系模型的基本概念
例如给定3个域: D1=学生集合={张三,李四,王五} D2=专业集合={计算机,食品}
四川农业大学 潘勇浩
2016
D3=课程集合={数据结构,肉品加工}
则D1,D2,D3的笛卡尔积D1×D2×D3为:
(张三,计算机,数据结构), (张三,计算机,肉品加工), (张三,食品,数据结构), (张三,食品,肉品加工), (李四,计算机,数据结构), (李四,计算机,肉品加工), (李四,食品,数据结构), (李四,食品,肉品加工), (王五,计算机,数据结构), (王五,计算机,肉品加工), (王五,食品,数据结构), (王五,食品,肉品加工)
关系模型的基本概念
换种方式表示
D1 = 学生集合 = {张三,李四,王五} D2 = 专业集合 = {计算机,食品} D3 = 课程集合 = {数据结构,肉品加工} 上面3个域D1,D2,D3的笛卡尔 积D1×D2×D3也可以表示为 如右边所示的二维表: 学生 张三 张三 张三 张三 李四 李四 李四 李四 王五 王五 王五 王五
四川农业大学 潘勇浩
2016
学生 学号 姓名 系名
9801 9802 9803 9804 9805 9806 9807 张明 IS 赵龙 CS 陈然 MA 李科 IS 王军 IS 朱成 IS 黄沙 CS
ST(学号,姓名,性别,年龄,系) 关系模式 学生(学号,姓名,系名)
关系模型的基本概念
四川农业大学 潘勇浩
R×S = { t | t=<tr,ts> ∧ tr∈R ∧ ts∈S }
R 姓名 性别 年龄
张三 李四 王五 男 女 男 20 22 18
R×S 姓名 性别 年龄 学历 补助
张三 张三 李四 李四 王五 王五 男 男 女 女 男 男 20 20 22 22 18 18 高中 大学 高中 大学 高中 大学 78 240 78 240 78 240
R
R.C = S.D
S
隐含连接条件为 R.B=S.B
R
A a1 a1 a2 a2
S
B C b1 3 b2 6 b3 2 b3 2 D 3 7 10 6
A R.B C S.B D a1 b1 3 b1 3 a1 b2 6 b3 6
关系代数
除(division )
基数为无穷
关系模型的基本概念
四川农业大学 潘勇浩
2016
一组域D1,D2,…,Dn(域可以有相同的)的笛卡 尔积(Cartesian Product)为: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 其中每一个元素(d1,d2,…,dn)称为一个n元 组(n-tuple),简称元组(Tuple)。 元组中一每一个di称为元组分量 若Di的基数为mi,则结果的基数为:
从关系R和S的广义笛卡尔积中选取R与S的属性间 满足一定条件的元组,可记作:
R
R.A θ S.B
S = σR.A θ S.B(R×S )
其中θ是比较运算符,A和B分别为R和S上度数相等 且可比的属性集。
θ为‚=”时称为等值连接,其它称为非等值连接。 A和B是相同的属性集时的等值连接称为自然连接 R S = σR.A=S.A(R×S ) (natural-join),记为: 注意自然连接的结果中要消除重复的属性列。
2016
码(Key,又称键)是用于标识元组的属性集
能唯一 标识元组的属性集称为超码(Super Key) 能唯一标识关系中元组的最小属性集称为候选码 (Candidate Key) 若一个关系有多个候选码,则可以从中选择一个作为 主码(Primary Key)。
学号 98001 98002 ┆ 99343 姓名 张三 李四 ┆ 王五 性别 男 女 ┆ 男 年龄 29 30 ┆ 29
四川农业大学 潘勇浩
2016
关系模型的基本概念
四川农业大学 潘勇浩
2016
域(Domain)是一组具有相同数据类型的 值的集合。 域中所包含的值的个数称为域的基数。
D1 = { '男' ,'女' }
D2 = { x | 0≤x≤150 }
基数为2
基数为151
D3 = { <ai,aj>| i,j=1,2,3…… }
2016
笛卡尔积D1×D2×…×Dn的任意一个子集称为在 域D1,D2,…,Dn上的一个关系(Relation)。 其中域的数目n称为关系的度(Degree)。
度为n的关系称为n元关系。 关系可以看作是一张规则的,有意义的二维表。
学生 张三 李四 王五 专业 食品 计算机 计算机 课程 肉品加工 数据结构 数据结构
关系代数
连接(Join )
R
A a1 a1 a2 a2 B b1 b2 b3 b4 C 3 6 2 4
四川农业大学 潘勇浩
2016
S
B b1 b2 b3 b3 b5 D 3 7 10 6 5
R
C>D
S
C 6 6 4 S.B b1 b5 b1 D 3 5 3
A R.B a1 b2 a1 b2 a4 b4
四川农业大学 潘勇浩
2016
专业 计算机 计算机 食品 食品 计算机 计算机 食品 食品 计算机 计算机 食品 食品
课程 数据结构 肉品加工 数据结构 肉品加工 数据结构 肉品加工 数据结构 肉品加工 数据结构 肉品加工 数据结构 肉品加工
每一行就是一个元组,每一列都来自同一域
关系模型的基本概念
四川农业大学 潘勇浩
参照关系
学 生 选 课
被参照关系
学号 98001 98002 98003
姓名 张三 李四 王五
课程号 K01 K02 K01
外码
课 课程号 课程名 学分 程 K01 数据结构 3
K02 K03 主码
软件工程 数据库
4 3