Per comprendere bene ciò che spiegherò in questo paragrafo è necessario riuscire a vedere oltre, questo passo non
è scontato per tutti, quindi mi prendo la responsabilità di semplificarvi la strada per riuscire a fare il salto.
Io da quando studio come autodidatta l’informatica (dal 1996), le cose che ho letto, o quelle che mi ha
spiegato qualche amico del mestiere (informatici), sono che mi hanno presentato sempre la Base Dati come una
sorta di Sacro Graal, nel senso che un DB è un pilastro fondamentale dell’informatica. Li ho sempre utilizzati,
come pure ho utilizzato SQL, il Linguaggio per Manipolare i Database. Solo che man mano che imparavo comprendevo
sempre più i loro limiti, indipendentemente se si utilizza un DB professionale o uno meno potente tipo Access, è
necessario calibrare i Database, le loro tabelle, i loro campi, in modo altamente professionale per un buon esito
di un progetto, tutto ciò richiede ampia consapevolezza e calibrazioni millimetriche per non perdere spazio
prezioso inutilmente. Solo che man mano che si diventa bravi le esigenze progettuali crescono e io sono uno che
Pratico, Studio e Creo Informatica e la cosa che mi affascina di più è l’Infinitezza Progettuale, l’Espansione
Indeterminata, tipo un re che sente la necessità di conquistare sempre più territorio in un mondo infinito. Qui i
Database diventano un problema che inizialmente avevo risolto tramite un Alta Ingegnerizzazione, Creando
Strutture Software adeguate per far Dialogare diverse Base Dati in modo da avere più spazio e se restiamo in
zona desktop (in un PC o in una Rete Locale) funziona, è molto motivante creare tali Strategie, perché per
funzionare richiedono calibrazioni millimetriche e quelli che riesco a farle davvero credo siano veramente
in pochi. Addirittura ho compreso come far funzionare il tutto in modo espandibile, nel senso che io tutto ciò
che faccio lo faccio in modo emergente, quindi non ho mai una mappa completa del progetto, ma sono riuscito a
rende espandibile anche questa situazione.
Il problema cambia in zona Web, soprattutto con un Server Web Condiviso, dove in alcuni casi non conta molto
lo spazio web a disposizione, ma la quantità di file necessaria al progetto. In un simile scenario si hanno due
problemi, da una parte i DB con il loro spazio limitato, d’altra parte abbiamo il problema del Server, con una
disponibilità di creare file prestabilita. In sostanza non si può superare un tot di spazio con i DB e non si
può superare un determinato numero di file altrimenti il Server va in Tilt.
A questo punto mi sono fatto una domanda che non mi ero mia posto, ma come diavolo si crea un Database? In modo
che tento a farne uno personale. Cosi mi sono messo al lavoro per comprendere come sviluppare una Base Dati.
Quello che ho scoperto è allucinante, perché ho scoperto che nel modo in cui vengono creati i Data Base è
impossibile creare un DB dei Sogni, un DB Perfetto. Perché un database viene creato tramite un file binario dove,
per semplificazione, al suo interno viene strutturato uno schema in Binario (per intenderci è tipo la
programmazione in Assembly, anche se più tecnica, basata su istruzioni binarie), con il quale all’interno di
questo unico file binario si generano strutture che rappresentano dei file che poi vengono implementati,
aggiornati e relazionati dinamicamente. Fondamentalmente per creare un database si sono fatte crescere le
piantine in testa, una cosa più assurda di questa non l’avevo mai sentita. Si è vero per molte aziende e per
molti programmatori autonomi, penso io alle prime armi, un DB è una manna dal Cielo. Comprendo pure che quello
che sto per dire non sono in grado di farlo tutti, aziende comprese, perché ripeto sono cose che secondo me
riescono a fare persone che nel mondo informatico sono dei Senior, anche perché se quello che affermo è errato…
perché nessuno a mai pensato di trovare un modo efficiente per sostituire un database?
E come si fa a trovare un modo per sostituire un database?
(ora ve lo dico, un attimo)
Anche questo mi sembra assurdo, perché immagino degli accademici che intendono studiare l’ingegneria per
sviluppare un DB. Hanno la soluzione sotto gli occhi e nessuno la vede, ma è possibile? Io rimango incredulo.
Vi ho detto che un DB viene creato tramite un File Binario, dove al suo Interno, tramite codice Binario
(impossibile da gestire per molti) vengono create delle strutture che generano dei file virtuali che poi
dialogano tra loro in modo cronometrico, ma ciò ha un limite perché tale cronometria, ad un certo punto
(vorrei dire una parolaccia), va a p. al diavolo, si spezza diventa incoerente.
Se ancora non avete compreso la soluzione significa che siete proprio cechi. Per la terza volta, vi ho detto che
all’interno del Binario vengono create delle strutture di file virtuali, ma stiamo impazzendo? È sufficiente
rendere reali quelle strutture di file virtuali per renderle tangibili.
E Come?
Creando dei file fisici che poi vengono gestiti da specifiche classi. In questo metodo che comunque richiede una
certa maestria e l’ho detto; ma il punto è che diventa tutto più semplice e indistruttibile. Ancora meglio
si posso creare delle classi, che posso essere riscritte in qualsiasi linguaggio, che creano un DB dinamico,
generando i file necessari e tramite ingegnose tecniche, le classi, organizzano e relazionano i vari file,
in modo da effettuare delle JOIN. Magari inizialmente sarà necessario settare un attimino le procedure delle
classi che strutturano i file in base al progetto, finche non si settano delle procedure generiche applicabili
in qualsiasi contesto.
Se qualcuno sta pensando che sono uno stupido si sbaglia di grosso, perché lo invito a creare una query di mille
elementi, e poi lo invito a sfogliare un rigo per volta un file di mille righi, e cronometrare la velocità;
probabilmente la query risulterà più veloce di qualche millisecondo. Quei secondini di attesa in più, se
esistono realmente, bisognerebbe vedere su un progetto reale, ti donano il potere di gestire pochi file nel
caso di un server web condivido (o server web), con la certezza di avere uno spazio di archiviazione Illimitato
e alcuni server condivisi il problema dello spazio non se lo pongono proprio, fermo restando che si faccia il
tutto a regola d’arte, e come già detto sono poche le persone che riescono a fare simili progetti, perché sono
necessarie vedute divergenti o emergenti che non tutti posseggono, ma sicuramente è più semplice gestire dei file
tramite delle classi organizzate, invece di creare un file binario che poi e destinato a spezzarsi.
Se a qualcuno ancora sembra tutto assurdo, non sto dicendo nulla di assurdo, sto solo dicendo di esportare
all’esterno la struttura binaria ingestibile all’interno del file binario, renderla reale, visibile, tangibile
e lavorarci con più comodità; con la certezza di lavorare su file di dimensione dinamica inesauribile, ciò
dipenderebbe dalla capienza dell’Hard Disk, non più dalla coerenza gestionale del DB, e oggi si posso acquistare
diversi TB con pochi soldi.
Pubblicazione del 15 Settembre 2026
|