Download presentation
Presentation is loading. Please wait.
Published byJulius Roderick Henderson Modified over 9 years ago
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.