Upload
justina-stevenson
View
214
Download
2
Embed Size (px)
Citation preview
Relational Algebra
A presentation for CS 457By Dawn Haddan
Overview
What is relational algebra?– A collection of operations to:
• Manipulate relations (tables)• Specify Queries
Application to Databases– Used to perform many common requests in
the relational database model
Definitions
Relational Data Model– Represents the database as a collection of relations
Relation– For our purposes, a table of values containing rows, where each
row is a collection of related values. Tuple
– A row in a table Attribute
– A column header in a table Domain
– A set of values each attribute can take on
Relational Algebra Operations
Basic operations– SELECT– PROJECT
Set Theoretic Operations– UNION– INTERSECTION– CARTESIAN PRODUCT
Database-Specific Operation– JOIN
Basic Operations
SELECT– Selects a subset of tuples (rows) from a
relation (table) based upon a boolean selection condition
PROJECT– Selects only attributes (columns) of interest
from a table
Select General form:
– σ<SELECTION CONDITION>(R)• With…..
– σ as the symbol denoting a selection operation
– SELECTION CONDITION equating to a boolean value
– R representing a relational algebra expression that results in a relation, most frequently the name of a relation (table)
Select Example Given the relation (table) named STUDENT:
The SELECT operation σAGE>19(STUDENT) would return the new relation:
Name Sex Age Year
Alice F 25 SOPH
Jacob M 19 FROSH
Emily F 20 JUNIOR
Name Sex Age Year
Alice F 25 SOPH
Emily F 20 JUNIOR
Project General form:
– π<ATTRIBUTE LIST>(R)• With…..
– π as the symbol denoting a PROJECT operation
– ATTRIBUTE LIST as a list of attributes (columns) from the relation R
– R representing a relational algebra expression that results in a relation, most frequently the name of a relation (table)
– Result• A relation containing only the attributes specified in the
order specified• At most the number of tuples (rows) in the original
relation– duplicate tuples would constitute an invalid relation
Project Example Given the relation (table) named STUDENT:
The PROJECT operation πYEAR,SEX(STUDENT) would return the new relation:
Where the duplicate tuple has been removed and the attributes appear in the order specified in the attribute list
Name Sex Age Year
Alice F 25 SOPH
Jacob M 19 FROSH
Emily F 20 SOPH
Year Sex
SOPH F
FROSH M
Set Theoretic Operations Both UNION and INTERSECTION …
– Are binary operations– Return a single relation– Must be union compatible
• The two relations must have the same tuple types
UNION– Produces a relation composed of all the tuples
(rows) in either of the original relations INTERSECTION
– Produces a relation composed of all the tuples (rows) that exist in both of the original relations
Set Theoretic Operations
CARTESIAN PRODUCT– Binary operation– Relations not necessarily union compatible– Combines tuples (rows) from two relations, say R
and S– Result is a new relation whose attributes are the
attributes from R and the attributes from S– Result contains the combined tuples from R and
S. For instance, if R has 6 tuples, and S has 5 tuples, the result will contain 30 tuples.
Sequences of Operations
Allows application of several operations
Produces a single relational algebra expression
Sequence of Operations Example Given the relation (table) named STUDENT:
The operation πNAME,AGE,SEXσAGE>21 OR SEX=‘M’(STUDENT) would return the new relation:
Where the OR implies a UNION operation
NAME SEX AGE YEAR
Alice F 25 SOPH
Jacob M 19 FROSH
Emily F 20 JUNIOR
Name Age Sex
Alice 25 F
Jacob 19 M
Join
Simply a CARTESIAN PRODUCT of two relations (tables) followed by a SELECT
Combines tuples based upon the comparison of one or more attributes
Allows us to process relationships between relations
Join
General form:
– R |><|<JOIN CONDITION>S
– Where…• R and S are relations• |><| symbolizes the JOIN operation• JOIN CONDITION is specified on attributes of both R
and S and evaluated for each combination of tuples Result
– A new relation • Set of attributes is the union of all the attributes for R and S
• Contains combinations of tuples that satisfy the join condition
Join Example (Slide 1) Given the relation (table) named STUDENT:
And the relation (table) named ADVISOR:
And the JOIN operation… πSNAME,ANAME,PHONE(STUDENT|><|
AID=IDADVISOR)
ID SNAME AID
123 Tom 333
456 Bobo 444
789 Phil 333
ID ANAME PHONE DEPT
333 Joe 777-9987 CS
444 John 888-9876 CE
555 Jim 567-9876 ME
Join Example (Slide 2) Returns the following relation:
SNAME ANAME PHONE
Tom Joe 777-9987
Bobo John 888-9876
Phil Joe 777-9987
SQL equivalent statements
σAGE>19(STUDENT)– SELECT * FROM STUDENT WHERE AGE>19;
πYEAR,SEX(STUDENT)– SELECT YEAR,SEX FROM STUDENT;
πNAME,AGE,SEXσAGE>21 OR SEX=‘M’(STUDENT)– SELECT NAME,AGE,SEX FROM STUDENT WHERE AGE>21 or
SEX=‘M’; πSNAME,ANAME,PHONE(STUDENT|><|AID=IDADVISOR)
– SELECT SNAME,ANAME,PHONE FROM STUDENT INNER JOIN ADVISOR ON ID=AID;
--- OR ---
– SELECT SNAME,ANAME,PHONE FROM STUDENT,ADVISOR WHERE ID=AID;
Conclusions
Questions?
www.cs.unr.edu/~haddan
Ted Codd, founder of relational algebra