Older
LaTeX / relalg.sty
nstanger on 4 Mar 2004 2 KB - Added relational algebra package.
\NeedsTeXFormat{LaTeX2e}[2001/06/01]
\ProvidesPackage{relalg}[2002/07/29 Relational algebra notation]

\RequirePackage{latexsym}
\RequirePackage{graphics}
% Graphics is needed so that we can scale the size of a couple of operators.

% BASIC OPERATORS

% select or restrict operator
\newcommand{\Select}{\ensuremath{\sigma}}
\newcommand{\Restrict}{\ensuremath{\sigma}}

% project operator
\newcommand{\Project}{\ensuremath{\pi}}

% set union operator
\newcommand{\Union}{\ensuremath{\cup}}

% set difference operator
\newcommand{\Difference}{\ensuremath{-}}

% cartesian product operator
\newcommand{\Product}{\ensuremath{\times}}

% rename operator
\newcommand{\Rename}{\ensuremath{\rho}}

% set intersection operator
\newcommand{\Intersection}{\ensuremath{\cap}}
\newcommand{\Intersect}{\ensuremath{\cap}}

% natural join operator
\newcommand{\NaturalJoin}{\ensuremath{\Join}}
\newcommand{\NatJoin}{\ensuremath{\Join}}
\newcommand{\NJoin}{\ensuremath{\Join}}

% division operators
\newcommand{\Divide}{\ensuremath{/}}
\newcommand{\AltDivide}{\ensuremath{\div}}

% assignment operator
\newcommand{\Assign}{\ensuremath{\leftarrow}}

% EXTENDED OPERATORS

% aggregate functions
\newcommand{\Sum}[1]{\ensuremath{\mathcal{G}_{\mathbf{\mathrm{sum}}(#1)}}}
\newcommand{\Avg}[1]{\ensuremath{\mathcal{G}_{\mathbf{\mathrm{avg}}(#1)}}}
\newcommand{\Min}[1]{\ensuremath{\mathcal{G}_{\mathbf{\mathrm{min}}(#1)}}}
\newcommand{\Max}[1]{\ensuremath{\mathcal{G}_{\mathbf{\mathrm{max}}(#1)}}}
\newcommand{\Count}[1]{\ensuremath{\mathcal{G}_{\mathbf{\mathrm{count}}(#1)}}}

% outer join operators
% Note: can't use \ensuremath in these because it screws up the spacing.
% The $are OK though because they're used inside hboxes anyway. \newcommand{\LeftOuterJoin}{\scalebox{0.5}[1]{$\sqsupset$}\mkern-2.5mu\lower0.1em\hbox{$\Join$}} \newcommand{\LOuterJoin}{\LeftOuterJoin} \newcommand{\LeftOuter}{\LeftOuterJoin} \newcommand{\LOJ}{\LeftOuterJoin} \newcommand{\RightOuterJoin}{\lower0.1em\hbox{$\Join$}\mkern-2.5mu\scalebox{0.5}[1]{$\sqsubset$}} \newcommand{\ROuterJoin}{\RightOuterJoin} \newcommand{\RightOuter}{\RightOuterJoin} \newcommand{\ROJ}{\RightOuterJoin} \newcommand{\FullOuterJoin}{\scalebox{0.5}[1]{$\sqsupset$}\mkern-2.5mu\lower0.1em\hbox{$\Join$}\mkern-2.5mu\scalebox{0.5}[1]{$\sqsubset\$}}
\newcommand{\FOuterJoin}{\FullOuterJoin}
\newcommand{\FullOuter}{\FullOuterJoin}
\newcommand{\FOJ}{\FullOuterJoin}

% MISCELLANEOUS

% logical operators
\newcommand{\And}{\ensuremath{\wedge}}
\newcommand{\Or}{\ensuremath{\vee}}
\newcommand{\Not}{\ensuremath{\neg}}

\endinput