Presentation is loading. Please wait.

Presentation is loading. Please wait.

Storage Representations for Set-Oriented Selection Predicates Karthikeyan Ramasamy with Jeffrey F. Naughton and David Maier.

Similar presentations


Presentation on theme: "Storage Representations for Set-Oriented Selection Predicates Karthikeyan Ramasamy with Jeffrey F. Naughton and David Maier."— Presentation transcript:

1 Storage Representations for Set-Oriented Selection Predicates Karthikeyan Ramasamy with Jeffrey F. Naughton and David Maier

2 Object Relational DBMS OR-DBMS are gaining acceptance Market for OR-DBMS is growing Many vendors are working on a version of OR-DBMS Main features of OR-DBMS –Type extensibility –Collections

3 Set Valued Attributes Many semantic notions of the real world can be described by sets (e.g) set of courses, set of products, etc. Set valued attributes provide conciseness and ease of expression

4 Classification of Representations InternalExternal Nested Unnested Yes No

5 Nested Internal Representation Stored at the end of the tuple Requires support for handling large tuples Retrieval cost of a tuple increases Updates could reorganize the whole tuple Might do well when the size of the set is small

6 Nested Internal Representation Cardinality Element 1 Element 2 Element N.. Length Tuple A1A2A3

7 Unnested External Representation Set-valued attributes are stored separately in an auxiliary relation Set instances are unnested and each element stored as a tuple Uses key - foreign key for connecting tuple and its set elements Requires join to assemble elements

8 Unnested External Representation Example –Moviegoer(name, street, city, state, zip, {movies}) Base Relation –Moviegoer-Base(name, street, city, state, zip, id) Set Relation –Moviegoer-Set(id, movie-name)

9 Nested External Representation Set valued attributes are stored in an auxiliary relation Set instances are nested in auxiliary relation Uses key - foreign key Number of tuples is the same as base relation Resorts to join

10 Nested External Representation Example –Moviegoer(name, street, city, state, zip, {movies}) Base Relation –Moviegoer-Base(name, street, city, state, zip, id) Set Relation –Moviegoer-Set(id, {movies})

11 Indexed Variants Augmentation with Indexes Nested Representations –Unnested and unclustered Index Unnested Representations –Clustered Index –Unclustered Index

12 Performance - Settings Implementation in Paradise - Set Adt Intel Pentium 333 MHz - Solaris 2.6 Main memory - 128 MB Buffer pool size - 32 MB Used raw disks of size 4 GB Each experiment was run against cold database

13 Performance - Experimental Schema Moviegoer(name, street, city, state, zipcode, {movies}) –Average tuple size 68 bytes –Number of Base Relation tuples 10000 –Number of Set Elements 1000000 –Set element size is 20 bytes

14 Performance - Queries Queries ran are –Conjunctive Queries –Disjunctive Queries –Queries not referring to set valued attribute Sets are not in the result Sets in the result

15 Performance - Parameters Varied Cardinality Selectivity of the predicate Number of elements in the predicate Size of each set element

16 Conjunctive Queries SELECT m.name, m.street, m.city, m.state, m.zipcode FROM Moviegoer m WHERE { “movieA50061”, “movieA50062” } SUBSET OF m.movies No Set in the Result SELECT m.name, m.street, m.city, m.state, m.zipcode, m.movies FROM Moviegoer m WHERE { “movieA50061”, “movieA50062” } SUBSET OF m.movies Set in the Result

17 Disjunctive Queries SELECT m.name, m.street, m.city, m.state, m.zipcode FROM Moviegoer m WHERE “movieA50061” IN m.movies OR “movieA50062” IN m.movies No Set in the Result SELECT m.name, m.street, m.city, m.state, m.zipcode, m.movies FROM Moviegoer m WHERE “movieA50061” IN m.movies OR “movieA50062” IN m.movies Set in the Result

18 No Set in Result - Varying Cardinality Selectivity of 1 % for Six Element Predicate Query

19 No Set in Result - Varying Selectivity Six Element Predicate Query with Cardinality of 100

20 No Set in Result - Varying Number of Elements in Predicate Selectivity of 1% with cardinality of 100

21 No Set in Result - Varying Size of Set Element Selectivity of 1% with cardinality of 100

22 Queries - Not Referring Set Valued Attribute SELECT m1.name, m1.street, m1.city, m1.state, m1.zipcode FROM Moviegoer m1, Moviegoer m2 WHERE m1.id = m2.id Join Query SELECT m.name, m.street, m.city, m.state, m.zipcode, FROM Moviegoer m Select Query

23

24 Conclusions and Future Work Nested representations perform better for set oriented selection predicates Indexes on nested representations are effective than unnested representations Evaluation of these representations for nested set joins Specialized operators for nested representations

25 Unnested External Representation Ability to handle any cardinality Easily slides into existing relational engine Set operations might be inefficient since elements are scattered Keys provide overhead when set elements are small Cardinality Explosion

26 No Set in Result - Cost Breakdown Selectivity of 1 % for Six Element Predicate Query

27 Conjunctive Queries - Unnested External SELECT mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode FROM Moviegoer-Base mb, Moviegoer-Set ms WHERE mb.set-id = ms.set-id AND (ms.movie-name = “movieA50061” OR ms.movie-name = “movieA50062”) GROUP BY mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode HAVING count(*) = 2 No Set in the Result

28 Conjunctive Queries - Unnested External SELECT mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode FROM Moviegoer-Base mb, Moviegoer-Set ms1, Moviegoer-Set ms2 WHERE mb.set-id = ms1.set-id AND mb.set-id = ms2.set-id AND ms1.movie-name = “movieA50061” AND ms2.movie-name = “movieA50062” No Set in the Result

29 Conjunctive Queries - Unnested External INSERT INTO temp SELECT DISTINCT mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode FROM Moviegoer-Base mb, Moviegoer-Set ms WHERE mb.set-id = ms.set-id AND ms.movie-name = “movieA50061” OR ms.movie-name = “movieA50062” GROUP BY mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode HAVING count(*) = 2 SELECT t.name, t.street, t.city, t.state, t.zip, ms.movie-name FROM temp t, Moviegoer-Set ms WHERE t.set-id = ms.set-id Set in the Result

30 Disjunctive Queries - Unnested External SELECT DISTINCT mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode FROM Moviegoer-Base mb, Moviegoer-Set ms WHERE mb.set-id = ms.set-id AND (ms.movie-name = “movieA50061” OR ms.movie-name = “movieA50062”) No Set in the Result

31 Disjunctive Queries - Unnested External SELECT DISTINCT mb.set-id, mb.name, mb.street, mb.city, mb.state, mb.zipcode, ms2.movie-name FROM Moviegoer-Base mb, Moviegoer-Set ms1, Moviegoer-Set ms2 WHERE mb.set-id = ms1.set-id AND ms1.set-id = ms2.set-id (ms.movie-name = “movieA50061” OR ms.movie-name = “movieA50062”) Set in the Result


Download ppt "Storage Representations for Set-Oriented Selection Predicates Karthikeyan Ramasamy with Jeffrey F. Naughton and David Maier."

Similar presentations


Ads by Google