Database Principles Relational Algebra. Database Principles What is Relational Algebra? It is a language in which we can ask questions (query) of a database.

Slides:



Advertisements
Similar presentations
COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5A Relational Algebra.
Advertisements

Relational Algebra Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY courtesy of Joe Hellerstein for some slides.
Relational Algebra Rohit Khokher. Relational Algebra Set Oriented Operations UnionIntersectionDifference Cartesian Product Relation Oriented Operations.
D ATABASE S YSTEMS I R ELATIONAL A LGEBRA. 22 R ELATIONAL Q UERY L ANGUAGES Query languages (QL): Allow manipulation and retrieval of data from a database.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A Modified by Donghui Zhang.
INFS614, Fall 08 1 Relational Algebra Lecture 4. INFS614, Fall 08 2 Relational Query Languages v Query languages: Allow manipulation and retrieval of.
SQL and Relational Algebra Zaki Malik September 02, 2008.
1 Relational Algebra & Calculus. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.  Relational.
Database Principles ER to RDM Mapping. Database Principles Mapping from ER to Relational Data Model the next phase Exercise: Give me some suggestions.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 52 Database Systems I Relational Algebra.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
Database Principles SQL 1. Database Principles Connecting to db2: Using your userID and password connect to our server. Connect to the Library database.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
FALL 2004CENG 351 File Structures and Data Managemnet1 Relational Algebra.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
1 Relational Algebra. 2 Relational Query Languages Query languages: Allow manipulation and retrieval of data from a database. Relational model supports.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A.
Relational Algebra Chapter 4 - part I. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.  Relational.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
1 Relational Algebra and Calculus Yanlei Diao UMass Amherst Feb 1, 2007 Slides Courtesy of R. Ramakrishnan and J. Gehrke.
Rutgers University Relational Algebra 198:541 Rutgers University.
Relational Algebra Chapter 4 - part I. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.  Relational.
CSCD343- Introduction to databases- A. Vaisman1 Relational Algebra.
Venn Diagrams Database Principles.
Relational Algebra.
Relational Algebra, R. Ramakrishnan and J. Gehrke (with additions by Ch. Eick) 1 Relational Algebra.
Database Principles Relational Database Design I.
1 Relational Algebra and Calculus Chapter 4. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.
FEN  Concepts and terminology  Operations (relational algebra)  Integrity constraints The relational model.
Lecture 05 Structured Query Language. 2 Father of Relational Model Edgar F. Codd ( ) PhD from U. of Michigan, Ann Arbor Received Turing Award.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 6 The Relational Algebra.
M Taimoor Khan Course Objectives 1) Basic Concepts 2) Tools 3) Database architecture and design 4) Flow of data (DFDs)
1 Relational Algebra. 2 Relational Query Languages v Query languages: Allow manipulation and retrieval of data from a database. v Relational model supports.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Relational Algebra.
Relational Algebra  Souhad M. Daraghma. Relational Query Languages Query languages: Allow manipulation and retrieval of data from a database. Relational.
CS 4432query processing1 CS4432: Database Systems II Lecture #11 Professor Elke A. Rundensteiner.
1 Relational Algebra & Calculus Chapter 4, Part A (Relational Algebra)
1 Relational Algebra and Calculas Chapter 4, Part A.
1.1 CAS CS 460/660 Introduction to Database Systems Relational Algebra.
Database Management Systems 1 Raghu Ramakrishnan Relational Algebra Chpt 4 Xin Zhang.
Relational Algebra.
ICS 321 Fall 2011 The Relational Model of Data (i) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 8/29/20111Lipyeow.
1 Relational Algebra Chapter 4, Sections 4.1 – 4.2.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Database Management Systems Chapter 4 Relational Algebra.
Database Management Systems 1 Raghu Ramakrishnan Relational Algebra Chpt 4 Xin Zhang.
Advanced Relational Algebra & SQL (Part1 )
CSCD34-Data Management Systems - A. Vaisman1 Relational Algebra.
Database Management Systems, R. Ramakrishnan1 Relational Algebra Module 3, Lecture 1.
1 CS 430 Database Theory Winter 2005 Lecture 5: Relational Algebra.
CMPT 258 Database Systems Relational Algebra (Chapter 4)
Relational Algebra p BIT DBMS II.
Database Management Systems 1 Raghu Ramakrishnan Relational Algebra Chpt 4 Jianping Fan.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A.
1 CS122A: Introduction to Data Management Lecture #7 Relational Algebra I Instructor: Chen Li.
1 Relational Algebra and SQL. 2 Relational Query Languages Languages for describing queries on a relational database Relational AlgebraRelational Algebra.
Relational Algebra Chapter 4 1.
Relational Algebra Chapter 4, Part A
Relational Algebra 461 The slides for this text are organized into chapters. This lecture covers relational algebra, from Chapter 4. The relational calculus.
Relational Algebra.
Relational Algebra 1.
LECTURE 3: Relational Algebra
Relational Algebra Chapter 4 1.
Relational Algebra Chapter 4 - part I.
Relational Algebra Chapter 4, Sections 4.1 – 4.2
Chapter 2: Intro to Relational Model
Chapter 2: Intro to Relational Model
CENG 351 File Structures and Data Managemnet
Relational Algebra Chapter 4 - part I.
Presentation transcript:

