数据系统结构之关系操作(翻译)

Published by McGraw-Hill, a business unit of The McGraw-Hill Companies, Inc., 1221 Avenue of the Americas, New York, NY 10020. Copyright ? 2011 by The McGraw-Hill Companies, Inc.

All rights reserved. Previous editions ? 2006, 2002, and 1999.

此文为自己的翻译译文,上文为原文链接,如有雷同,敬请谅解

Relational Operations

关系操作

All procedural relational query languages provide a set of operations that

can be applied to either a single relation or a pair of relations.

所有的程序上的关系运算语言都提供了一系列可以应用于单方面或者是双方的关系运算

所有的过程关系查询语言都提供了一组操作可以应用于单个关系或一对关系。

These operations have the nice and desired property that their result is always a single relation.

这些操作具有良好的和所需的属性,它们的结果始终是单个关系。

This property allows one to combine several of these operations in a modular way.

在某种程度上,这个属性可以允许一种运算结合另外集中运算

此属性允许以模块方式组合多个操作。

Specifically, since the result of a relational query is itself a relation, relational operations can be applied to the results of queries as well as to the given set of relations.

具体来说,由于关系查询的结果本身就是一个关系,因此关系操作可以应用于查询的结果以及给定的关系集

The specific relational operations are expressed differently depending on the language, but fit the general framework we describe in this section.

那个特别的关系操作根据不同语言不同地表达,但是符合我们在这个部分表达的总体结构

In Chapter 3, we show the specific way the operations are expressed in SQL .

在第三章,我们展示了操作关系在SQL中的表达

The most frequent operation is the selection of specific tuples from a sin-

gle relation (say instructor) that satisfies some particular predicate (say salary >$85,000).

最常见的操作就是从一个部分中选择特定的元组关系(比如讲师),它满足某些特定的谓词(比如$ 85,000)。

The result is a new relation that is a subset of the original relation。

结果就是,新的关系就是一个最初的操作子集入手

Figure 2.10 Result of query selecting instructor tuples with salary greater than $85000. structor).

关系查询引导教师薪资大于85000美元

For example, if we select tuples from the instructor relation of Figure 2.1, satisfying the predicate “salary is greater than $85000”, we get the result shown in Figure 2.10.

例如,如果我们从教师关系表2.1挑选符合条件(薪资大于85000美元)的,我们会从表格2.10获得结果

Another frequent operation is to select certain attributes (columns) from a relation.

另外一个操作就是从关系表中选择确定的元素

The result is a new relation having only those selected attributes.

结果是一个新的只有被选出来的关系

For example, suppose we want a list of instructor ID s and salaries without listing the name and dept name values from the instructor relation of Figure 2.1, then the result, shown in Figure 2.11, has the two attributes ID and salary.

例如,假设我们不用从关系表格2.1中列出名字和部门名字就可以得到一系列的教师身份证和薪水,并把这些体现在表格2.11

Each tuple in the result is derived from a tuple of the instructor relation but with only selected attributes shown.

在结果中每个教师被从一个教师关系表格但是只有被挑选到的会显现

The join operation allows the combining of two relations by merging pairs of tuples, one from each relation, into a single tuple.

那个联结的操作允许两个关系结合在一起,每个关系从很多关系而来,只记录在一个表格

There are a number of different ways to join relations (as we shall see in Chapter3).

有很多不同方法去结合关系,就像我们在第三章看见的那样

Figure2.12 shows an example of joining the tuples from the instructor and department tables with the new tuples showing the information about each instructor and the department in which she is working.

表格2.12展示了一个把从教师和公寓表格组成一个新的表格,可以展示每个教师和他在哪儿工作

This result was formed by combining each tuple in the instructor relation with the tuple in the department relation for the instructor’s department.

这个结果由每个展示教师关系的表格结合而成,每个表格都展示了部门关系中教师部门

In the form of join shown in Figure 2.12, which is called a natural join, a tuple from the instructor relation matches a tuple in the department relation if the values .

