Relational Algebra A presentation for CS 457 By 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: – σ (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: NameSexAgeYear AliceF25SOPH JacobM19FROSH EmilyF20JUNIOR NameSexAgeYear AliceF25SOPH EmilyF20JUNIOR
Project General form: – π (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 NameSexAgeYear AliceF25SOPH JacobM19FROSH EmilyF20SOPH YearSex SOPHF FROSHM
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 NAMESEXAGEYEAR AliceF25SOPH JacobM19FROSH EmilyF20JUNIOR NameAgeSex Alice25F Jacob19M
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 |> 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=ID ADVISOR) IDSNAMEAID 123Tom Bobo Phil333 IDANAMEPHONEDEPT 333Joe CS 444John CE 555Jim ME
Join Example (Slide 2) Returns the following relation: SNAMEANAMEPHONE TomJoe BoboJohn PhilJoe
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=ID ADVISOR) –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? Ted Codd, founder of relational algebra