ࡱ> snopqrjX( D/ 0|DArialr Newmanttxw 0DTimes New Romanttxw 0 DWingdingsRomanttxw 00DArial Blackmanttxw 0"@DCourier Newmanttxw 01@ .  @n?" dd@  @@`` X$P   5      5 () 5 ..   21   () klmnopquvwxyz{|}~       0:  0AA 33@8bcYʚ;ʚ;g4ddddܲ 0Xppp@ <4dddd@k 0tTw ^0___PPT10 pp___PPT9T t? -O  =GmSchema-based Scheduling of Event Processors and Buffer Minimization for Queries on Structured Data Streams nl!Bernhard Stegmaier (TU Mnchen) Joint work with Christoph Koch (TU Wien) Stefanie Scherzinger (TU Wien) Nicole Schweikardt (HU Berlin) .P"t #    OutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments ConclusionfZf> *Traditional Approach  The FluX Approach   The FluX Approach II  <OutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments Conclusion,fZ F> * FluX Query LanguageBased on XQuery fragment XQuery-  (empty) s (output fixed string)   (sequence) {for $x in $y/ [where ] return } (for loop) {$x/} (output path) {$x} (output) {if  then } (conditional) !$$ ,##"##"## "### "##"## " ##""    R$FluX Query LanguageXQuery- expression is simple Can be executed without buffering the stream8L /F FluX Query Language (ctd.)$FluX expressions Simple XQuery- expression s {process-stream $y: H } s Event handlers H on-first past(S) return  : XQuery- expression S: set of symbols on a as $x return Q a: symbol name $x: variable Q: FluX expression7(/   Cc""#"#"" "*" #  "   #  " "#"$     Safe FluX Queries FluX query is safe No XQuery- expression refers to elements that may still be encountered in the stream bl  L$M Safe FluX Queries FluX query is safe No XQuery- expression refers to elements that may still be encountered in the stream bl  L$M@OutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments Conclusion,fZ )> *?XQuery to FluX$Rewrite XQuery- Q to FluX query F using (non-recursive) DTD F is safe w.r.t. DTD F is equivalent to Q F has low memory consumption Appropriate scheduling of event processors Steps Normalization of Q Rewriting into FluX=ZGZ+ZZZ'Z.G+ &P. Normalization.Rule-based rewriting of XQuery Split paths in single step for loops Eliminate where using if Push down if expressions Rewrite paths $x/a/& to for loopsy/ zT%Example  Example %Example $Example &Example 'Example 0Example 2Example 4Example 5Example 86Example  Order Constraints :Example AOutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments Conclusion,fZ=> *\)Further AspectsP Visit our demonstration (Group 3: XML)))COutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments Conclusion,fZN  > *P# ExperimentsBased on XMark Queries adapted to XQuery- fragment Environment AMD Athlon XP 2000, 512MB RAM Linux, Sun JDK 1.4.2_03 Measurements Execution time Memory consumption r@Z7Z Z#Z( 7 #> ]Z( ExperimentsD OutlineeMotivation FluX Query Language Translating XQuery into FluX Further Aspects Experiments Conclusion"fZ[ > *J" ConclusionFluX Event based extension of XQuery Rewriting of XQuery into FluX Usage of information of DTD FluX supports buffer-conscious query processing Low main memory consumption Efficient and scalable query execution on data streams Future work Recursive DTDs Extension of XQuery- subset (e.g., //, aggregate operators) Improve execution (joins)P\P1PSP PeP>1S "   B  ~ CE! Related WorkAltinel, Franklin.  Efficient Filtering of XML Documents for Selective Dissemination of Information . VLDB 2000 Buneman, Grohe, Koch.  Path Queries on Compressed XML . VLDB 2003 Chan, Felber, Garofalakis, Rastogi.  Efficient Filtering of XML Documents with XPath Expressions . ICDE 2002 Deutsch, Tannen.  Reformulation of XML Queries and Constraints . ICDT 2003 Fegaras, Levine, Bose, Chaluvadi.  Query Processing on Streamed XML Data . CIKM 2002 Green, Miklau, Onizuka, Suciu.  Processing XML Streams with Deterministic Automata . ICDT 2003 Gupta, Suciu.  Stream Processing of XPath Queries with Predicates . SIGMOD 2003 Ludscher, Mukhopadhyay, Papakonstantinou.  A Transducer-Based XML Query Processor . VLDB 2002 Marian, Simon.  Projecting XML Documents . VLDB 2003 Olteanu, Kiesling, Bry.  An Evaluation of Regular Path Expressions with Qualifiers against XML Streams . ICDE 2003 wPQ" 0=..'+449($O i: -"< <I'  >(^_*FluX Query Language*Based on XQuery fragment XQuery-  (empty) s (output fixed string)   (sequence) {for $x in $y/ [where ] return } (for loop) {$x/} (output path) {$x} (output) {if  then } (conditional) Difference to XQuery in treating fixed strings <result> {$ROOT/bib/book} </result>!ZZUZ $##"##"## "### "##"## " ##"0""$#       FluX Query Language (ctd.)$XQuery- Expression    is simple, if ,  (possibly empty) sequence of fixed string s {if  then s}  is empty or {$u} {if  then {$u}} and $u not in condition of   Can be executed without buffering on streams)Z"nZnZnZnZ nZ0Z $ #"""#" "  #  " # "#"#"#"#-T  V& Dependencies BFurther AspectsThe XSAX (eXtended SAX) parser Generates on-first events Execution of FluX queries Using XSAX Projection scheme Additional reduction of buffer size Algebraic pre-optimizations Visit our demonstration (Group 3: XML)Z)Z  B), 6/(! " # ( ) *+,13679;=FGHIKL M!N"Q#S$U%W&]'^(`)  0` fff33` 3KI3ff` 33ff` /p` 3%*3|` Jy3fff3f` 3ff3̙` 33ff33` DDyq3f` ̙3n` w3ff` }ff>?" dd@,?nKd@ P nA@F`d n?" dd@   @@``PR"   @ ` `2p>>   B (    6 #" ``   Z* T X  "X  Nd#" `P D0   6d#" `U B0   S h"UY <   c $"YW <    c $p"YU <    c $" <    S x#" `SV B0    S "Y <    c $8"X <   < #" `  `  ^*Titelmasterformat durch Klicken bearbeiten+ +0  0  " `p  ^Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fnfte Ebene+     _  6 #" `^ `  X* &  <d"I  ^FluX  Intl. Conf. on Very Large Databases 200400,  6 #" `  \* H  0޽h ? }ff80___PPT10. 07  Pixel8 b 0 8(  : T   "  Ted #"   D0   c $Th "9)e  B0 6b e  # "e   S m"ie  B0   S H"9) B0   S  "0 B0    S o"?e  B0    S ,t") B0    S w"?G B0    S {"oG B0    S p~"9G B0   S <"iA B0   S "A? B0   6  #" `` `  X*   6H #" ``   Z*   6ؑ #" `` `  \*   0L "P    ^*Titelmasterformat durch Klicken bearbeiten+ +  0З " P   p<Formatvorlage des Untertitelmasters durch Klicken bearbeiten= =H  0޽h ? }ff80___PPT10. 07b 0 ~p(    0 P    P*    0(     R*  d  c $ ?  "  00  0  ^Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fnfte Ebene+     _  60 _P   P*    6@ _   R*  H  0޽h ? 3380___PPT10.{  `(    0  P    X*   00     Z*   6 _P   X*   6X _   Z* H  0޽h ? 3380___PPT10.{@1~ c 0L0  0(  x  c $b   x  c $ P   H  0޽h ? 33___PPT10i.6yu+D=' = @B + b 0L0 p\0(  \x \ c $ ?  `   x \ c $< `p  H \ 0޽h ? }ffy___PPT10Y.7y#+D-' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(Do' =4@BBBB%(D' =1:Bnormal*3>)B!style.fontStyle= `B<*\ D' =1:B bold*3>+B#style.fontWeight= `B<*\ D' =1:B false*3>EB=style.textDecorationUnderline= `B<*\ +/@ b 0 (    0C"?  ,$D 0   0C"? ,$@ 0x  c $M  `   !  <0O  OBibliography DTD (P?9  a  <VP  List title(s) and authors of books {for $b in /bib/book return {$b/title} {$b/author} } (#m   <Dk |$ 0H@___PPT9" mEvaluation of book-node Print Buffer titles and authors Output titles Output authors Print |V = 8X  <Lb ,$ 0 p& <book> <author>Kemper</author> <title>Datenbanksysteme</title> <author>Eickler</author> <price>40 </price> </book> & ,.+  <do/ ) ,$ 0 :Example:    <xC"?F m >L ,$D  0 ZBuffer: Kemper Datenbanksysteme Eickler*[S,(    <C"? m >,$D 0 oOutput: Datenbanksysteme Kemper Eickler Fp _,+"  @ 03 q&9 ,$D 0" @ 03 r' ,$D  0" @ 03 q&I,$D  0" @ 03q&,$D 0" @ 03+q&,$@ 0" @ 03r'Y,$D 0H  0޽h ? }ff..___PPT10..)zp~+FD-' = @B D-' = @BA?%,( < +O%,( < +D' =%(D3' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*  %(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*  A%(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* A[%(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D ' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2K%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* Ke%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ep%(++0+0 ++0+0 ++0+0 +_ b 0 D(    0C"?  ,$D  0  0C"? ,$D 0~  s *x  `   !  <ī  OBibliography DTD (P?9  a  <P  List title(s) and authors of books {for $b in /bib/book return {$b/title} {$b/author} } (#m  < L ,$ 0 FluX query (for book node) & <result> {process-stream $b: on title as $t return $t; on-first past (title,author) return {for $a in $b/author return $a}} </result> & 8$g N8X  <ȍ ,$  0 p& <book> <author>Kemper</author> <title>Datenbanksysteme</title> <author>Eickler</author> <price>40 </price> </book> & ,.+  </ ) ,$  0 :Example: U   0ҍC"?F m < ,$D 0 9Buffer: Kemper Eickler*:2)    <؍C"? m >,$D 0 oOutput: Datenbanksysteme Kemper Eickler Fp _,+"  @ 03 q&9 ,$@ 0"  @ 03 q& ,$D 0"  @ 03 q&I,$@ 0" @ 03q&,$D 0" @ 03+q&,$D) 0*  <f QF ,$* 0 ( Less buffering using order constraints4)3(3 " @ 03q&Y,$@ 0H  0޽h ? }ffLL___PPT10L.)zp~+sz D|K' = @B D7K' = @BA?%,( < +O%,( < +D' =%(D=' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*&%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*&<%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<Y%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*Yy%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*y%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(Df' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*&D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(Db' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*&D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*  %(Db' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*<YD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2%(Db' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*<YD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*  :%(D ' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*YyD' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*yD' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*DL' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2K%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* Ke%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ep%(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+0 ++0+0 ++0+0 ++0+0 +U b 0 (    0C"?  ,$@ 0  0C"? ,$@  0~  s *   `   $  <T   PBibliography DTD LQ(3 a  <P  List title(s) and authors of books {for $b in /bib/book return {$b/title} {$b/author} } (#m  <` R~,$ 0 zFluX query & <result> {process-stream $b: on title as $t return $t; on author as $a return $a;} </result> & 8| kx8X2  <8) ,$  0 & <book> <title>Datenbanksysteme</title> <author>Kemper</author> <author>Eickler</author> <price>40 </price> </book> & @E <,-+  <0/ ) ,$  0 :Example:    0p.C"?F m <@ ,$D  0 NBuffer: *    <8C"? m >,$D 0 oOutput: Datenbanksysteme Kemper Eickler Fp _,+"  @ 03 q&9 ,$@  0"  @ 03 r' ,$@ 0"  @ 03 q&I,$D 0" @ 03q&,$D 0" @ 03+r',$D! 0:  <E% + ,$$ 0 P No buffering using order constraints!))3 " @ 03q&Y,$@ 0H  0޽h ? }ffVCNC___PPT10.C.)zp~+fDA' = @B DA' = @BA?%,( < +O%,( < +D!' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*,I%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*Ih%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*hv%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<* D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(D' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<* D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*,ID4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*,ID' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*IhD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* 2K%(D' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* Ke%(Db' =%(D ' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*IhD' =%(Df' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(DL' =%(D' =%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*hvD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* ep%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+0 ++0+0 ++0+0 ++0+ 0 ++0+0 + b 0L0  <(  ~  s *n  `   ~  s *o `p  H  0޽h ? }ff___PPT10i.7y#+D=' = @B + b  0 @(  r  S >  `     S 8L <i  (<  @H  0޽h ? }ff___PPT10i.{`o+D=' = @B +G b$ 0   p  (    6C"?p,$@ 0 : r  S h  `   r  S } `  x   03C"?    <p ' ,$ 0 < Example 1:   <̊ ( ,$ 0 }) {$x} {if $x/b = 5 then 5}**x  03C"?f   6f3jJ V ,$@ 0  <l_ VjF ,$ 0 simple   < ,,$ 0 ; {$x} {$x}    <\| 'v,$ 0 < Example 2:    03 V,$@  0   <0 cg,$  0  not simpleH  0޽h ? }ff___PPT10.o+qmD' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(++0+0 ++0+0 ++0+0 ++0+0 ++0+ 0 ++0+ 0 ++0+ 0 +  b  0 XP0 (   r   S   `   r   S ؼ `<  X   <LS s ,$ 0 * executed on buffers&3P\   <lĜ ,$ 0 "Q executed in event-based fashion##&3\ H   0޽h ? }ff\T___PPT104.{0/n+o-?D' = @B DS' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(+p+0+ 0 ++0+ 0 +( b 0 f(    6dߜC"?,$D 0 : r  S ߜ  `   r  S  `p  V  <q  ,$ 0 PBibliography DTD (Q@9    < _,$ 0 DfFluX query & <result> {process-stream $b: on title as $t return $t; on-first past (title,author) return {for $p in $b/price return $p}} </result> &  P 33"$W M8X4  <Ds q ,$ 0 Data stream & <book> <author>Kemper</author> <title>Datenbanksysteme</title> <author>Eickler</author> <price>39 </price> </book> & ( ,:+B  s *D3ogz g,$@ 0r   63o ` ,$D  0   <GH*I/3o z W p,$@ 0   Be( V  n = ,$ 0 execute"  6o N ,$@  0  C B CDEFoN)t2'   @  "`  ,$D  0  03P 3 i,$@  0  <x3 m,$  0 9 Not safe! H  0޽h ?    }ff___PPT10.z +܈D' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+P+0+0 ++0+0 ++0+0 ++0+0 ++0+ 0 ++0+0 +  b 0 tl (    602C"? : x  c $2  `   x  c $4 `p  "  <5q   PBibliography DTD (Q@9    <<  vFluX query & <result> {process-stream $b: on title as $t return $t; on-first past (title,author, price) return {for $p in $b/price return $p}} </result> &  P%33"$W f8X  <Rs q  Data stream & <book> <author>Kemper</author> <title>Datenbanksysteme</title> <author>Eickler</author> <price>39 </price> </book> & ( ,:+B  s *D3oz ,$@ 0r   63o ` ,$D 0   <GH*I/3o) z W ,$@ 0   B"]  n ,$ 0 execute"   6oE N( ,$@ 0   S B CDEFo)& J  @  "`# ,$D 0  <D% ,$ 0 5Safe!  6f3jJ~ 3 ,$D  0H  0޽h ?    }ffTL___PPT10,.z +ױ]D' = @B DK' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(Dh' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(Du' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+p+0+ 0 ++0+0 + b 0L0 P <(  ~  s *Lv  `   ~  s *w `p  H  0޽h ? }ff___PPT10i.7y#+D=' = @B + b 0 @ :(  r  S   `     S    "p`PpH  0޽h ? }ff___PPT10i.~`+D=' = @B + . b 0 P(    6$C"?S  : r  S ̞  `   r  S  `p    <ğ qQ  XMP, Q1 <bib> {for $b in $ROOT/bib/book where  return <book> {$b/year} {$b/title} </book>} </bib>L +&M4M4  <੝c :  <bib> {for $bib in $ROOT/bib return {for $b in $bib/book return {if  then <book>} {for $year in $b/year return {if  then {$year}}} {for $title in $b/title return {if  then {$title}}} {if  then </book>}}} </bib> 8P<*`P=AX  03 z H  0޽h ? }ff$$___PPT10$.{ +D#' = @B D#' = @BA?%,( < +O%,( < +D' =%(D<' =%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*+D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*&D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*&FD' =%(D<' =%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*+D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*&D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*&FD' =%(D' =%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*+6D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*F_D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*D ' =%(D' =%(D' =A@BBBB0B%(D' =,54*3>!Bstyle.color='`B@BPB<*F_D' =A@BBBB0B%(D' =,54*3>!Bstyle.color='`B@BPB<*D' =A@BBBB0B%(D' =,54*3>!Bstyle.color='`B@BPB<*D' =A@BBBB0B%(D' =,54*3>!Bstyle.color='`B@BPB<*D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*+6D' =%(DV' =%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*QnD' =A@BBBB0B%(D' =,543*3>!Bstyle.color='`B@BPB<*_D' =A@BBBB0B%(D' =,543*3>!Bstyle.color='`B@BPB<*+p+0+0 ++0+0 +p b% 0 u m  (    6НC"? : x  c $ѝ  `     <,ԝ K  @ {for $bib in $ROOT/bib return {for $b in $bib/book return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} }} jS!=  <|ݝu,$D 0 function rewrite(Variable parentVar, Set<> H, XQuery- ): FluX rewrite($ROOT, {}, Q)L@0PZ5!   !I:"   63jJ 3 ,$@ 0T    fG HI4JKfLLM|NN3 m j,$D 0 (Delay execution of (3$3!   <l   OBibliography DTD (P?9  H  0޽h ?  }ff___PPT10{.}`Y+|U}D' = @B D' = @BA?%,( < +O%,( < +D' =%(Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*BX%(+8+0+ 0 + b  0   p l (    6lC"? : r  S 4  `     <  K  @ {for $bib in $ROOT/bib return {for $b in $bib/book return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} }} jS!=  <uu,$@ 0 *rewrite($ROOT, {}, 1) 1 simple, no delay generate on-first past () return & T ( 3    63jJ p,$@ 0   63jJp ,$@ 0   <0! ,$ 0 x1($3,3(   <' w ,$ 0 x2($3,3(H  0޽h ? }ff  ___PPT10| .}`Y+4D ' = @B D ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<* +p+0+ 0 ++0+ 0 + b  0 7/ ((  ( ( 6l8C"? : x ( c $9  `    ( <;  {ps $ROOT: on-first past() return {for $bib in $ROOT/bib return {for $b in $bib/book return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} }} ,33I!>p ( <Guq,$ 0 ,rewrite($ROOT, {}, 2)F ( :  ( 63jJ  9 ,$@ 0  ( <O ,$ 0 x2($3,3(H ( 0޽h ? }ff80___PPT10.}`Y+rJDt' = @B D/' = @BA?%,( < +O%,( < +Df' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*(%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* (%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*(%(+p+0+(0 ++0+ (0 + b 0    $ (  $ $ 6x_C"? : x $ c $x`  `    $ <b  {ps $ROOT: on-first past() return {for $bib in $ROOT/bib return {for $b in $bib/book return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} }} jv!=l $ <zu,$D 0 rewrite($ROOT, {}, 2) 21, 22 rewrite($ROOT, {}, 21) no delay generate on bib as $bib return & l ( 3   ^ $ 63jJ    $ <@_ F  z21($3,3(^  $ 63jJ  9   $ < f  z22($3,3(H $ 0޽h ? }ffvn___PPT10N.}`Y+ D"' = @B D' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*$$H%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*$Hl%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*$-K+ b 0  ,(  , , 68C"? : x , c $䖲  `    , <T  {ps $ROOT: on-first past() return on bib as $bib return {for $b in $bib/book return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} }} .3+!>F , <duu,$ 0 rewrite($bib, {}, 1) no delay generate on book as $b return & fE (  3  , 63jJ 7 ,$@ 0 , <@ ,$ 0 x1($3,3(H , 0޽h ? }ff0 ( ___PPT10 .}`Y+s)R Dl ' = @B D' ' = @BA?%,( < +O%,( < +Dq' =%(D' =%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*,-DD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =%(D' =%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*,DbD' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*,%(+p+0+,0 ++0+,0 + b 0  0v(  0 0 6hƲC"? : x 0 c $Dz  `   < 0 <ɲ  {ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {for $t in $b/title return {$t}} {for $a in $b/author return {$a}} } G"3 !?,E 0 < ua,$ 0 Xrewrite($b, {}, 2) as before, no delays generate on-first past() return & on title as $t return & xn (  53 3  0 63jJ t 9 ,$@ 0 0 <Ho V ,$ 0 x2($3,3(H 0 0޽h ? }ff  ___PPT10 .}`Y+nMD ' = @B D ' = @BA?%,( < +O%,( < +D ' =%(D ' =%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*0DQD' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*0QjD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*0jyD' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*0yD' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*0%(+p+0+00 ++0+00 +* b 0   P  T1 (  T T 6C"? : x T c $\  `   M T <   {ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; {for $a in $b/author return {$a}} } v p033E>E' T < u|,$D 0 "lAssure all titles before 32 rewrite($b, {title}, 32) rewrite($b, {title}, 41) delay execution after title, buffered execution generate on-first past(title,author) return &  (  3  (   $ 3  (       $33z       T 63jJ t ,$@ 0  T <&  ,$ 0 z32($3,3(  T 63jJ t 9 ,$@  0  T <,V = ,$  0 z41($3,3(  T <2  ,$  0 z42($3,3(H T 0޽h ? }ff___PPT10l.}`Y+HD`' = @B D' = @BA?%,( < +O%,( < +D' =%(Da' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* T%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*TjxD' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*TxD' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*TD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T9%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* T%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* T%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* T%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<* T%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T:%(D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*T%(D' =4@BBBB%(D' =,543*3>!Bstyle.color='`B@BPB<*T++0+ T0 ++0+ T0 ++0+ T0 ++0+ T0 + b 0   p  \ (  \ \ 6C"? : x \ c $H   `   j \ <O 8{ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; on-first past(title,author) return {for $a in $b/author return {$a}}; } R9P3PE'`Uj \ <lu",$ 0 \Assure all titles and authors before 42 rewrite($b, {title,authors}, 42) 42 simple, delay execution after title,author generate on-first past(title,author) return & % (  3  (         $3 3X%       \ 63jJ t ,$@ 0  \ <(u z,$ 0 z42($3,3(H \ 0޽h ? }ff0 ( ___PPT10 .}`Y+k^Dl ' = @B D' ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* \%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* \%(D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*\D' =4@BBBB%(D' =,54*3>!Bstyle.color='`B@BPB<*\DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*\%(+p+0+\0 ++0+ \0 +z b 0  d!(  d d 6܊C"? : x d c $  `    d <3 5]{ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; on-first past(title,author) return {for $a in $b/author return {$a}}; on-first past(title,author) return ;}; R^73 bE'`F#H d 0޽h ? }ff___PPT10i.}`Y+D=' = @B + b 0  ls(  l l 6(C"? : x l c $+  `    l < y{ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; on-first past(title,author) return {for $a in $b/author return {$a}}; on-first past(title,author) return ;} on-first past(bib) return ;} vz3/'3tE'`FH l 0޽h ? }ff___PPT10i.}`Y+D=' = @B + b 0    ty (  t t 6dC"? : x t c $,  `   ) t <Tq Y  {ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; {for $a in $b/author return {$a}} } R "3>E' t < δuA|,$D 0 $Assure all titles before 41 rewrite($b, {title}, 41) DTD ensures titles before authors generate on author as $a return &  ( $3 (  "3   ^ t 63jJ Ys ^ t 63jJ Ys y   t <մ s }  z41($3,3(  t <X۴K s 2 z42($3,3(p  t <(@ ;r ,$D 0 t<!ELEMENT bib (book)*> <!ELEMENT book (title*, author*),& >@;'3H t 0޽h ? }ff  ___PPT10g .}`Y+s(`D ' = @B D ' = @BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*t8%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* t%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*t8f%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*tf%(+8+0+ t0 +$  b 0 ; 3  |(  | | 6C"? : x | c $  `    | <q#Y G{ps $ROOT: on-first past() return on bib as $bib return {ps $bib: on book as $b return {ps $b: on-first past() return ; on title as $t return {$t}; on author as $a return {$a}; on-first past(title,author) return ;}; on-first past(bib) return ;} RH3_bE'  | <\ uA| D<Assure all titles before 41 rewrite($b, {title}, 41) H={title} DTD ensures titles before authors generate on author as $a return &  ( $3 (   "4     | < Vr  8 @9'3H | 0޽h ? }ff___PPT10i.}`Y+D=' = @B + b 0L0 p <(  ~  s *h  `   ~  s * `p  H  0޽h ? }ff___PPT10i.7y#+D=' = @B +N b' 0 e] (9 (   x   c $+  `   ~   s *,I1     B|.1 : d   <1D d   <13D qd   <1]D    H$41C"?; m "To Normal Form   H61C"?~b  KAlgebraic Optimizations   BP<\ C =To FluX   <p@]#D 4XQuery   <lD. DTD^   61S ^   61 E ^   61 E V ^ !  61 D    <I   "Query Compiler   <LF r -  JStreamed Query Evaluator   <P   8XSAX "  BV1 W  >    BXX1C"?F -  BMemory Buffers $  <]] #Query Optimizer %  <@bO {6  "Runtime EngineXB '  0DoXB (  0D33oPPXB )  0D33oXB *  0D33o  RB +  s *D33oP XB -  0Dom XB .  0Do `XB /  0DoC XB 0  0Do F ^B 1  6Do) ^B 2  6Do |   4  <ir2.Y $XML Input Stream 5  <,mr 4Y %XML Output StreamXB 6  0Dof f RB 7  s *Dof wXB 8  0Do >>wRB 9  s *Do > H   0޽h ? }ff___PPT10i.~@K+D=' = @B + b 0L0  <(  ~  s * z  `   ~  s *z `p  H  0޽h ? }ff___PPT10i.7y#+D=' = @B +} b# 0 P $(  r  S P  `   r  S ( `  H  0޽h ? }ff___PPT10i.P~p+D=' = @B + b( 0  E(  r  S ̖  `    'T`i  #"j^T'`i A 6 Z?`iVNF___PPT9(  Q-4(" d"E 5 ZĞ?ZiVNF___PPT9(  U>500M4(" d"A 4 Zܠ? ZiVNF___PPT9(  Q-4(" d"E 3 Z`? iVNF___PPT9(  U7,02k4(" d"D 2 Z?0iVNF___PPT9(  T15,44(" d"D 1 Z?0iVNF___PPT9(  T100M4(" d" 0 Zܵ?'i R  @`E / Z8?9`VNF___PPT9(  U151,94(" d"E . Zõ?Z9VNF___PPT9(  U>500M4(" d"A - Zȵ? 9ZVNF___PPT9(  Q-4(" d"E , Z̵?9 VNF___PPT9(  U7,01k4(" d"C + Z<ʵ?09VNF___PPT9(  S8,74(" d"C * Zյ?90VNF___PPT9(  S50M4(" d" ) Z?'9 R  @`C ( Z?`9VNF___PPT9(  S6,24(" d"C ' Z(?Z9VNF___PPT9(  S80M4(" d"D & Z? Z9VNF___PPT9(  T29,74(" d"E % Z? 9VNF___PPT9(  U5,18k4(" d"C $ Z?09VNF___PPT9(  S3,44(" d"C # Z|?09VNF___PPT9(  S10M4(" d"C " Z?'9VNF___PPT9(  SQ204(" d"C ! Zd?`VNF___PPT9(  S2,54(" d"C   Z ?ZVNF___PPT9(  S36M4(" d"D  Zd? ZVNF___PPT9(  T13,24(" d"E  Z? VNF___PPT9(  U4,66k4(" d"C  Z?0VNF___PPT9(  S2,84(" d"B  Z?0VNF___PPT9(  R5M4(" d"  Z'?' R  @`A  Zd)?p `VNF___PPT9(  Q-4(" d"E  Z.?Zp VNF___PPT9(  U>500M4(" d"A  Z2? p ZVNF___PPT9(  Q-4(" d"A  Z,4?p  VNF___PPT9(  Q04(" d"D  Z<?0p VNF___PPT9(  T13,94(" d"D  Z(9?p 0VNF___PPT9(  T100M4(" d"A  ZC?'p VNF___PPT9(  Q4(" d"D  ZG? `p VNF___PPT9(  T88,04(" d"D  ZL?Z p VNF___PPT9(  T344M4(" d"E  ZQ? Zp VNF___PPT9(  U230,14(" d"A  ZU?  p VNF___PPT9(  Q04(" d"C  Z8S?0 p VNF___PPT9(  S7,94(" d"C  Z^? 0p VNF___PPT9(  S50M4(" d"A   Z`?' p VNF___PPT9(  Q4(" d"C   Ze?? ` VNF___PPT9(  S5,24(" d"C   Zl?Z?  VNF___PPT9(  S73M4(" d"D   Zm? ? Z VNF___PPT9(  T27,24(" d"A   Zxs??  VNF___PPT9(  Q04(" d"C  Zpy?0?  VNF___PPT9(  S3,14(" d"C  Z{?? 0 VNF___PPT9(  S10M4(" d"C  Zh?'?  VNF___PPT9(  SQ134(" d"C  Z? `? VNF___PPT9(  S3,04(" d"C  Z?Z ? VNF___PPT9(  S38M4(" d"D  Zh? Z? VNF___PPT9(  T12,84(" d"A  Z̑?  ? VNF___PPT9(  Q04(" d"C  Z?0 ? VNF___PPT9(  S2,24(" d"B  Z$? 0? VNF___PPT9(  R5M4(" d"A  Z?' ? VNF___PPT9(  Q4(" d"C  Z? ` VNF___PPT9(  Sn/a4(" d"E  Z?Z  VNF___PPT9(  U>500M4(" d"A  Z?  Z VNF___PPT9(  Q-4(" d"E  Z?  VNF___PPT9(  U7,27M4(" d"E  Z?0  VNF___PPT9(  U626,84(" d"D  ZԻ? 0 VNF___PPT9(  T100M4(" d"A  Z¶?'  VNF___PPT9(  Q4(" d"C  ZtǶ?w ` VNF___PPT9(  Sn/a4(" d"E  Zdɶ?Zw  VNF___PPT9(  U>500M4(" d"A  ZͶ? w Z VNF___PPT9(  Q-4(" d"E  ZѶ?w   VNF___PPT9(  U3,64M4(" d"E  Zٶ?0w  VNF___PPT9(  U170,84(" d"C  Z8޶?w 0 VNF___PPT9(  S50M4(" d"  Z?'w   R  @`C  ZL? `w VNF___PPT9(  Sn/a4(" d"D  Z?Z w VNF___PPT9(  T100M4(" d"F  ZL? Zw VNF___PPT9(  V1663,74(" d"D  Z ?  w VNF___PPT9(  T741k4(" d"D  Z?0 w VNF___PPT9(  T11,44(" d"C  Z? 0w VNF___PPT9(  S10M4(" d"C  Z$?' w VNF___PPT9(  SQ114(" d"C  Zh?F ` VNF___PPT9(  Sn/a4(" d"C  Z?ZF  VNF___PPT9(  S50M4(" d"E  Zp? F Z VNF___PPT9(  U277,04(" d"D  Z?F  VNF___PPT9(  T374k4(" d"C  Z?0F  VNF___PPT9(  S5,64(" d"B  Z#?F 0 VNF___PPT9(  R5M4(" d"  Z(?'F   R  @`A  Z|0?`F VNF___PPT9(  Q-4(" d"E  Z5?ZF VNF___PPT9(  U>500M4(" d"A  Z :? ZF VNF___PPT9(  Q-4(" d"F  Z>? F VNF___PPT9(  V32,25M4(" d"G  ZC?0F VNF___PPT9(  W11566,94(" d"D  ZH?0F VNF___PPT9(  T100M4(" d"A  ZE?'F VNF___PPT9(  Q4(" d"A  ZQ?`VNF___PPT9(  Q-4(" d"E  ZS?ZVNF___PPT9(  U>500M4(" d"A  ZZ? ZVNF___PPT9(  Q-4(" d"F  ZL_? VNF___PPT9(  V16,00M4(" d"E  Z500M4(" d"A  Z(? MZVNF___PPT9(  Q-4(" d"A  Z?M VNF___PPT9(  Q04(" d"D  Z<?0MVNF___PPT9(  T14,04(" d"D  ZǸ?M0VNF___PPT9(  T100M4(" d"A  Z̸?'MVNF___PPT9(  Q4(" d"D  ZTѸ?`MVNF___PPT9(  T38,34(" d"E  Zθ?ZMVNF___PPT9(  U>500M4(" d"A  ZPڸ? ZMVNF___PPT9(  Q-4(" d"A  Zpܸ? MVNF___PPT9(  Q04(" d"C  Z?0MVNF___PPT9(  S7,84(" d"C  Z?0MVNF___PPT9(  S50M4(" d"  Zp?'M R  @`C  ZP?`VNF___PPT9(  S6,74(" d"C  Z?ZVNF___PPT9(  S83M4(" d"D  Z? ZVNF___PPT9(  T29,84(" d"A  Zd? VNF___PPT9(  Q04(" d"C  Z ?0VNF___PPT9(  S2,84(" d"C  Zd?0VNF___PPT9(  S10M4(" d"B  Z?'VNF___PPT9(  RQ14(" d"C  Z?`VNF___PPT9(  S3,44(" d"C  Z?ZVNF___PPT9(  S37M4(" d"D  Z0? ZVNF___PPT9(  T13,44(" d"A  Z#? VNF___PPT9(  Q04(" d"C  ZX(?0VNF___PPT9(  S2,14(" d"C  Z-?0VNF___PPT9(  S5M 4(" d"A  Z|*?'VNF___PPT9(  Q4(" d"H  Z6?`VNF___PPT9(  Xtime [s]4 (" d"F  Z48?ZVNF___PPT9(  Vmemory4(" d"H  ZX?? ZVNF___PPT9(  Xtime [s]4 (" d"F  Z\D? VNF___PPT9(  Vmemory4(" d"H  ZH?0VNF___PPT9(  Xtime [s]4 (" d"?  ZLM?0VNF___PPT9(  O2 " d"?  Z R?'VNF___PPT9(  O2 " d"_  ZpO?T`VNF___PPT9(  oAnonX4(" d"E  ZT[? TVNF___PPT9(  UGalax4(" d"^  Zt]?0T VNF___PPT9(  nFluX4(" d"?  Zxe?T0VNF___PPT9(  O2 " d"?  Zi?'TVNF___PPT9(  O2 " d"HB 7 C 'T`THB 8 C 'iiHB 9 C 'T'iHB : C `T`ZB < s *8c ?0T0iZB = s *8c ? T iZB > s *8c ?TiZB ? s *8c ?'ZB D s *1 ?iZB I s *1 ?ZZi`B P 01 ?``B h 01 ?``B  01 ?M`MZB  s *1 ?'`B  01 ?~`~`B  01 ?``B  01 ?`ZB  s *1 ?'F F `B  01 ? ` `B  01 ?w `w `B 0 01 ? ` ZB G s *1 ?'  `B X 01 ?? `? `B p 01 ? ` `B  01 ?p `p ZB  s *1 ?'`B  01 ?``B  01 ?9`9`B  01 ?`TB S c $o ?`HB Y C ``HB Z C ``HB ` C ``MHB f C `M`TB  c $1 ?F `F HB  C ` `w HB  C `F ` HB  C `w ` HB  C ` ` HB  C ` `? TB  c $1 ? ` HB  C `? ` HB  C ` `p HB  C `p `HB  C ``TB  c $1 ?`HB  C ``9HB  C `9`HB  C ``iHB  C 0iiHB  C i0iHB  C i iHB  C  iZiHB  C ZiiHB  C i`iTB  c $1 ?`HB  C `~`HB  C ``~HB  C ``HB   C ``F H  0޽h ? }ff___PPT10i.]\+D=' = @B + b 0L0  <(  ~  s *m  `   ~  s *i `p  H  0޽h ? }ff___PPT10i.7y#+D=' = @B +} b! 0  $(  r  S ,  `   r  S    H  0޽h ? }ff___PPT10i.~+D=' = @B +} b" 0  $(  r  S   `   r  S ¹ `  H  0޽h ? }ff___PPT10i.~ @+D=' = @B += b) 0L0 <40  (   x   0C"?vx   c $ع  `      c $ѹ <i  (<  @H   0޽h ? }ff___PPT10i.{`o+D=' = @B +j b  0L0 ?7 (    0C"? ,$@ 0r  S   `     S t `p<$D 0  "p`Pp  <.dho,$ 0 QExample: {$x} {if $x/b=5 then 5} simple {$x}{$x} not simple>R % ,  03o,$@ 0  6f3jJvV,$D 0H  0޽h ? }ff  ___PPT10 .{_R+гD/ ' = @B D ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(+8+0+0 +v  b& 0L0    (    6`C"?] :    0C"?s w,$@  0x  0C"?w r  S   `     <4  N& { for $title in $book/title return { if $book/publisher =  Addison-Wesley and $book/year > 1991 then {$title} } } &   <Q ,$ 0 x{ps $book: & on-first past(publisher,year,title) return { for $title in $book/title return { & } } }; & }@u+;,D2   0  #  ,$@ 0"   6o },$@ 0"   6o J,$@  0"   6o M ,$@ 0   B~CDEFocLR@~@  S" > J ,$@ 0   B=CDEFoxq L8fH=@  S"  S ,$@ 0(   BCaDE(Fo OT-K NQM a @   S" }0 ,$@ 0(  < 4 ,$  0 <dependencies($book,  {for & } ) H  0޽h ? }ff ___PPT10.9К+8MTDH' = @B D' = @BA?%,( < +O%,( < +D:' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+p+0+0 ++0+0 + b  0L0  $(  r  S \,  `   r  S - `p  H  0޽h ? }ff___PPT10i.~@K+D=' = @B +  0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{`   0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S   0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S ܻ 0    H  0޽h ? 3380___PPT10.{   0 (  X  C      S  0    H  0޽h ? 3380___PPT10.{    0 @(  X  C      S  0    H  0޽h ? 3380___PPT10.} &ͨ   0 P(  X  C      S T 0    H  0޽h ? 3380___PPT10.} &ͨ   0 `(  X  C      S 4$ 0    H  0޽h ? 3380___PPT10.} &ͨ   0 4(  4X 4 C     4 S ) 0    H 4 0޽h ? 3380___PPT10.~pP  0 8(  8X 8 C     8 S $ 0    H 8 0޽h ? 3380___PPT10.~]  0 <(  <X < C     < S 84 0    H < 0޽h ? 3380___PPT10.~]  0  @(  @X @ C     @ S : 0    H @ 0޽h ? 3380___PPT10.~]  0  D(  DX D C     D S 4 0    H D 0޽h ? 3380___PPT10.~] 0 ` X((  X^ X S     X c $D 0    H X 0޽h ? 3380___PPT10.~] 0  `((  `^ ` S     ` c $J 0    H ` 0޽h ? 3380___PPT10.~] 0  h((  h^ h S     h c $P 0    H h 0޽h ? 3380___PPT10.~] 0  p((  p^ p S     p c $xV 0    H p 0޽h ? 3380___PPT10.~] 0  x((  x^ x S     x c $@\ 0    H x 0޽h ? 3380___PPT10.~] 0  ((  ^  S      c $` 0    H  0޽h ? 3380___PPT10.~] 0  ((  ^  S      c $f 0    H  0޽h ? 3380___PPT10.{  0 ` ((  ^  S      c $l 0    H  0޽h ? 3380___PPT10.{  0  ((  ^  S      c $p 0    H  0޽h ? 3380___PPT10.{  0  ((  ^  S      c $v 0    H  0޽h ? 3380___PPT10.{   0  ((  ^  S      c $| 0    H  0޽h ? 3380___PPT10.{   0  (  X  C      S  0    H  0޽h ? 3380___PPT10.M~l7H  0  (  X  C      S  0    H  0޽h ? 3380___PPT10.M~8H " 0 0 (  X  C      S  0    H  0޽h ? 3380___PPT10.M~0z:H ! 0 @ (  X  C      S  0    H  0޽h ? 3380___PPT10.M~0z:H # 0 ` (  X  C      S  0    H  0޽h ? 3380___PPT10.~` $ 0  (  X  C      S  0    H  0޽h ? 3380___PPT10.1% 0  ((  ^  S      c $ 0    H  0޽h ? 3380___PPT10.~pP & 0  (  X  C      S Ħ 0    H  0޽h ? 3380___PPT10.P) 0  ((  ^  S      c $ 0    H  0޽h ? 3380___PPT10.M~8H ( 0  (  X  C      S   0    H  0޽h ? 3380___PPT10._@ * 0 @ $((  $^ $ S     $ c $ 0    H $ 0޽h ? 3380___PPT10.} &ͨrlބrXk W/|HzVx.DBFVHjJ~LNPR0h>!TVX3ddUv []2_FaZc0ne@gXikmpÄ.r?_ A% NtnvxzR|~ Pr(2 -F!fZ*\Pgz\ Γ`1Oh+'0\% `h  (4 X dpxpSchema-based Scheduling of Event Processors and Buffer Minimization for Queries on Structured Data Streams Bernhard StegmaierPixelBernhard Stegmaier82Microsoft Office PowerPoint@P6y@œqG#g  ?  y--$xx--'---$xx----$xx----$xx----$xx----$xx----$x x ----$ x x ----$ x x ----$ x x ----$ xx ----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$xx----$x x ----$ x!x! ----$!!x"x"!----$""x#x#"----$##x$x$#----$$$x%x%$----$%%x&x&%----$&&x'x'&----$''x(x('----$((x)x)(----$))x*x*)----$**x+x+*----$++x,x,+----$,,x-x-,----$--x.x.-----$..x/x/.----$//x1x1/----$11x2x21----$22x3x32----$33x4x43----$44x7x74----$77x;x;7----$;;x>x>;---'}--$II--'--$ > II> >--'--$((((--'--$''22'--'}--$>II>>--'--$''(2(2'--'--$(33((--'}--$(3 3 ((--'--$(3(3(((--'--$ 3 >>3 3--'--$3>>33--'@Arial-. 2 1)Schema."System09-@Arial-.  2 1>-.-@Arial-. ?2 1@%based Scheduling of Event Processors .-@Arial-. =2 7)$and Buffer Minimization for Queries .-@Arial-. .2 >)on Structured Data Streams.-@Arial-. 2 N6 Bernhard .-@Arial-. 2 NH Stegmaier.-@Arial-. 2 Nf(TU Ma.-@Arial-.  2 Np.-@Arial-. 2 Nrnchen).-@Arial-. 2 W6Joint work with.-@Arial-. 2 \9 Christophk.-@Arial-. 2 \JKoch ).-@Arial-.  2 \f(TU .-@Arial-.  2 \mWien.-@Arial-.  2 \v).-@Arial-. 2 `9Stefanie.-@Arial-. 2 `H Scherzinger.-@Arial-.  2 `f(TU .-@Arial-.  2 `mWien.-@Arial-.  2 `v).-@Arial-. 2 e9Nicole e.-@Arial-. 2 eE Schweikardt.-@Arial-. 2 ef (HU Berlin).-՜.+,0   $, 4 Bildschirmprsentation$TU Mnchen, Institut fr Informatikf&& ,ArialTimes New Roman Wingdings Arial Black Courier NewPixelnSchema-based Scheduling of Event Processors and Buffer Minimization for Queries on Structured Data Streams OutlineTraditional ApproachThe FluX ApproachThe FluX Approach IIOutlineFluX Query LanguageFluX Query LanguageFluX Query Language (ctd.)Safe FluX QueriesSafe FluX QueriesOutlineXQuery to FluXNormalizationExampleExampleExampleExampleExampleExampleExampleExampleExampleExampleExample Order ConstraintsExampleOutlineFurther AspectsOutline Experiments ExperimentsOutline Conclusion Related WorkFluX Query LanguageFluX Query Language (ctd.) DependenciesFurther Aspects Verwendete SchriftartenEntwurfsvorlage Folientitel&*_B0Bernhard StegmaierBernhard Stegmaier  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJLMNOPQRSTUVWXYZ[\]_`abcdeghijklmtRoot EntrydO)Current UserfSummaryInformation(K%PowerPoint Document(fDocumentSummaryInformation8^