在表格的自然连接中,如果可以的话,一个表格的教师关系可以匹配一个部门的关系表格

Figure 2.11 Result of query selecting attributes ID and salary from the instructor relation.

表格2.11是从教师关系中查询身份证和薪水

Figure 2.12 Result of natural join of the instructor and department relations.of their dept name attributes are the same.

表格2.12把教师和部门的连接表格部门名字相同

All such matching pairs of tuples are present in the join result.

每个匹配的元组都代表连接结果

In general, the natural join operation on two relations matches tuples whose values are the same on all attribute names that are common to both relations.

总之,一般来说,两种关系的自然连接操作都匹配tuple,它们的值对于两种关系中的所有属性名称都是相同的。

The Cartesian product operation combines tuples from two relations,but unlike the join operation, its result contains all pairs of tuples from the two relations,regardless of whether their attribute values match.

The Cartesian产品操作结合两个操作,但是不像连接操作,它的结果包括所有从两个表格选的元组,除了他们匹配的属性值

Because relations are sets, we can perform normal set operations on relations.

因为操作已经完成,我们可以在关系上展示正常操作

The union operation performs a set union of two “similarly structured” tables(say a table of all graduate students and a table of all undergraduate students)

联合操作展示了一种两个相似结构表格联合(就是一个毕业学生和在校学生的表格)

.For example, one can obtain the set of all students in a department. Other set operations, such as intersection and set difference can be performed as well.

例如,一个可以包括一个部门里的所有学生,其他的操作,比如交集和不同也可以很好呈现

As we noted earlier, we can perform operations on the results of queries.

就像我们之前提到的,我们可以在查询结果中操作

For example,if we want to find the ID and salary for those instructors who have salary greater than $85,000, we would perform the first two operations in our example above.

例如,我们想要查询身份证和薪水超过85000美元的教师,我们可以输入上文上个例子的操作

First we select those tuples from the instructor relation where the salary value is greater than $85,000 and then, from that result, select the two attributes ID and salary, resulting in the relation shown in Figure 2.13 consisting of the ID

第一我们可以从那些关系表格选择符合条件的元组,然后从结果选择两个身份属性和薪水,最后展现在表格2.13

2.6 Relational Operations 51

2.6关系操作

RELATIONAL ALGEBRA

关系代数

The relational algebra defines a set of operations on relations, paralleling the usual algebraic operations such as addition,subtraction or multiplication,which operate on numbers.

关系代数定义了一系列的关系操作,将通常的代数运算,例如加法、减法运算和乘法运算,并联在数字上。

Just as algebraic operations on numbers take one or more numbers as input and return a number as output, the relational algebra operations typically take one or two relations as input and return a relation as output.

只是一个或多个数字上的代数操作,关系代数操作通常花费一个或者两个关系像输入和输出一个关系

Relational algebra is covered in detail in Chapter 6, but we outline a few of the operations below and salary.

第六章覆盖了关系代数,但是我们只列出一下以下的操作

In this example, we could have performed the operations in either order, but that is not the case for all situations, as we shall see.

在这个例子当中,我们可以在另外的命令中操作但是这不是所有我们看到的例子

Sometimes,the result of a query contains duplicate tuples.

有时查询结果包含了元组

For example, if we select the dept name attribute from the instructor relation, there are several cases of duplication, including “Comp. Sci.”, which shows up three times.

例如,如果我们从教师选择部门名字属性从教师关系表,有一些是很少的重复,包括出现了三次的Comp. Sci.

Certain relational languages adhere strictly to the mathe matical definition of a set and remove duplicates.

某些关系语言严格遵守设置的mathe matical定义,并删除重复。

Others, in consideration of the relatively large amount of processing required to remove duplicates from large result relations, retain duplicates.

其他的,考虑到相对较大的程序要求去移出重复

In these latter cases, the relations are not truly relations in the pure mathematical sense of the term.

