diff --git a/APCCM2017_Stanger.tex b/APCCM2017_Stanger.tex index 749b24b..8fee155 100644 --- a/APCCM2017_Stanger.tex +++ b/APCCM2017_Stanger.tex @@ -712,28 +712,7 @@ \noindent The SIG for \(\SC{1}\) will not just be that for relvar \(S\) (see Figure~\ref{fig-sig-s-alone}), as that schema did not incorporate all the constraints implicit in \(\SC{0}\). The process for constructing the SIG will be similar to that for the earlier example, however. The constraints appearing in \(\SC{1}\) are \Constraint{\ref{constraint-key}}(a), \Constraint[\SC{1}]{\ref{constraint-key}}(b), \Constraint[\SC{1}]{\ref{constraint-key}}(c), \Constraint[\SC{1}]{\ref{constraint-union}}--\Constraint[\SC{1}]{\ref{constraint-tuple-types}}, and \Constraint{\ref{constraint-implied-types-london}}--\Constraint{\ref{constraint-implied-types-TSSNL}}. -The SIG will include all of the edges that appear in Figure~\ref{fig-sig-s-alone}. \(\T{S} \SurTotal \TT{S}\) implies \(\T{\LSsub} \SurTotal \TT{\LSsub}\) and \(\T{\NLSsub} \SurTotal \TT{\NLSsub}\). Constraints \Constraint{\ref{constraint-implied-types-london}}--\Constraint{\ref{constraint-implied-types-TSSNL}} imply the existence of several subtype nodes, plus corresponding selection and projection edges: -% \begin{itemize} -% -% \item \(\TT{\LSsub} \ProjectionEdge \T{\Sno}\) and \(\TT{\NLSsub} \ProjectionEdge \T{\Sno}\) -% -% \item \(\TT{\LSsub} \ProjectionEdge \TSSL\) -% -% \item \(\TT{\NLSsub} \ProjectionEdge \TSSNL\) -% -% \item \(\TSSL \ProjectionEdge \T{\Sname}\) -% -% \item \(\TSSL \ProjectionEdge \T{\Status}\) -% -% \item \(\TSSL \ProjectionEdge\,\CityLondon\) -% -% \item \(\TSSNL \ProjectionEdge \T{\Sname}\) -% -% \item \(\TSSNL \ProjectionEdge \T{\Status}\) -% -% \item \(\TSSNL \ProjectionEdge \T{\City} \setminus \CityLondon\) -% -% \end{itemize} +The SIG will include all of the edges that appear in Figure~\ref{fig-sig-s-alone}. The constraints within the schema imply the existence of several subtype nodes (e.g., the two subtypes of \(\T{City}\) implied by \Constraint{\ref{constraint-implied-types-london}} and \Constraint{\ref{constraint-implied-types-nonlondon}}), along with corresponding selection and projection edges, which are listed in Table~\ref{Tab.SIG.Implied.Edges}. \Constraint[\SC{1}]{\ref{constraint-union}}, \Constraint[\SC{1}]{\ref{constraint-relation-type-union}}(a), and \Constraint[\SC{1}]{\ref{constraint-relation-type-union}}(b) are effectively tautologies that add no new information, and can thus be safely ignored. The completed SIG for \(\SC{1}\) is shown in Figure~\ref{fig-sig-s}. \begin{table*} \centering @@ -742,13 +721,11 @@ \textbf{Constraint} & \textbf{Implied edge(s)} \\ \midrule {\Constraint[\SC{1}]{\ref{constraint-key}}}(b) & \(\T{\Sno} \KeyEdge \TSSL\) \\ - {\Constraint[\SC{1}]{\ref{constraint-key}}}(c) & \(\T{\Sno} \KeyEdge \TSSNL\) \\ + \phantom{\Constraint[\SC{1}]{\ref{constraint-key}}}(c) & \(\T{\Sno} \KeyEdge \TSSNL\) \\ \midrule - {\Constraint[\SC{1}]{\ref{constraint-relation-types}}} & \(\T{S} \SelectionEdge \T{\LSsub}\) \\ - & \(\TT{S} \SelectionEdge \TT{\LSsub}\) \\ + {\Constraint[\SC{1}]{\ref{constraint-relation-types}}} & \(\T{\LSsub} \SurTotal \TT{\LSsub}\) \quad\quad \(\T{S} \SelectionEdge \T{\LSsub}\) \quad\quad \(\TT{S} \SelectionEdge \TT{\LSsub}\) \\ \midrule - {\Constraint[\SC{1}]{\ref{constraint-tuple-types}}} & \(\T{S} \SelectionEdge \T{\NLSsub}\) \\ - & \(\TT{S} \SelectionEdge \TT{\NLSsub}\) \\ + {\Constraint[\SC{1}]{\ref{constraint-tuple-types}}} & \(\T{\NLSsub} \SurTotal \TT{\NLSsub}\) \quad\quad \(\T{S} \SelectionEdge \T{\NLSsub}\) \quad\quad \(\TT{S} \SelectionEdge \TT{\NLSsub}\) \\ \midrule {\Constraint{\ref{constraint-implied-types-london}}} & \(\T{\City} \SelectionEdge \CityLondon\) \\ \midrule @@ -767,39 +744,10 @@ & \(\TSSNL \ProjectionEdge \TCityMinusLondon\) \\ \bottomrule \end{tabular} - \caption{CAPTION.} + \caption{Constraints and the SIG edges they imply for schema \(\SC{1}\).} \label{Tab.SIG.Implied.Edges} \end{table*} -% \Constraint[\SC{1}]{\ref{constraint-key}}(b) and \Constraint[\SC{1}]{\ref{constraint-key}}(c) imply two additional key edges: -% \begin{itemize} -% -% \item \(\T{\Sno} \KeyEdge \TSSL\) -% -% \item \(\T{\Sno} \KeyEdge \TSSNL\) -% -% \end{itemize} - -\Constraint[\SC{1}]{\ref{constraint-relation-type-union}}(a) implies node \(\TLSPlusNLSsub\) to represent \(\T{\LSsub} \RelUnion \T{\NLSsub}\). However, this node would be identical to \(\T{S}\), so we can ignore \Constraint[\SC{1}]{\ref{constraint-relation-type-union}}(a) and just continue to use \(\T{S}\). A similar argument applies for \Constraint[\SC{1}]{\ref{constraint-relation-type-union}}(b) and \(\TT{S}\). - -% \Constraint[\SC{1}]{\ref{constraint-relation-types}}--\Constraint[\SC{1}]{\ref{constraint-implied-types-TSSNL}} imply the following selection edges: -% \begin{itemize} -% -% \item \(\T{S} \SelectionEdge \T{\LSsub}\) and \(\TT{S} \SelectionEdge \TT{\LSsub}\) -% -% \item \(\T{S} \SelectionEdge \T{\NLSsub}\) and \(\TT{S} \SelectionEdge \TT{\NLSsub}\) -% -% \item \(\T{\City} \SelectionEdge\,\CityLondon\) -% -% \item \(\T{\City} \SelectionEdge\,(\TCityMinusLondon)\) -% -% \item \(\TSSC \SelectionEdge\) \(\TSSL\) -% -% \item \(\TSSC \SelectionEdge \T{\Sname} \times \T{\Status} \times \T{\City} \setminus \CityLondon\) -% -% \end{itemize} -The complete SIG for \(\SC{1}\) is shown in Figure~\ref{fig-sig-s}. - %%%%%%%%%%%%%%%%%%%% \begin{figure*}