数据库第二章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主键,而是引用另一个关系的主键,则称这一属性 或属性组为外键。
数据库原理及应用课件
2.3 关系的完整性
2.3.1 实体完整性 规则2-1:若属性A是基本关系R上的主属性,则属性A不能取空 值。
如关系学生(学号,姓名,性别,年龄,籍贯),在此关系中, 学号是主码,则学号也是主属性,如果主属性学号的取值为空, 且其他信息相同的学生,则就没有办法区分信息相同的学生。
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
a1
b2
c2
a2
b2
c1
a1
b3
c2
a2
b2
c1
a2
b2
c1
数据库原理及应用课件
2.4.2 专门的关系运算
• 1.选择(Selection) 选择是水平方向的运算,是在关系中找出符合条件的元组。 选择是单目运算,仅有一个运算对象。
(c)学生选课表
数据库原理及应用课件
2.2.2 关系的数学定义
• 1.域:域是一组具有相同数据类型的值的集合。 • 2.笛卡尔积 • 3.关系:D1×D2×D3×…×Dn的子集 目(或度) 数据表:关系 字段:属性 记录:元组
数据库原理及应用课件
2.2.3 关系的性质
• 1.同一属性的数据具有同质性 • 2.同一关系的属性名具有不可重复性 • 3.关系中列的位置具有顺序无关性 • 4.关系中元组的位置具有顺序无关性 • 5.关系具有元组无冗余性 • 6.关系中每一个分量都必须是不可分割的数据项
三类完整性规则。

• 1.数据结构
交 传统的集合运


一张二维表 • 2.关系操作
关系代数语 言
广义笛卡尔积 选择
专门的关系代数运 算
投影 连接
关系数据语 言
元组演算语言
除法
关系演算语言
域演算语言
具有关系代数和关系演算双重特点的语言, 如SQL
数据库原理及应用课件
• 关系模型的三类完整性规则
实体完整性规则,参照完整性规则,用户自定义完 整性规则。 实体完整性:对主属性的约束 参照完整性:对外码的约束 用户自定义完整性:用户根据实际情况对其他属性 列的约束
• 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的结果。
数据库原理及应用课件
求R S
R
A
B
C
S
A
B
C
a1
b1
c1
a1
b2
c2
a1
b2
c2
a1
b3
c2
a2
b2
c1
a2
b2
c1
步骤1:
R×S
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
A
B
C
a1 b1 c2
a1 b2 c1
a1 b2 c3
a2 b2 c3
a2 b3 c7
a3 b4 c6
a4 b6 c6
B
C
D
b1 c2 d1
b2 c1 d1
b2 c3 d2
R
S
数据库原理及应用课件
2.4.3 关系代数计算的应用举例
• 设教学数据库中的三个关系: 学生关系S(sno,sname,sex,age,dept) 学习关系SC(sno,cno,grade) 课程关系C(cno,cname,cpno,credit,teacher) 其中,cpno,credit,teacher分别代表先修课程号、学分和任课教师。 要求用关系代数表达式表示下列每个查询语句。 (1)查询所有年龄小于20岁的男学生信息。 (2)查询所有女同学的姓名和年龄。 (3)查询计算机系和机械系学生信息。 (4)查询年龄在18~20岁之间的学生的学号、姓名和系别信息。 (5)查询不作为其他课程先修课的课程号。 (6)查询学习课程号为C2的学生学号和成绩。 (7)查询学习课程号为C2的学生学号和姓名。
÷
>

< 比较运算符


≠ ∧
逻辑运算符


