Slides
This commit is contained in:
parent
361900d19d
commit
a751edd11d
|
@ -432,7 +432,7 @@
|
|||
<section>
|
||||
<h3>Uniform Prior</h3>
|
||||
|
||||
<p style="text-align: left; margin-bottom: 0px; font-weight: bold;">We assume that for $\sigma_c(Q)$...</p>
|
||||
<p style="text-align: left; margin-bottom: 0px; font-weight: bold;">We assume that for $\sigma_c(Q)$ or $\delta_A(Q)$...</p>
|
||||
<ol>
|
||||
<li>Basic statistics are known about $Q$: <ul>
|
||||
<li style="margin-top: 0px;"><code>COUNT(*)</code></li>
|
||||
|
@ -451,7 +451,11 @@
|
|||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Some Conditions</h3>
|
||||
<p>Estimating $\delta_A(Q)$ requires only <code>COUNT(DISTINCT A)</code></p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Estimating Selectivity</h3>
|
||||
|
||||
<p>Selectivity is a probability ($\texttt{SEL}(c, Q) = P(c)$)</p>
|
||||
<table style="font-size: 85%">
|
||||
|
@ -553,36 +557,37 @@
|
|||
<section>
|
||||
<p><b>Idea 1:</b> Pick 100 tuples at random from each input table.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<svg data-src="graphics/2018-03-05-JoinIssue.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section>
|
||||
<h3>Limitations</h3>
|
||||
<h3>The Birthday Paradox</h3>
|
||||
|
||||
<dl>
|
||||
<div class="fragment highlight-grey">
|
||||
<dt>Don't always have statistics for $Q$</dt>
|
||||
<dd>For example, $\pi_{A \leftarrow (B \times C)}(R)$</dd>
|
||||
</div>
|
||||
<p style="margin-top: 50px;">
|
||||
Assume: $\texttt{UNIQ}(A, R) = \texttt{UNIQ}(A, S) = N$
|
||||
</p>
|
||||
|
||||
<div class="fragment highlight-grey">
|
||||
<dt>Don't always have clear rules for $c$</dt>
|
||||
<dd>For example, $\sigma_{\texttt{FitsModel}(A, B, C)}(R)$</dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment highlight-blue">
|
||||
<dt>Attribute values are not always uniformly distributed.</dt>
|
||||
<dd>For example, <span style="font-size: 60%"> $|\sigma_{SPC\_COMMON = 'pin\ oak'}(T)|$ vs $|\sigma_{SPC\_COMMON = 'honeylocust'}(T)|$</span></dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment highlight-grey">
|
||||
<dt>Attribute values are sometimes correlated.</dt>
|
||||
<dd>For example, $\sigma_{(stump < 5) \wedge (diam > 3)}(T)$</dd>
|
||||
</div>
|
||||
|
||||
</dl>
|
||||
<p style="margin-top: 50px;">
|
||||
It takes $O(\sqrt{N})$ samples from both $R$ and $S$ <br/> to get even <b>one match.</b>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>To be resumed later in the term when we talk about AQP</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>How DBs Do It</b>: Instrument queries while running them.<ul>
|
||||
<li class="fragment">The first time you run a query it <i>might</i> be slow.</li>
|
||||
<li class="fragment">The second, third, fourth, etc... times it'll be fast.</li>
|
||||
</ul></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
||||
<section>
|
||||
<h3>(Some) Estimation Techniques</h3>
|
||||
|
||||
|
@ -604,6 +609,172 @@
|
|||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Limitations of Uniform Prior</h3>
|
||||
|
||||
<dl>
|
||||
<div class="fragment highlight-grey" data-fragment-index="1">
|
||||
<dt>Don't always have statistics for $Q$</dt>
|
||||
<dd>For example, $\pi_{A \leftarrow (B \times C)}(R)$</dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment highlight-grey" data-fragment-index="1">
|
||||
<dt>Don't always have clear rules for $c$</dt>
|
||||
<dd>For example, $\sigma_{\texttt{FitsModel}(A, B, C)}(R)$</dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment highlight-blue" data-fragment-index="1">
|
||||
<dt>Attribute values are not always uniformly distributed.</dt>
|
||||
<dd>For example, <span style="font-size: 60%"> $|\sigma_{SPC\_COMMON = 'pin\ oak'}(T)|$ vs $|\sigma_{SPC\_COMMON = 'honeylocust'}(T)|$</span></dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment highlight-grey" data-fragment-index="1">
|
||||
<dt>Attribute values are sometimes correlated.</dt>
|
||||
<dd>For example, $\sigma_{(stump < 5) \wedge (diam > 3)}(T)$</dd>
|
||||
</div>
|
||||
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p class="fragment highlight-grey" data-fragment-index="1">
|
||||
<b>Ideal Case:</b> You have some
|
||||
$$f(x) = \left(\texttt{SELECT COUNT(*) WHERE A = x}\right)$$
|
||||
(and similarly for the other aggregates)
|
||||
</p>
|
||||
<p class="fragment" data-fragment-index="1">
|
||||
<b>Slightly Less Ideal Case:</b> You have some
|
||||
$$f(x) \approx \left(\texttt{SELECT COUNT(*) WHERE A = x}\right)$$
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>If this sounds like CDF-based indexing... you're right!</p>
|
||||
|
||||
<p class="fragment">... but we're not going to talk about NNs today</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section>
|
||||
<p>
|
||||
<b>Simpler/Faster Idea: </b> Break $f(x)$ into chunks
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Example Data</h3>
|
||||
<table style="font-size: 80%">
|
||||
<tr><th>Name</th> <th>YearsEmployed</th> <th>Role</th></tr>
|
||||
<tr><td>'Alice'</td> <td>3</td> <td>1</td></tr>
|
||||
<tr><td>'Bob'</td> <td>2</td> <td>2</td></tr>
|
||||
<tr><td>'Carol'</td> <td>3</td> <td>1</td></tr>
|
||||
<tr><td>'Dave'</td> <td>1</td> <td>3</td></tr>
|
||||
<tr><td>'Eve'</td> <td>2</td> <td>2</td></tr>
|
||||
<tr><td>'Fred'</td> <td>2</td> <td>3</td></tr>
|
||||
<tr><td>'Gwen'</td> <td>4</td> <td>1</td></tr>
|
||||
<tr><td>'Harry'</td> <td>2</td> <td>3</td></tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Histograms</h3>
|
||||
<table style="font-size: 70%">
|
||||
<tr><th>YearsEmployed</th><th>COUNT</th></tr>
|
||||
<tr><td>1</td> <td>1</td> </tr>
|
||||
<tr><td>2</td> <td>4</td> </tr>
|
||||
<tr><td>3</td> <td>2</td> </tr>
|
||||
<tr><td>4</td> <td>1</td> </tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(DISTINCT YearsEmployed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MIN(YearsEmployed)</code> </td><td class="fragment">$= 1$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MAX(YearsEmplyed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(*) YearsEmployed = 2</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Histograms</h3>
|
||||
<table style="font-size: 70%">
|
||||
<tr><th>YearsEmployed</th><th>COUNT</th></tr>
|
||||
<tr><td>1-2</td> <td>5</td> </tr>
|
||||
<tr><td>3-4</td> <td>3</td> </tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(DISTINCT YearsEmployed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MIN(YearsEmployed)</code> </td><td class="fragment">$= 1$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MAX(YearsEmplyed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(*) YearsEmployed = 2</code> </td><td class="fragment">$= \frac{5}{2}$</td></tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>The Extreme Case</h3>
|
||||
<table style="font-size: 70%">
|
||||
<tr><th>YearsEmployed</th><th>COUNT</th></tr>
|
||||
<tr><td>1-4</td> <td>8</td> </tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(DISTINCT YearsEmployed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MIN(YearsEmployed)</code> </td><td class="fragment">$= 1$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>MAX(YearsEmplyed)</code> </td><td class="fragment">$= 4$</td></tr>
|
||||
<tr class="fragment"><td style="font-size: 70%"><code>COUNT(*) YearsEmployed = 2</code> </td><td class="fragment">$= \frac{8}{4}$</td></tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>More Example Data</h3>
|
||||
<table style="font-size: 80%; float: left;">
|
||||
<tr><th>Value</th> <th>COUNT</th> </tr>
|
||||
<tr><td> 1-10</td> <td>20</td> </tr>
|
||||
<tr><td>11-20</td> <td> 0</td> </tr>
|
||||
<tr><td>21-30</td> <td>15</td> </tr>
|
||||
<tr><td>31-40</td> <td>30</td> </tr>
|
||||
<tr><td>41-50</td> <td>22</td> </tr>
|
||||
<tr><td>51-60</td> <td>63</td> </tr>
|
||||
<tr><td>61-70</td> <td>10</td> </tr>
|
||||
<tr><td>71-80</td> <td>10</td> </tr>
|
||||
</table>
|
||||
|
||||
<table style="margin-top: 100px;">
|
||||
<tr class="fragment">
|
||||
<td style="font-size: 70%; width: 350px;"><code>SELECT … WHERE A = 33</code> </td>
|
||||
<td class="fragment" style="font-size: 80%; text-align: left; width: 200px;">$= \frac{1}{40-30}\cdot 30 = 3$</td>
|
||||
</tr>
|
||||
<tr><td style="height: 70px;"></td><td></td></tr>
|
||||
<tr class="fragment">
|
||||
<td style="font-size: 70%; width: 350px;"><code>SELECT … WHERE A > 33</code> </td>
|
||||
<td class="fragment" style="font-size: 80%; text-align: left; width: 200px;">$= \frac{40-33}{40-30}\cdot 30+22$ $\;\;\;+63+10+10$ $= 126$ </td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<section>
|
||||
<h3>(Some) Estimation Techniques</h3>
|
||||
|
||||
<dl style="font-size: 80%">
|
||||
<dt style="color: grey;">Guess Randomly</dt>
|
||||
<dd style="color: grey;">Rules of thumb if you have no other options...</dd>
|
||||
|
||||
<dt style="color: grey;">Uniform Prior</dt>
|
||||
<dd style="color: grey;">Use basic statistics to make a very rough guess.</dd>
|
||||
|
||||
<dt style="color: grey;">Sampling / History</dt>
|
||||
<dd style="color: grey;">Small, Quick Sampling Runs (or prior executions of the query).</dd>
|
||||
|
||||
<dt style="color: grey;">Histograms</dt>
|
||||
<dd style="color: grey;">Using more detailed statistics for improved guesses.</dd>
|
||||
|
||||
<dt style="color: blue;">Constraints</dt>
|
||||
<dd style="color: blue;">Using rules about the data for improved guesses.</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
</div></div>
|
||||
|
|
279
slides/cse4562sp2018/graphics/2018-03-05-JoinIssue.svg
Normal file
279
slides/cse4562sp2018/graphics/2018-03-05-JoinIssue.svg
Normal file
|
@ -0,0 +1,279 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="113.48098mm"
|
||||
height="129.51984mm"
|
||||
viewBox="0 0 113.48098 129.51984"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
||||
sodipodi:docname="2018-03-05-JoinIssue.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.64"
|
||||
inkscape:cx="214.95617"
|
||||
inkscape:cy="143.89299"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1440"
|
||||
inkscape:window-height="852"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-11.141665,-21.581365)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="82.398811"
|
||||
y="34.684521"
|
||||
id="text12"><tspan
|
||||
sodipodi:role="line"
|
||||
x="82.398811"
|
||||
y="34.684521"
|
||||
style="font-size:22.57777786px;stroke-width:0.26458332"
|
||||
id="tspan16">⋈</tspan></text>
|
||||
<text
|
||||
id="text24"
|
||||
y="70.970238"
|
||||
x="58.208336"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan22"
|
||||
style="font-size:22.57777786px;stroke-width:0.26458332"
|
||||
y="70.970238"
|
||||
x="58.208336"
|
||||
sodipodi:role="line">⋈</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.57777786px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="30.994051"
|
||||
y="113.30357"
|
||||
id="text28"><tspan
|
||||
sodipodi:role="line"
|
||||
x="30.994051"
|
||||
y="113.30357"
|
||||
style="font-size:22.57777786px;stroke-width:0.26458332"
|
||||
id="tspan32">σ</tspan></text>
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot38"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
|
||||
transform="scale(0.26458333)"><flowRegion
|
||||
id="flowRegion40"><rect
|
||||
id="rect42"
|
||||
width="108.57143"
|
||||
height="608.57141"
|
||||
x="114.28571"
|
||||
y="525.37683" /></flowRegion><flowPara
|
||||
id="flowPara44"></flowPara></flowRoot> <text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.75555611px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="32.203571"
|
||||
y="151.1012"
|
||||
id="text57"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan55"
|
||||
x="32.203571"
|
||||
y="151.1012"
|
||||
style="font-size:19.75555611px;stroke-width:0.26458332">R</tspan></text>
|
||||
<text
|
||||
id="text61"
|
||||
y="114.05953"
|
||||
x="79.072617"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.75555611px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:19.75555611px;stroke-width:0.26458332"
|
||||
y="114.05953"
|
||||
x="79.072617"
|
||||
id="tspan59"
|
||||
sodipodi:role="line">S</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.75555611px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="111.57857"
|
||||
y="72.482147"
|
||||
id="text65"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan63"
|
||||
x="111.57857"
|
||||
y="72.482147"
|
||||
style="font-size:19.75555611px;stroke-width:0.26458332">T</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 66.145832,56.807941 89.296874,36.550779 114.51497,54.740885"
|
||||
id="path69"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 84.335936,96.49544 65.732421,71.690753 37.207031,98.149088"
|
||||
id="path71"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 37.207031,115.09896 v 18.60351"
|
||||
id="path73"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(-11.141665,-21.581365)">
|
||||
<g
|
||||
id="g893"
|
||||
transform="translate(-5.374349,-3.3072916)"
|
||||
class="fragment">
|
||||
<rect
|
||||
ry="2.4804688"
|
||||
y="138.24998"
|
||||
x="17.016014"
|
||||
height="14.882812"
|
||||
width="53.330074"
|
||||
id="rect884"
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<text
|
||||
id="text888"
|
||||
y="148.02716"
|
||||
x="43.424736"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:8.46666622px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.26458332"
|
||||
y="148.02716"
|
||||
x="43.424736"
|
||||
id="tspan886"
|
||||
sodipodi:role="line">100 Tuples</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-5.374349,-40.927734)"
|
||||
id="g901"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect895"
|
||||
width="53.330074"
|
||||
height="14.882812"
|
||||
x="17.016014"
|
||||
y="138.24998"
|
||||
ry="2.4804688" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
id="text899"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan897"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
style="font-size:8.46666622px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.26458332">10 Tuples</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
class="fragment"
|
||||
transform="translate(53.776558,-40.927734)"
|
||||
id="g949">
|
||||
<rect
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect943"
|
||||
width="53.330074"
|
||||
height="14.882812"
|
||||
x="17.016014"
|
||||
y="138.24998"
|
||||
ry="2.4804688" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
id="text947"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan945"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
style="font-size:8.46666622px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.26458332">100 Tuples</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
class="fragment"
|
||||
id="g941"
|
||||
transform="translate(20.257161,-80.615234)">
|
||||
<rect
|
||||
ry="2.4804688"
|
||||
y="138.24998"
|
||||
x="17.016014"
|
||||
height="14.882812"
|
||||
width="53.330074"
|
||||
id="rect935"
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<text
|
||||
id="text939"
|
||||
y="148.02716"
|
||||
x="43.424736"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:8.46666622px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.26458332"
|
||||
y="148.02716"
|
||||
x="43.424736"
|
||||
id="tspan937"
|
||||
sodipodi:role="line">0 Tuples</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(46.302083,-116.16862)"
|
||||
id="g925"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect919"
|
||||
width="53.330074"
|
||||
height="14.882812"
|
||||
x="17.016014"
|
||||
y="138.24998"
|
||||
ry="2.4804688" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.69999981px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
id="text923"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan921"
|
||||
x="43.424736"
|
||||
y="148.02716"
|
||||
style="font-size:8.46666622px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.26458332">0 Tuples</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
Loading…
Reference in a new issue