Archivi
Insieme di dati e informazioni correlate tra loro utili in un determinato contesto memorizzate in un supporto permanente (anche la carta), essi possono essere:
- Permanente: i dati sono sempre utili e devono essere sempre accessibili (elenco dei clienti, elenco dei fornitori, elenco dei dipendenti, …)
- Temporanei: i dati vengono generati per uno specifico utilizzo e poi non servono più (elenco delle persone presenti nell'edificio quando è partita l’allarme antincendio, elenco dei dipendenti che hanno lavorato il 25 dicembre per un bonus aziendale, …)
- Storici: i dati “vecchi” non utili, ma che possono essere utili in determinati contesti (ispezione dell’agenzia delle entrate, elenco di vecchi dipendenti, …)
- Di Sicurezza (backup): necessari per evitare perdite di dati in caso di problemi, gli archivi di sicurezza devono essere realizzati secondo un:
- Piano di backup
- Cosa salvare: i dati utili all’azienda devono essere salvati (i risultati delle partite a prato fiorito o spider sono utili ad un’azienda solo per licenziare un dipendente, non per avere nuovi contatti commerciali);
- Ogni quanto tempo: il tempo deve essere deciso in base alla fatica e/o ai danni provocati da ripristinare dati non presenti nell'ultimo backup;
- Tecniche di backup (nessuna delle tecniche esclude l’altra - sono tutte importanti e da usare insieme):
- Ridondanza - prevedere copie 1:1 (per evitare che se un disco si rompe tutti i dati siano persi, inoltre per mantenere un sistema sempre online);
- Copie giornaliere/settimanali (per evitare di perdere dati corrotti da errori software o umani);
- Backup aggiornati ogni tot ore/giorni (per evitare di dover ricopiare dati su dati quando è cambiato una singola virgola);
- Backup su nuovi supporti ogni tot settimane/mesi (per evitare problemi legati all'usura dei supporti);
- Quando salvare: utilizzare momenti morti come la notte, la pausa pranzo o la pausa caffè in quanto il backup è un’operazione onerosa ed aumenta la lentezza degli applicativi;
- Come salvare: utilizzare algoritmi di compressione e/o di crittografia per ridurre lo spazio e/o prevenire l’utilizzo di dati da gente malevole;
- Dove salvare: utilizzare luoghi esterni per i backup per evitare danni da calamità naturali e/o artificiali come i terremoti, incendi, alluvioni;
- Piano di ripristino e ridondanza degli archivi: realizzare prove di ripristino di dati e verificare l’assenza di bug nei software e la funzionalità di data center e/o apparati (server, switch, router) ridondanti
- Piano di backup
Blocchi logici
Le informazioni sono organizzate in blocchi logici, essa è una struttura dati simili ai costrutti dei linguaggi di programmazione: record/struct/class
Esempio blocco logico Cliente:
Quando si costruisce un archivio bisogna decidere alcune cose:
- Nome: il nome è importante, è un identificativo di ciò che contiene il suddetto archivio;
- Tracciato Record ed i relativi campi campi: scegliere le informazioni pertinenti e quelle non, decidere sistemi di codifica omogenei per campi nulli, vuoti o altro, implementare attributi di controllo (visibile/nascosto/cancellato);
- Supporto di memorizzazione: da cui dipende la dimensione massima dell’archivio;
- Ordinamento dei Record: da cui dipende la velocità di accesso delle informazioni.
Operazioni
Gli archivi mutano nel tempo e devono essere consultati, questo rende d’obbligo l’implementazione di alcune funzionalità:
- Creazione
- Manipolazione
- Inserimento: aggiungere nuovi dati
- Modifica: modificare dati esistenti
- Eliminazione: eliminazione di dati esistenti, bisogna però controllare che il suddetta dato non venga usato da altri e/o implementare politiche di gestione di queste anomalie
- Logica: il dato viene “nascosto”, permette il ripristino;
- Fisica: il dato viene cancellato in maniera permanente;
- Ricerca: Interrogazione/Consultazione del suddetto archivio alla ricerca di informazioni;
- Operazione su tutto l'archivio:
- Esportazione dei dati: Stampa di tutto l’archivio, esportazione in pdf, …
- Modifiche automatiche all’archivio: Aumento su tutti dei prezzi di vendita, rigenerazione dei codici a barre, …
- Ordinamento: ordinare i dati in base a determinati campi per agevolare la ricerca;
- Copia: copiare l’archivio e/o parti di esso;
- Separazione: dividere un’archivio in più archivi;
- Unione: operazione molto difficile in quanto bisogna decidere politiche per evitare i duplicati, gestire campi in più/in meno, uniformare i dati, gestire i finti duplicati, …
Gestione fisica degli archivi
Essi devono essere gestiti su memoria permanente, fisica o digitale:
- Carta
- Hard Disk
- SSD
- Floppy Disk/CD/DVD/Blu Ray/USB
- Nastri Magnetici (Data tape)
Organizzare e lavorare bene con gli archivi
Alcune caratteristiche fondamentale degli archivi sono:
- Memorizzazione sicura: evitare di perdere dati
- Tempi di accesso accettabili: evitare di dover prendere un caffè prima di vedere ogni singolo dato
- Archivi isolati contengono informazioni correlate: gestire sempre la duplicazione e/o la ridondanza
Ridondanza buona e cattiva
Pensiamo ad un sistema che ha 3 archivi dove vengono salvati i dati dei pazienti e pensiamo al semplice cambio di indirizzo di un paziente. Se la modifica non avviene apportata nello stesso istante in tutti i file in cui compaiono le informazioni di quel paziente si ha una situazione non omogenea, che in gergo viene chiamata incongruenza. Proprio per questo è necessario realizzare sistemi informatici (e informativi) affidabili dove non avvengono incongruenza.
Per esempio nella programmazione è da evitare di effettuare copie di istanze di classi. Si parla di incongruenza quando due dati che rappresentano la stessa informazione assumono valori diversi.
La ridondanza può produrre incongruenza: due informazioni diverse, che non corrispondono: tanta incongruenza può dare una inconsistenza, in questo caso si parla di ridondanza cattiva.
L'inconsistenza indica qualcosa di non affidabile**, e quindi si perde l'informazione aziendale.
L’incosistenza si ottiene anche quando alcuni dati vengono eliminati ma sono comunque utilizzate dal altre parti.
Mentre la ridondanza buona si ha quando essa serve per evitare di avere sistemi offline e/o di perdere dati e/o di velocizzare il sistema.
Visto che per rindondanza si intende sia la duplicazione del dato che la memorizzazione di un dato che deriva dall’elaborazione di altri dati che portano sempre lo stesso risultato in tempi moderati dobbiamo ricordare che è utile memorizzare il risultato solo se esso per essere calcolato ha bisogno di un tempo non trascurabile (per esempio è utile salvarsi il valore del coseno di 33,333 gradi, ma non salvarsi il dato del pi greco, che è una costante in qualsiasi linguaggio di programmazione e può provocare incongruenza con approssimazioni differenti).
Per esempio, il numero di studenti di una classe costituisce una ridondanza se sono già stati memorizzati i nominativi degli studenti: basterebbe contare gli studenti stessi per sapere quanti ce ne sono nella classe. Tuttavia, se questa richiesta viene fatta spesso, può essere conveniente memorizzare questo dato (ridondanza utile), e deve essere immediatamente aggiornato in caso di cambio del numero degli studenti.
Indipendenza della struttura logica e fisica
Deve essere possibile modificare la modalità fisica di registrazione dei dati, supporto e struttura, lasciandone inalterata la struttura logica (per esempio viene cambiato il software di gestione degli archivi)
Deve essere inoltre possibile, con relativi pochi sforzi “aggiornarsi” aggiungendo campi alla struttura logica (nuove informazioni: e-mail, account facebook, numero telefono, account instagram, …)
Problematiche relative alla sicurezza
Gli archivi sono suscettibili a numerose problematiche di sicurezza:
- Disastri Naturali: terremoti, incendi, allagamenti, … → utilizzare strutture antisismiche, realizzare sistemi di prevenzione protezione incendi, evitare di tenere i dispositivi sul piano terreno allagabile;
- Blackout e brownout: mancanza di tensione → utilizzare UPS e generatori a diesel per evitare di essere senza corrente;
- Hacker: intrusione informatica, … → utilizzare sistemi relativamente aggiornati;
Persone idiote: utilizzo errato di prese di corrente connesse a UPS e generatori a diesel, utilizzo degli estintori come appendini, ostruzione e/o blocco di uscite di sicurezza e porte tagliafuoco, utilizzo di idranti e/o sprinkler ad acqua in presenza di computer e/o impianto elettrico in tensione, … → nominare addetti alla sicurezza colti e rispettosi del proprio ruolo che non si fanno scrupoli a richiamare i comportamenti errati;
rotture hardware: router, switch, fibre ottiche, processori, schede madri, hard disck, ssd, … → avere pezzi di ricambio, sistemi di ridondanza e tutto ciò utile a evitare ciò;
virus, update errati: problemi software → testare in sendbox tutto ciò che comporta modifiche (o possibili modifiche) al proprio parco macchine;
accessi non autorizzati: ladri o persone idiote che posso compromettere la sicurezza → implementare sistemi di accesso sicuro: stanza blindate con accesso a più fattori:
- Una cosa che conosci: per esempio una password o il PIN.
- Una cosa che hai: come un telefono cellulare, una carta di credito o un oggetto fisico come un token per una generazione di un codice temporaneo - OTP.
- Una cosa che sei: come l'impronta digitale, il timbro vocale, la retina o l'iride, o altre caratteristiche di riconoscimento attraverso caratteristiche uniche del corpo umano (biometria).
Bisogna quindi sempre implementare:
- piano di disaster recovery e di sicurezza
- test ai piani di disaster recovery
- raid ai dischi, alle strutture
- stanze blindate, impronde digitali, scansione della retina
- permessi e firmware
- backup anche dei sistemi
- sendbox
- ups e generatori di energia a gasolio