首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

差并交、笛卡尔积、连接,原来如此简单:选择题白话串讲

公共基础

二级Office必考的考点

专业性很强

如果没有好的复习资料

是相当枯燥、晦涩、难懂的

你还为公共基础难懂

苦大愁深吗?

你还为不知如何拿下选择题

焦头烂额吗?

今天开始,小编带着大家

远离枯燥、远离专业术语

白话学懂公共基础!

程林高手武功秘籍--公共基础知识

4.2 数据表上的集合运算--关系代数

数据库表与表之间的运算,用官话说就是关系关系之间的运算,称关系代数。在关系代数中,进行运算的对象都是关系,运算结果也是关系,就是表。

4.2.1 关系代数的传统集合运算

在数学上有"集合"的概念,例如图16-30就表示了A、B两个集合,以及它们的交集、并集以及A-B的含义。其中A-B表示A中减去A、B的公共部分。

在数据库中,把一个关系(一张二维表)也可看做一个集合,集合中的元素就是元组(表中的行)。关系之间也可有类似集合的运算(设有两个关系R、S):

1. 差(difference)

记为:R-S。结果为由属于R但不属于S的那些行组成的表,要求R与S的列数相同。

2. 并(union)

记为:R∪S。结果是属于R或者属于S的那些行组成的表,并且除去结果中重复的行。R和S应具有相同的列数,各列的数据类型也应该一致。

3. 交(intersection)

记为:R∩S。结果是既属于R又属于S的那些行组成的表。R∩S=R - (R - S)。R和S也应具有相同的列数,各列的数据类型也应该一致。

4. 笛卡尔积(cartesian product)

记为:R×S。R×S的结果仍是一个关系(二维表),它是R中的每一行分别与S中的每一行两两组合的结果。结果表的列数为R、S列数之和,行数为R、S行数的乘积,结果表的每一行前、后部分分别来自R的一行和S的一行。

这几种运算的例子如图16-31,注意在求R与S的并集R∪S时,消除了一行重复行"d a f",因为数据库表中不允许有完全相同的行存在。

4.2.2 关系代数的特有运算

表与表之间还可进行下面的运算:

1. 投影(projection)

这个概念比较拗口,但含义很简单,就是"筛选列"。一个数据库表,如仅希望得到其一部分的列的内容(但全部行),就是投影。

例如从图16-26的"学生信息表"中只取姓名和分数两列,即是投影。又如对图16-31的关系R只取A列、C列,也是投影。投影操作记为π,后者投影可记为πA,C (R)。

2. 选择(selection)

投影是对表的垂直筛选(筛选列);如果水平筛选(筛选行)则是"选择"操作。选择一般要对一张表选择符合条件的行(但包含所有列)。例如对图16-26的"学生信息表"只选取分数大于等于90的行,即是选择操作。

又如对图16-31的关系R只取B列值为'b'的行,也是选择。选择操作记为σ,后者选择操作可记为σB='b' (R)。

3. 除法(division)

记为R÷S,它是笛卡尔积的逆运算。设关系R和S分别有r列和s列(r>s,且s≠0),那么R÷S的结果有(r-s)个列,并且是满足下列条件的最大的表:其中每行与S中的每行组合成的新行都在R中。

关系之间的除法不易理解,可通过对除法做逆运算(笛卡尔积)来验证除法的结果。如果R÷S=T,可做S×T,如果S×T的结果为R,则说明R÷S=T。注意有时关系之间的除法也有"余数",可能S×T的结果为R的一部分(最大的一部分),R中的多余部分为"余数"。

【随讲随练16-64】有三个关系R、S和T如图16-32所示,则由关系R和S得到关系T的操作是( )。

A.自然连接 B.交 C.除 D.并

【答案】C

【分析】S×T为"c 3 1",为R的一部分,因此R÷S为T;两行"a 1 2"、"b 2 1"为余数。

4. 连接(join)

两表笛卡尔积的结果比较庞大,实际应用中一般仅选取其中一部分的行,如选取两表列之间满足一定条件的行,就是关系之间的连接。如图16-31的R×S的结果有6行,从中选取"B列=D列"的行(2行),就是连接,连接的结果如图16-33。关系的连接实际就是对关系的结合,即两张表结合组成新的表。

这一连接的条件是"B列=D列"。根据连接条件的种类不同,关系之间的连接分为等值连接、大于连接、小于连接、自然连接。如果条件是类似于"B列=D列"的"某列=某列"的条件,就是等值连接;如果条件是"某列>某列"的,就是大于连接;条件是"某列

这里举一个等值连接的例子,如图16-34是对关系R、S按条件"R表的B列=S表的B列"进行连接。R与S的连接记作(下面写上连接条件):

图16-35和图16-36分别是小于连接和自然连接的例子,图16-36的自然连接暗含的条件是R.B=S.B且R.C=S.C,因为R、S中有同名的2列B、C。

多个条件之间可用"∧"表示"且",即两边的条件必须同时成立,例如"C>4∧D>3",表示"C列值>4,且D列值>3",二者需同时满足。用"∨"表示"或",即两边的条件有一个成立即可,例如"性别='女'∨年龄

【随讲随练16-65】一般当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。

A.记录 B.行

C.属性 D.元组

【答案】C

【随讲随练16-66】大学生学籍管理系统中有关系模式 S(S#,Sn,Sg,Sd,Sa),其中属性S#、Sn、Sg、Sd、Sa分别是学生学号、姓名、性别、系别和年龄,关键字是S#。检索全部大于20岁男生姓名的表达式为( )。

A.

B.

C.

D.

【答案】A

【随讲随练16-67】如图16-37所示,学生选课成绩表的关系模式是SC(S#, C#, G),其中S#为学号,C#为课号,G为成绩,则关系 表示( )。

A.选修了表C中全部课程的学生学号

B.全部学生的学号

C.选修了课程C1或C2的学生学号

D.所选课程成绩及格的学生学号

【答案】A

——以上内容选自《玩转Office轻松过二级》(第2版),部分内容取自《C语言其实很简单》(第11-12章)

想不怎么费力就学懂公共基础的童靴,推荐赶快去看一看这2本书吧,这目前应是唯一白话串讲公共基础的二级教材,也真的是最好的教材哦。

要看一本浅显易懂、适合快速学习的书。同意吗?

注意注意注意

千万不要用那种只有文字、没有图的复习材料或速背手册之类复习哦(除非你早有基础),那是很不负责的材料。公共基础必须要有图讲解,考试的考题里也有图。用只有文字的材料复习,考试必傻眼,别害了自己!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303B10PG200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券