Database Principles Relational Algebra

Database Principles What is Relational Algebra? It is a language in which we can ask questions (query) of a database. Basic premise is that tables are sets (mathematical) and so our query language should manipulate sets with ease. Traditional Set Operations: –union, intersection, Cartesian product, set difference Extended Set Operations: –selection, projection, join, quotient

Database Principles Supplier-Part Example

Database Principles SELECTION: Selection returns a subset of the rows of a single table. Syntax: select where /* the must involve only columns from the indicated table */ alternatively σ (table_name) Find all suppliers from Boston. Select Supplier where Location = ‘Bos’ σ Location = ‘Bos’ (Supplier)

Database Principles SELECTION Exercise: Find the Cardholders from Modena. Observations: –There is only one input table. –Both Cardholder and the answer table have the same schema (list of columns) –Every row in the answer has the value ‘Modena’ in the b_addr column. select Cardholder where b_addr = ‘Modena’ alternatively σ b_addr = ‘Modena’ (Cardholder)

Database Principles SELECTION: Answer same schema All rows in the answer have the value ‘Modena’ in the b_addr column

Database Principles PROJECTION: Projection returns a subset of the columns of a single table. Syntax: project over /* the columns in must come from the indicated table */ alternatively π (table_name) Find all supplier names Project Supplier over Sname π Sname (Supplier)

Database Principles PROJECTION Exercise: Find the addresses of all Cardholders. Observations: –There is only one input table. –The schema of the answer table is the list of columns –If there are many Cardholders living at the same address these are not duplicated in the answer table. project Cardholder over b_addr alternatively π b_addr (Cardholder)

Database Principles PROJECTION: Duplicate ‘New Paltz’ values in the Cardholder table are dropped from the Answer table schema of answer table is the same as the list of columns in the query Answer

Database Principles CARTESIAN PRODUCT: The Cartesian product of two sets is a set of pairs of elements (tuples), one from each set. If the original sets are already sets of tuples then the tuples in the Cartesian product are all that bigger. Syntax: As we have seen, Cartesian products are usually unrelated to a real-world thing. They normally contain some noise tuples. However they may be useful as a first step. x

Database Principles CARTESIAN PRODUCT: 5 rows 4 rows 20 rows info: 7 rows in total noise: 13 rows in total

Database Principles CARTESIAN PRODUCT Exercise: Names = Project Cardholder over b_name Addresses = Project Cardholder over b_addr Names x Addresses Names x Addresses Info = project cardholder over b_name, b_addr noise How many rows? 49

Database Principles UNION: Treat two tables as sets and perform a set union Syntax: Observations: –This operation is impossible unless both tables involved have the same schemas. Why? –Because rows from both tables must fit into a single answer table; hence they must “look alike”. –Because some rows might already belong to both tables Table1 UNION Table2 alternatively Table1 Table2 ∩

Database Principles UNION Example: Part1Suppliers = project (select Supplies where Pno = ‘p1’) over Sno Part2Suppliers = project (select Supplies where Pno = ‘p2’) over Sno Part1Suppliers UNION Part2Suppliers alternatively Part1Suppliers = π Sno (σ Pno = ‘p1’ (Supplies) ) Part2Suppliers = π Sno (σ Pno = ‘p2’ (Supplies) ) Answer = Part1Suppliers Part2Suppliers ∩

Database Principles UNION Exercise: Find the borrower numbers of all borrowers who have either borrowed or reserved a book (any book). Reservers = project Reserves over borrowerid Borrowers = project Borrows over borrowerid Answer = Borrowers union Reservers alternatively Reservers = π borrowerid (Reserves) Borrowers = π borrowerid (Borrows) Answer = Borrowers Reservers not duplicated ∩

