数据模型(关系模型.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 联接(Join)
1)联接可将两个关系连在一起,形成一个新关系。是 笛卡尔积、选择和投影的组合。分成θ联接和F联接
2) θ联接运算的含义
从两个关系的笛卡尔积中选取属性间满足某一 θ操作的元组
R AθB S = {tr | tr ts R∧ts S∧tr[A]θts[B] }
A和B:分别为R和S上度数相等且可比的属性组
π π
Sname,age(S)- Sname,age(σC# = ‘C2' (S SC) )
πSname(S π( S#,C# (SC) ÷ πC# (C)))
π π S#,C# (SC) ÷ C# (σS# = ‘S3’ (SC))
关系代数的扩充
为了使关系代数运算能真实的模拟用户的查 询,对关系代数操作扩充了以下三种操作:
Answer
π
S#.Score(σC# = ‘C2' (SC) )
π S#.Sname(σC# = ‘C2' (S SC) )
π S#.Sname(σTname = ‘Liu' (S SC C T) )
π
S#.(σC# = ‘C2' νC# = ‘C2' (SC) )
π 1(σ1=4Λ2=‘C2’Λ5=‘C4’ (SC SC) )
3)两类常用联接运算
等值联接(equi-join)
什么是等值联接
θ为“=”的联接运算称为等值联接
等值联接的含义
从关系R与S的广义笛卡尔积中选取A、B属性值相等 的那些元组,即等值联接为:
R S={
A=B
tr ts| tr R∧ts S∧tr[A] = ts[B] }
联接(续)
自然联接(Natural join)
R中的Y与S中的Y可以有不同的属性名,但必须出自相同
的域集。R与S的除运算得到一个新的关系P(X),P是R中
满足下列条件的元组在X属性列上的投影:元组在X上分
量值x的象集Yx包含S在Y上投影的集合。
R÷S = {tr [X] | tr R∧πY (S) Yx }
Yx:x在R中的象集,x = tr[X]
ABC 246 357 468
BCD 468 567 462 685
example
A
B
C
D
2
4
6
NULL
3
5
7
NULL
4
6
8
Leabharlann Baidu
NULL
NULL 4
6
8
NULL 5
6
7
NULL 4
6
2
NULL 6
8
5
3.2 关系演算
关系演算
把数理逻辑中的谓词演算引入到关系运算中
种类:按谓词变元不同分类
1.元组关系演算(Tuple Relational Calculus): 以元组变量作为谓词变元的基本对象 元组关系演算语言QUEL
2.域关系演算(Domain Relational Calculus) : 以域变量作为谓词变元的基本对象 域关系演算语言QBE
Outer Join Outer Union Semijoin
Outer Join
自然联接时,选择两个关系在公共属性上值 相等的元组构成新关系的元组。此时,关系R 中某些元组可能在S中不存在公共属性上值相 等的元组,造成R中这些元组的值在操作时被 舍弃。由于同样的原因,S中某些元组也有可 能被舍弃。
元组针对X上每个分量值xi(可能为多个)求在Y上的像集, 如果某个像集包含S在Y上投影,则X的这个分量值xi 是R÷S 结果的一个元素
象集Z
给定一个关系R(X,Z),X和Z为属性组。 当t[X]=x时,x在R中的象集(Images Set) 为:
Zx={t[Z]|t R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z 上分量的集合。
计算R ÷ S的操作步骤
将R中的属性分为两个集合X和Y,其中Y就 是S中的全部属性的集合;
若X的某个值x的像集Yx={t[Y]|t R ∧t[X]=x}
包含S表中的所有元组,则将x放入结果集中。
关系代数运算的应用举例
设教学数据库中的4个基本关系如下:
教师关系 T(T#,Tname,Title) 课程关系 C(C#,Cname,T#) 学生关系 S(S#,Sname,Age,Gender) 选课关系 SC(S#,C#,Score)
θ:比较运算符
联接运算从R和S的广义笛卡尔积R×S中选取 (R关系)在A属性组上的值与(S关系)在B 属性组上值满足比较关系的元组。
F联接
F联接是从关系R和S的笛卡尔积中选择属性 间满足某一公式F的元组
F是形如F1 ∧ F2 ∧…… ∧ Fn的公式,每个F是 形为 iθj 的式子
联接(续)
如果在R和S自然联接时,把原该舍弃的元组 也保留在新关系中,同时在这些元组新增加 的属性上填上空值,这就是外联接
ABC 246 357 468
BCD 468 567 462 685
example
A
B
C
D
2
4
6
8
2
4
6
2
4
6
8
5
3
5
7
NULL
NULL 5
6
7
Outer Union
Union需要R和S具有相同的关系模式,如果R 和S的关系模式不同,构成新关系的属性由构 成R和S的所有属性组成(公共属性只取一 次),新关系的元组由属于R或属于S的元组 构成,同时在元组新增加的属性上填上空值
Review
数据模型(关系模型) 关系数据库模式结构 关系代数与关系演算
关系模型的形式定义
数据结构
关系
数据操作
关系运算与关系演算
完整性规则
关系运算
关系代数运算 关系代数运算
并、差、交、笛卡尔积、投影、选择、联接、除
基本运算
并、差、笛卡尔积、投影、选择
交、联接、除
可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达
什么是自然联接 自然联接是一种特殊的等值联接
两个关系中进行比较的分量必须是相同的属性 组
在结果中把重复的属性列去掉
自然联接的含义 R和S具有相同的属性组B R S = { tr ts| tr R∧ts S∧tr[B] = ts[B] }
4. 除(Division)
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
运算举例
1. 学习课程号为C2课程的学生学号与成绩 2. 学习课程号为C2课程的学生学号与姓名 3. 至少选修Liu老师所授课程中一门课程的学生学号
与姓名 4. 选修课程号为C2或C4的学生学号 5. 至少选修课程号为C2和C4的学生学号 6. 不学C2课程的学生姓名与年龄 7. 学习全部课程的学生姓名 8. 所学课程中包含学生S3所学课程的学生学号