Chapter 6
The
Relational Algebra and Relational Calculus
In this chapter we discuss the two formal
languages for the relational model: the relational algebra and the
relational calculus. In contrast, Chapters 4 and 5 described the practical language for the relational
model, namely the SQL standard. Historically, the relational algebra and
calculus were developed before the SQL language. In fact, in some ways, SQL is
based on concepts from both the algebra and the calculus, as we shall see.
Because most relational DBMSs use SQL as their language, we presented the SQL
language first.
Recall from Chapter 2 that a data model must include a set of operations
to manipulate the database, in addition to the data model’s concepts for
defining the data-base’s structure and constraints. We presented the structures
and constraints of the formal relational model in Chapter 3. The basic set of
operations for the relational model is the relational
algebra. These operations enable a user to specify basic retrieval requests
as relational algebra expressions.
The result of a retrieval is a new relation, which may have been formed from
one or more relations. The algebra operations thus produce new relations, which
can be further manipulated using operations of the same algebra. A sequence of
relational algebra operations forms a relational
algebra expression, whose result will also be a relation that represents the result of a database query (or
retrieval request).
The relational algebra is very important for several reasons. First, it
provides a formal foundation for relational model operations. Second, and
perhaps more important, it is used as a basis for implementing and optimizing
queries in the query processing and optimization modules that are integral
parts of relational database management systems (RDBMSs), as we shall discuss
in Chapter 19. Third, some of its concepts are incorporated into the SQL
standard query language for RDBMSs.
Although most commercial RDBMSs in use today do not provide user
interfaces for relational algebra queries, the core operations and functions in
the internal modules of most relational systems are based on relational algebra
operations. We will define these operations in detail in Sections 6.1 through
6.4 of this chapter.
Whereas the algebra defines a set of operations for the relational model, the relational calculus provides a higher-level declarative language for specifying relational queries. A relational calculus expression creates a new relation. In a relational calculus expression, there is no order of operations to specify how to retrieve the query result—only what information the result should contain. This is the main distinguishing feature between relational algebra and relational calculus. The relational calculus is important because it has a firm basis in mathematical logic and because the standard query language (SQL) for RDBMSs has some of its foundations in a variation of relational calculus known as the tuple relational calculus.
The relational algebra is often considered to be an integral part of the
relational data model. Its operations can be divided into two groups. One group
includes set operations from mathematical set theory; these are applicable
because each relation is defined to be a set of tuples in the formal relational model (see Section
3.1). Set operations include UNION, INTERSECTION, SET DIFFERENCE, and CARTESIAN PRODUCT
(also known as CROSS PRODUCT). The
other group consists of operations developed specifically for relational
databases—these include SELECT, PROJECT, and JOIN, among others. First, we describe the SELECT and PROJECT operations in Section 6.1 because they are unary operations that operate on single relations. Then we discuss
set operations in Section 6.2. In Section 6.3, we discuss JOIN and other complex binary
operations, which operate on two tables by
combining related tuples (records) based on join conditions. The COMPANY
relational database shown in Figure 3.6 is used for our examples.
Some common database requests cannot be performed with the original
relational algebra operations, so additional operations were created to express
these requests. These include aggregate
functions, which are operations that can summarize data from the tables, as well as additional types of JOIN and UNION operations, known as OUTER JOINs and OUTER UNIONs. These operations, which were added to the orig-inal relational
algebra because of their importance to many database applications, are
described in Section 6.4. We give examples of specifying queries that use
rela-tional operations in Section 6.5. Some of these same queries were used in
Chapters 4 and 5. By using the same query numbers in this chapter, the reader
can contrast how the same queries are written in the various query languages.
In Sections 6.6 and 6.7 we describe the other main formal language for
relational databases, the relational
calculus. There are two variations of relational calculus. The tuple relational calculus is described
in Section 6.6 and the domain
relational calculus is described in Section 6.7. Some of the SQL constructs
discussed in Chapters 4 and 5 are based on the tuple relational calculus. The
relational calculus is a formal language, based on the branch of mathematical
logic called predicate cal culus. In tuple relational calculus, variables range
over tuples, whereas in domain
relational calculus, variables range over the domains (values) of attributes. In Appendix C we give an overview
of the Query-By-Example (QBE) language, which is a graphical user-friendly
relational language based on domain relational calculus. Section 6.8 summarizes
the chapter.
For the reader who is interested in a less detailed introduction to
formal relational languages, Sections 6.4, 6.6, and 6.7 may be skipped.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.