Database Principles INTERSECTION: Treat two tables as sets and perform a set intersection Syntax: Observations: –This operation is impossible unless both tables involved have the same schemas. Why? –Because rows from both tables must fit into a single answer table; hence they must “look alike”. Table1 INTERSECTION Table2 alternatively Table1 Table2 ∩

Database Principles INTERSECTION Example: Part1Suppliers = project (select Supplies where Pno = ‘p1’) over Sno Part2Suppliers = project (select Supplies where Pno = ‘p2’) over Sno Part1Suppliers INTERSECT Part2Suppliers alternatively Part1Suppliers = π Sno (σ Pno = ‘p1’ (Supplies) ) Part2Suppliers = π Sno ( σPno = ‘p2’ (Supplies) ) Answer = Part1Suppliers Part2Suppliers ∩

Database Principles INTERSECTION Exercise: Find the borrower numbers of all borrowers who have borrowed and reserved a book. Reservers = project Reserves over borrowerid Borrowers = project Borrows over borrowerid Answer = Borrowers intersect Reservers alternatively Reservers = π borrowerid (Reserves) Borrowers = π borrowerid (Borrows) Answer = Borrowers Reservers ∩

Database Principles SET DIFFERENCE: Treat two tables as sets and perform a set intersection Syntax: Observations: –This operation is impossible unless both tables involved have the same schemas. Why? –Because it only makes sense to calculate the set difference if the two sets have elements in common. Table1 MINUS Table2 alternatively Table1 \ Table2

Database Principles SET DIFFERENCE Example: Part1Suppliers = project (select Supplies where Pno = ‘p1’) over Sno Part2Suppliers = project (select Supplies where Pno = ‘p2’) over Sno Part1Suppliers MINUS Part2Suppliers alternatively Part1Suppliers = π Sno (σ Pno = ‘p1’ (Supplies) ) Part2Suppliers = π Sno (σ Pno = ‘p2’ (Supplies) ) Answer = Part1Suppliers \ Part2Suppliers

Database Principles SET DIFFERENCE Exercise: Find the borrower numbers of all borrowers who have borrowed something and reserved nothing. Reservers = project Reserves over borrowerid Borrowers = project Borrows over borrowerid Answer = Borrowers minus Reservers alternatively Reservers = π borrowerid (Reserves) Borrowers = π borrowerid (Borrows) Answer = Borrowers \ Reservers

Database Principles JOIN: The most useful and most common operation. Tables are “related” by having columns in common; primary key on one table appears as a “foreign” key in another. Join uses this relatedness to combine the two tables into one. Join is usually needed when a database query involves knowing something found in one table but wanting to know something found in a different table. Join is useful because both Select and Project work on only one table at a time.

Database Principles JOIN Example: Suppose we want to know the names of all parts ordered between Nov 4 and Nov 6. } What we know is here? The names we want are here related tables

Database Principles JOIN Example: Step 1: Without the join operator we would start by combining the two tables using Cartesian Product. The table, Supplies x Part, now contains both –What we know (OrderDate) and –What we want (PartDescription) The schema of Supplies x Part is: We know, from our previous lecture, that a Cartesian Product contains some info rows but lots of noise too. Part x Supplies Supplies x Part = {Sno, Pno, ODate, Pno, PDesc, Colour} What we know. What we want

Database Principles JOIN Example The Cartesian Product has noise rows we need to get rid of info noise Supplies.Pno != Part.Pno Supplies.Pno = Part.Pno

Database Principles JOIN Example: Step 2: Let’s get rid of all the noise rows from the Cartesian Product. The table, A, now contains both –What we know (OrderDate) and –What we want (PartDescription) –And no noise rows! A = select (Supplies x Part) where Supplies.PNo = Part.PNo identical columns

Database Principles JOIN Example: Step 3: We now have two identical columns –Supplies.Pno and Part.Pno We can safely get rid of one of these

Database Principles JOIN Example: Because the idea of: 1.taking the Cartesian Product of two tables with a common column, 2.then select getting rid of the noise rows and finally 3.project getting rid of the duplicate column is so common we give it a name - JOIN. Supplies x PartSelect ( ) where Supplies.Pno = Part.PnoProject ( ) over Sno, Supplies.Sno, O_date,Pdesc, Coulor

Database Principles JOIN Example: SYNTAX: Supplies JOIN Part alternatively Supplies Part Supplies Part =

Database Principles JOIN Example: Summary: –Used when two tables are to be combined into one –Most often, the two tables share a column –The shared column is often a primary key in one of the tables –Because it is a primary key in one table the shared column is called a foreign key in any other table that contains it –JOIN is a combination of Cartesian Product Select Project

