Guida per il webmaster

La struttura generale

Parva Encyclopaedia Philatelica è una raccolta virtuale di francobolli con dati filatelici (stato o ente di emissione, data e nome dell'emissione) e notizie sul soggetto e sullo stato. Nata col nome di NatFil (Natura e filatelia) e limitata a soggetti di interesse biologico, botanico o zoologico, ha assunto col tempo maggiori dimensioni e comprende attualmente 67 tematiche che vertono sui più disparati argomenti dello scibile umano. La sorgente delle informazioni è memorizzata in un file di Microsoft™ Access® che contiene anche un programma compilatore redatto nel linguaggio VisualBasic® di Access.

Allo stato attuale i francobolli sono contenuti in tre distinti gruppi di tematiche;

1 - Le tematiche biologiche

Questo gruppo raccoglie i francobolli aventi per oggetto organismi vegetali o animali ...............................

Il programma compilatore legge i dati dalle tabelle memorizzate in Access e compone le pagine del sito, in linguaggio HTML5. Oltre alle pagine html esistono i fogli di stile, in linguaggio CSS3, contenenti le istruzioni per la formattazione delle pagine html, e ancora le immagini in formato png, jpg, ico, pdf, e infine il file compila.accdb contenente le tabelle e il programma compilatore.

L'insieme di questi file è distribuito in diverse cartelle, articolate come segue:

1.1 - Le cartelle tematiche

Per ogni tematica esiste una cartella specifica. Per esigenze del sistema operativo, il nome della cartella deve contenere esclusivamente caratteri alfabetici minuscoli (codice ASCII da 97 a 120); sono ammessi caratteri accentati e cedigliati; non sono ammessi spazi, interpunzioni o altro. Il nome della cartella tematica deve coincidere col nome della relativa tabella sorgente contenuta nel database.

La cartella della tematica contiene:

La cartella della tematica contiene inoltre cinque sottocartelle:

1.2 - Il database

Nalla cartella \BIO-SI si trova il file BIO-SI.accdb. Questo gestore di dati attualmente .contiene tutte le tabelle e tutti i sottoprogrammi per la gestione del sito. È possibile che in futuro sia opportuno scinderlo in due diversi database: uno per il programma compilatore e uno per le tabelle delle tematiche biologiche.

1.2.1 - Le tabelle

Data la natura dei dati da gestire, una corretta impostazione comporta, per ciascuna tematica, una tabella per i parametri dei francobolli (campi a contenuto filatelico che chiameremo campi filatelia), una seconda tabella per i parametri dei soggetti (campi attinenti la classificazione scientifica dei soggetti che chiameremo campi classificazione) e infine una terza tabella, l'unica comune a tutte le tematiche, per i dati degli enti di emissione (campi emissione).

relazioniFig. 1 - La struttura relazionale della base dati

In alternativa, i dati emissione e sistematica potrebbero essere contenuti in file compilati con un programma editore di pagine web anzichè nel database. Nella tabella dei francobolli i campi Sta e Sog funzionerebbero come puntatori a dette pagine. Fra i vantaggi offerti da quest'ultima soluzione abbiamo:

  1. niente ridondanze e conseguenti incoerenze
  2. libertà di definire, per ciascuna tabella, campi con nome e tipo idonei all'argomento trattato dalla tematica;
  3. non occorre ricompilare tutte le pagine della tematica ogni volta che viene aggiunto un francobollo;
  4. massima libertà nella impaginazione, scelta e disposizione del testo e delle figure nelle schede degli stati e in quelle dei soggetti;
  5. l'aggiornamento delle schede di uno stato o di un soggetto non comporta la necessità di modificare tutti i record che si riferiscono a quello stato o a quel soggetto. Per esempio, se dovesse verificarsi una successione al trono nel Regno unito dovranno essere aggiornati tutti i record dei francobolli emessi dagli stati di cui è a capo l'attuale sovrano;
  6. minima dimensione delle tabelle nel database;
  7. minimi tempi di aggiornamento delle pagine sul server.

Tuttavia il committente titolare del sito, per sue personali ragioni, ha preferito mantenere i dati dei francobolli degli stati e dei soggetti in un'unica tabella per ciascuna tematica. Successivamente ha convenuto di gestire i dati degli enti di emissione in un database distinto stati.accdb. Conseguentemente, allo stato attuale, le tabelle delle tematiche biologiche sono tutte strutturate così:

campi.jpgFig. 2 - La struttura delle tabelle tematiche

I campi da 00Fil a 06Fil contengono i dati filatelici di ciascun francobollo (l'oggetto catalogato dal database). I campi numerati da 00Fil a 06Fil contengono i dati del soggetto del francobollo che comprendono gli elementi della classificazione scientifica (da 10Nat a 26Nat), i nomi volgari dei soggetti, in cinque lingue, (da 28Ling a 31Ling), e infine quattro campi destinati a contenere le informazioni dei soggetti per complessivi 4 x 64 KB per soggetto.

Il numero contenuto nel campo «Num» identifica in maniera univoca il record del francobollo e la figura del francobollo. Il campo «Sta» contiene il riferimento relazionale numerico all'omonimo indice della tabella «stati» (vedi Fig.1).

1.2.2 - Il programma

Per trasferire i dati dal database alle pagine html da visualizzare sulla rete internet, viene utilizzato il linguaggio basic nativo di Access. Sette subroutine eseguono il compito:

Altri sottoprogrammi possono essere redatti per la manutenzione del sito:

Un ulteriore sottoprogramma, sub lst_Tematiche, obbliga i sei precedenti ad operare su una specifica tematica che l'utente deve scegliere da una lista. Il nome della tematica scelta e il nome della cartella che ne contiene i file sono memorizzati nelle variabili «Tematica» e «Cartella». L'utente controlla tutte queste operazioni con i pulsanti di comando che si trovano sulla maschera che appare sullo schermo all'avvio del gestore di database.

1.2.2.1 - sub cmd_INTRO

La sorgente dei dati è la query SELECT Stato FROM stati ORDER BY Stato.

1.2.2.2 - sub cmd_STATI

La sorgente dei dati è la query SELECT Cartella.Sta, stati.Stato, Count(Cartella.Num) AS Bolli FROM Cartella INNER JOIN stati ON Cartella.Sta = stati.Sta GROUP BY Cartella.Sta, stati.Stato ORDER BY stati.Stato; che restituisce i nomi degli enti di emissione nel campo Stato e il numero di francobolli emessi nella tematica corrente nel campo Bolli; Cartella è la variabile contenente il nome della cartella tematica che il programma sta compilando.

1.2.2.3 - sub cmd_FAMIGLIE

In alcune tabelle tematiche i campi Ordine e Famiglia di alcuni record contengono il valore Null e vengono pertanto filtrati da una clausola is not Null. A causa della ridondanza derivante dall'essere i dati dei soggetti nella stessa tabella dei dati dei francobolli, occorre anzitutto estrarre i nomi degli ordini e quelli delle famiglie con le query SELECT DISTINCT Ordine FROM cartella WHERE ((Ordine is Not Null) and (Famiglia Is not Null)) e SELECT DISTINCT Famiglia FROM cartella WHERE ((Ordine is Not Null) and (Famiglia Is not Null)). Una terza query, SELECT DISTINCT Ordine, Famiglia FROM cartella WHERE ((Ordine is Not Null) and (Famiglia Is not Null)) permette di accertare la coerenza dei dati verificando che la seconda e la terza query estraggano lo stesso numero di record (in caso contrario viene generato un messaggio segnalante l'incoerenza e il sottoprogramma viene interrotto).

Se non vi sono incoerenze vengono elencati i nomi degli ordini seguiti dai nomi delle famiglie che ad esso appartengono. Questi vengono estratti per ciascun ordine dalla query SELECT DISTINCT Famiglia FROM cartella WHERE Ordine = R1(0) dove R1(0) è il campo contenente il nome dell'ordine corrente nel recordset creato dalla prima delle tre query sopra menzionate.

1.2.2.4 - sub cmd_SOGGETTI

La sorgente dei dati è la query SELECT DISTINCT Soggetto FROM cartella ORDER BY Soggetto.

1.2.2.5 - sub cmd_STATO

1.2.2.6 - sub cmd_FAMIGLIA

1.2.2.7 - sub cmd_SOGGETTO

La query SELECT DISTINCT Soggetto FROM cartella WHERE Soggetto Is not Null ORDER BY Soggetto estrae un elenco di nomi dei soggetti dalla tabella tematica. Per ogni soggetto viene creata una pagina html dallo stesso nome del soggetto. I dati vengono estratti dalla query SELECT DISTINCT CampiTass, CampiLing FROM Cartella WHERE Soggetto = R1(0) dove CampiTass è una costante, definita nelle dichiarazioni del programma, che contiene il nomme dei campi da 0 a 19 (cfr Fig.2), CampiLing è una costante, definita come sopra, che contiene i nomi volgari nelle cinque lingue, mentre R1(0) contiene il nome del soggetto corrente. Se i dati in tabella sono coerenti, questa query estrae un solo record. Il programma non verifica la coerenza ma legge i dati soltanto dal record estratto per primo. Il ricorso alle costanti è conseguenza della scelta che il committente ha fatto di dare la stessa struttura a tutte le tabelle. In alternativa i campi potrebbero essere definiti separatamente per ogni tabella, adattandoli alle peculiarità della tematica; al programma si affiderebbe il compito di estrarne il nome e il tipo dalla tabella oppure di acquisire le informazioni sui campi dalla tabella TEMATICHE del database.

Rimane pur sempre il fatto che le pagine dei soggetti (analogamente a quelle degli enti di emissione) andrebbero pittosto compilate da un editore di pagine html anziché da un gestore di database.

Dopo aver compilato i dati del soggetto, il sottoprogramma estrae i record dei francobolli aventi per soggetto il soggetto corrente R1(0) mediante la query SELECT Num, [Data], Serie, Emissione, Nota, Soggetto, Cartella.Sta, stati.Stato FROM Cartella INNER JOIN stati ON Cartella.Sta = stati.Sta WHERE (((Cartella.Soggetto) = R1!Soggetto)) ORDER BY Cartella.Data, Cartella.Serie;

1.3 - Il codice

I listati degli otto sottoprogrammi sono scritti nel file codice.rtf.

2 - Le tematiche "non biologiche"

Si tratta di una massa di informazioni eterogenee che l'Autore del sito ha ritenuto opportuno distribuire in una cinquantina di tabelle, una per tematica filatelica, qui elencate:

Totale: 9947 record

2.1 - Le cartelle tematiche

Come per le tematiche biologiche a ogni tematica non biologica corrisponde una specifica cartella con le stesse prescrizioni riguardo al nome.

La cartella della tematica contiene:

Lacartella della tematica contiene inoltre quattro sottocartelle:

2.2 - Il database

Nalla cartella \BIO-NO si trova il file BIO-NO.accdb. Questo gestore di dati attualmente contiene tutte le tabelle e tutti i sottoprogrammi per la gestione del sito. È possibile che in futuro sia opportuno scinderlo in due diversi database: uno per il programma compilatore e uno per le tabelle delle tematiche non biologiche.

2.2.1 - Le tabelle