当前位置:文档之家› 数据库关系代数

数据库关系代数


2.2关系代数
二、专门的关系运算
3。连接
2.2关系代数
4。除
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。R中
的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件 的元组在 X 属性列上的投影:元组在X上分量值x的象集Yx包
专门 的关 系运 算符
σ π ÷
选择 投影 连接 除
逻辑 运算 符
∧ ∨
非 与 或
2.2关系代数
一、传统的集合运算
1。 R∪ S 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t R∨t S }
2.2关系代数
2。 R - S
–仍为 n 目关系,由属于 R 而不属于 S 的所有元组 组成 R -S = { t|tR∧tS }
连接(续)
等值连接 R
S 的结果如下:
R.B=S.B
自然连接 R
S的结果如下:
连接(续)
一般连接: R S的结果如下:
C<E
2.2关系代数
二、专门的关系运算
3。连接
例:Student(sno,sname,sex,sclass) SC(sno,cno,grade) Course(cno,cname,credit)
例题
• 查看选修了数据库的学生信息(学号、姓名、所 在系) • 选修了数据库或数学的学生信息 • 选修了数据库和数学的学生信息 • 查看学生的选课情况(包括未选课的) • 至少选修了数据库和数学的学生信息 • 至少选修了程军老师所授全部课程的学生姓名 • 检索全部学生都选修的课程的课号与课名 • 检索选修了全部课程的学生姓名 • 检索至少选修了两门课程的学生学号
2.1 关系数据结构及形式化定义
四、关系完整性 2。参照完整性 • 外码
例:Student(sno,sname,sage,ssex,monitor)
2.2关系代数
表 关系代数运算符
运算符
集合 运算 符 ∪ ∩ ×
含义
并 差 交 笛卡尔积
运算符
比较 运算 符 > ≥ < ≤ = <>
含义
大于 大于等于 小于 小于等于 等于 不等于

