Pieno utilizzo del database

Integrità referenziale e chiavi esterne

Tutte le tabelle sono collegate attraverso integrità referenziali (foreign keys).
In questo modo l’integrità dei dati è garantita dal database stesso, garantendo la più affidabile consistenza dei dati.

ID chiavi primarie

Alcuni vecchi progetti si basano ancora, per collegare una tabella all’altra, sull’uso delle code columns. Ad esempio, il codice articolo in stock può essere utilizzato per collegare righe documento, transazioni stock e così via.

In X-Cross, tutte le chiavi primarie vengono generate automaticamente in colonne ID intere (4 o 8 byte). In questo modo i codici espliciti inseriti dall’utente possono essere modificati (se consentiti) in qualsiasi momento, massimizzando la velocità di lettura delle viste complesse.

Calcoli e procedure nel database

In X-Cross, le operazioni di aggiornamento dei dati del database (ad esempio il ricalcolo delle giacenze inserendo un movimento di magazzino) vengono svolte utilizzando il linguaggio nativo del database, e sono legate al verificarsi di certi avvenimenti (inserimento, modifica o cancellazione di record), i cosiddetti “trigger”.

Questo, rispetto all’esecuzione delle procedure indirette, consente al computer (client) connesso al database, una velocità operativa 100-200 volte superiore, e una sicurezza dei dati molto più elevata.

Vantaggi per gli utenti:

Inserimento e aggiornamento con procedure

Gli inserimenti e gli aggiornamenti nelle tabelle del database vengono eseguiti attraverso procedure di archiviazione.

In questo modo i calcoli che servono alla scrittura dei dati (rimuovere i ‘nulls’, controllare le chiavi esterne, ecc.) vengono eseguiti direttamente nel server del database, con la massima efficienza e velocità delle operazioni, e questo permette anche di inserirli e aggiornarli nelle viste articolate (complex views).

Queste procedure vengono create automaticamente, ma possono essere integrate con linee di programmazione personalizzate per eseguire compiti specifici.

Aggiornamenti del database transazionale

Gli aggiornamenti complessi del database, anche se riguardano più tabelle, vengono effettuati in un’unica transizione.

Questo significa che, se qualcosa non va a buon fine, tutta l’operazione viene annullata, come se non fosse mai stata eseguita.

Quindi, se per qualche motivo il collegamento viene interrotto, o anche nel caso che lo stesso server di database vada in errore, la struttura dati non subisce alcun danno ed è anche internamente coerente; infatti gli aggiornamenti eseguiti sono “tutto o niente”, ovvero, o tutto va a buon fine, o il database non vien modificato per nulla, peraltro segnalando l’errore.

Cross SQL

CrossModel include il proprio editor di codice SQL, che riduce drasticamente i tempi di sviluppo rispetto ai tradizionali editor SQL basati su testo.

Struttura dati multilivello ad oggetti

Gli “oggetti operativi” su cui lavora l’utente in realtà spesso non si riferiscono ad una sola tabella del database, ma presentano una struttura dati assai più complessa, che utilizza varie tabelle in relazione tra di loro (“database relazionale”). Ad esempio, un movimento contabile è costituito da diverse tabelle collegate tra di loro, delle quali questa a lato è una rappresentazione molto semplificata. Analogamente al movimento contabile, una fattura è costituita almeno da una testata e da una o più righe e le tabelle coinvolte sono molte di più. Possiamo avere le spese, i subtotali, le provvigioni, i lotti, ecc. Lo stesso vale per molte altre sezioni di un software gestionale.

Una struttura dati ineguagliabile

La struttura dei dati, alla base di ogni ERP, grazie a CrossModel e alle sue funzionalità avanzate di modellazione dei dati è estremamente completa, per archiviare tutte le informazioni di cui un’azienda potrebbe aver bisogno. Ad esempio, una riga di virgolette è composta da 227 colonne modificabili nella tabella (in realtà è una vista complessa) e 523 colonne che includono le colonne di sola lettura (appartenenti a 70 diverse tabelle collegate) della vista riga.

Completo ma velocissimo

Anche con questa struttura dati incredibilmente completa (generata automaticamente da CrossModel), i tempi di lettura-scrittura sono estremamente bassi: ad esempio, un’intera citazione di 86 righe viene letta (su Internet) in circa 0,3 secondi. Va considerato che, in questi tempi, non vengono lette solo l’intestazione e le righe della citazione, ma un totale di 26 tabelle oltre all’intestazione.