CPSC-310 Database Systems

Slides:



Advertisements
Similar presentations
1 Relational Algebra Operators Expression Trees Bag Model of Data Source: Slides by Jeffrey Ullman.
Advertisements

1 Relational Algebra Basic Operations Algebra of Bags.
IS698: Database Management Min Song IS NJIT. The Relational Data Model.
1 Relational Algebra 1 Basic Operations. 2 What is an “Algebra” uMathematical system consisting of: wOperands --- variables or values from which new values.
1 Relational Algebra* and Tuple Calculus * The slides in this lecture are adapted from slides used in Standford's CS145 course.
Tallahassee, Florida, 2014 COP4710 Database Systems Relational Algebra Fall 2014.
SQL Group Members: Shijun Shen Xia Tang Sixin Qiang.
SQL Queries Principal form: SELECT desired attributes FROM tuple variables –– range over relations WHERE condition about tuple variables; Running example.
1 Relational Algebra. Motivation Write a Java program Translate it into a program in assembly language Execute the assembly language program As a rough.
Relational Algebra Dashiell Fryer. What is Relational Algebra? Relational algebra is a procedural query language. Relational algebra is a procedural query.
Relational Algebra Jermaine Rodney. What is an “Algebra”  Mathematical system consisting of: Operands --- Variables or values from which new values can.
Relational Algebra Indra Budi Fakultas Ilmu Komputer UI 2 n Basic Relational Operations: l Unary Operations  SELECT   PROJECT 
1 Relational Algebra Lecture #9. 2 Querying the Database Goal: specify what we want from our database Find all the employees who earn more than $50,000.
CPSC-608 Database Systems Fall 2011 Instructor: Jianer Chen Office: HRBB 315C Phone: Notes #3.
Fall 2001Arthur Keller – CS 1805–1 Schedule Today Oct. 9 (T) Multivalued Dependencies, Relational Algebra u Read Sections 3.7, Assignment 2 due.
1 Relational Algebra Basic operators Relational algebra expression tree.
1 Relational Algebra Operators Expression Trees Bag Model of Data.
Relational Algebra Basic Operations Algebra of Bags.
Relational Algebra CIS 4301 Lecture Notes Lecture /28/2006.
Relational Model 2015, Fall Pusan National University Ki-Joune Li.
Databases 1 First lecture. Informations Lecture: Monday 12:15-13:45 (3.716) Practice: Thursday 10:15-11:45 (2-519) Website of the course:
Constraints on Relations Foreign Keys Local and Global Constraints Triggers Following lecture slides are modified from Jeff Ullman’s slides
RELATIONAL DATA MODEL 1. 2 What is a Data Model? 1.Mathematical representation of data. wExamples: relational model = tables; semistructured model = trees/graphs.
M Taimoor Khan Course Objectives 1) Basic Concepts 2) Tools 3) Database architecture and design 4) Flow of data (DFDs)
Relational Algebra (Chapter 7)
The Relational Algebra and Calculus
1 Relational Algebra Basic Operations Algebra of Bags.
Databases : Relational Algebra 2007, Fall Pusan National University Ki-Joune Li These slides are made from the materials that Prof. Jeffrey D. Ullman distributes.
From Professor Ullman, Relational Algebra.
Database Management Systems Chapter 5 The Relational Algebra Instructor: Li Ma Department of Computer Science Texas Southern University, Houston October,
1 Relational Algebra Operators Expression Trees. 2 What is an “Algebra” uMathematical system consisting of: wOperands --- variables or values from which.
1 Lecture 2 Relational Algebra Based on
SCUHolliday - coen 1785–1 Schedule Today: u Relational Algebra. u Read Chapter 5 to page 199. Next u SQL Queries. u Read Sections And then u Subqueries,
Databases : Relational Algebra - Complex Expression 2007, Fall Pusan National University Ki-Joune Li These slides are made from the materials that Prof.
1 Algebra of Queries Classical Relational Algebra It is a collection of operations on relations. Each operation takes one or two relations as its operand(s)
Relational Algebra BASIC OPERATIONS 1 DATABASE SYSTEMS AND CONCEPTS, CSCI 3030U, UOIT, COURSE INSTRUCTOR: JAREK SZLICHTA.
603 Database Systems Senior Lecturer: Laurie Webster II, M.S.S.E.,M.S.E.E., M.S.BME, Ph.D., P.E. Lecture 9 A First Course in Database Systems.
1 Relational Algebra Basic Operations Algebra of Bags.
1 Introduction to Database Systems, CS420 Relational Algebra.
1 Database Design: DBS CB, 2 nd Edition Relational Algebra: Basic Operations & Algebra of Bags Ch. 5.
1. Chapter 2: The relational Database Modeling Section 2.4: An algebraic Query Language Chapter 5: Algebraic and logical Query Languages Section 5.1:
©Silberschatz, Korth and Sudarshan2.1Database System Concepts - 6 th Edition Chapter 8: Relational Algebra.
Select-From-Where Statements Multirelation Queries Subqueries
CPSC-310 Database Systems
Summary of Relational Algebra
Database Design and Programming
Basic Operations Algebra of Bags
Relational Database Systems 1
Schedule Today: Jan. 28 (Mon) Jan. 30 (Wed) Next Week Assignments !!
Slides are reused by the approval of Jeffrey Ullman’s
CPSC-310 Database Systems
COP4710 Database Systems Relational Algebra.
An Algebraic Query Language
CPSC-310 Database Systems
CPSC-608 Database Systems
CS 440 Database Management Systems
CPSC-608 Database Systems
CPSC-310 Database Systems
CPSC-310 Database Systems
CPSC-310 Database Systems
Operators Expression Trees Bag Model of Data
CPSC-310 Database Systems
2018, Fall Pusan National University Ki-Joune Li
Basic Operations Algebra of Bags
Schedule Today: Next And then Relational Algebra.
CPSC-608 Database Systems
CPSC-608 Database Systems
Instructor: Zhe He Department of Computer Science
Select-From-Where Statements Multirelation Queries Subqueries
2019, Fall Pusan National University Ki-Joune Li
Presentation transcript:

