cse 344 introduc on to data management
play

CSE 344 Introduc/on to Data Management Sec%on 4: Rela%onal Algebra - PowerPoint PPT Presentation

CSE 344 Introduc/on to Data Management Sec%on 4: Rela%onal Algebra Outline HW3 Check-in Rela%onal Algebra Review Translate nested SQL Queries to RA Translate from RA to SQL Rela/onal Algebra SQL = WHAT we want to get from the


  1. CSE 344 Introduc/on to Data Management Sec%on 4: Rela%onal Algebra

  2. Outline • HW3 Check-in • Rela%onal Algebra Review • Translate nested SQL Queries to RA • Translate from RA to SQL

  3. Rela/onal Algebra • SQL = WHAT we want to get from the data • Rela%onal Algebra = HOW to get the data we want • SQL à Rela%onal Algebra à Physical Plan • Rela%onal Algebra = Logical Plan (usually wriIen as a tree)

  4. Rela/onal Algebra Operators Standard: Joins: • Cartesian Product: X • Selec%on: σ Projec%on: π Join: ⨝ Rename: ρ Sets: Extended: • Duplicate Elimina%on: δ • Union: ∪ Grouping and Aggrega%on: ɣ Intersec%on: ∩ Difference: - Sor%ng:

  5. Dancer(did, name, birthyear, country) SQL to RA Review Show(sid, %tle, choreographer, composer, year) Role(did, sid, role, company) • Write a Rela%onal Algebra plan for the following query: SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  6. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  7. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  8. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  9. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  10. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  11. SQL to RA Solu/on SELECT d.did, d.name, count(*) FROM Dancer d, Show s, Role r WHERE d.did=r.did AND r.sid=s.sid AND s.composer='Tchaikovsky' GROUP BY d.did, d.name ORDER BY d.name;

  12. Member(mid, name, age) Translate nested SQL Queries to RA Picture(pid, year) Tagged(mid, pid) SELECT w.year, max(w.c) AS m FROM(SELECT x.name, z.year, count(*) AS c FROMMember x, Tagged y, Picture z WHERE x.mid = y.mid AND y.pid = z.pid AND age < 20 GROUP BY x.name, z.year) w GROUP BY w.year HAVING sum(w.c) > 100;

  13. Nested SQL Queries to RA Solu/on SELECT w.year, max(w.c) AS m FROM(SELECT x.name, z.year, count(*) AS c FROM Member x, Tagged y, Picture z WHERE x.mid = y.mid AND y.pid = z.pid AND age < 20 GROUP BY x.name, z.year) w GROUP BY w.year HAVING sum(w.c) > 100;

  14. Translate from RA to SQL o Put tables in FROM clause o Put join predicates in WHERE clause o Put selec%on predicates in WHERE clause o Translate extended RA symbols to SQL equivalent o Put selec%on of aggregates in HAVING clause o Put projec%on predicates in SELECT clause

  15. Person(pid,name) RA to SQL Example Email(eid, pidFrom, %d, body, length) EmailTo(eid,pidTo)

  16. RA to SQL Solu/on SELECT e1.pidFrom, count(*) FROM Email e1, EmailTo t1, Email e2 WHERE e1.eid = t1.eid AND t1.pidTo = e2.pidFrom GROUP BY e1.pidFrom HAVING max(e2.length) < 1000;

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend