Download presentation

Presentation is loading. Please wait.

Published byEzra Prebble Modified about 1 year ago

1
1 Problem Session 1 Products and Joins

2
2 Outline uAnnouncements uSynopsis of Last Week uProducts and Joins – formal expressions, examples uProducts and Joins – sample problems uQ&A

3
3 Announcements uMake sure you’re on the CS145 Coursework site by today uGradiance - one due Mon 10/8, two due Wed 10/10 uChallenge Problems #1 due Mon 10/8 wCorrection: #2 – can use union, intersection, difference as well wSubmit directly through Coursework (text in Assignments preferred, though.doc or.pdf in Drop Box acceptable) uAlways your questions to the staff list!

4
4 Synopsis of Last Week uData model: general conceptual way of structuring data wRelational model = tables (e.g., SQL) wSemistructured model = trees/graphs (e.g., XML) uSchema: structure of a particular relation or database under a certain data model uXML: language for semistructured model. DTD describes the structure. uRelational Algebra: algebra operating on relations. Prelude to SQL. uSQL: select-from-where

5
5 Products and Joins uProduct: R1 X R2 = {(t1, t2) : t1 in R1 and t2 in R2} Theta Join: R1 ⋈ C R2 = σ C (R1 X R2) Natural Join: R1 ⋈ R2 = π schema(R1) SETUNION schema(R2) (R1 ⋈ R1.A=R2.A and R1.B=R2.B and… R2)

6
6 Example: Product R1(A,B ) R2(B,C ) R3(A,R1.B,R2.B,C ) R3 := R1 X R2

7
7 Example: Theta Join R1(A,B ) R2(B,C ) R3 := R1 ⋈ R1.B=R2.B R2 R3(A,R1.B,R2.B,C )

8
8 Example: Natural Join R1(A,B ) R2(B,C ) R3 := R1 ⋈ R2 R3(A,R1.B,R2.B,C )

9
9 Sample Problem #1 Drinkers(name, addr, phone) Likes(drinker, beer) Find names and addresses of all drinkers who like Bud.

10
10 Sample Problem #1 Drinkers(name, addr, phone) Likes(drinker, beer) Find names and addresses of all drinkers who like Bud. Drinkers Likes σ name=drinker σ beer=‘Bud’ π name, addr X uMethod 1: filter, then concatenate uQuestion: how would you write this in SQL? uOne Possible Answer: SELECT name, addr FROM Drinkers, ( SELECT * FROM Likes WHERE beer = ‘Bud’) WHERE name = drinker;

11
11 Sample Problem #1 Drinkers(name, addr, phone) Likes(drinker, beer) Find names and addresses of all drinkers who like Bud. Drinkers Likes σ name=drinker π name, addr X uMethod 2: concatenate, then filter uQuestion: how would you write this in SQL? uOne Possible Answer: SELECT name, addr FROM Drinkers, Likes WHERE name = drinker AND beer = ‘Bud’; AND beer=‘Bud’

12
12 Sample Problem #2 Drinkers(name, addr, phone) Find names of all pairs of drinkers who live at the same address.

13
13 Sample Problem #2 Drinkers(name, addr, phone) Find names of all pairs of drinkers who live at the same address. Drinkers σ name

14
14 Q&A uWhat’s the difference between the relational and semistructured models? wSee first lecture. Basically, relational = rigid tables and semistructured = flexible graphs. uThe semistructured model is supposed to be flexible, but can’t you represent everything in relational algebra if you plan far enough ahead? wWell, in reality there are a lot of things that you can’t possibly plan ahead for, so you need the semistructured model for that.

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google