Generating Efficient Execution Plans for Vertically Partitioned XML Databases
Patrick Kling, M. Tamer ¨ Ozsu, and Khuzaima Daudjee
University of Waterloo David R. Cheriton School of Computer Science
VLDB 2011
1
Generating Efficient Execution Plans for Vertically Partitioned XML - - PowerPoint PPT Presentation
Generating Efficient Execution Plans for Vertically Partitioned XML Databases Patrick Kling, M. Tamer Ozsu, and Khuzaima Daudjee University of Waterloo David R. Cheriton School of Computer Science VLDB 2011 1 The Problem Centralized
1
2
3
3
4
5
6
7
8
9
9
13
14
1
13
2
14
3 10
author agent
OPT
1
pubs book
MULT
3
name first
ONCE
∗ last
ONCE
∗
2
chapter reference
OPT ONCE
4
ONCE ONCE ONCE MULT
11
12
13
14
14
14
14
14
.=’William’
.=’Shakespeare’
15
.=’William’
.=’Shakespeare’
15
.=’William’
.=’Shakespeare’
15
.=’William’
.=’Shakespeare’
15
.=’William’
.=’Shakespeare’
15
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
16
.=’William’
.=’Shakespeare’
1
1 = reference4]
16
17
18
.=’William’
.=’Shakespeare’
19
1
2
.=’William’
2
.=’Shakespeare’
2
4
19
1
2
.=’William’
2
.=’Shakespeare’
2
4
20
1
2
.=’William’
2
.=’Shakespeare’
2
4
author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 20
1
2
.=’William’
2
.=’Shakespeare’
2
4
author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 20
3)=id(arp 3 )
2)=id(arp 2 )
1(f V 1 )
1(f V 2 )
4)=id(arp 4 )
1(f V 3 )
1(f V 4 ) author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 21
3)=id(arp 3 )
2)=id(arp 2 )
1(f V 1 )
1(f V 2 )
4)=id(arp 4 )
1(f V 3 )
1(f V 4 ) author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 21
3)=id(arp 3 )
2)=id(arp 2 )
1(f V 1 )
1(f V 2 )
4)=id(arp 4 )
1(f V 3 )
1(f V 4 ) author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 21
3)=id(arp 3 )
2)=id(arp 2 )
1(f V 1 )
1(f V 2 )
4)=id(arp 4 )
1(f V 3 )
1(f V 4 ) author ap
2
P1→2
∗
/ ap
3
P1→3
∗
//
1(f V 1 )
arp
2
RP1→2
∗
name / first
.=’William’
/ last
.=’Shakespeare’
/
1(f V 2 )
arp
3
RP1→3
∗
ap
4
P3→4
∗
//
1(f V 3 )
arp
4
RP3→4
∗
ae
1
reference //
1(f V 4 ) 21
22
22
19
20
21
4 23
19
20
21
4 23
19
20
21
4
23
2
2 /a1
2 :RP1→2 ∗
1(f V 2 ) 24
2
2 /a1
2 :RP1→2 ∗
1(f V 2 )
24
2 ,...
2 /a1
2 :RP1→2 ∗
1(f V 2 )
25
4)=id(arp 4 )
3)=id(arp 3 )
2)=id(arp 2 )
2 :RP1→2 ∗
3 :RP1→3 ∗
4 :RP3→4 ∗ 26
4)=id(arp 4 )
3)=id(arp 3 )
2)=id(arp 2 )
2 :RP1→2 ∗
3 :RP1→3 ∗
4 :RP3→4 ∗ 26
4)=id(arp 4 )
3)=id(arp 3 )
2)=id(arp 2 )
2 :RP1→2 ∗
3 :RP1→3 ∗
4 :RP3→4 ∗ 26
4)=id(arp 4 )
3)=id(arp 3 )
2)=id(arp 2 )
2 :RP1→2 ∗
3 :RP1→3 ∗
4 :RP3→4 ∗ 26
27
28
29
30
30
4 )=id(ap 4)
3 )=id(ap 3)
2 )=id(ap 2)
1(f V 1 )
1 ∗ (f V 2 )
1(f V 3 )
1 (f V 4 )
4 )=/author/pubs/book
4 =(RP3→4 ∗
)
31
32
33
34
35
/site/closed auctions/closed auction/annotation/description/text/keyword
//closed auction//keyword
/site/closed auctions/closed auction//keyword
/site/closed auctions/closed auction[annotation/description/text/keyword]/date
/site/closed auctions/closed auction[descendant::keyword]/date
/site/people/person[profile/gender and profile/age]/name
//person[profile/@income]/name
/site/closed auctions/closed auction[price > 600]/annotation/description/text/keyword
//closed auction[price > 600]//keyword
/site/closed auctions/closed auction[price > 600]//keyword
/site/closed auctions/closed auction[price > 600][annotation/description/text/keyword]/date
/site/closed auctions/closed auction[price > 600][descendant::keyword]/date
/site/people/person[starts-with(name, ’Ry’)][profile/gender and profile/age]/name
//person[starts-with(name, ’Ry’)][profile/@income]/name 36
37
38
39
40