关系业务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系业务相关的知识,希望对你有一定的参考价值。
所有过程关系查询语言提供了一组可以执行的操作
适用于单一关系或一对关系。这些操作有
他们的结果总是一个单一的关系的好的和期望的属性。这个
属性允许以模块化的方式组合其中的几个操作。
具体来说,由于关系查询的结果本身就是关系关系
操作可以应用于查询的结果以及给定的集合
关系。
具体的关系操作根据不同而不同
语言,但符合我们在本节中描述的一般框架。在第3章,
我们显示操作在SQL中的具体方式。
最常见的操作是从满足某个特定谓词(表示薪金>)的罪恶关系(说教师)中选择特定元组,
$ 85,000个)。结果是一个新的关系,它是原始关系的一个子集(
2.6关系业务49
身份名称dept名称工资
12121吴金融90000
22222爱因斯坦物理95000
33456黄金物理87000
83821 Brandt Comp。科学。 92000
图2.10薪酬大于$ 85000的查询选择教员元组的结果。
structor)。例如,如果我们从图2.1的教师关系中选择元组,
满足谓词“薪金大于$ 85000”,我们得到结果
图2.10。
另一个常见的操作是从a中选择某些属性(列)
关系。结果是仅具有那些所选属性的新关系。对于
例如,假设我们想要没有列表的教师ID和薪水的列表
来自图2.1的教师关系的名称和部门名称值,然后是
结果如图2.11所示,具有两个属性ID和工资。每个元组
结果来自于教师关系的元组,但是仅被选择
显示属性
联合操作允许通过合并对来组合两个关系
元组,一个从每个关系,成一个单一的元组。有一些不同的
加入关系的方式(我们将在第3章中看到)。图2.12显示了一个例子
用新的元组加入教官和部门表的元组
显示每位讲师和她所在部门的信息
工作中。这个结果是通过组合教师中的每个元组形成的
与教师部门关系的元组关系。
以图2.12所示的连接形式,称为自然连接,一个元组
如果教师的关系与部门关系中的元组相匹配,
身份证件工资
10101 65000
12121 90000
15151 40000
22222 95000
32343 60000
33456 87000
45565 75000
58583 62000
76543 80000
76766 72000
83821 92000
98345 80000
图2.11从教师关系中查询选择属性ID和工资的结果。
50第2章关系模型简介
身份名称工资部门名称建筑预算
10101 Srinivasan 65000 Comp。科学。泰勒100000
12121吴90000财务画家120000
15151莫扎特40000 Music Packard 80000
22222爱因斯坦95000物理学沃森70000
32343 El Said 60000历史画家50000
33456金87000物理沃森70000
45565 Katz 75000 Comp。科学。泰勒100000
58583 Califieri 62000历史画家50000
76543辛格80000财务画家120000
76766 Crick 72000生物学沃森90000
83821 Brandt 92000 Comp。科学。泰勒100000
98345 Kim 80000 Elec工程。泰勒85000
图2.12教师和部门关系的自然结合。
的dept名称属性是一样的。所有这些匹配的元组是
存在于加入结果中。一般来说,自然加入操作有两个关系
匹配在常见的所有属性名称上的值相同的元组
两国关系。
笛卡尔乘积运算结合了来自两个关系的元组,但不同
连接操作,其结果包含来自两个关系的所有元组元组,
不管他们的属性值是否匹配。
因为关系是集合,我们可以对关系执行正常的集合操作。
联合操作执行两个“类似结构化”表的集合
(所有研究生的表和所有本科生的表)。
例如,可以获得一个部门中所有学生的集合。其他套
也可以执行诸如交叉和设置差异的操作。
如前所述,我们可以对查询结果执行操作。对于
例如,如果我们想找到那些有工资的教师的身份证和工资
超过85,000美元,我们将在我们的例子中执行前两个操作
以上。首先我们选择那些从导师关系那里得到的元组
值大于$ 85,000,然后从该结果中选择两个属性
ID和工资,导致图2.13所示的关系由ID组成
身份证件工资
12121 90000
22222 95000
33456 87000
83821 92000
图2.13选择属性的结果,薪资更高的教师的身份和工资
超过85,000美元。
2.6关系业务51
关系逻辑
关系代数定义了关于关系的一组操作,并行
通常的代数操作,如加法,减法或乘法,其中
操作数字。正如数字上的代数运算一样,一个或多个
数字作为输入并返回一个数字作为输出,关系代数运算通常取一个或两个关系作为输入,并返回一个关系为
输出。
关系代数在第6章中有详细的介绍,但我们简要介绍一些
下面的操作。
符号(名称)使用示例
工资> = 85000(教员)
(选择)返回满足输入关系的行
谓词。
身份证,工资(老师)
(Projection)从所有行输出指定的属性
输入关系。删除重复的元组
从输出。
?教师?部
(自然连接)来自两个输入关系的输出对,在所有属性上具有相同的值
有相同的名字。
×教师×部门
(笛卡尔积)从两个输入输出所有行对
关系(不管他们是否
在共同属性上具有相同的值)
∪名(教员)∪名(学生)
(联合)从两个输入输出元组的并集
关系。
和薪水。在这个例子中,我们可以执行这两个操作
我们将会看到,所有情况都不是这样。
有时,查询的结果包含重复的元组。例如,如果我们
从教师关系中选择dept name属性,有几种情况
的重复,包括“Comp。科学“,出现了三次。某些相关语言严格遵守一套数学定义和删除
重复。其他的,考虑到相对较大的处理量
需要从大型结果关系中删除重复项,保留重复。在
后一种情况下,这种关系在纯数学中并不是真正的关系
这个词的意义。
当然,数据库中的数据必须随着时间的推移而改变。关系可以
通过插入新的元组,删除现有的元组或修改元组来更新
52第2章关系模型简介
改变某些属性的值。整个关系可以删除和重新
创建的。我们将使用SQL语言来讨论关系查询和更新
以上是关于关系业务的主要内容,如果未能解决你的问题,请参考以下文章