Download Presentation
ICS 421 Spring 2010 Relational Algebra &amp; SQL

Loading in 2 Seconds...

1 / 20

# ICS 421 Spring 2010 Relational Algebra & SQL - PowerPoint PPT Presentation

ICS 421 Spring 2010 Relational Algebra &amp; SQL. Asst. Prof. Lipyeow Lim Information &amp; Computer Science Department University of Hawaii at Manoa. Formal Relational Query Languages. Query languages : Allow manipulation and retrieval of data from a database .

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

## PowerPoint Slideshow about ' ICS 421 Spring 2010 Relational Algebra & SQL' - tracey

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### ICS 421 Spring 2010Relational Algebra & SQL

Asst. Prof. Lipyeow Lim

Information & Computer Science Department

University of Hawaii at Manoa

Lipyeow Lim -- University of Hawaii at Manoa

Formal Relational Query Languages
• Query languages: Allow manipulation and retrieval of data from a database.
• Two mathematical Query Languages form the basis for “real” languages (e.g. SQL), and for implementation:
• Relational Algebra: More operational, very useful for representing execution plans.
• Relational Calculus: Lets users describe what they want, rather than how to compute it. (Non-operational, declarative.)
• Query Languages != programming languages!
• QLs not expected to be “Turing complete”.
• QLs not intended to be used for complex calculations.
• QLs support easy, efficient access to large data sets.

Lipyeow Lim -- University of Hawaii at Manoa

Example Relational Instances

R1

• “Sailors” and “Reserves” relations for our examples.
• We’ll use positional or named field notation, assume that names of fields in query results are `inherited’ from names of fields in query input relations

S1

S2

Lipyeow Lim -- University of Hawaii at Manoa

Relational Algebra
• Basic operations:
• Selection (σ) Selects a subset of rows from relation.
• Projection (π) Deletes unwanted columns from relation.
• Cross-product(×) Allows us to combine two relations.
• Set-difference (−) Tuples in reln. 1, but not in reln. 2.
• Union(U) Tuples in reln. 1 and in reln. 2.
• Additional operations:
• Intersection, join, division, renaming: Not essential, but (very!) useful.
• Since each operation returns a relation, operationscan be composed! (Algebra is “closed”.)

Lipyeow Lim -- University of Hawaii at Manoa

Projection

πsname, rating (S2)

• Deletes attributes that are not in projection list.
• Schema of result contains exactly the fields in the projection list, with the same names that they had in the (only) input relation.
• Projection operator has to eliminate duplicates! (Why??)
• Note: real systems typically don’t do duplicate elimination unless the user explicitly asks for it. (Why not?)

πage (S2)

Lipyeow Lim -- University of Hawaii at Manoa

Selection

σrating > 8 (S2)

• Selects rows that satisfy selection condition.
• No duplicates in result! (Why?)
• Schema of result identical to schema of (only) input relation.
• Result relation can be the input for another relational algebra operation! (Operatorcomposition.)

πsname, rating (σrating>8 (S2))

Lipyeow Lim -- University of Hawaii at Manoa

Union, Intersection, Set-Difference

S1 U S2

• All of these operations take two input relations, which must be union-compatible:
• Same number of fields.
• `Corresponding’ fields have the same type.
• What is the schema of result?

S1

S2

Lipyeow Lim -- University of Hawaii at Manoa

Intersection & Set-Difference

S1 ∩ S2

S1 − S2

S1

S2

Lipyeow Lim -- University of Hawaii at Manoa

Cross-Product
• Consider the cross product of S1 with R1
• Each row of S1 is paired with each row of R1.
• Result schema has one field per field of S1 and R1, with field names `inherited’ if possible.
• Conflict: Both S1 and R1 have a field called sid.
• Rename to sid1 and sid2

S1 × R1

R1

S1

Lipyeow Lim -- University of Hawaii at Manoa

Renaming
• The expression:

ρ ( C (1 → sid1, 5 → sid2), S1 × R1 )

• Renames the result of the cross product of S1 and R1 to “C”
• Renames column 1 to sid1 and column 5 to sid2

ρ ( C (1 → sid1, 5 → sid2), S1 × R1 )

Lipyeow Lim -- University of Hawaii at Manoa

Joins
• Condition Join:
• Result schema same as that of cross-product.
• Fewer tuples than cross-product, might be able to compute more efficiently
• Sometimes called a theta-join.

Lipyeow Lim -- University of Hawaii at Manoa

Equi-Joins & Natural Joins
• Equi-join: A special case of condition join where the condition c contains only equalities.
• Result schema similar to cross-product, but only one copy of fields for which equality is specified.
• Natural Join: Equi-join on all common fields.

Lipyeow Lim -- University of Hawaii at Manoa

Q1: Find names of sailors who’ve reserved boat #103

Solution 1:

Solution 2:

Solution 3:

Lipyeow Lim -- University of Hawaii at Manoa

Q2: Find names of sailors who’ve reserved a red boat
• Information about boat color only available in Boats; so need an extra join:
• A more efficient solution:

Lipyeow Lim -- University of Hawaii at Manoa

Q5: Find sailors who’ve reserved a red or a green boat
• Can identify all red or green boats, then find sailors who’ve reserved one of these boats:
• Can also define Tempboats using union! (How?)
• What happens if  is replaced by  in this query?

Lipyeow Lim -- University of Hawaii at Manoa

Q6: Find sailors who’ve reserved a red and a green boat
• Previous approach won’t work! Must identify sailors who’ve reserved red boats, sailors who’ve reserved green boats, then find the intersection (note that sid is a key for Sailors):

Lipyeow Lim -- University of Hawaii at Manoa

Basic SQL Query

SELECT [ DISTINCT ] target-list

FROMrelation-list

WHEREqualification

• relation-list A list of relation names (possibly with a range-variable after each name).
• target-list A list of attributes of relations in relation-list
• qualification Comparisons (Attrop const or Attr1 op Attr2, where op is one of <, >, ≤, ≥, =, ≠) combined using AND, OR and NOT.
• DISTINCT is an optional keyword indicating that the answer should not contain duplicates. Default is that duplicates are not eliminated!

Lipyeow Lim -- University of Hawaii at Manoa

Example Q1

SELECTS.sname

FROM Sailors S, Reserves R

WHERE S.sid=R.sid AND bid=103

• Range variables really needed only if the same relation appears twice in the FROM clause.
• Good style to always use range variables

Without range variables

SELECTsname

FROM Sailors, Reserves

WHERE Sailors.sid=Reserves.sid AND bid=103

Lipyeow Lim -- University of Hawaii at Manoa

Conceptual Evaluation Strategy
• Semantics of an SQL query defined in terms of the following conceptual evaluation strategy:
• Compute the cross-product of relation-list.
• Discard resulting tuples if they fail qualifications.
• Delete attributes that are not in target-list.
• If DISTINCT is specified, eliminate duplicate rows.
• This strategy is probably the least efficient way to compute a query! An optimizer will find more efficient strategies to compute the same answers.

Lipyeow Lim -- University of Hawaii at Manoa

Example Q1: conceptual evaluation

SELECTS.sname

FROM Sailors S, Reserves R

WHERE S.sid=R.sid AND bid=103

Conceptual Evaluation Steps:

• Compute cross-product
• Discard disqualified tuples
• Delete unwanted attributes
• If DISTINCT is specified, eliminate duplicate rows.

Lipyeow Lim -- University of Hawaii at Manoa