在这些例子当中,关系不仅是完全数学物品关系

Of course, data in a database must be changed over time.

当然,在数据库的数据一定会一直改变

A relation can be updated by inserting new tuples, deleting existing tuples, or modifying  tuples  by 52 Chapter 2 Introduction to the Relational Model changing the values of certain attributes.

一个关系表可以保存插入的新元组

Entire relations can be deleted and new ones created.

整个关系可以被删除或重建

We shall discuss relational queries and updates using the SQL language in Chapters 3 through 5.

我们会在第三章到第五章讨论关系查询和存储用SQL语言

Summary

总结

? The relational data model is based on a collection of tables.

关系数据模型是基于表格收集

The user of the database system may query these tables, insert new tuples, delete tuples, and update (modify) tuples.

数据库系统的使用查询这些表格,插入新元组,删除元组和下载元组

There are several languages for expressing these operations.

这些事解释这些操作的语言

? The schema of a relation refers to its logical design, while an instance of the relation refers to its contents at a point in time.

?关系的图式是指它的逻辑设计,而关系的实例指的是它在某一时刻的内容。

The schema of a database and an instance of a database are similarly defined.

同样定义了数据库的模式和数据库的实例。

The schema of a relation include sits attributes, and optionally the types of the attributes and constraints on the relation such as primary and foreign key constraints.

关系的模式包括属性,以及可选的属性类型和约束关系,如主键和外键约束。

? A superkey of a relation is a set of one or more attributes whose values are guaranteed to identify tuples in the relation uniquely.

一个超码的关系是一个或多个属性的值被保证去认定元组

A candidate key is a minimal superkey, that is, a set of attributes that forms a superkey, but none of whose subsets is a superkey.

一个候选人是一个重要的主键,就是一个表格的属性,但是没有任何一个子集是主键

One of the candidate keys of a relation is chosen as its primary key.

其中的候选键是从主键选出来的

? A foreign key is a set of attributes in a referencing relation, such that for each tuple in the referencing relation, the values of the foreign key attributes are guaranteed to occur as the primary key value of a tuple in the referenced relation.

外键是一系列关系中的属性,在关系中的各个元组,外键的值的属性要一定是元组的主键

? A schema diagram is a pictorial depiction of the schema of a database that shows the relations in the database, their attributes, and primary keys and foreign keys.

?模式图是一个数据库模式的图形描述,它显示数据库中的关系、它们的属性、主键和外键。

? The relational query languages define a set of operations that operate on tables, and output tables as their results.

关系查询语言定义了一系列的操作,作用于表格和结果的表格

These operations can be combined to get expressions that express desired queries.

这些操作可以被组合去得到查询表达

? The relational algebra provides a set of operations that take one or more relations as input and return are lationasan output.

?关系代数提供了一组操作,它们以一个或多个关系作为输入,而返回是lationasan输出。

Practical query  实用查询

Languages such as SQL are based on the relational algebra, but add a number of useful syntactic features.

像基于关系代数的SQL语言,但是加入了一系列的有用的元素

时间: 2024-08-07 10:11:55

数据系统结构之关系操作(翻译)的相关文章

EF Codefirst 多对多关系 操作中间表的 增删改查(CRUD)

