数据库文章翻译
Posted 啦啦啦啦啦啦小情歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库文章翻译相关的知识,希望对你有一定的参考价值。
关系运算
所有的程序关系都为查询语言提供了一组可以用来表示单个或多个关系的操作。这些操作具有良好并受到较高期望的属性,能实现其结果有唯一的对应关系。
这些操作还可以用模板化的方式组合当中的几个操作。确切的说,因为查询结果本身就是一种关系,关系操作也可用于查询结果以及定义所给的关系。
具体的关系操作根据语言的不同而有所不同,但是适合我们在本节中描述的通用框架。在第三章中,我们用特定的方式操作表示SQL。
最常见的操作是从单个关系(比作教师)中选择特定的元组,这些元组满足某些特定的谓词(比作$8.5万美元)。其结果是一个新的关系,它是原始关系(教师)的一个子集。例如,如果我们从图2.1的教师关系中选择元组,满足谓词“薪水大于$85000”,我们得到如图2。10所示的结果。
编号 |
姓名 |
部门 |
工资 |
12121 22222 33456 83821 |
Wu Einstein Gold Brandt |
金融 物理 物理 Comp.Sci |
90000 95000 87000 92000 |
另一个常见的操作是从一个关系中选择某些属性(列)。结果是只有那些选择的属性的新关系。例如,假设我们想要一个教师编号和薪水的列表,正如图2.11所示,具有两个属性,分别为姓名和薪水,就不需要从图2.1的教师关系表中列出姓名和部门的名称值,其中结果的每个元组都来自于教师关系表的一个元组,但是其只包含所显示选定的元组的属性。
连接操作允许两个关系的合并,合并对元组,一个从每个关系,到一个单一的元组。有许多不同的方式加入关系(如我们在第3章中所见)。图2.12显示了一个例子,从教师和部门表中加入了元组,新的元组显示了她在工作中的每一个老师和部门的信息。这一结果是通过将每一个元组与在该系关系中的元组中的教师关系中的元组组成。
编号 |
工资 |
10101 12121 15151 22222 32343 33456 45565 58583 76543 76766 83821 98345
|
65000 90000 40000 95000 60000 87000 75000 62000 80000 72000 92000 80000 |
图2.11查询教练关系选择属性ID和工资的结果
编号 |
姓名 |
工资 |
部门 |
建筑物 |
预算 |
10101 12121 15151 22222 32343 33456 45565 58583 76543 76766 83821 98345 |
Srinivasan WU Mozart Einstein ElSaid Gold Katz Califieri Singh Crick Brandt Kim
|
65000 90000 40000 95000 60000 87000 75000 62000 80000 72000 92000 80000 |
计算机科学 财政 音乐 物理学 历史 物理学 计算机科学 历史 财政 生物 计算机科学 电子工程 |
Taylor Painter Packard Watson Painter Watson Taylor Painter Painter Watson Taylor Taylor
|
100000 120000 80000 70000 50000 70000 100000 50000 120000 90000 100000 85000 |
图2.12对教师和部门的关系自然连接的结果。
如图2.12所示的联接形式,称为自然连接,从教练关系元组匹配元组ID部门关系
他们的部门属性是相同的。所有这样的匹配对元组都存在于联接结果中。一般来说,在两个关系的自然连接运算匹配元组的值,是所有的属性名称相同对两者的关系。
笛卡尔产品运算结合了两种关系中的元组,但不像连接操作,它的结果包含两个关系中的所有元组,不管它们的属性值是否匹配。
因为关系式集合,所以我们可以对关系进行正常的集合操作。Union操作执行两个“相似结构”表的集合(比如一张所有研究生的桌子和一张本科生的桌子)。例如,一个部门可以获得所有学生的集合。另一组操作,例如交叉和设置差异也可以进行。
如前面所提到的,我们可以对查询结果执行操作。例如,如果我们想找到那些薪水超过$85.000工资的教师的身份证,我们将在示例中执行以上两个操作。首先,我们从教师关系中选择这些元组薪水大于$85.000。然后从结果中选择ID和薪水两个属性。结果为如图2.13所示的关系,该关系由ID组成。
编号 |
工资 |
12121 22222 33456 83821 |
90000 95000 87000 92000 |
图2.13的结果是选择具有更高薪水的教师的属性ID和薪水超过$58.000。
关系代数
关系代数定义了一组操作,平行的通常的代数。列如加,减或乘。这些数字运算。正如代数运算的数量,把一个或多个数字输入和输出返回一个数,关系代数运算通常以一个或两个关系作为输入并返回一个关系。
代数运算包含第六章的一些细节,但是我们概括了以下的一些操作要点。
符号(名称) |
使用的实例 |
选择的项目 |
工资》=85000 |
|
返回行的输入关系满足预测 |
|
从所有行中输出指定的属性 输入关系。删除重复的元组 从输出。 |
自然的加入 |
从两个输入的关系,具有相同的值的所有属性的行输出对 同名的。 |
笛卡尔积 |
从两个输入中输出所有行对 关系(不管他们是否 在公共属性上具有相同的值 |
联合 |
从两个输入输出元组的联盟 关系. |
薪酬。在这个例子中,我们可以在其中执行操作。秩序,但情况并非如此,我们将看到,有时,一个查询的结果中包含重复元组。例如,如果我们从讲师关系中选择部门名称属性,几个案例重复,包括“合并”。“Sci,”它出现了三次。某些关系语言严格地依赖于集合的数学定义并移除。重复。其他,考虑到相对大量的处理需要从结果关系中删除重复,保留。在这后一种情况,关系并不是真正的数学关系,术语感。
当然在数据库中的数据必须要修改好多次,一种关系能够被一种新的可选择的元组所更新,删除现有的元组,或是更改某些属性的值。整个关系可以删除和新建。
我们将讨论关系查询和更新使用SQL语言从第三章到底五章。
****选自《DATABASE SYSTEM CONCEPTS》2.6 Relational Operations
作者:Abraham Silberschatz
Henry F. Korth
S. Sudarshan
以上是关于数据库文章翻译的主要内容,如果未能解决你的问题,请参考以下文章
关系型数据库工作原理-事务管理(翻译自Coding-Geek文章)
Python 爬虫篇 - 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示。爬取西班牙语文章调用有道翻译接口进行整篇翻译