Archivi e database

Come organizzare un’archivio

Supponiamo di dover gestire i prestiti di una biblioteca. Possiamo pensare ad una gestione tradizionale, essa presenta due archivi a tabella: “persone” e “libro”:

Questa gestione non tiene traccia dell’elenco dei prestiti, dei libri più letti e meno letti, dello stato dei libri e molto altro.
Come si nota la suddetta gestione è confusionaria e piena di errori e lacune. Per questo introduciamo delle variabili di collegamenti, detti riferimento a campo esterna e/o chiave esterna.

Individuazione univoca del record: come visto senza identificazione univoca del record è difficile capire con precisione di cosa si sta parlando quindi è sempre necessario identificare in maniera univoca il record. L’insieme dei campi i cui valori identificano univocamente un record all’interno di una tabella è detto Chiave Primaria. Quando la chiave primaria è composta da un solo campo,
si parla di campo chiave. Esempi di campo chiave: matricola, codice fiscale, etc.

Quando non è possibile trovare un campo chiave tra gli attributi di una entità, si definisce un campo di tipo ID numerico che si autoincrementa (contatore). Spesso si definisce il campo ID anche in presenza di un altro campo univoco in quanto un’ID numerico sarà sempre più veloce di un codice fiscale. Non deve dunque esserci un altro record con lo stesso valore per quell’attributo, anche se il valore può apparire in altri attributi. Il campo chiave primario non è obbligatorio ma è altamente consigliato, inoltre è necessario per realizzare relazioni interne al database.

La relazione tra tabelle tramite gli identificativi univoci e i campi chiave esterna creando così una relazione tra oggetti:

Il campo chiave esterno deve essere sempre valido in quanto deve essere garantita l’integrità referenziale (referential integrity) essa è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna. Se essa non è garantita, si ottengono incongruenze nei dati.

Una gestione molto più ottimale, ed al passo con i tempi, è la seguente:

Con questa organizzazione è sempre possibile risalire alla cronologia dei prestiti, inoltre aggiungendo campi è possibile memorizzare e/o ricavare informazioni:

  • Sull’utente (affidabilità sulla consegna, quanto legge);
  • Sul libro (stato di esso, quante volte è stato letto).

La Nascita e l’utilizzo dei database

Archivi non integrati

Per capire i motivi per cui si è arrivati alla necessità di creare le basi di dati, vediamo come si opera in un’azienda che viene gestita da strumenti informatici. Questo sistema prende il nome di EDP (Electronic Data Processing) e può essere visto come un insieme di dati memorizzati su supporti elettronici (generalmente tramite file xml, json, di testo o addirittura file binari) e di applicazioni informatiche utilizzate per agevolare il raggiungimento degli obiettivi di un’azienda.

Ogni singola applicazione del sistema informativo aziendale opera su un insieme di dati memorizzati secondo una struttura definita all’interno dell’applicazione stessa dall’analista, il quale ha il compito di realizzare l’applicazione in modo da rendere massima l’efficienza della stessa, indipendentemente dalle altre applicazioni (massima velocità, minima occupazione di memoria e così via). I file vengono archiviati in supporti di memoria di massa. In un sistema EDP ogni applicazione opera in modo del tutto indipendente (o quasi) dalle altre applicazioni, facendo uso dei propri dati e dei propri programmi.

