Slides for Tuesday
|
@ -54,6 +54,8 @@ schedule:
|
||||||
materials:
|
materials:
|
||||||
lecture: https://youtu.be/VGJMx1DZtK8
|
lecture: https://youtu.be/VGJMx1DZtK8
|
||||||
slides: slide/2021-03-04-Indexing2.html
|
slides: slide/2021-03-04-Indexing2.html
|
||||||
|
bLSM_trees: "https://dl-acm-org.gate.lib.buffalo.edu/citation.cfm?id=2213862"
|
||||||
|
learned_indexes: "https://dl-acm-org.gate.lib.buffalo.edu/ft_gateway.cfm?id=3196909&type=pdf"
|
||||||
- date: "Mar. 9"
|
- date: "Mar. 9"
|
||||||
topic: "Cost-Based Optimization"
|
topic: "Cost-Based Optimization"
|
||||||
materials:
|
materials:
|
||||||
|
@ -75,6 +77,12 @@ schedule:
|
||||||
slides: slide/2021-03-18-ParallelQueries.html
|
slides: slide/2021-03-18-ParallelQueries.html
|
||||||
- date: "Mar. 23"
|
- date: "Mar. 23"
|
||||||
topic: "Online Aggregation/Approximate Query Processing"
|
topic: "Online Aggregation/Approximate Query Processing"
|
||||||
|
materials:
|
||||||
|
slides: slide/2021-03-23-ApproximateQueryProcessing.html
|
||||||
|
online_agg: https://dl-acm-org.gate.lib.buffalo.edu/doi/10.1145/253262.253291
|
||||||
|
ripple_joins: https://dl-acm-org.gate.lib.buffalo.edu/doi/10.1145/304181.304208
|
||||||
|
blinkdb: https://dl-acm-org.gate.lib.buffalo.edu/doi/10.14778/2367502.2367533
|
||||||
|
other_readings: https://gitlab.odin.cse.buffalo.edu/odin-lab/documentation/-/wikis/ReadingList-Approximate-QPs
|
||||||
- date: "Mar. 25"
|
- date: "Mar. 25"
|
||||||
topic: "Streaming Queries"
|
topic: "Streaming Queries"
|
||||||
- date: "Mar. 30"
|
- date: "Mar. 30"
|
||||||
|
@ -179,7 +187,7 @@ In this course, you will learn...
|
||||||
<div style="display: inline-block; padding-left: 10px; border-left: solid 1px black;">
|
<div style="display: inline-block; padding-left: 10px; border-left: solid 1px black;">
|
||||||
<% if data.has_key? "due" %>Due: <u><%= data["due"] %></u><br/><% end %>
|
<% if data.has_key? "due" %>Due: <u><%= data["due"] %></u><br/><% end %>
|
||||||
<%=data["topic"]%>
|
<%=data["topic"]%>
|
||||||
<% unless data.fetch("materials", {}).empty? %> ( <%= data["materials"].map { |r,url| "<a href=\"#{url}\">#{r}</a>" }.join(" | ") %> )<% end %>
|
<% unless data.fetch("materials", {}).empty? %> ( <%= data["materials"].map { |r,url| "<a href=\"#{url}\">#{r.sub("_", " ")}</a>" }.join(" | ") %> )<% end %>
|
||||||
<% if data.has_key? "textbook" then %>
|
<% if data.has_key? "textbook" then %>
|
||||||
<div style="font-size:70%; margin-left:20px;"><%= data["textbook"] %></div>
|
<div style="font-size:70%; margin-left:20px;"><%= data["textbook"] %></div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -0,0 +1,462 @@
|
||||||
|
---
|
||||||
|
template: templates/cse4562_2021_slides.erb
|
||||||
|
title: OLA and AQP
|
||||||
|
date: March 23, 2021
|
||||||
|
textbook: (readings only)
|
||||||
|
---
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<!-- 2019 by OK
|
||||||
|
|
||||||
|
This lecture fell a bit flat.
|
||||||
|
|
||||||
|
- There are a number of bugs in the builds that need to be worked out
|
||||||
|
- More examples would be helpful
|
||||||
|
- A deeper dive into the math might also be useful.
|
||||||
|
- More detail in the solutions to the birthday paradox
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p style="font-size: larger;">What is the best, correct technique for task <b>X</b>, when <b>Y</b> is true?</p>
|
||||||
|
<ol style="margin-top: 20px;">
|
||||||
|
<li>How do you define <i>Correct</i> and <i>Best</i>?</li>
|
||||||
|
<li>What correct alternatives are available?</li>
|
||||||
|
<li>How do you find the best available alternative</li>
|
||||||
|
</ol>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>So Far</b>: Correct = The original RA for a query.</p>
|
||||||
|
<p class="fragment">Only queries guaranteed to produce identical results are correct</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p>What happens when <i>Correct</i> allows for a margin of error?</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<ul>
|
||||||
|
<li>Aggregate query with some margin of error.</li>
|
||||||
|
<li><code>ORDER BY LIMIT</code> (Top-K) with some margin of error.</li>
|
||||||
|
<li><code>LIMIT</code> without <code>ORDER BY</code> (Any-K).</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="fragment">Sacrifice a little accuracy for a lot of speed</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Online Aggregation</h3>
|
||||||
|
<h3 style="margin-top: 100px;">Approximate Query Processing</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<pre><code>
|
||||||
|
SELECT SUM(A) FROM R
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
<p class="fragment">Naively, you need to see all values of <code>R.A</code></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Online Aggregation</h3>
|
||||||
|
|
||||||
|
<p style="margin-top: 60px; font-size: 80%">$Avg(3,6,10,9,1,3,9,7,9,4,7,9,2,1,2,4,10,8,9,7) = 6$</p>
|
||||||
|
<p class="fragment">$Avg(3,6,10,9,1) = 5.8$ <span class="fragment">$\approx 6$</span></p>
|
||||||
|
|
||||||
|
<p class="fragment" style="margin-top: 60px;">$Sum\left(\frac{k}{N}\; Samples\right) \cdot \frac{N}{k} \approx Sum(*)$</p>
|
||||||
|
|
||||||
|
<p class="fragment" style="font-weight: bold; margin-top: 60px;">Sampling lets you approximate aggregate values with orders of magnitude less data.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Question: </b> How accurate is an estimate from $N$ samples</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p>With $n$ tuples sampled uniformly <i>with</i> replacement</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr class="fragment">
|
||||||
|
<td style="font-size: 70%">$|AVG(samples) - AVG(real)|$</td>
|
||||||
|
<td>The absolute error</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="fragment">
|
||||||
|
<td style="font-size: 60%">$P(|AVG(samples) - AVG(real)| \geq \epsilon)$</td>
|
||||||
|
<td>Its probability of exceeding error threshold $\epsilon$</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="fragment">
|
||||||
|
<td style="font-size: 40%">$P(|AVG(samples) - AVG(real)| \geq \epsilon) \leq 2e^{\frac{2n\epsilon^2}{(max(real) - min(real))^2}}$</td>
|
||||||
|
<td>... is below a threshold based on $\epsilon$, $n$, and the min/max value.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<p class="fragment">"Hoeffding's Bound"</p>
|
||||||
|
<p class="fragment">See also "Chernoff's Bound" (similar) and "Serfling's Bound" (works <i>without</i> replacement).</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p>What about non-sum-based aggregates?</p>
|
||||||
|
<h3 class="fragment">Bootstrapping</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 1:</b> Generate a bunch of samples of the same size and see how they're distributed.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<svg data-src="2021-03-23/NaiveBootstrap.svg" />
|
||||||
|
<p class="fragment">The resulting histogram models the distribution of samples.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Problem:</b> Generating samples is expensive!</p>
|
||||||
|
<p style="margin-top: 100px" class="fragment"><b>Idea 2:</b> Generate one sample, then <i>resample</i> to see how its distributed</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<svg data-src="2021-03-23/NormalBootstrap.svg" />
|
||||||
|
<p class="fragment">The resulting histogram still models (in expectation) the distribution of samples.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Error Bounds</h3>
|
||||||
|
<dl>
|
||||||
|
<dt>SUM, COUNT, AVG (sampling with replacement)</dt>
|
||||||
|
<dd><a href="https://en.wikipedia.org/wiki/Hoeffding's_inequality">Hoeffding's Bound</a></dd>
|
||||||
|
<dd><a href="https://en.wikipedia.org/wiki/Chernoff_bound">Chernoff's Bound</a></dd>
|
||||||
|
|
||||||
|
<dt>SUM, COUNT, AVG (sampling without replacement)</dt>
|
||||||
|
<dd><a href="https://doi.org/10.1214%2Faos%2F1176342611">Serfling's Bound</a></dd>
|
||||||
|
|
||||||
|
<dt>Any Other Aggregate</dt>
|
||||||
|
<dd><a href="https://en.wikipedia.org/wiki/Bootstrapping_(statistics)">Bootstrapping</a></dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<section>
|
||||||
|
<img src="2021-03-23/OnlineAggregation.png"/>
|
||||||
|
<p class="fragment">Keep adding samples until you reach a target accuracy</p>
|
||||||
|
<p class="fragment">Keep adding samples until you run out of time</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Generating Samples</h3>
|
||||||
|
<dl>
|
||||||
|
<div class="fragment">
|
||||||
|
<dt>Sampling From Disk</dt>
|
||||||
|
<dd>Random seeks are slow</dd>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fragment">
|
||||||
|
<dt>Sampling For Group-By or Selections</dt>
|
||||||
|
<dd>Low-frequency events don't get sampled</dd>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fragment">
|
||||||
|
<dt>Sampling From Joins</dt>
|
||||||
|
<dd>Fixing the Birthday Paradox</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<section>
|
||||||
|
<h3>Sampling From Disk</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 1:</b> Pick Randomly!</p>
|
||||||
|
|
||||||
|
<pre><code class="python">
|
||||||
|
for i from 1 to num_samples:
|
||||||
|
sample_id = random(0, num_records)
|
||||||
|
samples += [ table.where( rowid = sample_id ) ]
|
||||||
|
</code></pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="graphics/Clipart/facepalm.jpg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Problem:</b> Random scans are EXPENSIVE.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 2:</b> Assume data already randomized!</p>
|
||||||
|
<p class="fragment">Pick a random start record and read sequentially from there.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="graphics/Clipart/facepalm.jpg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Problem:</b> Sequential records are almost never IID.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 3:</b> Prebuild samples!</p>
|
||||||
|
<p class="fragment">Shuffle data into fixed size sample buckets (e.g., <a href="https://dl.acm.org/citation.cfm?id=2465355">BlinkDB</a>).</p>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<section>
|
||||||
|
<h3>Sampling From Group-By</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<table>
|
||||||
|
<tr><th>Employee</th><th>City</th><th>Salary</th></tr>
|
||||||
|
<tr><td>Alice</td><td>NYC</td><td>$120k</td></tr>
|
||||||
|
<tr><td>Bob</td><td>NYC</td><td>$110k</td></tr>
|
||||||
|
<tr><td>Carol</td><td>NYC</td><td>$115k</td></tr>
|
||||||
|
<tr><td>Dave</td><td>Syracuse</td><td>$80k</td></tr>
|
||||||
|
</table>
|
||||||
|
<pre><code class="sql">
|
||||||
|
SELECT City, AVG(Salary) FROM NYS_Salaries;
|
||||||
|
</code></pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Problem:</b> Most data is about NYC. With $N$ samples taken uniformly, margins of error for other cities are much bigger</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Stratified Sampling</h3>
|
||||||
|
<p style="margin-top: 50px;" class="fragment">Generate $\frac{N}{\texttt{COUNT}(\texttt{DISTINCT } City)}$ samples for <u>each</u> group</p>
|
||||||
|
<p style="margin-top: 50px;" class="fragment">Use $\texttt{COUNT}(\texttt{DISTINCT } City)$ instead of $\texttt{COUNT}(*)$ as the total group size</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Index Striding</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<svg data-src="2021-03-23/IndexStriding.svg"/>
|
||||||
|
<attribution><a href="http://dl-acm-org.gate.lib.buffalo.edu/citation.cfm?id=253260.253291">"Online Aggregation" (Hellerstein et. al.)</a></attribution>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 2:</b> Pre-generate sample buckets across a range of different strata (e.g., <a href="https://dl.acm.org/citation.cfm?id=2465355">BlinkDB</a>).</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<section>
|
||||||
|
<h3>Sampling from Joins</h3>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<svg data-src="2021-03-23/JoinIssue.svg" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>The Birthday Paradox</h3>
|
||||||
|
|
||||||
|
<p style="margin-top: 50px;">
|
||||||
|
Assume: $\texttt{UNIQ}(A, R) = \texttt{UNIQ}(A, S) = N$
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<h3>Weighted Joins</h3>
|
||||||
|
<dl>
|
||||||
|
<dt>Exploit Foreign Keys</dt>
|
||||||
|
<dd>Sample from the referencing table, join with full reference tables</dd>
|
||||||
|
|
||||||
|
<dt>Stratified Sampling</dt>
|
||||||
|
<dd>For many-many joins, stratify on the join attribute(s)</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>"Join Synopses"</h3>
|
||||||
|
|
||||||
|
<p>$R \bowtie_B S \bowtie_C T$</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>$R.B$ is a foreign key reference to $S.B$</li>
|
||||||
|
<li>$S.C$ is a foreign key reference to $T.C$</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="fragment">Sample from R, Use all of S, T</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>"Join Synopses"</h3>
|
||||||
|
|
||||||
|
<svg data-src="2021-03-23/JoinIssue-FKs.svg" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>"Join Synopses"</h3>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li class="fragment">Foreign keys keep intermediate state small.</li>
|
||||||
|
<li class="fragment">Fast evaluation with INLJ or In-Mem Hash Join.</li>
|
||||||
|
<li class="fragment">Sampling is <b>not</b> biased.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<attribution><a href="https://dl-acm-org.gate.lib.buffalo.edu/doi/10.1145/304182.304207">"Join synopses for approximate query answering" (Acharya et. al.)</a></attribution>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Stratified Sampling</h3>
|
||||||
|
|
||||||
|
<svg data-src="2021-03-23/JoinIssue-Stratified.svg" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Stratified Sampling</h3>
|
||||||
|
|
||||||
|
<p>For each tuple sampled from $R$, sample exactly one joining tuple from $S$</p>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<p class="fragment"><b>Question: </b> Are we biasing the sampling process</p>
|
||||||
|
<p class="fragment"><b>Goal: </b> Sample $r \bowtie s$ with probability $p((r\bowtie s) \in R\bowtie S)$</p>
|
||||||
|
<p class="fragment"><b>Actual: </b> Sample $r \bowtie s$ with probability $p(r \in R) p((r\bowtie s) \in R\bowtie S | r \in R)$</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Bayes' Theorem</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
$p(r \in R) p((r\bowtie s) \in R\bowtie S) | r \in R)$
|
||||||
|
<span class="fragment">$= p(r \in R, (r\bowtie s) \in R\bowtie S)$</span>
|
||||||
|
</p>
|
||||||
|
<p class="fragment">$\neq p((r\bowtie s) \in R\bowtie S)$</p>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Corrective Factor</h3>
|
||||||
|
|
||||||
|
<p class="fragment">
|
||||||
|
$p(r \in R, (r\bowtie s) \in R\bowtie S)$
|
||||||
|
<span class="fragment">$\cdot n$</span>
|
||||||
|
<span class="fragment">$= p((r\bowtie s) \in R\bowtie S)$</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fragment">
|
||||||
|
$n = \frac{ p((r\bowtie s) \in R\bowtie S) }{ p(r \in R, (r\bowtie s) \in R\bowtie S) }$
|
||||||
|
</p>
|
||||||
|
<p class="fragment">
|
||||||
|
$ = \frac{ 1 }{ p(r \in R | (r\bowtie s) \in R\bowtie S) } $
|
||||||
|
<span class="fragment">$\approx |R| \cdot |\{\;s\;|s \in S, r.A = S.A\;\}$</span>
|
||||||
|
</p>
|
||||||
|
<p class="fragment">The probability that a tuple in $R$ participates in a join.</p>
|
||||||
|
<p></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p>Should I sample from $R$ or $S$ first?</p>
|
||||||
|
<p class="fragment">(What if only one tuple from $R$ joins with every tuple from $S$)</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>"Wander Join"</h3>
|
||||||
|
|
||||||
|
<p>Sample with all join orders at random.</p>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<attribution><a href="https://www.cs.utah.edu/~lifeifei/papers/wanderjoin.pdf">"Wander Join: Online Aggregation via Random Walks" (Li et. al.)</a></attribution>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<section>
|
||||||
|
<h3>Convergent Joins</h3>
|
||||||
|
<dl>
|
||||||
|
<dt><a href="https://dl.acm.org/citation.cfm?id=304208">Ripple Join</a></dt>
|
||||||
|
<dd>Incrementally increase the sample size</dd>
|
||||||
|
|
||||||
|
<dt><a href="https://dl.acm.org/citation.cfm?id=1687675">Turbo DBO Join</a></dt>
|
||||||
|
<dd>Re-use data loading to get "lucky" joins</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 1:</b> Start small, keep making the sample size bigger</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Ripple Join</h3>
|
||||||
|
$$Q = R \bowtie S$$
|
||||||
|
<ol style="font-size: 80%">
|
||||||
|
<li class="fragment">$Q \leftarrow \emptyset$, $R_{sample} \leftarrow \emptyset$, and $S_{sample} \leftarrow \emptyset$</li>
|
||||||
|
<li class="fragment">Sample $r \in R$</li>
|
||||||
|
<ol>
|
||||||
|
<li class="fragment">$Q \leftarrow r \bowtie S_{sample}$</li>
|
||||||
|
<li class="fragment">$R_{sample} \leftarrow R_{sample} \uplus \{r\}$</li>
|
||||||
|
</ol>
|
||||||
|
<li class="fragment">Sample $s \in S$</li>
|
||||||
|
<ol>
|
||||||
|
<li class="fragment">$Q \leftarrow s \bowtie R_{sample}$</li>
|
||||||
|
<li class="fragment">$S_{sample} \leftarrow S_{sample} \uplus \{s\}$</li>
|
||||||
|
</ol>
|
||||||
|
<li class="fragment">Goto 2</li>
|
||||||
|
</ol>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h3>Ripple Join</h3>
|
||||||
|
<svg data-src="2021-03-23/RippleJoin.svg"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<p><b>Idea 2:</b> Normal BNLJ, but piggyback sampling off of the results.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="2021-03-23/DBOJoinOverview.png"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="2021-03-23/DBOJoin1.png"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="2021-03-23/DBOJoin2.png"/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Sampling from disk:
|
||||||
|
- Assume randomness
|
||||||
|
- Logarithmic Sample Scan
|
||||||
|
- Prebuild Samples
|
||||||
|
|
||||||
|
Sampling from Group-By/Selection (Stratified)
|
||||||
|
- Index-Striding
|
||||||
|
- Prebuild Stratified Samples (Blink)
|
||||||
|
- Something from Olken's papers?
|
||||||
|
|
||||||
|
Sampling from Joins
|
||||||
|
- Follow FDs / Sample from LHS only
|
||||||
|
- Weight samples by RHS multiplicity (Aqua? PFOLA? )
|
||||||
|
- Ripple Join
|
||||||
|
- Tiered Joins
|
||||||
|
- Leaky Joins?
|
||||||
|
-->
|
||||||
|
|
||||||
|
</section>
|
BIN
src/teaching/cse-562/2021sp/slide/2021-03-23/DBOJoin1.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
src/teaching/cse-562/2021sp/slide/2021-03-23/DBOJoin2.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
src/teaching/cse-562/2021sp/slide/2021-03-23/DBOJoinOverview.png
Normal file
After Width: | Height: | Size: 67 KiB |
328
src/teaching/cse-562/2021sp/slide/2021-03-23/IndexStriding.svg
Normal file
|
@ -0,0 +1,328 @@
|
||||||
|
<?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="144.05374mm"
|
||||||
|
height="70.35627mm"
|
||||||
|
viewBox="0 0 144.05374 70.35627"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="New document 1.2019_03_04_13_49_51.0.svg"
|
||||||
|
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="marker958"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
id="path956"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="marker3676"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
id="path3674"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:isstock="true"
|
||||||
|
style="overflow:visible"
|
||||||
|
id="marker3562"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<path
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path3560"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="marker3472"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<path
|
||||||
|
id="path3470"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="marker3082"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
id="path3080"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:isstock="true"
|
||||||
|
style="overflow:visible"
|
||||||
|
id="marker2316"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<path
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path2314"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:isstock="true"
|
||||||
|
style="overflow:visible"
|
||||||
|
id="marker1116"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<path
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path1114"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.4"
|
||||||
|
inkscape:cx="275.07085"
|
||||||
|
inkscape:cy="83.297814"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1387"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<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(-16.506155,-54.21796)">
|
||||||
|
<g
|
||||||
|
id="g824"
|
||||||
|
transform="translate(2.3071602,26.726953)"
|
||||||
|
style="stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path815"
|
||||||
|
d="M 86.225865,27.92402 15.646571,68.672994 Z"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccc"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 86.225865,27.92402 156.80516,68.672994 Z"
|
||||||
|
id="path817"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path819"
|
||||||
|
d="M 15.646571,68.672992 H 156.80516"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect826"
|
||||||
|
width="142.05374"
|
||||||
|
height="12.828938"
|
||||||
|
x="17.506155"
|
||||||
|
y="101.49234"
|
||||||
|
ry="0.3697499" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="27.929665"
|
||||||
|
y="110.98042"
|
||||||
|
id="text2374"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan2372"
|
||||||
|
x="27.929665"
|
||||||
|
y="110.98042"
|
||||||
|
style="stroke-width:0.26458332px">Buf</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:3.77952766;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect2664"
|
||||||
|
width="0"
|
||||||
|
height="0"
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
transform="scale(0.26458333)" />
|
||||||
|
<g
|
||||||
|
id="g3011"
|
||||||
|
transform="translate(-3.1750001)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="66.468857"
|
||||||
|
y="110.71315"
|
||||||
|
id="text2996"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan2994"
|
||||||
|
x="66.468857"
|
||||||
|
y="110.71315"
|
||||||
|
style="stroke-width:0.26458332px">Syr</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect2998"
|
||||||
|
width="15.367966"
|
||||||
|
height="12.828934"
|
||||||
|
x="59.386219"
|
||||||
|
y="101.49234"
|
||||||
|
ry="0.3697499" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g3016">
|
||||||
|
<rect
|
||||||
|
ry="0.3697499"
|
||||||
|
y="101.49234"
|
||||||
|
x="38.219543"
|
||||||
|
height="12.828934"
|
||||||
|
width="17.773392"
|
||||||
|
id="rect2674"
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<text
|
||||||
|
id="text3002"
|
||||||
|
y="110.44588"
|
||||||
|
x="47.023319"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.26458332px"
|
||||||
|
y="110.44588"
|
||||||
|
x="47.023319"
|
||||||
|
id="tspan3000"
|
||||||
|
sodipodi:role="line">Roc</tspan></text>
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="114.09384"
|
||||||
|
y="110.71315"
|
||||||
|
id="text3006"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3004"
|
||||||
|
x="114.09384"
|
||||||
|
y="110.71315"
|
||||||
|
style="stroke-width:0.26458332px">NYC</tspan></text>
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path954"
|
||||||
|
d="M 88.533024,54.650973 38.615074,95.077871"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker958)"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
class="fragment" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path1112"
|
||||||
|
d="m 38.838187,124.57423 v -9.38801"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1116)"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
class="fragment" />
|
||||||
|
<g
|
||||||
|
id="g3831"
|
||||||
|
class="fragment">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2316)"
|
||||||
|
d="M 88.533024,54.650973 56.077574,95.077871"
|
||||||
|
id="path2312"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3078"
|
||||||
|
d="M 88.533024,54.650973 71.423407,95.077871"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3082)"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g3854"
|
||||||
|
class="fragment">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3468"
|
||||||
|
d="m 18.729853,124.57423 v -9.38801"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3472)"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3562)"
|
||||||
|
d="m 56.829856,124.57423 v -9.38801"
|
||||||
|
id="path3558"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3672"
|
||||||
|
d="m 72.17569,124.57423 v -9.38801"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3676)"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
303
src/teaching/cse-562/2021sp/slide/2021-03-23/JoinIssue-FKs.svg
Normal file
|
@ -0,0 +1,303 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<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="139.64166mm"
|
||||||
|
height="131.2554mm"
|
||||||
|
viewBox="0 0 139.64166 131.25541"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
sodipodi:docname="JoinIssue-FKs.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="400.45264"
|
||||||
|
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="1920"
|
||||||
|
inkscape:window-height="1053"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="398"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
|
<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 />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-11.141665,-19.84579)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5778px;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.264583"
|
||||||
|
x="82.398811"
|
||||||
|
y="34.684521"
|
||||||
|
id="text12"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="82.398811"
|
||||||
|
y="34.684521"
|
||||||
|
style="font-size:22.5778px;stroke-width:0.264583"
|
||||||
|
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.5778px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan22"
|
||||||
|
style="font-size:22.5778px;stroke-width:0.264583"
|
||||||
|
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.5778px;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.264583"
|
||||||
|
x="30.994051"
|
||||||
|
y="113.30357"
|
||||||
|
id="text28"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="30.994051"
|
||||||
|
y="113.30357"
|
||||||
|
style="font-size:22.5778px;stroke-width:0.264583"
|
||||||
|
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" /></flowRoot>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;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.264583"
|
||||||
|
x="32.203571"
|
||||||
|
y="151.1012"
|
||||||
|
id="text57"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan55"
|
||||||
|
x="32.203571"
|
||||||
|
y="151.1012"
|
||||||
|
style="font-size:19.7556px;stroke-width:0.264583">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.7556px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:19.7556px;stroke-width:0.264583"
|
||||||
|
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.7556px;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.264583"
|
||||||
|
x="111.57857"
|
||||||
|
y="72.482147"
|
||||||
|
id="text65"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan63"
|
||||||
|
x="111.57857"
|
||||||
|
y="72.482147"
|
||||||
|
style="font-size:19.7556px;stroke-width:0.264583">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,-19.84579)">
|
||||||
|
<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.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
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.7px;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.264583"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
id="text899"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan897"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583">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.7px;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.264583"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
id="text947"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan945"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583">1M 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.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
id="tspan937"
|
||||||
|
sodipodi:role="line">10 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
class="fragment"
|
||||||
|
transform="translate(79.937235,-80.615234)"
|
||||||
|
id="g949-4">
|
||||||
|
<rect
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="rect943-9"
|
||||||
|
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.7px;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.264583"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
id="text947-2"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan945-0"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583">1M 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.7px;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.264583"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
id="text923"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan921"
|
||||||
|
x="43.424736"
|
||||||
|
y="148.02716"
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583">10 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,277 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<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="179.94807mm"
|
||||||
|
height="129.7733mm"
|
||||||
|
viewBox="0 0 179.94807 129.7733"
|
||||||
|
version="1.1"
|
||||||
|
id="svg900"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
sodipodi:docname="JoinIssue-Stratified.svg">
|
||||||
|
<defs
|
||||||
|
id="defs894" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.98994949"
|
||||||
|
inkscape:cx="497.09232"
|
||||||
|
inkscape:cy="357.69738"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1053"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="398"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata897">
|
||||||
|
<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(-18.913943,-14.657025)">
|
||||||
|
<text
|
||||||
|
id="text24"
|
||||||
|
y="64.299385"
|
||||||
|
x="85.448387"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5778px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan22"
|
||||||
|
style="font-size:22.5778px;stroke-width:0.264583"
|
||||||
|
y="64.299385"
|
||||||
|
x="85.448387"
|
||||||
|
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.5778px;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.264583"
|
||||||
|
x="62.287003"
|
||||||
|
y="106.63271"
|
||||||
|
id="text28"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="62.287003"
|
||||||
|
y="106.63271"
|
||||||
|
style="font-size:22.5778px;stroke-width:0.264583"
|
||||||
|
id="tspan32">σ</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;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.264583"
|
||||||
|
x="63.496521"
|
||||||
|
y="144.43033"
|
||||||
|
id="text57"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan55"
|
||||||
|
x="63.496521"
|
||||||
|
y="144.43033"
|
||||||
|
style="font-size:19.7556px;stroke-width:0.264583">R</tspan></text>
|
||||||
|
<text
|
||||||
|
id="text61"
|
||||||
|
y="107.38868"
|
||||||
|
x="110.36557"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:19.7556px;stroke-width:0.264583"
|
||||||
|
y="107.38868"
|
||||||
|
x="110.36557"
|
||||||
|
id="tspan59"
|
||||||
|
sodipodi:role="line">S</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 115.62889,89.824584 97.025366,65.019894 68.499976,91.478234"
|
||||||
|
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 68.499976,108.4281 v 18.60351"
|
||||||
|
id="path73"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<g
|
||||||
|
id="g893"
|
||||||
|
transform="translate(26.310982,-9.2159498)"
|
||||||
|
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.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
id="tspan886"
|
||||||
|
sodipodi:role="line">100 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g893-7"
|
||||||
|
transform="translate(26.310982,-45.794597)"
|
||||||
|
class="fragment">
|
||||||
|
<rect
|
||||||
|
ry="2.4804688"
|
||||||
|
y="138.24998"
|
||||||
|
x="17.016014"
|
||||||
|
height="14.882812"
|
||||||
|
width="53.330074"
|
||||||
|
id="rect884-3"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||||
|
<text
|
||||||
|
id="text888-6"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
id="tspan886-5"
|
||||||
|
sodipodi:role="line">5 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g1647"
|
||||||
|
transform="translate(26.310982,-45.794597)"
|
||||||
|
class="fragment">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;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.264583"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="68.717804"
|
||||||
|
id="text1585"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan1583"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="68.717804"
|
||||||
|
style="stroke-width:0.264583"><'A', 3></tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="81.94693"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
id="tspan1587"><'B', 3></tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="95.176056"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
id="tspan1589"><'C', 7></tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="108.40517"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
id="tspan1591"><'D', 12></tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="-8.2958031"
|
||||||
|
y="121.6343"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
id="tspan1593"><'E', 14></tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M -7.2947489,123.49058 17.016014,153.1328"
|
||||||
|
id="path1595"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 35.905754,60.505204 34.44033,77.744776"
|
||||||
|
id="path1597" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g1669"
|
||||||
|
class="fragment">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;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.264583"
|
||||||
|
x="132.08594"
|
||||||
|
y="45.530449"
|
||||||
|
id="text1601"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan1599"
|
||||||
|
x="132.08594"
|
||||||
|
y="45.530449"
|
||||||
|
style="stroke-width:0.264583">Sample from</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="132.08594"
|
||||||
|
y="58.759575"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
id="tspan1603">σ<tspan
|
||||||
|
style="font-size:65%;baseline-shift:sub"
|
||||||
|
id="tspan1605">B∈{3,7,12,14}</tspan></tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 151.05674,63.033536 127.35921,97.423477"
|
||||||
|
id="path1662" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g893-5"
|
||||||
|
transform="translate(79.641052,-45.794597)"
|
||||||
|
class="fragment">
|
||||||
|
<rect
|
||||||
|
ry="2.4804688"
|
||||||
|
y="138.24998"
|
||||||
|
x="17.016014"
|
||||||
|
height="14.882812"
|
||||||
|
width="53.330074"
|
||||||
|
id="rect884-0"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||||
|
<text
|
||||||
|
id="text888-9"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
id="tspan886-6"
|
||||||
|
sodipodi:role="line">100 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g1637"
|
||||||
|
transform="translate(53.890194,-89.321293)"
|
||||||
|
class="fragment">
|
||||||
|
<rect
|
||||||
|
ry="2.4804688"
|
||||||
|
y="138.24998"
|
||||||
|
x="17.016014"
|
||||||
|
height="14.882812"
|
||||||
|
width="53.330074"
|
||||||
|
id="rect1631"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||||
|
<text
|
||||||
|
id="text1635"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.7px;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.264583"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-size:8.46667px;text-align:center;text-anchor:middle;fill:#cccccc;stroke-width:0.264583"
|
||||||
|
y="148.02716"
|
||||||
|
x="43.424736"
|
||||||
|
id="tspan1633"
|
||||||
|
sodipodi:role="line">120 Tuples</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
279
src/teaching/cse-562/2021sp/slide/2021-03-23/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 |
1269
src/teaching/cse-562/2021sp/slide/2021-03-23/NaiveBootstrap.svg
Normal file
After Width: | Height: | Size: 64 KiB |
1327
src/teaching/cse-562/2021sp/slide/2021-03-23/NormalBootstrap.svg
Normal file
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 2.7 KiB |
301
src/teaching/cse-562/2021sp/slide/2021-03-23/RippleJoin.svg
Normal file
|
@ -0,0 +1,301 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<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="84.097397mm"
|
||||||
|
height="82.036255mm"
|
||||||
|
viewBox="0 0 84.097397 82.036255"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
sodipodi:docname="RippleJoin.svg">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<marker
|
||||||
|
inkscape:isstock="true"
|
||||||
|
style="overflow:visible"
|
||||||
|
id="marker1123"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend">
|
||||||
|
<path
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path1121" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="Arrow1Lend"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true"
|
||||||
|
inkscape:collect="always">
|
||||||
|
<path
|
||||||
|
id="path828"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.4"
|
||||||
|
inkscape:cx="240.72803"
|
||||||
|
inkscape:cy="256.68319"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1053"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="398"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:document-rotation="0" />
|
||||||
|
<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 />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-8.1707806,-8.0637769)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="60.098209"
|
||||||
|
y="14.236012"
|
||||||
|
id="text817"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan815"
|
||||||
|
x="60.098209"
|
||||||
|
y="14.236012"
|
||||||
|
style="stroke-width:0.264583px">R</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="10.29985"
|
||||||
|
y="59.630955"
|
||||||
|
id="text821"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan819"
|
||||||
|
x="10.29985"
|
||||||
|
y="59.630955"
|
||||||
|
style="stroke-width:0.264583px">S</tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||||
|
d="m 27.59226,26.369047 v 63.21652"
|
||||||
|
id="path823"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
class="" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path1119"
|
||||||
|
d="M 27.59226,26.369047 H 91.753717"
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1123)"
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
class="" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect3496"
|
||||||
|
width="11.245876"
|
||||||
|
height="11.245876"
|
||||||
|
x="28.650593"
|
||||||
|
y="27.427382"
|
||||||
|
ry="0.3697499"
|
||||||
|
class="fragment" />
|
||||||
|
<rect
|
||||||
|
ry="0.3697499"
|
||||||
|
y="27.427382"
|
||||||
|
x="40.821426"
|
||||||
|
height="11.245876"
|
||||||
|
width="11.245876"
|
||||||
|
id="rect3498"
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
class="fragment" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect3500"
|
||||||
|
width="23.41671"
|
||||||
|
height="11.245876"
|
||||||
|
x="28.650593"
|
||||||
|
y="39.598217"
|
||||||
|
ry="0.3697499"
|
||||||
|
class="fragment" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect3504"
|
||||||
|
width="11.24588"
|
||||||
|
height="23.440046"
|
||||||
|
x="52.992264"
|
||||||
|
y="27.427382"
|
||||||
|
ry="0.3697499"
|
||||||
|
class="fragment" />
|
||||||
|
<rect
|
||||||
|
ry="0.3697499"
|
||||||
|
y="51.769054"
|
||||||
|
x="28.650593"
|
||||||
|
height="11.245876"
|
||||||
|
width="35.544064"
|
||||||
|
id="rect3506"
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
class="fragment" />
|
||||||
|
<rect
|
||||||
|
ry="0.3697499"
|
||||||
|
y="27.427382"
|
||||||
|
x="65.163101"
|
||||||
|
height="35.535286"
|
||||||
|
width="11.24588"
|
||||||
|
id="rect3508"
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#ac9d93;stroke-width:0.265;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
class="fragment" />
|
||||||
|
<text
|
||||||
|
id="text3512"
|
||||||
|
y="24.913839"
|
||||||
|
x="33.828865"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
y="24.913839"
|
||||||
|
x="33.828865"
|
||||||
|
id="tspan3510"
|
||||||
|
sodipodi:role="line">r<tspan
|
||||||
|
style="font-size:4.23333px"
|
||||||
|
id="tspan3514">1</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="45.999702"
|
||||||
|
y="24.913839"
|
||||||
|
id="text3520"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3518"
|
||||||
|
x="45.999702"
|
||||||
|
y="24.913839"
|
||||||
|
style="stroke-width:0.264583px">r<tspan
|
||||||
|
id="tspan3516"
|
||||||
|
style="font-size:4.23333px">2</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
id="text3526"
|
||||||
|
y="24.913839"
|
||||||
|
x="58.699707"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
y="24.913839"
|
||||||
|
x="58.699707"
|
||||||
|
id="tspan3524"
|
||||||
|
sodipodi:role="line">r<tspan
|
||||||
|
style="font-size:4.23333px"
|
||||||
|
id="tspan3522">3</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="70.870544"
|
||||||
|
y="24.913839"
|
||||||
|
id="text3532"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3530"
|
||||||
|
x="70.870544"
|
||||||
|
y="24.913839"
|
||||||
|
style="stroke-width:0.264583px">r<tspan
|
||||||
|
id="tspan3528"
|
||||||
|
style="font-size:4.23333px">4</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
id="text3538"
|
||||||
|
y="35.497173"
|
||||||
|
x="22.716368"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
y="35.497173"
|
||||||
|
x="22.716368"
|
||||||
|
id="tspan3536"
|
||||||
|
sodipodi:role="line">s<tspan
|
||||||
|
style="font-size:4.23333px"
|
||||||
|
id="tspan3534">1</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="22.716368"
|
||||||
|
y="47.668007"
|
||||||
|
id="text3544"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3542"
|
||||||
|
x="22.716368"
|
||||||
|
y="47.668007"
|
||||||
|
style="stroke-width:0.264583px">s<tspan
|
||||||
|
id="tspan3540"
|
||||||
|
style="font-size:4.23333px">2</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
id="text3550"
|
||||||
|
y="59.309677"
|
||||||
|
x="22.716368"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
y="59.309677"
|
||||||
|
x="22.716368"
|
||||||
|
id="tspan3548"
|
||||||
|
sodipodi:role="line">s<tspan
|
||||||
|
style="font-size:4.23333px"
|
||||||
|
id="tspan3546">3</tspan></tspan></text>
|
||||||
|
<text
|
||||||
|
id="text3556"
|
||||||
|
y="22.83497"
|
||||||
|
x="81.926346"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
y="22.83497"
|
||||||
|
x="81.926346"
|
||||||
|
id="tspan3554"
|
||||||
|
sodipodi:role="line">...<tspan
|
||||||
|
style="font-size:4.23333px"
|
||||||
|
id="tspan3552" /></tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:125%;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:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="23.283337"
|
||||||
|
y="67.114876"
|
||||||
|
id="text3562"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3560"
|
||||||
|
x="23.283337"
|
||||||
|
y="67.114876"
|
||||||
|
style="stroke-width:0.264583px">.</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="23.283337"
|
||||||
|
y="77.698212"
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
id="tspan3564">.</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="23.283337"
|
||||||
|
y="88.281548"
|
||||||
|
style="stroke-width:0.264583px"
|
||||||
|
id="tspan3567">.</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |