In the following list I’ll briefly describe what
are usually thought of as the original eight operators (essentially the ones Codd defined
in his earliest papers)
...
Restrict
Returns a relation containing all tuples from a specified relation that satisfy a specified
condition. For example, we might restrict relation EMP to just the tuples where the
DNO value is D2.
Project
Returns a relation containing all (sub)tuples that remain in a specified relation after
specified attributes have been removed. For example, we might project relation EMP
on just the ENO and SALARY attributes.
Product
Returns a relation containing all possible tuples that are a combination of two tuples,
one from each of two specified relations. Product is also known variously as cartesian
product, cross product, cross join, and cartesian join (in fact, it is just a special case of join, as
we’ll see in Chapter 5).
Intersect
Returns a relation containing all tuples that appear in both of two specified relations.
(Actually, intersect also is a special case of join.)
Union
Returns a relation containing all tuples that appear in either or both of two specified
relations.
Difference
Returns a relation containing all tuples that appear in the first and not the second of
two specified relations.
Join
Returns a relation containing all possible tuples that are a combination of two tuples,
one from each of two specified relations, such that the two tuples contributing to any
given result tuple have a common value for the common attributes of the two relations
(and that common value appears just once, not twice, in that result tuple).
NOTE
This kind of join was originally called the natural join. Since natural
join is far and away the most important kind, however, it’s become
standard practice to take the unqualified term join to mean the natural
join specifically, and I’ll follow that practice in this book.
Divide
Takes two relations, one binary and one unary, and returns a relation consisting of all
values of one attribute of the binary relation that match (in the other attribute) all values
in the unary relation.
Partager