From 1e27058b0c7c389378047b46f0d515893beb097f Mon Sep 17 00:00:00 2001 From: Aaron Huber Date: Tue, 22 Feb 2022 22:16:29 -0500 Subject: [PATCH] Addressed @oliver and @atri comments 021822, readied the paper for Pablo. --- .../Bag_PDBs-3AtriCommentsFeb18.pdf | Bin 4055782 -> 4027851 bytes abstract.tex | 23 +----- approx_alg.tex | 50 +++++++------ circuits-model-runtime.tex | 8 +- intro-rewrite-070921.tex | 61 ++++++---------- main.tex | 2 +- mult_distinct_p.tex | 19 +++-- poly-form.tex | 27 ++++--- prob-def.tex | 18 +++-- ra-to-poly.tex | 69 ++++++++++++------ two-step-model.tex | 6 +- 11 files changed, 145 insertions(+), 138 deletions(-) diff --git a/Draft Comments/Bag_PDBs-3AtriCommentsFeb18.pdf b/Draft Comments/Bag_PDBs-3AtriCommentsFeb18.pdf index 8c4c1fe99bc91747a2ed5a4937606c6cadf99e6b..5ed6f85f2486a609a288a37dcd608726400a0caf 100644 GIT binary patch delta 117474 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 z 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 L29B;|Wyt>k{1J5( delta 145589 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

H> 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 diff --git a/abstract.tex b/abstract.tex index d9122f8..6ebc7b9 100644 --- a/abstract.tex +++ b/abstract.tex @@ -1,27 +1,12 @@ %root: main.tex %!TEX root=./main.tex \begin{abstract} -% The problem of computing the marginal probability of a tuple in the result of a query over set-probabilistic databases (PDBs) can be reduced to calculating the probability of the \emph{lineage formula} of the result, a Boolean formula over random variables representing the existence of tuples in the database's possible worlds. - The problem of computing the marginal probability of a tuple in the result of a query over set-probabilistic databases (PDBs) is a % arguably the most - fundamental problem in set-PDBs. -%can be reduced to calculating the probability of the \emph{lineage formula} of the result, a Boolean formula over random variables representing the existence of tuples in the database's possible worlds. - %The analog for bag semantics is a natural number-valued polynomial over random variables that evaluates to the multiplicity of the tuple in each world. - % The analog for bag semantics is computing the expected multiplicity of a result tuple. - %In this work, we study the problem of calculating the expectation of such polynomials (a tuple's expected multiplicity) exactly and approximately. - In this work, we study the analog problem for bag semantics: computing a tuple's expected multiplicity exactly and approximately. -% Specifically, we are interested in the fine-grained complexity of computing this type of expectation based on a query result tuple's lineage polynomial which encodes how the tuple's multiplicity is computed based on the multiplicity of input tuples. -% Furthermore, we study how the complexity of this problem compares to - We are specifically +In this work, we study the problem computing a tuple's expected multiplicity over bag-\abbrTIDB\xplural exactly and approximately. + We refer to bag-\abbrTIDB\xplural as \abbrCTIDB\xplural, where $\bound$ is the bound on the maximum multiplicity. We are specifically interested in the fine-grained complexity and how it compares to the complexity of deterministic query evaluation algorithms --- if these complexities are comparable, it opens the door to practical deployment of probabilistic databases. Unfortunately, % we show the reverse; - our results imply that computing expected multiplicities for Bag-PDBs based on the results produced by such query evaluation algorithms introduces super-linear overhead (under parameterized complexity hardness assumptions/conjectures). - % Such factorized representations are necessary to realize the performance of modern join algorithms (e.g., worst-case optimal joins), and so our results imply that a Bag-PDB doing exact computations (via these factorized representations) can never be as fast as a classical (deterministic) database. - % The problem stays hard even if -% This is the case even if -%all input tuples have a fixed probability $\prob$ (s.t. $\prob \in (0,1)$).\BG{Replace with this because notion of hardness unclear: This is the case even if \ldots} -%Atri: Fair enough: droppped. - %We proceed to study how approximate multiplicities using lineage polynomials of result tuples of positive relational algebra queries ($\raPlus$) over TIDBs and for a non-trivial subclass of block-independent databases (BIDBs). - We proceed to study approximation of expected multiplicities of result tuples of positive relational algebra queries ($\raPlus$) over \AHchange{\abbrCTIDB\xplural} and for a non-trivial subclass of block-independent databases (\abbrBIDB\xplural). + our results imply that computing expected multiplicities for \abbrCTIDB\xplural based on the results produced by such query evaluation algorithms introduces super-linear overhead (under parameterized complexity hardness assumptions/conjectures). + We proceed to study approximation of expected multiplicities of result tuples of positive relational algebra queries ($\raPlus$) over \abbrCTIDB\xplural and for a non-trivial subclass of block-independent databases (\abbrBIDB\xplural). We develop a sampling algorithm that computes a $(1 \pm \epsilon)$-approximation of the expected multiplicity of an output tuple in time linear in the runtime of a comparable deterministic query for any $\raPlus$ query. % By removing Bag-PDB's reliance on the sum-of-products representation of polynomials, this result paves the way for future work on PDBs that are competitive with deterministic databases. \end{abstract} diff --git a/approx_alg.tex b/approx_alg.tex index e28c9b8..4e17bd8 100644 --- a/approx_alg.tex +++ b/approx_alg.tex @@ -2,22 +2,19 @@ %!TEX root=./main.tex \section{$1 \pm \epsilon$ Approximation Algorithm}\label{sec:algo} -In \Cref{sec:hard}, we showed that \secrev{ -\Cref{prob:bag-pdb-poly-expected} cannot be solved in $\bigO{\qruntime{\optquery{\query},\tupset,\bound}}$ runtime. -} -With this result, we now design an approximation algorithm for our problem that runs in $\bigO{\abs{\circuit}}$ for a very broad class of circuits\secrev{, (thus affirming~\Cref{prob:intro-stmt};} see the discussion after \Cref{lem:val-ub} for more). -The following approximation algorithm applies to \secrev{ -\abbrCTIDB lineage polynomials and general \abbrBIDB (over bag-$\raPlus$ query semantics) lineage polynomials in practice, where for the latter we note that a $1$-\abbrTIDB is equivalently a $1$-\abbrBIDB (blocks are size $1$) and our experimental results (see~\Cref{app:subsec:experiment}) using queries from the PDBench benchmark~\cite{pdbench} show a low $\gamma$ (see~\Cref{def:param-gamma}) supporting the notion that our bounds hold for general \abbrBIDB in practice. -} - \secrev{Corresponding proofs and pseudocode for all formal statements and algorithms } +In \Cref{sec:hard}, we showed that \Cref{prob:bag-pdb-poly-expected} cannot be solved in $\bigO{\qruntime{\optquery{\query},\tupset,\bound}}$ runtime. In light of this, we desire to produce and approximation algorithm that runs in time $\bigO{\qruntime{\optquery{\query},\tupset,\bound}}$. We do this by showing the result via circuits, +such that our approximation algorithm for this problem runs in $\bigO{\abs{\circuit}}$ for a very broad class of circuits, (thus affirming~\Cref{prob:intro-stmt}); see the discussion after \Cref{lem:val-ub} for more). +The following approximation algorithm applies to bag query semantics over both +\abbrCTIDB lineage polynomials and general \abbrBIDB lineage polynomials in practice, where for the latter we note that a $1$-\abbrTIDB is equivalently a \abbrBIDB (blocks are size $1$). Our experimental results (see~\Cref{app:subsec:experiment}) which use queries from the PDBench benchmark~\cite{pdbench} show a low $\gamma$ (see~\Cref{def:param-gamma}) supporting the notion that our bounds hold for general \abbrBIDB in practice. + +Corresponding proofs and pseudocode for all formal statements and algorithms can be found in \Cref{sec:proofs-approx-alg}. %it is then desirable to have an algorithm to approximate the multiplicity in linear time, which is what we describe next. \subsection{Preliminaries and some more notation} We now introduce definitions and notation related to circuits and polynomials that we will need to state our upper bound results. First we introduce the expansion $\expansion{\circuit}$ of circuit $\circuit$ which % encodes the reduced polynomial for $\polyf\inparen{\circuit}$ and is the basis -is used in our -\secrev{auxiliary algorithm for sampling monomials when computing the approximation. }% (part of our approximation algorithm). +is used in our auxiliary algorithm~\Cref{alg:sample} for sampling monomials when computing the approximation. % (part of our approximation algorithm). \begin{Definition}[$\expansion{\circuit}$]\label{def:expand-circuit} For a circuit $\circuit$, we define $\expansion{\circuit}$ as a list of tuples $(\monom, \coef)$, where $\monom$ is a set of variables and $\coef \in \domN$. @@ -66,11 +63,12 @@ $\expansion{\circuit}$ that need to be `canceled' when monomials with dependent variables are removed (\Cref{subsec:one-bidb}). %def:hen it is modded with $\mathcal{B}$ (\Cref{def:mod-set-polys}). Let $\isInd{\cdot}$ be a boolean function returning true if monomial $\encMon$ is composed of independent variables and false otherwise; further, let $\indicator{\theta}$ also be a boolean function returning true if $\theta$ evaluates to true. \begin{Definition}[Parameter $\gamma$]\label{def:param-gamma} -Given a \abbrBIDB circuit $\circuit$ define +Given a \abbrOneBIDB circuit $\circuit$ define \[\gamma(\circuit)=\frac{\sum_{(\monom, \coef)\in \expansion{\circuit}} \abs{\coef}\cdot \indicator{\neg\isInd{\encMon}} }%\encMon\mod{\mathcal{B}}\equiv 0}} {\abs{\circuit}(1,\ldots, 1)}.\] \end{Definition} \subsection{Our main result}\label{sec:algo:sub:main-result} +We solve~\Cref{prob:intro-stmt} for any fixed $\epsilon > 0$ in what follows. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \mypar{Algorithm Idea} @@ -80,9 +78,8 @@ Our approximation algorithm (\approxq pseudo code in \Cref{sec:proof-lem-approx- is based on the following observation. % The algorithm (\approxq detailed in \Cref{alg:mon-sam}) to prove \Cref{lem:approx-alg} follows from the following observation. Given a lineage polynomial $\poly(\vct{X})=\polyf(\circuit)$ for circuit \circuit over -\secrev{ -$1$-\abbrBIDB (recall that all \abbrCTIDB can be reduced to $1$-\abbrBIDB by~\Cref{def:ctidb-reduct}), we have: % can exactly represent $\rpoly(\vct{X})$ as follows: -} +\abbrOneBIDB (recall that all \abbrCTIDB can be reduced to \abbrOneBIDB by~\Cref{def:ctidb-reduct}), we have: % can exactly represent $\rpoly(\vct{X})$ as follows: + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{equation} @@ -121,7 +118,7 @@ and computing the average of $\vari{Y}$ gives us our final estimate. \onepass is % We next present a few corollaries of \Cref{lem:approx-alg}. \begin{Theorem} \label{cor:approx-algo-const-p} -Let \circuit be an arbitrary $1$-\abbrBIDB circuit, define $\poly(\vct{X})=\polyf(\circuit)$, let $k=\degree(\circuit)$, and let $\gamma=\gamma(\circuit)$. Further let it be the case that $\prob_i\ge \prob_0$ for all $i\in[\numvar]$. Then an estimate $\mathcal{E}$ of $\rpoly(\prob_1,\ldots, \prob_\numvar)$ +Let \circuit be an arbitrary \emph{\abbrOneBIDB} circuit, define $\poly(\vct{X})=\polyf(\circuit)$, let $k=\degree(\circuit)$, and let $\gamma=\gamma(\circuit)$. Further let it be the case that $\prob_i\ge \prob_0$ for all $i\in[\numvar]$. Then an estimate $\mathcal{E}$ of $\rpoly(\prob_1,\ldots, \prob_\numvar)$ satisfying \begin{equation} \label{eq:approx-algo-bound-main} @@ -135,16 +132,23 @@ O\left(\left(\size(\circuit) + \frac{\log{\frac{1}{\conf}}\cdot k\cdot \log{k} \ In particular, if $\prob_0>0$ and $\gamma<1$ are absolute constants then the above runtime simplifies to $O_k\left(\left(\frac 1{\inparen{\error'}^2}\cdot\size(\circuit)\cdot \log{\frac{1}{\conf}}\right)\cdot\multc{\log\left(\abs{\circuit}(1,\ldots, 1)\right)}{\log\left(\size(\circuit)\right)}\right)$. \end{Theorem} -The restriction on $\gamma$ is satisfied by any \secrev{ -$1$-\abbrTIDB (where $\gamma=0$ in the equivalent $1$-\abbrBIDB of~\Cref{def:ctidb-reduct}) - } as well as for all three queries of the PDBench \abbrBIDB benchmark (see \Cref{app:subsec:experiment} for experimental results). +\begin{Lemma} +Given \emph{\abbrOneBIDB} computed from the reduction of~\Cref{def:ctidb-reduct}, $\gamma\inparen{\circuit}=\inparen{c + 1}^{-k}$. +\end{Lemma} +\begin{Corollary} +Given any \abbrCTIDB circuit \circuit, $\poly\inparen{\vct{X}} = \polyf\inparen{\circuit}$, for $k =\degree\inparen{\circuit}$, $\gamma\inparen{\circuit}$, and $\prob_i\ge\prob_0$ for all $i\in\pbox{\numvar}$. The results of~\Cref{cor:approx-algo-const-p} follow for estimating $\rpoly\inparen{\prob_1,\ldots, \prob_\numvar}$. +\end{Corollary} -We briefly connect the runtime in \Cref{eq:approx-algo-runtime} to the algorithm outline earlier (where we ignore the dependence on $\multc{\cdot}{\cdot}$, which is needed to handle the cost of arithmetic operations over integers). The $\size(\circuit)$ comes from the time take to run \onepass once (\onepass essentially computes $\abs{\circuit}(1,\ldots, 1)$ using the natural circuit evaluation algorithm on $\circuit$). We make $\frac{\log{\frac{1}{\conf}}}{\inparen{\error'}^2\cdot(1-\gamma)^2\cdot \prob_0^{2k}}$ many calls to \sampmon (each of which essentially traces $O(k)$ random sink to source paths in $\circuit$ all of which by definition have length at most $\depth(\circuit)$). +The restriction on $\gamma$ is satisfied by any +$1$-\abbrTIDB (where $\gamma=0$ in the equivalent $1$-\abbrBIDB of~\Cref{def:ctidb-reduct}) +as well as for all three queries of the PDBench \abbrBIDB benchmark (see \Cref{app:subsec:experiment} for experimental results). + +We briefly connect the runtime in \Cref{eq:approx-algo-runtime} to the algorithm outline earlier (where we ignore the dependence on $\multc{\cdot}{\cdot}$, which is needed to handle the cost of arithmetic operations over integers). The $\size(\circuit)$ comes from the time take to run \onepass once (\onepass essentially computes $\abs{\circuit}(1,\ldots, 1)$ using the natural circuit evaluation algorithm on $\circuit$). We make $\frac{\log{\frac{1}{\conf}}}{\inparen{\error'}^2\cdot(1-\gamma)^2\cdot \prob_0^{2k}}$ many calls to \sampmon (each of which essentially traces $O(k)$ random sink to source paths in $\circuit$ all of which by definition have length at most $\depth(\circuit)$). Finally, we address the $\multc{\log\left(\abs{\circuit}(1,\ldots, 1)\right)}{\log\left(\size(\circuit)\right)}$ term in the runtime. %In \Cref{susec:proof-val-up}, we show the following: \begin{Lemma} \label{lem:val-ub} -For any \abbrBIDB circuit $\circuit$ with $\degree(\circuit)=k$, we have +For any \emph{\abbrOneBIDB} circuit $\circuit$ with $\degree(\circuit)=k$, we have $\abs{\circuit}(1,\ldots, 1)\le 2^{2^k\cdot \depth(\circuit)}.$ Further, %under either of the following conditions: %\begin{enumerate} @@ -156,16 +160,16 @@ we have $\abs{\circuit}(1,\ldots, 1)\le \size(\circuit)^{O(k)}.$ Note that the above implies that with the assumption $\prob_0>0$ and $\gamma<1$ are absolute constants from \Cref{cor:approx-algo-const-p}, then the runtime there simplifies to $O_k\left(\frac 1{\inparen{\error'}^2}\cdot\size(\circuit)^2\cdot \log{\frac{1}{\conf}}\right)$ for general circuits $\circuit$. If $\circuit$ is a tree, then the runtime simplifies to $O_k\left(\frac 1{\inparen{\error'}^2}\cdot\size(\circuit)\cdot \log{\frac{1}{\conf}}\right)$, which then answers \Cref{prob:intro-stmt} with yes for such circuits. -\AH{Is it standard to assume that in the asymptotic notation above, $\error$ and $\delta$ are constant? Otherwise this does not uphold~\Cref{prob:intro-stmt}.} +%\AH{Is it standard to assume that in the asymptotic notation above, $\error$ and $\delta$ are constant? Otherwise this does not uphold~\Cref{prob:intro-stmt}.} Finally, note that by \Cref{prop:circuit-depth} and \Cref{lem:circ-model-runtime} for any $\raPlus$ query $\query$, there exists a circuit $\circuit^*$ for $\apolyqdt$ such that $\depth(\circuit^*)\le O_{|Q|}(\log{n})$ and $\size(\circuit)\le O_k\inparen{\qruntime{\query, \dbbase}}$. Using this along with \Cref{lem:val-ub}, \Cref{cor:approx-algo-const-p} and the fact that $n\le \qruntime{\query, \dbbase}$, we answer \Cref{prob:big-o-joint-steps} in the affirmative as follows: \begin{Corollary} \label{cor:approx-algo-punchline} -Let $\query$ be an $\raPlus$ query and $\pdb$ be a $1$-\abbrBIDB with $p_0>0$ and $\gamma<1$ (where $p_0,\gamma$ as in \Cref{cor:approx-algo-const-p}) are absolute constants. Let $\poly(\vct{X})=\apolyqdt$ for any result tuple $\tup$ with $\deg(\poly)=k$. Then one can compute an approximation satisfying \Cref{eq:approx-algo-bound-main} in time $O_{k,|Q|,\error',\conf}\inparen{\qruntime{\query, \tupset, \bound}}$ (given $\query,\tupset$ and $p_i$ for each $i\in [n]$ that defines $\pd$). +Let $\query$ be an $\raPlus$ query and $\pdb$ be a \emph{\abbrOneBIDB} with $p_0>0$ and $\gamma<1$ (where $p_0,\gamma$ as in \Cref{cor:approx-algo-const-p}) are absolute constants. Let $\poly(\vct{X})=\apolyqdt$ for any result tuple $\tup$ with $\deg(\poly)=k$. Then one can compute an approximation satisfying \Cref{eq:approx-algo-bound-main} in time $O_{k,|Q|,\error',\conf}\inparen{\qruntime{\query, \tupset, \bound}}$ (given $\query,\tupset$ and $p_i$ for each $i\in [n]$ that defines $\pd$). %Let $\poly(\vct{X})$ be a \abbrBIDB-lineage polynomial correspoding to an \abbrBIDB circuit $\circuit$ that satisfies the specific conditions in \Cref{lem:val-ub}. Then one can compute an approximation satisfying \Cref{eq:approx-algo-bound-main} in time % $O_k\left(\frac 1{\inparen{\error'}^2}\cdot\size(\circuit)\cdot \log{\frac{1}{\conf}}\right)$. % for the case when $\circuit$ satisfies the specific conditions in \Cref{lem:val-ub}. \end{Corollary} -\AH{What is $\abs{\query}$? Isn't that just $k$?} +%\AH{What is $\abs{\query}$? Isn't that just $k$?} If we want to approximate the expected multiplicities of all $Z=O(n^k)$ result tuples $\tup$ simultaneously, we just need to run the above result with $\conf$ replaced by $\frac \conf Z$. Note this increases the runtime by only a logarithmic factor. diff --git a/circuits-model-runtime.tex b/circuits-model-runtime.tex index 5ea0122..9dc75d8 100644 --- a/circuits-model-runtime.tex +++ b/circuits-model-runtime.tex @@ -25,12 +25,12 @@ %That is for \bis that fulfill this restriction approximating the expectation of results of SPJU queries is only has a constant factor overhead over deterministic query processing (using one of the algorithms for which we prove the claim). % with the same complexity as it would take to evaluate the query on a deterministic \emph{bag} database of the same size as the input PDB. In~\Cref{sec:intro}, we introduced the structure $T_{det}\inparen{\cdot}$ to analyze the runtime complexity of~\Cref{prob:expect-mult}. -To decouple our results from specific join algorithms, we first abstract the cost of a join. +To decouple our results from specific join algorithms, we first lower bound the cost of a join. \begin{Definition}[Join Cost] \label{def:join-cost} Denote by $\jointime{R_1, \ldots, R_m}$ the runtime of an algorithm for computing the $m$-ary join $R_1 \bowtie \ldots \bowtie R_m$. -We require only that the algorithm must enumerate its output, i.e., that $\jointime{R_1, \ldots, R_m} \geq |R_1 \bowtie \ldots \bowtie R_m|$. +We require only that the algorithm must enumerate its output, i.e., that $\jointime{R_1, \ldots, R_m} \geq |R_1 \bowtie \ldots \bowtie R_m|$. With this definition of $\jointime{\cdot}$, worst-case optimal join algorithms are handled. \end{Definition} Worst-case optimal join algorithms~\cite{skew,ngo-survey} and query evaluation via factorized databases~\cite{factorized-db} (as well as work on FAQs~\cite{DBLP:conf/pods/KhamisNR16}) can be modeled as $\raPlus$ queries (though the query size is data dependent). @@ -58,12 +58,12 @@ For these algorithms, $\jointime{R_1, \ldots, R_n}$ is linear in the {\em AGM bo }\\ -Under this model, an $\raPlus$ query $\query$ evaluated over database $\gentupset$ has runtime $O(\qruntimenoopt{Q,\gentupset})$. +Under this model, an $\raPlus$ query $\query$ evaluated over database $\gentupset$ has runtime $O(\qruntimenoopt{Q,\gentupset, \bound})$. We assume that full table scans are used for every base relation access. We can model index scans by treating an index scan query $\sigma_\theta(R)$ as a base relation. %Observe that % () .\footnote{This claim can be verified by e.g. simply looking at the {\em Generic-Join} algorithm in~\cite{skew} and {\em factorize} algorithm in~\cite{factorized-db}.} It can be verified that the above cost model on the corresponding $\raPlus$ join queries correctly captures the runtime of current best known . -Finally, \Cref{lem:circ-model-runtime} and \Cref{lem:tlc-is-the-same-as-det} show that for any $\raPlus$ query $\query$ and $\tupset$, there exists a circuit $\circuit^*$ such that $\timeOf{\abbrStepOne}(Q,\tupset,\circuit^*)$ and $|\circuit^*|$ are both $O(\qruntimenoopt{Q, \tupset,\bound})$. Recall we assumed these two bounds when we moved from \Cref{prob:big-o-joint-steps} to \Cref{prob:intro-stmt}. +\Cref{lem:circ-model-runtime} and \Cref{lem:tlc-is-the-same-as-det} show that for any $\raPlus$ query $\query$ and $\tupset$, there exists a circuit $\circuit^*$ such that $\timeOf{\abbrStepOne}(Q,\tupset,\circuit^*)$ and $|\circuit^*|$ are both $O(\qruntimenoopt{\optquery{\query}, \tupset,\bound})$. Recall we assumed these two bounds when we moved from \Cref{prob:big-o-joint-steps} to \Cref{prob:intro-stmt}. Lastly, we can handle FAQs and factorized databases with allowing for optimization, i.e. $\optquery{\query}$. % %We now make a simple observation on the above cost model: %\begin{proposition} diff --git a/intro-rewrite-070921.tex b/intro-rewrite-070921.tex index 27aea8b..052f281 100644 --- a/intro-rewrite-070921.tex +++ b/intro-rewrite-070921.tex @@ -2,13 +2,11 @@ %root: main.tex \section{Introduction}\label{sec:intro} -\secrev{ -This work explores the problem of computing the expectation of a tuple's multiplicity in a specific construction of bag \abbrTIDB, which we call a \abbrCTIDB. A \abbrCTIDB, + +This work explores the problem of computing the expectation of a tuple's multiplicity in bag \abbrTIDB\xplural, which we term as \abbrCTIDB\xplural. A \abbrCTIDB, $\pdb = \inparen{\worlds, \bpd}$ encodes a bag of uncertain tuples such that each possible tuple encoded in $\pdb$ has a multiplicity of at most $\bound$. $\tupset$ is the set of tuples appearing across all possible worlds, and the set of all worlds is encoded in $\worlds$, which is the set of all vectors of length $\numvar=\abs{\tupset}$ such that each index corresponds to a distinct $\tup \in \tupset$ storing its multiplicity and $\bpd$ is the probability distribution over $\worlds$. A given world $\worldvec \in\worlds$ can be interpreted such that, for each $\tup \in \tupset$, $\worldvec_{\tup}$ is the multiplicity of $\tup$ in $\worldvec$. The probability distribution $\bpd$ for any tuple $\tup$ can then be encoded as $\prob_{\tup, j} = \probOf\pbox{\worldvec_{\tup} = j}$ (for $j \in\pbox{\bound}$), where each tuple multiplicity combination $\inparen{\inparen{\tup, \bound} \in \tupset\times\pbox{\bound}}$ %distribution is an independent random event. %for $\tup \in \tupset$. -} - -\secrev{ + Allowing for $\leq \bound$ multiplicities across all tuples gives rise to having $\leq \inparen{\bound+1}^\numvar$ possible worlds instead of the usual $2^\numvar$ possible worlds of a $1$-\abbrTIDB, which (assuming set query semantics), is the same as the traditional set \abbrTIDB. In this work, since we are generally considering bag query input, we will only be considering bag query semantics. We denote by $\query\inparen{\worldvec}\inparen{\tup}$ the multiplicity of $\tup$ in query $\query$ over possible world $\worldvec\in\worlds$. @@ -107,19 +105,12 @@ Allowing for unbounded $c$ is an interesting open problem. \mypar{Hardness of Set Query Semantics and Bag Query Semantics} Set query evaluation semantics over $1$-\abbrTIDB\xplural have been studied extensively, and the data complexity of the problem in general has been shown by Dalvi and Suicu to be \sharpphard\cite{10.1145/1265530.1265571}. For our setting, there exists a trivial polytime algorithm to compute~\Cref{prob:expect-mult} for any $\raPlus$ query over a \abbrCTIDB due to linearity of expection by simply computing the expectation over a `sum-of-products' representation of the query operations of $\query\inparen{\pdb}\inparen{\tup}$. Since we can compute~\Cref{prob:expect-mult} in polynomial time, the interesting question that we explore deals with analyzing the hardness of computing expectation using fine-grained analysis and parameterized complexity, where we are interested in the exponent of polynomial runtime. -} -%\sout{ -%\mypar{Example that can perhaps be used later on (using commented out figure above)} -%Given a \abbrCTIDB $\pdb$ with $\numvar$ tuples, we can encode a possible world by the vector $\vct{W} \in \inset{0,\ldots, c}^\numvar$, with the intuitive interpretation when bit $W_i = j$, then tuple $\tup_i$ with multiplicity $j$ is selected, with $\tup_i$ not existing for the special case of $j = 0$. For the example in ~\Cref{fig:ctidb-red}, we have that for \abbrCTIDB $\textbf{R}$, $\numvar = 2$. Then, e.g., arbitrary world vector $\vct{W} = [2, 3]$ encodes the possible world $\db = \inset{\intup{a, 2}, \intup{b, 3}}$ Computing ~\Cref{prob:expect-mult} for tuple $\tup_2$ in ~\Cref{fig:ctidb-red} when $\query = \mathbf{\rel}$ then becomes $\expct_{\randDB\sim\pd}\pbox{\mathbf{\rel}\inparen{\tup_2}} = 1\cdot\prob_{2,1} + 2\cdot\prob_{2,2} + 3\cdot\prob_{2,3} = 1\cdot 0.2 + 2\cdot 0.35 + 3\cdot 0.15 = 1.35$. -%} - -\secrev{ Specifically, in this work we ask if~\Cref{prob:expect-mult} can be solved in time linear in the runtime of an equivalent deterministic query. If this is true, then this would open up the way for deployment of \abbrCTIDB\xplural in practice. To analyze this question we denote by $\timeOf{}^*(Q,\pdb)$ the optimal runtime complexity of computing~\Cref{prob:expect-mult} over \abbrCTIDB $\pdb$. -Let $\qruntime{\query,\gentupset,\bound}$ (see~\Cref{sec:gen} for further details) denote the runtime for query $\query$, deterministic database $\gentupset$, and multiplicity bound $\bound$. Being we consider $\raPlus$ queries in which order of operators can impact runtime, we denote the optimized $\raPlus$ query as $\optquery{\query} = \min_{\query'\in\raPlus, \query'\equiv\query}\qruntime{\query', \gentupset, \bound}$. Then $\qruntime{\optquery{\query}, \gentupset,\bound}$ is the runtime for the optimized query. +Let $\qruntime{\query,\gentupset,\bound}$ (see~\Cref{sec:gen} for further details) denote the runtime for query $\query$, deterministic database $\gentupset$, and multiplicity bound $\bound$. This paper considers $\raPlus$ queries for which order of operations is \emph{explicit}, as opposed to other query languages, e.g. Datalog, UCQ. Thus, since order of operations affects runtime, we denote the optimized $\raPlus$ query picked by an arbitrary production system as $\optquery{\query} = \min_{\query'\in\raPlus, \query'\equiv\query}\qruntime{\query', \gentupset, \bound}$. Then $\qruntime{\optquery{\query}, \gentupset,\bound}$ is the runtime for the optimized query.\footnote{Note that our work applies to any $\query \in\raPlus$, which implies that specific heuristics for choosing an optimized query can be abstracted away, i.e., our work does not consider heuristic techniques.} -\begin{table}[h!] +\begin{table}[t!] \begin{tabular}{|p{0.43\textwidth}|p{0.12\textwidth}|p{0.35\textwidth}|} \hline Lower bound on $\timeOf{}^*(\query,\pdb)$ & Num. $\bpd$s & Hardness Assumption\\ @@ -141,7 +132,7 @@ Our question is whether or not it is always true that $\timeOf{}^*\inparen{\quer Specifically, depending on what hardness result/conjecture we assume, we get various emphatic versions of {\em no} as an answer to our question. To make some sense of the other lower bounds in Table~\ref{tab:lbs}, we note that it is not too hard to show that $\timeOf{}^*(Q,\pdb) \le \bigO{\inparen{\qruntime{\optquery{\query}, \tupset, \bound}}^k}$, where $k$ is the join width (our notion of join width follows from~\Cref{def:degree-of-poly} and~\Cref{fig:nxDBSemantics}.) of the query $\query$ over all result tuples $\tup$ (and the parameter that defines our family of hard queries). What our lower bound in the third row says is that one cannot get more than a polynomial improvement over essentially the trivial algorithm for~\Cref{prob:expect-mult}. - However, this result assumes a hardness conjecture that is not as well studied as those in the first two rows of the table (see \Cref{sec:hard} for more discussion on the hardness assumptions). Further, we note that existing results already imply the claimed lower bounds if we were to replace the $\qruntime{\optquery{\query}, \tupset, \bound}$ by just $\numvar$ (indeed these results follow from known lower bound for deterministic query processing). Our contribution is to then identify a family of hard queries where deterministic query processing is `easy' but computing the expected multiplicities is hard. + However, this result assumes a hardness conjecture that is not as well studied as those in the first two rows of the table (see \Cref{sec:hard} for more discussion on the hardness assumptions). Further, we note that existing results already imply the claimed lower bounds if we were to replace the $\qruntime{\optquery{\query}, \tupset, \bound}$ by just $\numvar$ (indeed these results follow from known lower bounds for deterministic query processing). Our contribution is to then identify a family of hard queries where deterministic query processing is `easy' but computing the expected multiplicities is hard. \mypar{Our upper bound results} We introduce an $(1\pm \epsilon)$-approximation algorithm that computes ~\Cref{prob:expect-mult} in time $O_\epsilon\inparen{\qruntime{\optquery{\query}, \tupset, \bound}}$. This means, when we are okay with approximation, that we solve~\Cref{prob:expect-mult} in time linear in the size of the deterministic query %$\timeOf{Approx}^*\inparen{\query, \pdb}\leq\qruntim{\optquery{\query},\tupset,\bound}$ (where $\timeOf{Approx}^*\inparen{\cdot}$ denotes runtime of approximation algorithm), and bag \abbrPDB\xplural are deployable in practice. @@ -155,14 +146,13 @@ In contrast, known approximation techniques (\cite{DBLP:conf/icde/OlteanuHK10,DB Further, our approximation algorithm works for a more general notion of bag \abbrPDB\xplural beyond \abbrCTIDB\xplural %we generalize the \abbrPDB data model considered by the approximation algorithm to a class of bag-Block Independent Disjoint Databases (see \Cref{subsec:tidbs-and-bidbs}). %(\abbrBIDB\xplural). -} -\secrev{ -\subsection{Polynomial Equivalence} -A common encoding of probabilistic databases (e.g., in \cite{IL84a,Imielinski1989IncompleteII,Antova_fastand,DBLP:conf/vldb/AgrawalBSHNSW06} and many others) relies on annotating tuples with lineages, propositional formulas that describe the set of possible worlds that the tuple appears in. The bag semantics analog is a provenance/lineage polynomial (see~\Cref{fig:nxDBSemantics}) $\apolyqdt$~\cite{DBLP:conf/pods/GreenKT07}, a polynomial with non-zero integer coefficients and exponents, over integer variables $\vct{X}$ encoding input tuple multiplicities. + +\subsection{Polynomial Equivalence}\label{sec:intro-poly-equiv} +A common encoding of probabilistic databases (e.g., in \cite{IL84a,Imielinski1989IncompleteII,Antova_fastand,DBLP:conf/vldb/AgrawalBSHNSW06} and many others) relies on annotating tuples with lineages or propositional formulas that describe the set of possible worlds that the tuple appears in. The bag semantics analog is a provenance/lineage polynomial (see~\Cref{fig:nxDBSemantics}) $\apolyqdt$~\cite{DBLP:conf/pods/GreenKT07}, a polynomial with non-zero integer coefficients and exponents, over integer variables $\vct{X}$ encoding input tuple multiplicities. %Intuitively, a \abbrCTIDB lends itself to a useful reduction to a specific type of block independent database (\abbrBIDB) which we refer to as a $1$-\abbrBIDB. A $1$-\abbrBIDB is a \abbrBIDB in the traditional sense of allowing no duplicate tuples, \emph{but} where we use bag query semantics instead of the usual set query semantics. %(see~\Cref{fig:nxDBSemantics} for a definition) -\begin{figure} +\begin{figure}[b!] \begin{align*} \polyqdt{\project_A(\query)}{\gentupset}{\tup} =& \sum_{\tup': \project_A(\tup') = \tup} \polyqdt{\query}{\gentupset}{\tup'} & \polyqdt{\query_1 \union \query_2}{\gentupset}{\tup} =& \polyqdt{\query_1}{\gentupset}{\tup} + \polyqdt{\query_2}{\gentupset}{\tup}\\ @@ -179,7 +169,7 @@ A common encoding of probabilistic databases (e.g., in \cite{IL84a,Imielinski198 \end{aligned}\\ & & & \polyqdt{\rel}{\gentupset}{\tup} = X_\tup%\sum_{j \in [c]}j\cdot\pVar_{\tup, j} \end{align*}\\[-10mm] - \caption{Construction of the lineage (polynomial) for an $\raPlus$ query $\query$ over a arbitrary deterministic database $\gentupset$, where $\vct{X}$ consists of all $X_\tup$ over all $\rel$ in $\gentupset$ and $\tup$ in $\rel$. Here $\gentupset.\rel$ denotes the instance of relation $\rel$ in $\gentupset$. Please note, after we introduce the reduction to $1$-\abbrBIDB, the base case will be expressed alternatively.} + \caption{Construction of the lineage (polynomial) for an $\raPlus$ query $\query$ over an arbitrary deterministic database $\gentupset$, where $\vct{X}$ consists of all $X_\tup$ over all $\rel$ in $\gentupset$ and $\tup$ in $\rel$. Here $\gentupset.\rel$ denotes the instance of relation $\rel$ in $\gentupset$. Please note, after we introduce the reduction to $1$-\abbrBIDB, the base case will be expressed alternatively.} \label{fig:nxDBSemantics} \end{figure} @@ -194,10 +184,8 @@ multiplicity of the polynomial $\apolyqdt$ (i.e., $\expct_{\vct{W}\sim \pdassign We note that computing \Cref{prob:expect-mult} is equivalent (yields the same result as) to computing \Cref{prob:bag-pdb-poly-expected} (see \Cref{prop:expection-of-polynom}). %In this work, we study the complexity of \Cref{prob:bag-pdb-poly-expected} for several models of probabilistic databases and various encodings of such polynomials. -} -\secrev{ -All of our results rely on working with a {\em reduced} form $\inparen{\poly}$ of the lineage polynomial $\poly$. In fact, it turns out that for the $1$-\abbrTIDB case, computing the expected multiplicity (over bag query semantics) is {\em exactly} the same as evaluating this reduced polynomial over the probabilities that define the $1$-\abbrTIDB. This is also true when the query input(s) is a block independent disjoint probabilistice database (with tuple multiplicity of at most $1$), which we refer to as a $1$-\abbrBIDB. +All of our results rely on working with a {\em reduced} form $\inparen{\rpoly}$ of the lineage polynomial $\poly$. In fact, it turns out that for the $1$-\abbrTIDB case, computing the expected multiplicity (over bag query semantics) is {\em exactly} the same as evaluating this reduced polynomial over the probabilities that define the $1$-\abbrTIDB. This is also true when the query input(s) is a block independent disjoint probabilistic database~\cite{DBLP:conf/icde/OlteanuHK10} (bag query semantics with tuple multiplicity at most $1$), for which the proof of~\Cref{lem:tidb-reduce-poly} (introduced shortly) holds . % For our results to be applicable to \abbrCTIDB\xplural, we introduce the following reduction. %\begin{Definition} %Any \abbrCTIDB $\pdb$, can be reduced to an equivalent $1$-\abbrBIDB $\pdb'$ in the following manner. For each $\tup_i \in \tupset$, create a block of $\bound + 1$ disjoint \abbrBIDB tuples in $\pdb'$ such that each tuple in the newly formed block is mapped to its own boolean variable $X_{i, j}$ for $i \in \abs{D}$ and $j \in \pbox{c+1}$. Then, given $\worldvec \in \worlds$, the equivalent world in $\pdb'$ will set each variable $X_{i, j} = 1$ for each $\worldvec\pbox{i} = j$, while $\inparen{\text{for }\ell \neq j}$ all other $X_{i, \ell} \in \vct{X}$ of $\pdb'$ are set to $0$. @@ -207,12 +195,12 @@ All of our results rely on working with a {\em reduced} form $\inparen{\poly}$ o %\end{Example} Next, we motivate this reduced polynomial. Consider the query $\query_1$ defined as follows over the bag relations of \Cref{fig:two-step}: -} + \begin{lstlisting} -SELECT 1 FROM T $t_1$, Route r, T $t_2$ +SELECT 1 FROM T $t_1$, R r, T $t_2$ WHERE $t_1$.city = r.city1 AND $t_2$.city = r.city2 \end{lstlisting} -\secrev{ + It can be verified that $\poly\inparen{A, B, C, E, X, Y, Z}$ for the sole result tuple (i.e. the count) of $\query$ is $AXB + BYE + BZC$. Now consider the product query $\query_1^2 = \query_1 \times \query_1$. The lineage polynomial for $Q_1^2$ is given by $\poly_1^2\inparen{A, B, C, E, X, Y, Z}$ $$ @@ -222,7 +210,7 @@ To compute $\expct\pbox{\poly_1^2}$ we can use linearity of expectation and push %the expectation is $\expct\pbox{A^2X^2B^2} = A\cdot\prob_A\cdot\inparen{\sum\limits_{i \in [2]}X_i\cdot \prob_{X, i}}\cdot B\prob_B$ for $X \in \inset{0, 1, 2}$. -Denote the variables of $\poly$ to be $\vars{\poly}.$ In the \abbrCTIDB setting, $\poly\inparen{\vct{X}}$ has an equivalent reformulation $\inparen{\refpoly{}}$ that is of use to us. Given $X_\tup \in\vars{\poly}$, by definition $X_\tup \in\inset{0,\ldots, c}$. We can replace $X_\tup$ by $\sum_{j\in\pbox{\bound}}X_{\tup, j}$ where each $X_{\tup, j}\in\inset{0, 1}$. Then for any $\worldvec\in\worlds$, we set $X_{\tup, j} = 1$ for $\worldvec_\tup = j$, while $X_{\tup, j'} = 0$ for all $j'\neq j\in\pbox{\bound}$. By construction then $\poly\inparen{\vct{X}}\equiv\refpoly{}\inparen{\vct{X_R}}$ $\inparen{\vct{X_R} = \vars{\refpoly{}}}$ since for any $X_\tup\in\vars{\poly}$ we have the equality $X_\tup = j = \sum_{j\in\pbox{\bound}}jX_j$. +Denote the variables of $\poly$ to be $\vars{\poly}.$ In the \abbrCTIDB setting, $\poly\inparen{\vct{X}}$ has an equivalent reformulation $\inparen{\refpoly{}\inparen{\vct{X_R}}}$ that is of use to us, where $\abs{\vct{X_R}} = \bound\cdot\abs{\vct{X}}$ . Given $X_\tup \in\vars{\poly}$, by definition $X_\tup \in\inset{0,\ldots, c}$. We can replace $X_\tup$ by $\sum_{j\in\pbox{\bound}}jX_{\tup, j}$ where each $X_{\tup, j}\in\inset{0, 1}$. Then for any $\worldvec\in\worlds$, we set $X_{\tup, j} = 1$ for $\worldvec_\tup = j$, while $X_{\tup, j'} = 0$ for all $j'\neq j\in\pbox{\bound}$. By construction then $\poly\inparen{\vct{X}}\equiv\refpoly{}\inparen{\vct{X_R}}$ $\inparen{\vct{X_R} = \vars{\refpoly{}}}$ since for any $X_\tup\in\vars{\poly}$ we have the equality $X_\tup = j = \sum_{j\in\pbox{\bound}}jX_j$. Considering again our example, \begin{multline*} @@ -272,7 +260,11 @@ $ to be the polynomial resulting from converting $\refpoly{}$ into the standard } removing all monomials containing the term $X_{\tup, j}X_{\tup, j'}$ for $\tup\in\tupset, j\neq j'\in\pbox{c}$, and setting all \emph{variable} exponents $e > 1$ to $1$. \end{Definition} -Continuing with the example $\poly_1^2\inparen{A, B, C, E, X_1, X_2, Y, Z}$, to save clutter we i) do not show the full expansion for variables with greatest multiplicity $= 1$ since e.g. for variable $A$, the sum of products itself evaluates to $1^2\cdot A^2 = A$, and ii) for $\sum_{j\in\pbox{\bound}}j^2\cdot X_j$, we omit the summands encoding multiplicities $> 2$, since the greatest multiplicity of the tuple annotated with $X$ is $2$, likewise those summands will always evaluated to $0$ since the tuple will never have a multiplicity of $>2$. +Continuing with the example +\footnote{ +To save clutter we do not show the full expansion for variables with greatest multiplicity $= 1$ since e.g. for variable $A$, the sum of products itself evaluates to $1^2\cdot A^2 = A$. +} + $\poly_1^2\inparen{A, B, C, E, X_1, X_2, Y, Z}$ we have \begin{multline*} \rpoly_1^2(A, B, C, E, X_1, X_2, Y, Z) = \\ A\inparen{\sum\limits_{j\in\pbox{\bound}}j^2X_j}B + BYE + BZC + 2A\inparen{\sum\limits_{j\in\pbox{\bound}}j^2X_j}BYE + 2A\inparen{\sum\limits_{j\in\pbox{\bound}}j^2X_j}BZC + 2BYEZC =\\ @@ -290,9 +282,7 @@ For any \abbrCTIDB $\pdb$, $\raPlus$ query $\query$, and lineage polynomial \expct_{\vct{W} \sim \pdassign}\pbox{\refpoly{}\inparen{\vct{W}}} = \rpoly\inparen{\probAllTup} $, where $\probAllTup = \inparen{\inparen{\prob_{\tup, j}}_{\tup\in\tupset, j\in\pbox{c}}}.$%,\ldots,\prob_{\abs{\tupset}, \bound}}$ is defined by $\bpd$. \end{Lemma} -} -\secrev{ \subsection{Our Techniques} \mypar{Lower Bound Proof Techniques} Our main hardness result shows that computing~\Cref{prob:expect-mult} is $\sharpwonehard$ for $1$-\abbrTIDB. To prove this result we show that for the same $\query_1$ from the example above, for an arbitrary `product width' $k$, the query $Q^k$ is able to encode various hard graph-counting problems (assuming $\bigO{\numvar}$ tuples rather than the $\bigO{1}$ tuples in \Cref{fig:two-step}). @@ -302,7 +292,7 @@ We do so by considering an arbitrary graph $G$ (analogous to relation $\boldsymb Our negative results (\Cref{tab:lbs}) indicate that \abbrCTIDB{}s (even for $\bound=1$) can not achieve comparable performance to deterministic databases for exact results (under complexity assumptions). In fact, under plausible hardness conjectures, one cannot (drastically) improve upon the trivial algorithm to exactly compute the expected multiplicities for $1$-\abbrTIDB\xplural. A natural followup is whether we can do better if we are willing to settle for an approximation to the expected multiplities. \input{two-step-model} -We adopt the two-step intensional model of query evaluation used in set-\abbrPDB\xplural, as illustrated in \Cref{fig:two-step}: +We adopt a two-step intensional model of query evaluation used in set-\abbrPDB\xplural, as illustrated in \Cref{fig:two-step}: (i) \termStepOne (\abbrStepOne): Given input $\tupset$ and $\query$, output every tuple $\tup$ that possibly satisfies $\query$, annotated with its lineage polynomial ($\poly(\vct{X})=\apolyqdt\inparen{\vct{X}}$); (ii) \termStepTwo (\abbrStepTwo): Given $\poly(\vct{X})$ for each tuple, compute $\expct_{\randWorld\sim\bpd}\pbox{\poly(\vct{\randWorld})}$. Let $\timeOf{\abbrStepOne}(Q,\tupset,\circuit)$ denote the runtime of \abbrStepOne when it outputs $\circuit$ (which is a representation of $\poly$ as an arithmetic circuit --- more on this representation in~\Cref{sec:expression-trees}). @@ -326,7 +316,7 @@ Accordingly, this work uses (arithmetic) circuits\footnote{ } as the representation system of $\poly(\vct{X})$. -Given that there exists a representation $\circuit^*$ such that $\timeOf{\abbrStepOne}(\query,\tupset,\circuit^*)\le \bigO{\qruntime{\optquery{\query}, \tupset, \bound}}$, we can now focus on the complexity of \abbrStepTwo. +Given that there exists a representation $\circuit^*$ such that $\timeOf{\abbrStepOne}(\query,\tupset,\circuit^*)\le \bigO{\qruntime{\optquery{\query}, \tupset, \bound}}$, we can now focus on the complexity of the \abbrStepTwo step. We can represent the factorized lineage polynomial by its correspoding arithmetic circuit $\circuit$ (whose size we denote by $|\circuit|$). As we also show in \Cref{sec:circuit-runtime}, this size is also bounded by $\qruntime{\optquery{\query}, \tupset, \bound}$ (i.e., $|\circuit^*| \le \bigO{\qruntime{\optquery{\query}, \tupset, \bound}}$). Thus, the question of approximation %\Cref{prob:big-o-joint-steps} @@ -349,15 +339,12 @@ For an upper bound on approximating the expected count, it is easy to check that \end{footnotesize} If we assume that all seven probability values are at least $p_0>0$, %Choose the least factor that is reduced in $\rpoly^2\inparen{\vct{X}}$, in this case $\prob_A\prob_X\prob_B$, and -we get that $\poly_1^2\inparen{\vct{\prob}}$ is in the range $[\inparen{p_0}^3\cdot\rpoly^2_1\inparen{\vct{\prob}}, \rpoly_1^2\inparen{\vct{\prob}}]$. +we get that $\poly_1^2\inparen{\vct{\prob}}$ is in the range $[\inparen{p_0}^3\cdot\rpoly^2_1\inparen{\vct{\prob}}, \rpoly_1^2\inparen{\vct{\prob}}]$, which is \emph{not a tight approximation}. % %To get an $(1\pm \epsilon)$-multiplicative approximation we uniformly sample monomials from the \abbrSMB representation of $\poly$ and `adjust' their contribution to $\widetilde{\poly}\left(\cdot\right)$. In~\cref{sec:algo} we demonstrate that a $(1\pm\epsilon)$ (multiplicative) approximation with competitive performance is achievable. To get an $(1\pm \epsilon)$-multiplicative approximation and solve~\Cref{prob:intro-stmt}, using \circuit we uniformly sample monomials from the equivalent \abbrSMB representation of $\poly$ (without materializing the \abbrSMB representation) and `adjust' their contribution to $\widetilde{\poly}\left(\cdot\right)$. -\rule{\textwidth}{1.5pt} - -} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/main.tex b/main.tex index adb4407..095c5f2 100644 --- a/main.tex +++ b/main.tex @@ -85,7 +85,7 @@ sensitive=true -\title{Parameterized and Fine-Grained Analysis of Query Evaluation Over Bag PDBs} +\title{Computing expected multiplicities for bag-TIDBs with bounded multiplicities} \titlerunning{Bag PDB Queries} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/mult_distinct_p.tex b/mult_distinct_p.tex index 4339100..b1130d6 100644 --- a/mult_distinct_p.tex +++ b/mult_distinct_p.tex @@ -3,7 +3,7 @@ \section{Hardness of Exact Computation} \label{sec:hard} In this section, we will prove the hardness results claimed in Table~\ref{tab:lbs} for a specific (family) of hard instance $(\query,\pdb)$ for \Cref{prob:bag-pdb-poly-expected} where $\pdb$ is a $1$-\abbrTIDB. - Note that this implies hardness for \abbrCTIDB\xplural $\inparen{\bound\geq1}$, \bis and general \abbrBPDB, showing \Cref{prob:bag-pdb-poly-expected} cannot be done in $\bigO{\qruntime{\optquery{\query},\tupset,\bound}}$ runtime. + Note that this implies hardness for \abbrCTIDB\xplural $\inparen{\bound\geq1}$, showing \Cref{prob:bag-pdb-poly-expected} cannot be done in $\bigO{\qruntime{\optquery{\query},\tupset,\bound}}$ runtime. The results also apply to \abbrOneBIDB and other more general \abbrPDB\xplural. %(and hence the equivalent \Cref{prob:bag-pdb-query-eval}) %in the negative. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -14,7 +14,7 @@ In particular, we will consider the problems of computing the following counts ( %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{Theorem}[\cite{k-match}] \label{thm:k-match-hard} -Given positive integer $k$ and undirected graph $G=(\vset,\edgeSet)$ with no self-loops or parallel edges, $\kmatchtime\ge \littleomega{f(k)\cdot |\edgeSet|^c}$ for any function $f$ and fixed constant $c$ independent of $\abs{E}$ and $k$ (assuming $\sharpwzero\ne\sharpwone$). +Given positive integer $k$ and undirected graph $G=(\vset,\edgeSet)$ with no self-loops or parallel edges, $\kmatchtime\ge \littleomega{f(k)\cdot |\edgeSet|^c}$ for any function $f$ and any constant $c$ independent of $\abs{E}$ and $k$ (assuming $\sharpwzero\ne\sharpwone$). \end{Theorem} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{hypo}\label{conj:known-algo-kmatch} @@ -46,7 +46,7 @@ For any graph $G=(V,\edgeSet)$ and $\kElem\ge 1$, define \end{Definition} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\noindent Returning to \Cref{fig:two-step}, it is easy to see that $\poly_{G}^\kElem(\vct{X})$ is the lineage polynomial whose structure mirrors the query $\query_2$ from \Cref{sec:intro}. Let us alias +\noindent Returning to \Cref{fig:two-step}, it can be seen that $\poly_{G}^\kElem(\vct{X})$ is the lineage polynomial from query $\query_k$, which we define next ($\query_2$ from~\Cref{sec:intro} is the same query with $k=2$). Let us alias \begin{lstlisting} SELECT 1 FROM T $t_1$, R r, T $t_2$ WHERE $t_1$.city = r.city1 AND $t_2$.city = r.city2 @@ -55,16 +55,15 @@ as $R_i$ for each $i \in [k]$. The query $\query^k$ then becomes \begin{lstlisting} SELECT COUNT(*) FROM $R_1$ JOIN $R_2$ JOIN$\cdots$JOIN $R_k$ \end{lstlisting} -\noindent Consider again the \abbrCTIDB instance $\pdb$ of~\Cref{fig:two-step} and, for our hard instance, let $\bound = 1$. $\pdb$ generalizes to one compatible to~\Cref{def:qk} as follows. Relation $T$ has $n$ tuples corresponding to each vertex for $i$ in $[n]$, each with probability $\prob_i$ and $R$ has tuples corresponding to the edges $\edgeSet$ (each with probability of $1$).\footnote{Technically, $\poly_{G}^\kElem(\vct{X})$ should have variables corresponding to tuples in $R$ as well, but since they always are present with probability $1$, we drop those. Our argument also works when all the tuples in $R$ also are present with probability $\prob$ but to simplify notation we assign probability $1$ to edges.} -In other words, for this instance $\tupset$ contains the set of $\numvar$ unary tuples in $T$ (which corresponds to $\vset$) and $\numedge$ binary tuples in $R$ (which corresponds to $\edgeSet$). -Note that this implies that $\poly_{G}^\kElem$ is indeed a \abbrCTIDB-lineage polynomial. % for a \abbrTIDB \abbrPDB. -\AH{ -\textbf{@atri}, we discussed this last meeting, but I am not sure if we really pinpointed how we want to treat (\emph{in a consistent manner}) the runtime of~\Cref{lem:tdet-om} since $k$ is a constant and $m$ is growing. Would it be a good idea to be consistent with the $O_\epsilon$ notation of~\Cref{prob:big-o-joint-steps} and say $O_k(\numedge)$} -Next, we note that the runtime for answering $\query^k$ on deterministic database $\tupset$, as defined above, is $\bigO{\numedge}$ (i.e. deterministic query processing is `easy' for this query): +\noindent Consider again the \abbrCTIDB instance $\pdb$ of~\Cref{fig:two-step} and, for our hard instance, let $\bound = 1$. $\pdb$ generalizes to one compatible to~\Cref{def:qk} as follows. Relation $T$ has $n$ tuples corresponding to each vertex for $i$ in $[n]$, each with probability $\prob$ and $R$ has tuples corresponding to the edges $\edgeSet$ (each with probability of $1$).\footnote{Technically, $\poly_{G}^\kElem(\vct{X})$ should have variables corresponding to tuples in $R$ as well, but since they always are present with probability $1$, we drop those. Our argument also works when all the tuples in $R$ also are present with probability $\prob$ but to simplify notation we assign probability $1$ to edges.} +In other words, this instance $\tupset$ contains the set of $\numvar$ unary tuples in $T$ (which corresponds to $\vset$) and $\numedge$ binary tuples in $R$ (which corresponds to $\edgeSet$). +Note that this implies that $\poly_{G}^\kElem$ is indeed a $1$-\abbrTIDB lineage polynomial. % for a \abbrTIDB \abbrPDB. + +Next, we note that the runtime for answering $\query^k$ on deterministic database $\tupset$, as defined above, is $O_k\inparen{\numedge}$ (i.e. deterministic query processing is `easy' for this query): \begin{Lemma}\label{lem:tdet-om} Let $\query^k$ and $\tupset$ be as defined above. Then % of \Cref{def:qk}, the runtime -$\qruntimenoopt{\query^k, \tupset}$ is $\bigO{\kElem\numedge}$. +$\qruntimenoopt{\query^k, \tupset}$ is $O_k\inparen{\numedge}$. \end{Lemma} \subsection{Multiple Distinct $\prob$ Values} diff --git a/poly-form.tex b/poly-form.tex index 9114c8b..bb9022f 100644 --- a/poly-form.tex +++ b/poly-form.tex @@ -42,20 +42,23 @@ Let $\abs{\poly}$ be the number of operators in $\poly$. \begin{Corollary}\label{cor:expct-sop} If $\poly$ is a $1$-\abbrBIDB lineage polynomial already in \abbrSMB, then the expectation of $\poly$, i.e., $\expct\pbox{\poly} = \rpoly\left(\prob_1,\ldots, \prob_\numvar\right)$ can be computed in $\bigO{\abs{\poly}}$ time. \end{Corollary} -\secrev{ + \subsubsection{Possible World Semantics}\label{subsub:possible-world-sem} -Queries over probabilistic databases are traditionally viewed as being evaluated using the so-called possible world semantics. A general bag-\abbrPDB can be defined as the pair $\pdb = \inparen{\Omega, \bpd}$ where $\Omega$ is the set of possible worlds represented by $\pdb$. Under the possible world semantics, the result of a query $\query$ over an incomplete database $\Omega$ is the set of query answers produced by evaluating $\query$ over each possible world $\omega\in\Omega$: $\inset{\query\inparen{\omega}: \omega\in\Omega}$. -The result of a query is the pair $\inparen{\query\inparen{\omega}, \bpd'}$ where $\bpd'$ is a probability distribution that assigns to each possible query result the sum of the probabilites of the worlds that produce this answer: $\probOf\pbox{\omega\in\Omega} = \sum_{\omega'\in\Omega,\\\query\inparen{\omega'}=\query\inparen{\omega}}\probOf\pbox{\omega'}$. -} -\AH{ -I am not sure the following paragraph is needed, since the reduction definition says pretty much the same thing. Unless that definition changes, we can get rid of this paragraph. -} -Suppose that $\pdb$ is a $1$-\abbrBIDB. Instead of looking only at the possible worlds of $\pdb$, one can consider all worlds, including those that cannot exist due to, e.g., disjointness. The all worlds set can be modeled by $\worldvec\in \{0, 1\}^{\bound\numvar}$, such that $\worldvec_{\tup, j} \in \worldvec$ represents whether or not the multiplicity of $\tup$ is $j$ (\emph{here and later, especially in \Cref{sec:algo}, we will rename the variables as $X_1,\dots,X_n$, where $n=\sum_{\tup\in\tupset}\abs{b_\tup}$}).%(where $k = \sum_{\ell = 1}^{i - 1} \abs{b_\ell} + j$). - We can denote a probability distribution over all $\worldvec \in \{0, 1\}^{\bound\numvar}$ as $\bpd'$. When $\bpd'$ is the one induced from each $\prob_{\tup, j}$ while assigning $\probOf\pbox{\worldvec} = 0$ for any $\worldvec$ with $\worldvec_{\tup, j}, \worldvec_{\tup, j'} \geq 1$ for $j\neq j'$, we end up with a bijective mapping from $\bpd$ to $\bpd'$, such that each mapping is equivalent, implying the distributions are equivalent. -\Cref{subsec:supp-mat-ti-bi-def} has more details. +In this section, we show how the traditional possible worlds semantics corresponds to our setup. Readers can safely skip this part without missing anything vital to the results of this paper. + +Queries over probabilistic databases are traditionally viewed as being evaluated using the so-called possible world semantics. A general bag-\abbrPDB can be defined as the pair $\pdb = \inparen{\Omega, \bpd}$ where $\Omega$ is the set of possible worlds represented by $\pdb$ and $\bpd$ the probability distribution over $\Omega$. Under the possible world semantics, the result of a query $\query$ over an incomplete database $\Omega$ is the set of query answers produced by evaluating $\query$ over each possible world $\omega\in\Omega$: $\inset{\query\inparen{\omega}: \omega\in\Omega}$. +The result of a query is the pair $\inparen{\query\inparen{\Omega}, \bpd'}$ where $\bpd'$ is a probability distribution that assigns to each possible query result the sum of the probabilites of the worlds that produce this answer: $\probOf\pbox{\omega\in\Omega} = \sum_{\omega'\in\Omega,\\\query\inparen{\omega'}=\query\inparen{\omega}}\probOf\pbox{\omega'}$. -Recall \Cref{fig:nxDBSemantics} again, which defines the lineage polynomial $\apolyqdt$ for any $\raPlus$ query. We now make a meaningful connection between possible world semantics and world assignments on the lineage polynomial. +Suppose that $\pdb''$ is a reduced \abbrOneBIDB from \abbrCTIDB $\pdb'$ as defined by~\Cref{def:ctidb-reduct}. Instead of looking only at the possible worlds of $\pdb''$, one can consider the set of all worlds, including those that cannot exist due to, e.g., disjointness. Since $\abs{\tupset'} = \numvar$ the all worlds set can be modeled by $\worldvec\in \{0, 1\}^{\numvar\bound}$, such that $\worldvec_{\tup, j} \in \worldvec$ represents whether or not the multiplicity of $\tup$ is $j$ (\emph{here and later, especially in \Cref{sec:algo}, we will rename the variables as $X_1,\dots,X_{\numvar'}$, where $\numvar'=\sum_{\tup\in\tupset}\abs{\block_\tup}$}). +\footnote{ +In this example, $\abs{\block_\tup} = \bound$ for all $\tup$. +}%(where $k = \sum_{\ell = 1}^{i - 1} \abs{b_\ell} + j$). + We can denote a probability distribution over all $\worldvec \in \{0, 1\}^{\numvar\bound}$ as $\bpd''$. When $\bpd''$ is the one induced from each $\prob_{\tup, j}$ while assigning $\probOf\pbox{\worldvec} = 0$ for any $\worldvec$ with $\worldvec_{\tup, j}, \worldvec_{\tup, j'} \neq 0$ for $j\neq j'$, we end up with a bijective mapping from $\bpd$ to $\bpd''$, such that each mapping is equivalent, implying the distributions are equivalent, and thus query results. +\Cref{subsec:supp-mat-ti-bi-def} has more details. \medskip + + +We now make a meaningful connection between possible world semantics and world assignments on the lineage polynomial. \begin{Proposition}[Expectation of polynomials]\label{prop:expection-of-polynom} Given a \abbrBPDB $\pdb = (\Omega,\bpd)$, $\raPlus$ query $\query$, and lineage polynomial $\apolyqdt$ for arbitrary result tuple $\tup$, %$\semNX$-\abbrPDB $\pxdb = (\idb_{\semNX}',\pd')$ where $\rmod(\pxdb) = \pdb$, @@ -63,7 +66,7 @@ we have (denoting $\randDB$ as the random variable over $\Omega$): $ \expct_{\randDB \sim \bpd}[\query(\randDB)(t)] = \expct_{\vct{\randWorld}\sim \pdassign}\pbox{\apolyqdt\inparen{\vct{\randWorld}}}. $ \end{Proposition} \noindent A formal proof of \Cref{prop:expection-of-polynom} is given in \Cref{subsec:expectation-of-polynom-proof}.\footnote{Although \Cref{prop:expection-of-polynom} follows, e.g., as an obvious consequence of~\cite{IL84a}'s Theorem 7.1, we are unaware of any formal proof for bag-probabilistic databases.} -We focus on the problem of computing $\expct_{\worldvec\sim\pdassign}\pbox{\apolyqdt\inparen{\vct{\randWorld}}}$ from now on, assume implicit $\query, \tupset, \tup$, and drop them from $\apolyqdt$ (i.e., $\poly\inparen{\vct{X}}$ will denote a polynomial). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/prob-def.tex b/prob-def.tex index e07e516..f4afdd1 100644 --- a/prob-def.tex +++ b/prob-def.tex @@ -6,24 +6,26 @@ %We first formally define circuits, an encoding of polynomials that we use throughout the paper. % %For illustrative purposes consider the polynomial $\poly(\vct{X}) = 2X^2 + 3XY - 2Y^2$ over $\vct{X} = [X, Y]$. -\secrev{ -~\Cref{prob:intro-stmt} asks if there exists a linear time approximation algorithm in the size of a given circuit \circuit which encodes $\poly\inparen{\vct{X}}$. In this work we -} - represent lineage polynomials via {\em arithmetic circuits}~\cite{arith-complexity}, a standard way to represent polynomials over fields (particularly in the field of algebraic complexity) that we use for polynomials over $\mathbb N$ in the obvious way. Since we are particularly using circuits to model lineage polynomials, we can refer to these circuits as lineage circuits. However, when the meaning is clear, we will drop the term lineage and only refer to them as circuits. + +We focus on the problem of computing $\expct_{\worldvec\sim\pdassign}\pbox{\apolyqdt\inparen{\vct{\randWorld}}}$ from now on, assume implicit $\query, \tupset, \tup$, and drop them from $\apolyqdt$ (i.e., $\poly\inparen{\vct{X}}$ will denote a polynomial). + +\Cref{prob:intro-stmt} asks if there exists a linear time approximation algorithm in the size of a given circuit \circuit which encodes $\poly\inparen{\vct{X}}$. Recall that in this work we + + represent lineage polynomials via {\em arithmetic circuits}~\cite{arith-complexity}, a standard way to represent polynomials over fields (particularly in the field of algebraic complexity) that we use for polynomials over $\mathbb N$ in the obvious way. Since we are specifically using circuits to model lineage polynomials, we can refer to these circuits as lineage circuits. However, when the meaning is clear, we will drop the term lineage and only refer to them as circuits. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{Definition}[Circuit]\label{def:circuit} A circuit $\circuit$ is a Directed Acyclic Graph (DAG) whose source gates (in degree of $0$) consist of elements in either $\domN$ or $\vct{X} = \inparen{X_1,\ldots,X_\numvar}$. For each result tuple there exists one sink gate. The internal gates have binary input and are either sum ($\circplus$) or product ($\circmult$) gates. % -Each gate has the following members: \type, \vpartial, \vari{input}, \degval, \vari{Lweight}, and \vari{Rweight}, where \type is the value type $\{\circplus, \circmult, \var, \tnum\}$ and \vari{input} the list of inputs. Source gates have an extra member \val storing the value. $\circuit_\linput$ ($\circuit_\rinput$) denotes the left (right) input of \circuit. +Each gate has the following members: \type, \vari{input}, \val, \vpartial, \degval, \vari{Lweight}, and \vari{Rweight}, where \type is the value type $\{\circplus, \circmult, \var, \tnum\}$ and \vari{input} the list of inputs. Source gates have an extra member \val storing the value. $\circuit_\linput$ ($\circuit_\rinput$) denotes the left (right) input of \circuit. \end{Definition} -\AH{Does the following matter, i.e., does it point anything out special for our research? \textbf{EDIT}: ~\Cref{lem:val-ub} does use this (when \circuit is a tree) to answer~\Cref{prob:intro-stmt} with a yes.} +%\AH{Does the following matter, i.e., does it point anything out special for our research? \textbf{EDIT}: ~\Cref{lem:val-ub} does use this (when \circuit is a tree) to answer~\Cref{prob:intro-stmt} with a yes.} When the underlying DAG is a tree (with edges pointing towards the root), the structure is an expression tree \etree. In such a case, the root of \etree is analogous to the sink of \circuit. The fields \vari{partial}, \degval, \vari{Lweight}, and \vari{Rweight} are used in the proofs of \Cref{sec:proofs-approx-alg}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The circuits in \Cref{fig:two-step} encode their respective polynomials in column $\poly$. -Note that each circuit \circuit encodes a tree, with edges pointing towards the root. +Note that the ciricuit \circuit representing $AX$ and the circuit \circuit' representing $B\inparen{Y+Z}$ each encode a tree, with edges pointing towards the root. \begin{wrapfigure}{l}{0.45\linewidth} @@ -64,7 +66,7 @@ Note that each circuit \circuit encodes a tree, with edges pointing towards the %\end{figure} We next formally define the relationship of circuits with polynomials. While the definition assumes one sink for notational convenience, it easily generalizes to the multiple sinks case. \begin{Definition}[$\polyf(\cdot)$]\label{def:poly-func} -Denote $\polyf(\circuit)$ to be the function from the sink of circuit $\circuit$ to its corresponding polynomial (in \abbrSMB). $\polyf(\cdot)$ is recursively defined on $\circuit$ as follows, with addition and multiplication following the standard interpretation for polynomials: +$\polyf(\circuit)$ maps the sink of circuit $\circuit$ to its corresponding polynomial (in \abbrSMB). $\polyf(\cdot)$ is recursively defined on $\circuit$ as follows, with addition and multiplication following the standard interpretation for polynomials: \begin{equation*} \polyf(\circuit) = \begin{cases} \polyf(\circuit_\lchild) + \polyf(\circuit_\rchild) &\text{ if \circuit.\type } = \circplus\\ diff --git a/ra-to-poly.tex b/ra-to-poly.tex index 1fca8db..1fae8f1 100644 --- a/ra-to-poly.tex +++ b/ra-to-poly.tex @@ -7,19 +7,18 @@ %We now introduce some terminology %and develop a reduced form of lineage polynomials for a \abbrBIDB or \abbrTIDB. %Note that -\secrev{ Given an index set $S$ over variables $X_\tup$ for $\tup\in S$, a (general) polynomial $\genpoly$ over $\inparen{X_\tup}_{\tup \in S}$ with individual degree $\hideg <\infty$ -is formally defined as (where $c_{\vct{d}}\in \semN$): -\begin{equation} +is formally defined as: +\begin{align} \label{eq:sop-form} -\genpoly\inparen{\inparen{X_\tup}_{\tup\in S}}=\sum_{\vct{d}\in\{0,\ldots,\hideg\}^{S}} c_{\vct{d}}\cdot \prod_{\tup\in S}X_\tup^{d_\tup}. -\end{equation} -} +\genpoly\inparen{\inparen{X_\tup}_{\tup\in S}}=\sum_{\vct{d}\in\{0,\ldots,\hideg\}^{S}} c_{\vct{d}}\cdot \prod_{\tup\in S}X_\tup^{d_\tup}&&\text{ where } c_{\vct{d}}\in \semN. +\end{align} + %where $c_{\vct{d}}\in \semN$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{Definition}[Standard Monomial Basis]\label{def:smb} -\secrev{The term $\prod_{\tup\in S} X_\tup^{d_\tup}$ }in \Cref{eq:sop-form} is a {\em monomial}. A polynomial $\genpoly\inparen{\vct{X}}$ is in standard monomial basis (\abbrSMB) when we keep only the terms with $c_{\vct{d}}\ne 0$ from \Cref{eq:sop-form}. +The term $\prod_{\tup\in S} X_\tup^{d_\tup}$ in \Cref{eq:sop-form} is a {\em monomial}. A polynomial $\genpoly\inparen{\vct{X}}$ is in standard monomial basis (\abbrSMB) when we keep only the terms with $c_{\vct{d}}\ne 0$ from \Cref{eq:sop-form}. \end{Definition} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Unless othewise noted, we consider all polynomials to be in \abbrSMB representation. @@ -27,20 +26,19 @@ When it is unclear, we use $\smbOf{\genpoly}~\inparen{\smbOf{\poly}}$ to denote %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{Definition}[Degree]\label{def:degree-of-poly} -The degree of polynomial $\genpoly(\vct{X})$ is the largest \secrev{$\sum_{i\in\pbox{\numedge}}d_i %= \norm{\vct{d}}_1 -$}% = \sum_{\tup\in\tupset} d_\tup$ - such that $c_{(d_1,\dots,d_n)}\ne 0$. \secrev{ +The degree of polynomial $\genpoly(\vct{X})$ is the largest $\sum_{i\in\pbox{\numedge}}d_i %= \norm{\vct{d}}_1 +$% = \sum_{\tup\in\tupset} d_\tup$ + such that $c_{(d_1,\dots,d_n)}\ne 0$. We denote the degree of $\genpoly$ as $\deg\inparen{\genpoly}$. - }% maximum sum of exponents, over all monomials in $\smbOf{\poly(\vct{X})}$. + % maximum sum of exponents, over all monomials in $\smbOf{\poly(\vct{X})}$. \end{Definition} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% As an example, the degree of the polynomial $X^2+2XY^2+Y^2$ is $3$. Product terms in lineage arise only from join operations (\Cref{fig:nxDBSemantics}), so intuitively, the degree of a lineage polynomial is analogous to the largest number of joins needed to produce a result tuple. %in any clause of the $\raPlus$ query that created it. -\secrev{ + We call a polynomial $\poly\inparen{\vct{X}}$ a \emph{\abbrCTIDB-lineage polynomial} (%resp., \emph{\ti-lineage polynomial}, or simply lineage polynomial), if it is clear from context that there exists an $\raPlus$ query $\query$, \abbrCTIDB $\pdb$, and result tuple $\tup$ such that $\poly\inparen{\vct{X}} = \apolyqdt\inparen{\vct{X}}.$ -} @@ -51,7 +49,7 @@ or simply lineage polynomial), if it is clear from context that there exists an %\noindent\secrev{ %A block independent database \abbrBIDB $\pdb'$ is the union of $\numblock$ sets of tuples, where each set of tuples consists of elements all of which are disjoint to one another. Each set of tuples is called a block, denoted $\block_i$ for $i\in\pbox{\numblock}$, where all $\block_i$ are independent events. We define next a specific construction of \abbrBIDB that is useful for our work.} -\noindent \secrev{A block independent database \abbrBIDB $\pdb'$ models a set of worlds each of which consists of a subset of the possible tuples $\tupset'$, where $\tupset'$ is partitioned into $\numblock$ blocks $\block_i$ and all $\block_i$ are independent random events. $\pdb'$ further constrains that all $\tup\in\block_i$ for all $i\in\pbox{\numblock}$ of $\tupset'$ be disjoint events. We define next a specific construction of \abbrBIDB that is useful for our work. +\noindent A block independent database \abbrBIDB $\pdb'$ models a set of worlds each of which consists of a subset of the possible tuples $\tupset'$, where $\tupset'$ is partitioned into $\numblock$ blocks $\block_i$ and all $\block_i$ are independent random events. $\pdb'$ further constrains that all $\tup\in\block_i$ for all $i\in\pbox{\numblock}$ of $\tupset'$ be disjoint events. We define next a specific construction of \abbrBIDB that is useful for our work. %\secrev{ %A block independent database \abbrBIDB $\pdb'$ can viewed as a $1$-\abbrTIDB $\pdb$ with the added flexibility that each $\tup\in\tupset$ has multiple disjoint alternatives, i.e., all $\tup \in \tupset'$ are partitioned into $m$ independent blocks with the condition that tuples $\tup \in \block_i$ for $i \in \pbox{m}$ are disjoint events. We define next a specific construction of \abbrBIDB that is useful for our work. @@ -80,13 +78,42 @@ Given \abbrCTIDB $\pdb = \inparen{\worlds, \bpd}$, let $\pdb' = \inparen{\onebid %$\tup_j\geq1\implies \tup_{j'} = 0$.$\forall j, j' \in \pbox{\bound},\forall \tup\in\tupset, \tup_j\geq 1\implies \tup_{j'} = 0$ for any block $\block_\tup$. \end{Proposition} -For the \abbrCTIDB $\pdb$, each $X_\tup\in\pbox{\bound}$, while in the reduced \abbrOneBIDB $\pdb'$, each $X_{\tup, j}\in\inset{0, 1}$. %As previously noted, unlike $X_{\tup}\in\inset{0,\ldots,\bound}$ for $X_{\tup}\in\vars{\pdb}$, $X_{\tup, j}\in\inset{0,1}$ for $X_{\tup, j}\in\vars{\pdb'}$. -Hence, in the setting of \abbrOneBIDB, we have the following semantics for generating lineage polynomials in $\raPlus$ queries: $\poly'\pbox{\project_A\inparen{\query}, \tupset', \tup_j} = \sum_{\tup_{j'} \in \project_{A}\inparen{\query\inparen{\tupset'}}: \tup_{j'} = \tup_j}\poly'\pbox{\query, \tupset', \tup_{j'}}$, -$\poly'\pbox{\select_\theta\inparen{\query}, \tupset', \tup_j} = \begin{cases}\theta = 1&\poly'\pbox{\query, \tupset', \tup_j}\\\theta = 0& 0\\\end{cases}$, -$\poly'\pbox{\query_1\join\query_2, \tupset', \tup_j} = \poly'\pbox{\query_1, \tupset', \project_{attr\inparen{\query_1}}\inparen{\tup_j}}\cdot\poly'\pbox{\query_2, \tupset', \project_{attr\inparen{\query_2}}\inparen{\tup_j}}$, -$\poly'\pbox{\query_1\union\query_2, \tupset', \tup_j} = \poly'\pbox{\query_1, \tupset', \tup_j}+\poly'\pbox{\query_2, \tupset', \tup_j}$, -and the base case now becomes $\poly'\pbox{\rel,\tupset', \tup_j} = j\cdot X_{\tup, j}$ (c.f.~\Cref{fig:nxDBSemantics}). Then given the disjoint requirement and the semantics for constructing the lineage polynomial over a \abbrOneBIDB, $\poly'\pbox{\rel,\tupset',\tup}$ is of the same structure as the reformulated polynomial $\refpoly{}$ of step i) from~\Cref{def:reduced-poly}, which then implies that $\rpoly'$ is the reduced polynomial that results from step ii) of~\Cref{def:reduced-poly}, and further that~\Cref{lem:tidb-reduce-poly} immediately follows for \abbrOneBIDB polynomials: $\expct_{\rvworld\sim\bpd'}\pbox{\poly'\inparen{\rvworld}} = \rpoly'\inparen{\vct{\prob}}$. -} +For $\poly\inparen{\vct{X}}$ generated from \abbrCTIDB $\pdb$, each $X_\tup\in\pbox{\bound}$, while, given $\poly'\inparen{\vct{X}}$ produced from the reduced \abbrOneBIDB $\pdb'$, each $X_{\tup, j}\in\inset{0, 1}$. %As previously noted, unlike $X_{\tup}\in\inset{0,\ldots,\bound}$ for $X_{\tup}\in\vars{\pdb}$, $X_{\tup, j}\in\inset{0,1}$ for $X_{\tup, j}\in\vars{\pdb'}$. +Hence, in the setting of \abbrOneBIDB, we have the following semantics for generating lineage polynomials in $\raPlus$ queries shown in~\Cref{fig:lin-poly-bidb-redux}. Note that the semantics for lineage polynomial construction only changes for the base case. + +We now define the reduced polynomial $\rpoly'$ of a \abbrOneBIDB. +\begin{figure}[t!] +\centering +\resizebox{\textwidth}{!}{ +\begin{minipage}{\textwidth} + \begin{align*} + \poly'\pbox{\project_A\inparen{\query}, \tupset', \tup_j} =& \sum_{\substack{\tup_{j'},\\\project_{A}\inparen{\tup_{j'}} = \tup_j}}\poly'\pbox{\query, \tupset', \tup_{j'}} & + \poly'\pbox{\query_1\union\query_2, \tupset', \tup_j} =& \poly'\pbox{\query_1, \tupset', \tup_j}+\poly'\pbox{\query_2, \tupset', \tup_j}\\ +\poly'\pbox{\select_\theta\inparen{\query}, \tupset', \tup_j} =& \begin{cases}\theta = 1&\poly'\pbox{\query, \tupset', \tup_j}\\\theta = 0& 0\\\end{cases} & + \begin{aligned} + \poly'\pbox{\query_1\join\query_2, \tupset', \tup_j} = \\~ + \end{aligned} & + \begin{aligned} + &\poly'\pbox{\query_1, \tupset', \project_{attr\inparen{\query_1}}\inparen{\tup_j}}\\ &~~~\cdot\poly'\pbox{\query_2, \tupset', \project_{attr\inparen{\query_2}}\inparen{\tup_j}} + \end{aligned}\\ + &&&\poly'\pbox{\rel,\tupset', \tup_j} = j\cdot X_{\tup, j}. + \end{align*}\\[-10mm] +\end{minipage}} + \caption{Construction of the lineage (polynomial) for an $\raPlus$ query $\query$ over $\gentupset$.} + \label{fig:lin-poly-bidb-redux} +\end{figure} +\begin{Definition}[$\rpoly'$]\label{def:reduced-poly-redux} +Given a polynomial $\poly'\inparen{\vct{X}}$ generated from a \abbrOneBIDB produced from the reduction of~\Cref{def:ctidb-reduct} and let $\rpoly'\inparen{\vct{X}}$ denote the reduced form of $\poly'\inparen{\vct{X}}$ computed as follows: i) compute $\smbOf{\poly'\inparen{\vct{X}}}$, ii) reduce all \emph{variable} exponents $e > 1$ to $1$. +\end{Definition} +Then given the disjoint requirement and the semantics for constructing the lineage polynomial over a \abbrOneBIDB, $\poly'\pbox{\rel,\tupset',\tup}$ is of the same structure as the reformulated polynomial $\refpoly{}$ of step i) from~\Cref{def:reduced-poly}, which then implies that $\rpoly'$ is the reduced polynomial that results from step ii) of~\Cref{def:reduced-poly}, and further that~\Cref{lem:tidb-reduce-poly} immediately follows for \abbrOneBIDB polynomials. +\begin{Lemma} +Given any \abbrCTIDB $\pdb$, its reduced counterpart \emph{\abbrOneBIDB} $\pdb'$, $\raPlus$ query $\query$, and lineage polynomial + $\poly'\inparen{\vct{X}}=\poly'\pbox{\query,\tupset,\tup}\inparen{\vct{X}}$, it holds that $ + \expct_{\vct{W} \sim \pdassign'}\pbox{\poly'\inparen{\vct{W}}} = \rpoly'\inparen{\probAllTup}. +$%, where $\probAllTup = \inparen{\inparen{\prob_{\tup, j}}_{\tup\in\tupset, j\in\pbox{c}}}.$%,\ldots,\prob_{\abs{\tupset}, \bound}}$ is defined by $\bpd$. +%$\expct_{\rvworld\sim\bpd'}\pbox{\poly'\inparen{\rvworld}} = \rpoly'\inparen{\vct{\prob}}$. +\end{Lemma} + %In this paper, we focus on two popular forms of \abbrPDB\xplural: Block-Independent (\bi) and Tuple-Independent (\ti) \abbrPDB\xplural. %% %A \bi $\pdb$ is a \abbrPDB with the constraint that diff --git a/two-step-model.tex b/two-step-model.tex index 98a4ab9..56b3a51 100644 --- a/two-step-model.tex +++ b/two-step-model.tex @@ -7,7 +7,7 @@ \renewcommand{\belowrulesep}{0pt} -\begin{figure}[h!] +\begin{figure}[t!] \centering \resizebox{\textwidth}{5.2cm}{% \begin{tikzpicture} @@ -119,14 +119,14 @@ Point & $\mathbb{E}[\poly(\vct{X})]$\\ \midrule%[0.05pt] $e_1$ & $\inparen{\prob_{A, 1} +\prob_{A, 2}}\cdot\left(\prob_{X, 1} + 2\prob_{X, 2}\right)$\\%$1.0 \cdot 0.9 = 0.9$\\[3mm] - $e_2$ & $\inparen{\prob_{B, 1} + \prob_{B_2}}\inparen{\prob_{Y, 1}+\prob_{Y, 2} + \prob_{Z, 1} + \prob_{Z, 2}}$\\%$(0.5 \cdot 1.0) + $\newline $\hspace{0.2cm}(0.5 \cdot 1.0)$\newline $= 1.0$\\ + $e_2$ & $\inparen{\prob_{B, 1} + \prob_{B_2}}\inparen{\prob_{Y, 1}+2\prob_{Y, 2} + \prob_{Z, 1} + 2\prob_{Z, 2}}$\\%$(0.5 \cdot 1.0) + $\newline $\hspace{0.2cm}(0.5 \cdot 1.0)$\newline $= 1.0$\\ \end{tabular} }; %label of rounded rectangle \node[below=0.2cm of rrect]{{\LARGE $\expct\pbox{\poly(\vct{X})}$}}; \end{tikzpicture} } - \caption{Intensional Query Evaluation Model $\inparen{\query_2 = \project_{\text{Point}}\inparen{T\join_{\text{Point} = \text{Point}_1}R} \text{ and }c = 2}$.} + \caption{Intensional Query Evaluation Model $(\query_2 = \project_{\text{Point}}$ $\inparen{T\join_{\text{Point} = \text{Point}_1}R}$ where, for table $R,~\bound = 2$, while for $T,~\bound = 1.)$} \label{fig:two-step} \end{figure}