CPSC-310 Database Systems Professor Jianer Chen Room 315C HRBB Lecture #9

Outline of Course Representing things by tables E-R model (Ch. 4) Good table structures Functional Dependencies (Ch.3) Basic operations on relations Relational Algebra (Chs. 2+5) Storage management (Chs. 13-14) SQL languages in DDL/DML (Ch. 6) Query processing (Chs. 15-16) More on SQL (Chs. 7-9) Transition processing (Chs. 17-19)

Outline of Course Representing things by tables E-R model (Ch. 4) Good table structures Functional Dependencies (Ch.3) Basic operations on relations Relational Algebra (Chs. 2+5) Storage management (Chs. 13-14) SQL languages in DDL/DML (Ch. 6) Query processing (Chs. 15-16) More on SQL (Chs. 7-9) Transition processing (Chs. 17-19)

What is an “Algebra” Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators --- symbols denoting procedures that construct new values from given values.

What is Relational Algebra? An algebra whose operands are relations or variables that represent relations. Operators are designed to do the most common things that we need to do with relations in a database. The result is an algebra that can be used as a query language for relations.

Roadmap There is a core relational algebra that has traditionally been thought of as the relational algebra. But there are several other operators we shall add to the core in order to model better the language SQL --- the principal language used in relational database systems.

Core Relational Algebra Union, intersection, and difference. Usual set operations, but require both operands have the same relation schema. Selection: picking certain rows. Projection: picking certain columns. Products and joins: compositions of relations. Renaming of relations and attributes.

Selection R1 := SELECTC(R2) or R1 = σC(R2) C is a condition (as in “if” statements) that refers to attributes of R2. R1 is all those tuples of R2 that satisfy C.

Example Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 JoeMenu := σbar=“Joe’s”(Sells): bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75

Projection R1 := PROJL(R2) or R1 = πL(R2) L is a list of attributes from the schema of R2. R1 is constructed by looking at each tuple of R2, extracting the attributes on list L, in the order specified, and creating from those components a tuple for R1. Eliminate duplicate tuples, if any.

Example Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 Prices := πbeer,price(Sells): beer price Bud 2.50 Miller 2.75 Miller 3.00