Proprio questo modo di procedere comporta una serie di problemi:

  • Prima di tutto, le varie applicazioni risultano isolate dalle altre facenti. In particolare, questo risulta un problema quando è necessaria la condivisione di dati da parte di due o più applicazioni (per esempio i dati dei clienti per l’applicazione che gestisce gli ordini in un’azienda e quella di supporto al marketing) o quando un’applicazione utilizza i dati forniti da un’altra.
  • Se due applicazioni differenti lavorano sullo stesso file, quando una di esse ha bisogno di apportare modifiche alla struttura dei dati, per esempio deve aggiungere un nuovo campo in un record, sarà necessario modificare anche il funzionamento dell’altra applicazione, modificandone la struttura. Questo non è sempre agevole e a volte conviene duplicare i file.
  • Gli stessi dati vengono ripetuti tante volte quante sono le applicazioni che devono usarli, con conseguente spreco di memoria e con il rischio di introdurre inconsistenze ed errori.
  • L’accesso ai dati può inoltre avvenire solo tramite le applicazioni, cioè programmi fatti realizzare da utenti specializzati con conseguenti limitazioni nelle possibilità di richiesta di informazioni. Se c’è necessità di ottenere risultati diversi da quelli previsti dall’applicazione, questo è possibile solo con notevole dispendio di tempo e denaro per realizzare i programmi specifici.
  • Esiste uno stretto legame tra livello logico (che cosa si vuole fare in un’applicazione) e fisico (come sono memorizzati e gestiti i dati) con conseguenti difficoltà, lunghezza e costo nella modifica delle applicazioni anche a fronte di variazioni lievi.

Nasce l’idea di avere un unico contenitore di dati a cui tutti i programmi e gli utenti possano accedere contemporaneamente (accessi multipli) e con semplici e non specialistici (diversità di linguaggi). Deve essere garantita la sicurezza di questi dati quando utenti diversi accedono ai dati (privatezza), per salvaguardare gli stessi dai problemi fisici (interagita).

Gli utenti devono essere in grado di conoscere quali sono i dati a loro disposizione ed essere garantiti sulla loro correttezza c consistenza. La struttura dei dati poi poter essere facilmente e velocemente modificata senza dover variare tutti i programmi facenti parte dell'applicazione.
Questi obiettivi però non possono essere raggiunti facilmente tramite gli strumenti convenzionali: nasce quindi l'esigenza di nuovi strumenti. quali le basi di dati.

Una base di dati può essere definita come una collezione di dati strutturati, progettati per essere
usati in applicazioni differenti e da differenti utenti, in particolare, è un insieme di dati memorizzati senza ridondanze inutili per servire più di un'applicazione in contemporanea e organizzati in modo da essere indipendenti dai programmi che li usano.
Raccolte di dati censuari, registri di stato civile, libri parrocchiali, archivi mercantili costituiscono le basi di dati. Per la gestione delle basi di dati e la verifica della loro coerenza e consistenza sono necessari particolari sistemi software, chiamati DBMS (Data Base Management System) che si occupano della memorizzazione, dell’organizzazione e della gestione dei dati

Archivi integrati

tanti archivi collegati, che permettono di immagazzinare ed accedere in maniera panoramica a tutte le informazioni, esso è un contenitore unico per tutti i dati.

Importanza di gestire i dati al meglio

  • Gestirle in maniera semplice: non utilizzare organizzazioni difficili;
  • Gestirle in maniera efficace: utilizzando al meglio le risorse;
  • Gestirle in maniera efficace: rappresentare in maniera corretta la realtà e selezionando solo l’utile per l’uso
  • Gestirle in maniera sicura: in tutti e tre gli ambiti: hardware, software e umani;
  • Gestirle in maniera solida: deve resistere a errori, guasti e modifiche;
  • Gestirle in maniera condivisa: deve essere gestibile da più persone e da più software. La condivisione può avvenire:
  • All'interno della rete locale: solo le persone interne alla struttura aziendale hanno accesso;
  • In Intranet: solo i dipendenti accreditati (con username e password e spesso tramite una VPN) accedono al database anche fuori dall’azienda;
  • In Extranet: anche alcuni clienti accreditati (con username e password ed uno specifico portale) accedono al database;
  • In Internet: chiunque può accedere al database. Naturalmente i dati sensibili ed i dati importanti sono comunque inaccessibili da gente non autorizzata. È impensabile che le password, dati bancari o di carte di credito, dati generici e privati siano accessibili da tutti. Bisogna sempre rispettare la privacy. Infatti è importante:
  • La riservatezza dei dati (privacy, …);
  • Ed il controllo sulla correttezza dei dati (per evitare di dire che il mobile è lungo 3 metri quando è lungo 4 metri, …).

results matching ""

    No results matching ""