2.1 关系数据结构及形式化定义 5。关系数据库
–在一个给定的应用领域中,所有关系的集合构成一个 关系数据库
• 关系数据库的型与值
–关系数据库的型:关系数据库模式
对关系数据库的描述。
–关系数据库的值 : 关系模式在某一时刻对应的关系的
集合,简称为关系数据库
2.1 关系数据结构及形式化定义
三、关系操作 1。基本关系操作
∩:R与S中共有的
-:R有但S没有,也可以说成R减去R与S的交 ×:笛卡尔积
σ:选择满足条件的元组
Π:选择列 :两个关系的自然连接 ÷:R中最终属性的象集包含S的投影
例题
• 设D1,D2 和D3域的基数分别为2,3和4,则D1 D2 和D3的笛卡尔积的元组数为 ,每个元 组有 个分量。 • 关系中的码分为 。 • 学生关系中的班级号属性与班级关系中的班级号 主码属性相对应,则班级号为学生关系的 。 • 专门的关系运算包括________、________、 ________和__________四种。
2.1 关系数据结构及形式化定义
二、关系数据结构
元组
元素 每一个值
分量
域D
集合运算
笛卡尔积
也就是分量的个数 有意义的子集
关系
关系中的域起名字
域的个数即目或度
单元、二 元、多元 候选码
选其中一个 特例
属性
能唯一标识一行元组
主码
属性候选码 不属于候选码
主属性
非主属性
全码
2.1 关系数据结构及形式化定义
a2的象集为 {(b3,c7),(b2,c3)} a3的象集为 {(b4,c6)}
a4的象集为 {(b6,c6)}
• S在(B,C)上的投影为 {(b1,c2),(b2,c1),(b2,c3) } • 只有a1的象集包含了S在(B,C)属性组上的投影 所以 R÷S ={a1}
2.2关系代数
∪:R与S中元组之和,去掉重复的
2.1 关系数据结构及形式化定义
四、关系完整性 1。实体完整性 3。用户自定义完整性 2。参照完整性
2.1 关系数据结构及形式化定义
四、关系完整性 2。参照完整性 • 外码
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关
系S的主码Ks相对应,则称F是基本关系R的外码
基本关系R称为参照关系(Referencing Relation)
含S在Y上投影的集合,记作:
R÷S ={tr[X]|trR∧πY(S)Yx } Yx:x在R中的象集,x =tr[X]
2.2关系代数
[例6]设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)
2.2关系代数
• 在关系R中,A可以取四个值{a1,a2,a3,a4}
a1的象集为 {(b1,c2),(b2,c3),(b2,c1)}
数据库原理及应用
李 萍
第二章 关系数据库
主要学习内容: 1. 掌握关系模型的组成 2. 掌握关系代数
2.1 关系数据结构及形式化定义
一、关系模型的组成 1。关系数据结构 2。关系操作集合 3。关系完整性约束
2.1 关系数据结构及形式化定义
二、关系数据结构 1。关系模型的数据结构只有单一的数据结构 —关 系,其中逻辑结构为二维表 2。集合的角度定义关系的数据结构 域 笛卡尔积 元组 分量 (基数) 关系 单元关系 二元关系 (目或度) 属性 候选码 主码 主属性 非主属性 全码
例题
• 设一个关系模式为R(A,B,C),对应的关系内容为 R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}}, 则ПB(δC<70(R))的运算结果中包含有________ 个元组,每个元组包含有________个分量。 设有以下关系模式 Student(sno,sname,sage,ssex,sdept) Course(cno,cname,ccredit,teacher) S-c(sno,cno,grade) • 检索程军老师所授课程的课号与课名 • 检索年龄大于21岁的男生学生的学号与姓名
2.2关系代数
二、专门的关系运算
3。连接
从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = { tr ts | tr R∧ts S∧tr[A]θts[B] }
AθB
A和B:分别为R和S上度数相等且可比的属性组
θ:比较运算符 •等值连接(equijoin) θ为“=”的连接运算称为等值连接 •自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的属性组在 结果中把重复的属性列去掉 •一般连接
–查询:除、并、交、差、笛卡尔积、选择、投影、连 接
–数据更新:插入、删除、修改
2.1 关系数据结构及形式化定义
三、关系操作 2。关系数据语言 • 关系代数语言 –用对关系的运算来表达查询要求 • 关系演算语言:用谓词来表达查询要求 –元组关系演算语言 谓词变元的基本对象是元组变量 –域关系演算语言 谓词变元的基本对象是域变量 • 具有关系代数和关系演算双重特点的语言 –代表:SQL(Structured Query Language)
3。关系模式(Relational Scheme) 关系模式可以形式化地表示为:
R(U,D,DOM,F)来自R U DDOM 关系名 组成该关系的属性名集合 属性组U中属性所来自的域 属性向域的映象集合 属性间的数据依赖关系集合
F
2.1 关系数据结构及形式化定义
3。关系模式 关系模式通常可以简记为
R (U)
Student Student.sno=SC.snoSC
Student SC
2.2关系代数
二、专门的关系运算
3。连接
外连接 如果把舍弃的元组也保存在结果关系中,而在其他属性上填 空值(Null),这种连接就叫做外连接(OUTER JOIN)。 左外连接 如果只把左边关系R中要舍弃的元组保留就叫做左外连接 (LEFT OUTER JOIN或LEFT JOIN) 右外连接 如果只把右边关系S中要舍弃的元组保留就叫做右外连接 (RIGHT OUTER JOIN或RIGHT JOIN)。
查询信息系(IS系)全体学生 σSdept = 'IS' (Student) 或 σ5
='IS'
(Student)
2.2关系代数
二、专门的关系运算
2。投影 从R中选择出若干属性列组成新的关系 πA(R) = { t[A] | t R }
查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个 属性上的投影 πSname,Sdept(Student) 或 π2,5(Student)
基本关系S称为被参照关系(Referenced Relation)或目标关系 (Target Relation)
2.1 关系数据结构及形式化定义
四、关系完整性 2。参照完整性 • 外码
例:Student(sno,sname,sage,ssex) Course(cno,cname,cxuefen) SC(sno,cno,grade) 例: Student(sno,sname,sage,ssex,sclassno) Class(classno ,classname,profession)



R (A1,A2,…,An)
R: 关系名 A1,A2,…,An : 属性名
注:域名及属性向域的映象常常直接说明为
相关主题