ics 421 spring 2010 relational algebra sql
Download
Skip this Video
Download Presentation
ICS 421 Spring 2010 Relational Algebra & SQL

Loading in 2 Seconds...

play fullscreen
1 / 20

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


  • 70 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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 2010 relational algebra sql

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
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
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
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
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
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
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
Intersection & Set-Difference

S1 ∩ S2

S1 − S2

S1

S2

Lipyeow Lim -- University of Hawaii at Manoa

cross product
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
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
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-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
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
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
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
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
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
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
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
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

ad