Database Principles JOIN Example (Finishing Up): Let’s finish up our query. Step 4: We know that the only rows that really interest us are those for Nov 4, 5 and 6. A = Supplies JOIN Part B = select A where O_date between ‘Nov 4’ and ‘Nov 6’

Database Principles JOIN Example (Finishing Up): Step 5: What we wanted to know in the first place was the list of parts ordered on certain days. Final Answer: we want the values in this column Answer = project B over Pdesc

Database Principles JOIN Summary: JOIN is the operation most often used to combine two tables into one. The kind of JOIN we performed where we compare two columns using the = operator is called the natural equi- join. It is also possible to compare columns using other operators such as, <=, != etc. Such joins are called theta-joins. These are expressed with a subscripted condition R.A θ S.B where θ is any comparison operator except =

Database Principles JOIN Exercise: Find the author and title of books purchased for $12.00 –What we know, purchase price, is in the Copy table. –What we want, author and title, are in the Book table. –Book and Copy share a primary key/foreign key pair (Book.ISBN, Copy.ISBN) purchase price of $12.00 info we want

Database Principles JOIN Exercise: Step 1: JOIN Copy and Book Step 2: Find the copies that cost $12.00 Step 3: Find the author and title of those books. A = Copy JOIN Book B = Select A where p_price = Answer = project B over author, title author title Brookes MMM Answer

Database Principles QUOTIENT Although Cartesian Product tables normally contain noise rows, sometimes they do not. Sometimes you can even find a Cartesian Product table inside another table. This often happens when we are interested in answering a query like x= Find the suppliers who supply all red parts

Database Principles QUOTIENT In fact, QUOTIENT is used precisely when the query contains the words “all” or “every” in the query condition. CARTESIAN PRODUCT contains this quality of “all”. In a CARTESIAN PRODUCT the elements of one set are combined with all elements of another. In the following slides we construct the answer to the query: Find the suppliers who supply all red parts

Database Principles QUOTIENT SuppliedParts = project Supplies over Sno, Pno RedParts = project (select Part where Colour = ‘Red’) over Pno AllSuppliers = project Supplier over Sno 7 rows

Database Principles QUOTIENT AllSuppliers x RedParts Note: Like most Cartesian Products this table contains a few rows of info and the rest is noise Compare AllSuppliers x RedParts with SuppliedParts they have the same schema – {Sno, Pno}. SuppliedParts contains only info AllSuppliers x RedParts contains some info (4 rows) and some noise (6 rows) The rows they have in common are the info rows of AllSuppliers x RedParts 10 rows iniinnnininiinnnin

Database Principles QUOTIENT Next calculate: NonSuppliedRedParts = (AllSuppliers x RedParts) \ SuppliedParts NOTE: These are the “noise” rows of the Cartesian Product. We know that for every row in this table, the supplier mentioned did NOT supply the red part mentioned.

Database Principles QUOTIENT The list of suppliers in NonSuppliedRedParts is important to us – this is a list of all suppliers who are NOT in our final answer. So the final answer is the suppliers in: NonAnswer = project NonSuppliedRedParts over Sno FinalAnswer = AllSuppliers \ NonAnswer

Database Principles QUOTIENT This large amount of work is performed by the QUOTIENT operator. Definition: If R and S are tables such that S R, then the QUOTIENT of R by S (written R/S) is defined to be the largest table (call it Q) such that Q x S R. x ∩ ∩ FinalAnswer = SuppliedParts / RedParts = /

Database Principles How to Use QUOTIENT Consider the query you are trying to answer; one that contains “all” in the condition. We have to create three tables here – R, S and Q. We know that Q S = R. S contains whatever is described in the “all” phrase. In this case, S = {all red parts} and S = {Pno}. Q is the answer table so in this case, Q = {Sno}. Hence R = {Sno,Pno}, since Q x S = R. Find the suppliers of all red parts ∩

Database Principles How to Use QUOTIENT Our problem becomes build a table R that is easy to build, has the correct schema and data related to what we are trying to find. In our example, we are asking to find suppliers who supple all red parts and so R must be about supplying parts; red or otherwise. Thus There is no choice for S. It must be Given R and S, Q must be the answer to the query. R = project Supplies over Sno, Pno S = project (select Part where Colour = ‘Red’) over Pno

Database Principles QUOTIENT Exercise: Find the Cardholders who have reserved all books published by Addison-Wesley. NOTE: –We only use key attributes. This is important R = project Reserves over borrowerid, isbn S = project (select book where pub_name = ‘AW’) over isbn Q = R/S Q is the answer