前言 此文章只是为了给新手程序员,和经验不多的程序员,在学习ef和lambada表达式的过程中可能遇到的问题. 本次使用订单表和员工表建立多对多关系. 首先是订单表: public class Order { public int OrderId { get; set; } public string OrderTitle { get; set; } public string CustomerName { get; set; } public DateTime TransactionDate

客户关系管理系统中对客户及相关数据的导入导出操作

在很多系统,我们都知道,Excel数据的导入导出操作是必不可少的一个功能,这种功能能够给使用者和外部进行数据交换,也能批量迅速的录入数据到系统中:但在一些系统中,为了方便,可能把很多个基础表或者相关的数据综合到一个Excel表格文件里面,然后希望通过接口进行导入,这种需求处理就显得比较复杂一点了.本文探讨在我的客户关系管理系统中,对于单个Excel表格中,集合了客户基础数据及相关数据的导入和导出操作的处理. 1.导入导出的需求分析 本随笔主要介绍如何在系统中,导入单一文件中的数据到系统中,这个文

翻译:关系操作

转载自:<database.system.concepts>(数据库系统概念)P48-52 所有的过程关系查询语言都提供一组操作,这些操作可以应用于单个关系或一对关系.这些操作具有良好的和期望的属性,它们的结果总是一个单一的关系.这个属性允许一个以模块化的方式组合其中的几个操作.具体来说,由于关系查询的结果本身就是一个关系,因此关系操作可以应用于查询的结果以及给定的关系集. 具体的关系操作根据语言的不同而有所不同,但是适合我们在本节中描述的通用框架.在第3章中,我们展示了用SQL表示操作的具体

关系操作

关系操作 源自:数据库系统概论(第六版) 2.6关系操作 作者:Abraham Silberschatz  Henry F.Korth  S.Sudarshan 翻译:刘琼滨 谢雪妮 赖慧芳 许雅莉 译文: 所有过程关系查询语言都提供了一组操作,可以应用于单个关系或一对关系.这些操作具有所需的良好的属性,它们的结果始终是单个关系.此属性允许以模块方式组合多个操作.具体来说,由于关系查询的结果本身就是一个关系,因此关系操作可以应用于查询以及给定关系集. 具体的关系操作以不同的语言表达,但是符合我们

【Android】ORM数据库框架之GreenDao【关联】关系操作

上一篇我们介绍了greendao的基本使用方法,如果您还不了解,建议先看下上篇文章再来看这篇会有更好的效果.今天我们来继续学习greendao的relation部分,即数据表的关联操作部分,greendao默认支持一对一,一对多的关系操作,多对多目前暂不支持,下面我们来一步步实现greendao的关联操作: 1.一对一关系 假设我们现在只允许一夫一妻制,好像现在就是啊,哈哈哈哈哈,那么一个男人可以娶一个老婆,一个老婆也只能有一个男人,下面我们分别创建man表和women表,来演示一对一的关联操作

hibernate中关系操作(inverse)和级联操作(cascade)详解

以用户.角色.用户文件为例讲解inverse(关系操作)和(cascade)操作 inverse 取值 true(不维护关系)或false(维护关系  默认为false) 该属性主要操作的是外键 cascade 取值null(默认值).save-update .all .delete 用户.角色是多对多的关系 用户的映射文件表示: <hibernate-mapping> <class name="com.xing.elec.domain.ElecUser" table

一对多关系 操作小总结

1.如果让一的一方维护关系,取决于的因素有1.在一的一方的映射文件中,set元素的inverse属性为default/false 2.在客户端的代码中,通过一的一方建立关系3.session.save/update方法是用来操作表的,和操作关系没有关系2.怎么样采用级联的方法通过保存一个对象从而保存关联对象1.如果session.save操作的对象是A,这个时候应该看A.hbm.xml,看set元素中cascade是否设置有级联保存2.在客户端通过A建立关联3.在客户端执行session.sav

Mongodb数据库命令端常用操作

查询操作 Mongodb-SpringMvc下Query数据库操作SQL http://blog.csdn.net/xiaohulunb/article/details/27828381 1.查询所有 > db.foo.find() { "_id" : ObjectId("5389aa1df06b88aaa313746a"), "name" : "yiwa", "age" : 25, "us

MySQL中数据表的增操作

今天学习到表的增操作,写个博客总结一下,PS:下面所有的注释都是我在电脑上全部操作完成后,再复制到记事本上添加的.至于在执行的时候可不可以那样添加注释,就有待考证了. 选择库 mysql> show databases;#查看目前有哪些数据库存在 +--------------------+ | Database | +--------------------+ | information_schema | | ceshi_ku | | mysql | | performance_schema