Ciao Lorenzo, grazie per il tuo interessamento al mio problema.
come si fa a mandare a capo il testo contenuto nel «pedice» di una formula matematica? O meglio ancora: è corretto o no fare quello che propongo di fare sopra?
Secondo me non è corretto. Un esponente o un pedice molto lunghi diventano poco leggibili.
Tra ieri e oggi ho consultato un testo molto autorevole in merito alle basi di dati, ovvero Ramez A. Elmasri, Shamkant B. Navathe, Sistemi di basi di dati. Fondamenti, Pearson Education Italia, 2004, 88-7192-220-4; ci ho riflettuto un po’ su, ho pensato anche a quello che hai scritto tu e sono arrivato alle seguenti conclusioni:
-
probabilmente non è corretto mandare a capo il testo del pedice; se fosse stato tipograficamente accettabile, LaTeX avrebbe già messo a disposizione un sistema per farlo; pertanto, direi che un buon compromesso potrebbe essere suddividere un’interrogazione in più espressioni (un’operazione per espressione), in modo tale da snellire la scrittura; inoltre, il testo sopracitato si comporta esattamente così (non manda mai a capo ciò che compare nel pedice e suddivide un’interrogazione in più espressioni);
-
in merito al fatto che non si dovrebbero avere pedici troppo lunghi per una questione di leggibilità, sono d’accordo solo in parte: non entro in campo nella matematica in generale, dove avrai sicuramente ragione, ma nell’algebra relazionale non è raro trovare una condizione costituita da una sequenza di più condizioni atomiche, concatenate dagli operatori «AND», «OR», eccetera, e le condizioni vanno sempre a finire nel pedice.
Fra l’altro, non credo sia giusto chiamare una variabile “codiceFiscale” e usarla in modo matematico: meglio $\text{CodiceFisicale}$.
Questo problema, per chi non l’avesse letto, era il secondo punto della discussione precedente, <http://guit.sssup.it/phpbb/viewtopic.php?t=2187>:
… può darsi, talvolta, che i nomi delle relazioni e degli attributi coinvolti non siano tipici nomi da insiemi, come «A» o «B», ma nomi comuni, come «GIOCATORE» e «nomeAutore»; pertanto, mi farebbe piacere sapere se qualcuno la pensa come me e quindi li inserirebbe come testi all’interno delle formule (es. «\[ … \text{nomeAutore} … \]») oppure se andrebbero inseriti direttamente all’interno di un ambiente matematico (es. «\[ … nomeAutore … \]») …
La vediamo allo stesso modo. Mi fa piacere 🙂
Premesso che non so niente dell’algebra relazionale e delle sue convenzioni …
Le uniche nozioni necessarie per capire a che cosa mi sto riferendo in queste due discussioni, sono le poche righe che ti scrivo di seguito.
L’algebra relazionale è un linguaggio di interrogazione procedurale e ad alto livello per basi di dati. Esso si basa sui costrutti del modello relazionale, ovvero la relazione (o tabella), gli attributi (le «intestazioni» delle colonne) e le tuple (o righe, o record). «Linguaggio di interrogazione» vuol dire che sulle tabelle che hai a disposizione devi farci qualche lavoretto sopra, in modo da «ritagliare» parte dell’informazione (quella che ti serve), «procedurale» vuol dire che devi specificare la sequenza di passi necessaria per definire tale interrogazione e «ad alto livello» vuol dire che si tratta di qualcosa di formale, di ben definito, e che nessuna applicazione per computer implementa direttamente tale linguaggio; semmai vengono implementati dei linguaggi che hanno qualche cosa in comune con questo ma sono più «concreti», come l’SQL.
In realtà, algebra relazionale e SQL non sono esattamente la stessa cosa (tra il primo e il secondo ci sta in mezzo, come minimo, il calcolo relazionale su tuple con dichiarazioni di range, ma questa è un’altra storia), in quanto l’SQL non è procedurale, ma dichiarativo, cioè non è tanto importante specificare la sequenza di passi necessaria a reperire l’informazione, quanto le caratteristiche che l’informazione stessa deve avere per comparire o meno nel risultato dell’interrogazione.
… me la caverei cambiando notazione:
1. dai alle variabili nomi brevi (Sia $c$ il Codice Fisicale, …) e usa quelli;
Questo di norma non si fa per leggibilità; infatti, quando si ha a che fare con uno schema relazionale come LIBRO(Autore, Titolo, Anno, Prezzo), si intende riassumere un insieme di istanze di questo tipo:
`LIBRO <-- nome della relazione
attributo
______/\______
/ \
+------------------------------------------------------+
| Autore | Titolo | Anno | Prezzo |
+------------------------------------------------------+
| Anthony Burgess | Time for a Tiger | 1962 | 19,52 | <-- tupla
| Charles Dickens | Oliver Twist | 1838 | 10,00 |
| ... | ... | ... | ... |
+------------------------------------------------------+
`
se si usassero dei nomi brevi per gli attributi, si potrebbe arrivare a una situazione di questo tipo: in questo caso, non essendoci nomi ben definiti, uno potrebbe cercare di capire a che cosa si riferiscano le abbreviazioni solo guardando il contesto (per esempio, si può «intuire» che «p» rappresenti il prezzo)...
`+------------------------------------------------------+
| a1 | t | a2 | p |
+------------------------------------------------------+
| Charles Dickens | Oliver Twist | 1838 | 10,00 |
+------------------------------------------------------+
`
... ma non senza ambiguità; se provi ad immaginare la relazione che vedi qui sopra come all'esito di una ricerca fatta presso un sito che vende libri online, se uno non si intende di letteratura, potrebbe non capire quale sia l'autore e quale il titolo («a1» o «t»?). È anche vero che uno potrebbe inserire una legenda, ma questo, di norma, non si fa, in quanto si ritiene che «ad occhio» si legga meglio con i nomi di attributi «estesi». È una convenzione.
2. non mettere le variabili come pedici, ma come argomento di una funzione.
In questo linguaggio non compaiono funzioni, in quanto la Prima Forma Normale impone una struttura «piatta»; per quanto concerne le condizioni delle operazioni, queste devono finire nel pedice, si tratta di un’altra convenzione, confermata anche nel libro.
P.S. Hai cercato su sarovar se per caso esistono pacchetti specifici per la tua disciplina?
Sinceramente non sapevo neppure che cosa fosse Sarovar prima di oggi; ho notato che compare in parecchi messaggi del forum e quindi vedrò di capire bene la sua utilità. No, per ora avevo provato solo su Google, con il quale avevo trovato solo quel file di esempio, e visto che dopo quattro pagine non era saltato fuori niente di rilevante, non ho neanche provato presso il CTAN.
Grazie e a presto.
Saluti.