Product R3 := R1  R2 Pair each tuple t1 of R1 with each tuple t2 of R2. Concatenation t1t2 is a tuple of R3. Schema of R3 is the attributes of R1 and then R2, in order. But beware attribute A of the same name in R1 and R2: use R1.A and R2.A.

Example: R3 := R1  R2 R3( A, R1.B, R2.B, C ) R1( A, B ) 1 2 5 6 1 2 1 2 3 4 R2( B, C ) 5 6 7 8 9 10 R3( A, R1.B, R2.B, C ) 1 2 5 6 1 2 7 8 1 2 9 10 3 4 5 6 3 4 7 8 3 4 9 10

Theta-Join R3 := R1 JOINC R2 or R3 := R1 ⨝C R2 Take the product R1  R2. Then apply σC to the result. As for SELECT σ, C can be any boolean-valued condition. Historic versions of this operator allowed only A  B, where  is =, <, etc.; hence the name “theta-join.”

Example Sells( bar, beer, price ) Bars( name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells ⨝Sells.bar = Bars.name Bars BarInfo( bar, beer, price, name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Joe’s Maple St. Sue’s Bud 2.50 Sue’s River Rd. Sue’s Coors 3.00 Sue’s River Rd.

Natural Join A frequent type of join connects two relations by: Equating attributes of the same name, and Projecting out one copy of each pair of equated attributes. Called natural join. Denoted R3 := R1 JOIN R2 or R3 := R1 ⨝ R2 .

Example Sells( bar, beer, price ) Bars( bar, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells ⨝ Bars Note Bars.name has become Bars.bar to make the natural join “work.” BarInfo( bar, beer, price, addr ) Joe’s Bud 2.50 Maple St. Joe’s Milller 2.75 Maple St. Sue’s Bud 2.50 River Rd. Sue’s Coors 3.00 River Rd.

Renaming The RENAME operator gives a new schema to a relation. R1 := RENAMER1(A1,…,An)(R2), or R1 := 𝜌R1(A1,…,An)(R2), makes R1 be a relation with attributes A1,…,An and the same tuples as R2. Simplified notation: R1(A1,…,An) := R2.

Example Bars( name, addr ) Joe’s Maple St. Sue’s River Rd. R := 𝜌R(bar, addr)(Bars) or R(bar, addr) := Bars R( bar, addr ) Joe’s Maple St. Sue’s River Rd.

Building Complex Expressions Combine operators with parentheses and precedence rules. Three notations, just as in arithmetic: Sequences of assignment statements. Expressions with several operators. Expression trees.

Sequences of Assignments Create temporary relation names. Renaming can be implied by giving relations a list of attributes. Example: R3 := R1 ⨝C R2 can be written: R4 := R1  R2 R3 := σC (R4)

Expressions in a Single Assignment Example: the theta-join R3 := R1 ⨝C R2 can be written: R3 := σC (R1R2) Precedence of relational operators: [SELECT σ, PROJECT π, RENAME 𝜌] (highest). [PRODUCT , JOIN ⨝C , ⨝]. SET INTERSECTION ∩. [SET UNION ⋃, SET DIFFERENCE \]

Expression Trees Leaves are operands --- either variables standing for relations or particular, constant relations. Interior nodes are operators, applied to their child or children.

Example Using the relations Bars(name, addr) and Sells(bar, beer, price), find the names of all the bars that are either on Maple St. or sell Bud for less than $3.

As a Tree: ⋃ 𝜌R(name) πname πbar σaddr = “Maple St.” Using the relations Bars(name, addr) and Sells(bar, beer, price), find the names of all the bars that are either on Maple St. or sell Bud for less than $3. As a Tree: ⋃ 𝜌R(name) πname πbar σaddr = “Maple St.” σprice<3 AND beer=“Bud” Bars Sells

Example Using Sells(bar, beer, price), find the bars that sell two different beers at the same price. Strategy: by renaming, define a copy of Sells, called S(bar, beer1, price). The natural join of Sells and S consists of quadruples (bar, beer, beer1, price) such that the bar sells both beers at this price.

The Tree πbar σbeer != beer1 ⨝ 𝜌S(bar, beer1, price) Sells Sells Using Sells(bar, beer, price), find the bars that sell two different beers at the same price. The Tree πbar σbeer != beer1 ⨝ 𝜌S(bar, beer1, price) Sells Sells