请登录
四川成人和教育管理有限公司 - 笔记串讲 - 工学类 - 4735数据库系统原理 - 浏览文章

自考4735数据库系统原理考试复习资料4

2016/5/30 17:15:560人浏览0评论

要求、目标:

理解关系模型的运算理论,了解关系演算和查询优化,熟练掌握关系代数运算,掌握关系代数表达式的构造方法。

一、简介

1.关系模型的三个组成部分:数据结构、数据操纵和数据完整性规则。

2.数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。

3.数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数和关系演算两类。

4.数据完整性规则:数据库中数据必须满足实体完整性、参照完整性和用户定义的完整性等三类完整性规则。

5.关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述插入、删除、修改等操作。前者是基础。

6.关系查询语言分两类:关系代数语言(查询操作以集合操作为基础)和关系演算语言(查询操作以谓词演算为基础)

二、关系代数

1.关系代数中的操作可以分为两类:

       1)传统的集合操作:并、差、交、笛卡儿积(乘法)、笛卡儿积的逆运算(除法)

       2)扩充的关系操作:投影、选择、连接等。

2.关系代数的五个基本操作:并、差、笛卡儿积、投影和选择。

3.并:设关系RS具有相同的关系模式,RS的并是由属于R或属于S的元组构成的集合,记为RS

4.差:设关系RS具有相同的关系模式,RS的差是由属于R但不属于S的元组构成的集合,记为R-S

5.笛卡儿积:设关系RS的元数分别为rsRS的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组。若Rm个元组,Sn个元组,则R×Sm×n个元组。

6.投影:对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。例:π31R  下标也可以用属性名表示。

7.选择:对关系做水平分割,即选取符合条件的元组。表示为:σFR从R中挑选满足公式F为真的元组所构成的集合。

F中有两种成分:

1)运算对象:常数(用引号括起来)、元组分量(属性名或列的序号)

2)运算符:算术比较运算符(<、≤、>、≥、=、≠、也称为θ符)、逻辑运算符(∧、∨、¬)


8.
交:设关系RS具有相同的关系模式,RS的交是由属于R又属于S的元组构成的集合,记为RSRS=R-R-S)或RS=S-S-R

9.连接:从关系R和S的笛卡儿积中选取属性值满足某一θ操作的元组,记为R∞S  i和j分别是关系R和S中的第i个和第j个属性名或序号。

连接是由笛卡儿积和选择操作组合而成。

如果θ为“=”,该连接操作称为“等值连接”。

10.自然连接:公共属性只出现一次的等值(公共属性值全部相等)连接。

一般自然连接使用在R和S有公共属性的情况中。如果两个关系没有公共属性,那么其自然连接就转化为笛卡儿积操作。

11.除法:设关系R(X,Y)和关系S(Y,Z),则R÷S定义为:

R(X,Y)÷S(Y,Z)=∏X(R)-∏X((∏X(R)×∏Y(S))-R)

12.关系代数表达式:由五个基本操作经过有限次复合的式子称为代数表达式。这种表达式的运算结果仍是一个关系。可以用关系代数表达式表示各种数据查询操作。

例:教学数据库中的四个关系如下:

    教师关系T(T#,TNAME,TITLE)

    课程关系C(C#,CNAME,T#)

    学生关系S(S#,SNAME,AGE,SEX)

    选课关系SC(S#,C#,SCORE)

使用关系代数表达式表达下列每个查询语句。

1)检索学习课程号为C2课程的学生学号与成绩。

πS#SCOREσC#=C2 SC))或π13σ2=C2 SC))

2)检索学习课程号为C2课程的学生学号和姓名。

πS#SNAMEσC#=C2 S∞SC))

    3)检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。

πS#SNAMEσTNAME=LIU S∞SC∞C∞T))

    4)检索选修课程号为C2或C4课程的学生学号。

πS#σC#=C2 C#=C4 SC))

    5)检索至少选修课程号为C2和C4课程的学生学号。

π1σ1=4 2=C2 5=C4 SC×SC))

    6)检索不学C2课程的学生姓名与年龄。

    πSNAMEAGES-πSNAMEAGEσC#=C2 S×SC))

    7)检索学习全部课程的学生姓名。

    πSNAMES∞(πS#C#SC)÷πC#C)))

    8)检索所学课程包含学号为S3学生所学课程的学生学号。

    πS#C#SC)÷πC#σS#=S3 SC))

总结:查询语句的关系代数表达式的一般形式是:

       π…(σ…(R×S))π…(σ…(RS))

      即首先把查询涉及到的关系取来,执行笛卡儿积或自然连接操作得到一张大的表格,然后对大表格执行水平分割(选择操作)和垂直分割(投影操作)。

但这种形式不适用于否定或全部值的查询。这时要用差或除法操作。

13.外连接:如果R和S做自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填上空值(Null),这种操作称为“外连接”操作。

14.左外连接:如果R和S做自然连接时,只把R中原该舍弃的元组放到新关系中,那么这种操作称为“左外连接”操作。

15.右外连接:如果R和S做自然连接时,只把S中原该舍弃的元组放到新关系中,那么这种操作称为“右外连接”操作。

16.外部并:两个关系R和S做并操作时,如果它们的关系模式不同,构成的新关系的属性由R和S的所有属性组成(公共属性只取一次),新关系的元组由属于R或属于S的元组构成,同时元组在新增加的属性上填上空值,那么这种操作称为“外部并”操作。

三、关系演算

关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。

四、关系代数表达式的优化

1.目的:提高系统效率。

2.三条启发式规则:

1)尽可能早地执行选择操作;

2)尽可能早地执行投影操作;

3)避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。


关键字:
网友评论