数据库第二章
主键,而是引用另一个关系的主键,则称这一属性 或属性组为外键。
数据库原理及应用课件
2.3 关系的完整性
2.3.1 实体完整性 规则2-1:若属性A是基本关系R上的主属性,则属性A不能取空 值。
如关系学生(学号,姓名,性别,年龄,籍贯),在此关系中, 学号是主码,则学号也是主属性,如果主属性学号的取值为空, 且其他信息相同的学生,则就没有办法区分信息相同的学生。
A
B
a1
b1
a1
b2
a2
b2
(a)R
C
A
c1
a1
c2
a1
c1
a2
减去
B
C
b2
c2
b3
c2
b2
c1
(b)S
A
B
C
a1
b1
c1
R-S
数据库原理及应用课件
R×S
A
B
C
a1
b1
c1
a1
b2
c2
a2
b2
c1
A
B
C
a1
b2
c2
a1
b3
c2
a2
b2
c1
A
B
C
A
B
C
a1
b1
c1
a1
b2
c2
a1
b1
c1
a1
b3
c2
• 4.广义笛卡尔积(Extended Product) 与第二节的笛卡尔积的计算方法相同。
数据库原理及应用课件
• 例2-4 给定关系R和S,如图2-5(a)、(b)所示,求R∪S,R∩S,R-S,R×S。
A
B
a1
b1
a1
b2
a2
b2
(a)R
R∪S=R ∪(R∩S)
C
A
B
C
c1
a1
b2
c2
c2
a1
b3
c2
c1
a2
b2
c1
(b)S
A
B
C
a1
b1
c1
a1
b2
c2
a2
b2
c1
a1
b3
c2
R∪S
数据库原理及应用课件
R∩S
A
B
C
a1
b1
c1
a1
b2
c2
a2
b2
c1
(a)R
A
B
C
a1
b2
c2
a1
b3
c2
a2
b2
c1
(b)S
A
B
C
a1
b2
c2
a2
b2
c1
R∩S
数据库原理及应用课件
R-S= R-(R∩S)
2.3.3 用户自定义完整性
针对某一具体关系数据库的约束条件,它反映某一具体应用 所涉及的数据必须满足的语义要求。
数据库原理及应用课件
2.4 关系代数
• 关系代数式关系操纵语言的一种传统表示方式,它是以集合 代数为基础发展起来的,但它的运算对象和运算结果均为关 系。
• 关系代数也是一种抽象的查询语言,它通过对关系的运算来 表达查询。
÷
>
≥
< 比较运算符
≤
=
≠ ∧
逻辑运算符
∨
﹁
含义 并 交 差 广义笛卡尔积 选择 投影 连接 除法 大于 大于等于 小于 小于等于 等于 不等于 与 或 非
数据库原理及应用课件
2.4.1传统的集合运算
• 传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四 种运算。
• 1.并(Union) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 运算结果为参与运算的两个关系的所有元组,并去掉重复的元组 。此运算不会对参与运算的关系的列数造成影响。
(c)学生选课表
数据库原理及应用课件
2.2.2 关系的数学定义
• 1.域:域是一组具有相同数据类型的值的集合。 • 2.笛卡尔积 • 3.关系:D1×D2×D3×…×Dn的子集 目(或度) 数据表:关系 字段:属性 记录:元组
数据库原理及应用课件
2.2.3 关系的性质
• 1.同一属性的数据具有同质性 • 2.同一关系的属性名具有不可重复性 • 3.关系中列的位置具有顺序无关性 • 4.关系中元组的位置具有顺序无关性 • 5.关系具有元组无冗余性 • 6.关系中每一个分量都必须是不可分割的数据项
数据库原理及应用课件
第2章 关系数据库
• 2.1关系模型概述 • 2.2关系数据库的基本概念 • 2.3 关系的完整性 • 2.4 关系代数(本章重点及难点) • 2.5 关系演算 • 2.6 关系代数表达式的优化
数据库原理及应用课件
2.1关系模型概述
关系数据库系统是支持关系模型的数据库系统。
关系模型的三要素为:数据结构、关系操作、关系模型的
数据库原理及应用课件
2.2关系数据库的基本概念
2.2.1 关系模型的数据结构 2.2.2 关系的数学定义 2.2.3 关系的性质 2.2.4 几个常用术语
数据库原理及应用课件
2.2.1 关系模型的数据结构
• 在关系模型中,数据结构就是用单一的二维表结构来 表示实体集以及实体与实体之间的联系的。
学号 090101 090102 090103 090104
• 运算的三大要素:运算对象、运算符和运算结果。 • 关系代数分为:传统的集合运算和专门的关系运算。 • 传统的集合运算有:并、交、差、广义笛卡尔积四种运算。 • 专门的关系运算有:选择、投影、选择、除四种运算。
数据库原理及应用课件
表2-5 关系代数用到的运算符
运算符 ∪ ∩
集合运算符 ×
σ ∏ 专门的关系运算符
a1
b2
c2
a2
b2
c1
a1
b3
c2
a2
b2
c1
a2
b2
c1
ABCABC a1 b2 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1
数据库原理及应用课件
步骤3:消除重复的属性列。
A
B
C
A
B
C
a1
b2
c2
a1
b2
c2
a2
b2
c1
a2
b2
c1
A a1 a2
取消
取消后
B
C
b2
c2
b2
c1
数据库原理及应用课件
数据库原理及应用课件
2.2.4 几个常用术语
• 1.关系模式 表示方法为R(U,D,DOM,F),其中R为关系名,U为组成该 关系的属性集合,D为属性组U中的属性所来自的域, DOM为属性向域的映像的集合,F为属性间数据的依赖关 系集合。
• 2.关系数据库:在关系数据库中,实体集以及实体间的联 系都是用关系来表示的。
• 2.差(Difference) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 假设参与运算的关系为R和S,则运算结果为R减去和S相同的元 组后剩下的元组,也可表示为R-(R∩S)。此运算不会对参与运算 的关系的列数造成影响。
数据库原理及应用课件
2.4.1传统的集合运算
• 3.交(Intersection) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 假设参与运算的关系为R和S,则运算结果为R和S相同的元组。 此运算不会对参与运算的关系的列数造成影响。
数据库原理及应用课件
(8)查询选修课程名为maths的学生学号与姓名。 (9)得到一张包括学生学号、姓名、课程名称、学分和成绩的学生成绩
单。 (10)查询选修课程号为C2或C4的学生学号。 (11)查询至少选修课程号为C2和C4的学生学号。 (12)查询不选修C2课程的学生姓名与年龄。 (13)查询学习全部课程的学生姓名。 (14)查询全体学生都选修的课程的课程号和课程名。 (15)查询所学课程包含学生S3所学课程的学生学号。 (16)查询选修课程包含Liu老师所授课程的学生学号。 (17)将新选修课程元组(‘S1’,‘C1’,‘95’)插入到关系SC中。 (18)将学号为S4、选修课程号为C4的学生的成绩改为85分。
a1
b2
c2
a2
b2
c1
a1
b3
c2
a2
b2
c1
a2
b2
c1
数据库原理及应用课件
步骤2:从笛卡尔积中找出各个属性列的值都相等的元组;
A
B
C
A
B
C
a1
b1
ห้องสมุดไป่ตู้
c1
a1
b2
c2
a1
b1
c1
a1
b3
c2
a1
b1
c1
a2
b2
c1
a1
b2
c2
a1
b2
c2
a1
b2
c2
a1
b3
c2
a1
b2
c2
a2
b2
c1
a2
b2
c1
• 4.除法
除法操作是同时从行和列的角度进行运算的。 R÷S的具体过程为: (1)求出R中的X的各个分量的象集YX; (2)求出S在Y上投影的集合∏y(S); (3)比较YX和∏y(S),选取满足∏y(S)包含于YX的分量,记作X+; (4) R÷S={X+}。 例:设有关系R、S如下表所示,求R÷S的结果。
无学号,就 无法区分两 个陆小凤。
学号 090101
090104