Ics 421 spring 2010 relational algebra sql
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

ICS 421 Spring 2010 Relational Algebra & SQL PowerPoint PPT Presentation


  • 47 Views
  • Uploaded on
  • Presentation posted in: General

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 .

Download Presentation

ICS 421 Spring 2010 Relational Algebra & SQL

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


  • Login