含义 并 交 差 广义笛卡尔积 选择 投影 连接 除法 大于 大于等于 小于 小于等于 等于 不等于 与 或 非
数据库原理及应用课件
2.4.1传统的集合运算
• 传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四 种运算。
• 1.并(Union) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 运算结果为参与运算的两个关系的所有元组,并去掉重复的元组 。此运算不会对参与运算的关系的列数造成影响。
• 运算的三大要素:运算对象、运算符和运算结果。 • 关系代数分为:传统的集合运算和专门的关系运算。 • 传统的集合运算有:并、交、差、广义笛卡尔积四种运算。 • 专门的关系运算有:选择、投影、选择、除四种运算。
数据库原理及应用课件
表2-5 关系代数用到的运算符
运算符 ∪ ∩
集合运算符 ×
σ ∏ 专门的关系运算符
ቤተ መጻሕፍቲ ባይዱ
数据库原理及应用课件
2.2.4 几个常用术语
• 1.关系模式 表示方法为R(U,D,DOM,F),其中R为关系名,U为组成该 关系的属性集合,D为属性组U中的属性所来自的域, DOM为属性向域的映像的集合,F为属性间数据的依赖关 系集合。
• 2.关系数据库:在关系数据库中,实体集以及实体间的联 系都是用关系来表示的。
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
• 3.超键:在关系中能唯一标识元组的属性集。 • 4.候选键:如果一个属性集能够唯一标识元组,又不含多
余属性,则称为候选键。
数据库原理及应用课件
2.2.4 几个常用术语
• 5.主键:用户选作元组标识的一个候选键称为主键 或主码,也称为关键字。一般情况下,键或码就是 主键。
• 6.主属性:候选键中的所有属性都称为主属性。 • 7.非主属性:不含在任何候选键中的属性。 • 8.外键:如果关系中的属性或属性组不是本关系的
• 2.投影 投影是垂直方向的运算,是在关系中找出符合条件的属性列。
• 3.连接 连接的一般格式:
RS
aθb
其中,a为R中的属性列,b为S中的属性列,a、b可以使属性名 ,还可以是属性列的列数,或a为列名,b为具体的值,b为列 名,a为具体的值等的形式;
θ为比较运算符:>,≥,<,≤,=,≠。
数据库原理及应用课件
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关系数据库的基本概念
2.2.1 关系模型的数据结构 2.2.2 关系的数学定义 2.2.3 关系的性质 2.2.4 几个常用术语
数据库原理及应用课件
2.2.1 关系模型的数据结构
• 在关系模型中,数据结构就是用单一的二维表结构来 表示实体集以及实体与实体之间的联系的。
学号 090101 090102 090103 090104
数据库原理及应用课件
第2章 关系数据库
• 2.1关系模型概述 • 2.2关系数据库的基本概念 • 2.3 关系的完整性 • 2.4 关系代数(本章重点及难点) • 2.5 关系演算 • 2.6 关系代数表达式的优化
数据库原理及应用课件
2.1关系模型概述
关系数据库系统是支持关系模型的数据库系统。
关系模型的三要素为:数据结构、关系操作、关系模型的
无学号,就 无法区分两 个陆小凤。
学号 090101
090104
姓名 张三风 陆小凤 陆小凤 林冲
性别 男 男 男 男
学生表
年龄 18 19 19 20
籍贯 河南 河北 河北 江苏
数据库原理及应用课件
2.3 关系的完整性
2.3.2 参照完整性
规则2-2:若属性(或属性组)F是基本关系R的外键,它与基 本关系S的主键Ks相对性(基本关系R和S不一定是不同的关 系),则对于R中的每个元组在F上的值必须为空值(F的每一 个属性值均为空值)或者等于S中某个元组的主键值。 实体完整性和参照完整性适用于任何关系数据库系统。
连接运算中的两种重要且常用的连接:等值连接和自然连接。 等值连接 θ为“=”的连接运算称为等值连接。 计算过程: (1)计算R×S; (2)从R×S的结果中取出符合条件的元组。 自然连接 是一种特殊的等值连接,要求两个关系中进行比较的分量必须是相同 的属性组,并且在结果中把重复的属性列去掉,即若R和S具有相同 的属性组。 计算过程: (1)计算R×S; (2)从R×S的结果中取出符合条件的元组; (3)去掉重复的属性列。
• 2.差(Difference) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 假设参与运算的关系为R和S,则运算结果为R减去和S相同的元 组后剩下的元组,也可表示为R-(R∩S)。此运算不会对参与运算 的关系的列数造成影响。
数据库原理及应用课件
2.4.1传统的集合运算
• 3.交(Intersection) 要求参与运算的两个关系具有相同的列数,属性列的域要相同。 假设参与运算的关系为R和S,则运算结果为R和S相同的元组。 此运算不会对参与运算的关系的列数造成影响。
2.3.3 用户自定义完整性
针对某一具体关系数据库的约束条件,它反映某一具体应用 所涉及的数据必须满足的语义要求。
数据库原理及应用课件
2.4 关系代数
• 关系代数式关系操纵语言的一种传统表示方式,它是以集合 代数为基础发展起来的,但它的运算对象和运算结果均为关 系。
• 关系代数也是一种抽象的查询语言,它通过对关系的运算来 表达查询。
数据库原理及应用课件
(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分。
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)
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
姓名 张三风 陆小凤 陈珍 林冲
性别 男 男 女 男
籍贯 河南 河北 山西 江苏
(a)学生表
课程号 课程名 学分 C01 C语言 3 C02 数据结构 4 C03 操作系统 4
(b)课程表
学号 课程号 成绩 090101 C01 92 090101 C02 85 090101 C03 89 090102 C01 77 090102 C02 86 090103 C02 95 090104 C03 79
• 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
相关文档
最新文档