Re: Algebra relazionale (1 di 2): considerazioni generali

#11888
Up
0
Down
::

Ciao a tutti,
stavo pensando a come si potrebbero scrivere in LaTeX delle espressioni in algebra relazionale, un linguaggio di interrogazione procedurale e ad alto livello per le basi di dati.

Il mio primo punto di partenza è una raccolta di esercizi scritta un po’ di tempo fa da uno dei miei professori, reperibile all’indirizzo <http://www.dimi.uniud.it/montana/exercise/Libro_AR.ps> [155 KiB].

`\documentclass{article}

\usepackage{amsmath}

\begin{document}

Sia $R1$ definita sugli attributi $A, B$ e $C$ ($R1(A, B, C)$); la relazione
$R2$ \`e data da:

\[
R2 \leftarrow \text{\LARGE{$\pi$}}_{B} (\text{\LARGE{$\sigma$}}_{C > 5} (R1))
\]

\end{document}`

Ci terrei a sapere come scrivereste voi il tutto, tenendo conto di questi tre casi.

Le variabili indicate con parole vanno composte in carattere corsivo non matematico. I simboli \pi e \sigma ingranditi sono, francamente, orrendi. Ti riporto il modo “corretto” di scrivere l’esempio in uno dei documenti pdf che citi
`\newcommand{\var}[2][]{\text{\itshape#2}#1}
\noindent
$\var[1]{temp} \leftarrow (\var{customer} \times \var{account}) $ \\
$\var[2]{temp} \leftarrow \sigma_{\var{customer.sin} = \var{account.sin}}(\var[1]{temp})$ \\
$\var{basic-cust-accts} \leftarrow \Pi_{(\var{name}, \var{customer.sin}, \var{account-number})}(\var[2]{temp})$`
Il comando definito \var ha un argomento opzionale perché, a mio parere, i numeri vanno in carattere diritto. Occorre caricare amsmath.

Il tuo esempio diventerebbe
`R2 \leftarrow \Pi_{B} (\sigma_{C > 5} (R1))`
Quanto all’andare a capo nei pedici, la troverei una soluzione poco adatta, se non c’è altro di meglio. Con amsmath puoi usare l’ambiente subarray
`\Pi_{\begin{subarray}{l}(\var{name}, \var{customer.sin},\\ \var{account-number})\end{subarray}}`
Ciao
Enrico

Go to top