Cartesian decomposition in data analysis
Pavel G. Emelyanov, Denis K. Ponomaryov · 2017
We consider the Cartesian decomposition of relational data sets, i.e. the problem of finding two or several data sets such that their unordered Cartesian product equals the source set. In terms of relational databases, this means reversing the SQL CROSS JOIN operator. We describe a polytime algorithm for computing a Cartesian decomposition based on factorization of boolean polynomials. We provide an implementation of the algorithm in Transact SQL and discuss some generalizations of the Cartesian decomposition.