Database E Archivi Informatici

I database

I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire la gestione dei dati stessi in termini di inserimento, aggiornamento, ricerca e cancellazione delle informazioni. Un requisito importante di una base dati consiste nel non duplicare inutilmente le informazioni in essa contenute: questo è reso possibile dai gestori di database relazionali, che consentono di salvare i dati in tabelle che possono essere collegate. La ricerca nel campo delle basi di dati studia le seguenti problematiche:
- Progettazione di basi di dati.
- Progettazione e implementazione di DBMS.
- Interpretazione (o analisi) di dati contenuti in database
Sugli archivi è possibile effettuare quattro operazioni dette fondamentali conosciute come:
- CIAC, ovvero: Creazione, quindi tutto ciò che riguarda la realizzazione dello stesso;
- INSERIMENTO dei dati nell'archivio,
- AGGIORNAMENTO cioè deve essere possibile poter modificare i dati già presenti in esso;
- CANCELLAZIONE delle informazioni esistenti.
Con l'applicazione al computer di un archivio è possibile inserirvi qualsiasi genere di informazione. In un archivio gestito da computer la singola informazione che descrive una registrazione (record) viene chiamata campo.
Un record può essere LOGICO o FISICO. Un record fisico è un blocco di memoria su cui è possibile memorizzare record logici; quindi un record fisico può contenere più record logici; il numero di record logici che un record fisico può contenere è chiamato fattore di blocco. Per memorizzare un archivio su un computer vengono utilizzate le memorie di massa (harddisks, pendrive, CD, ecc..) o dei computer di cui non ne viene mai interrotta l'attività (come i server). La sicurezza dei dati viene garantita dal fault-tolerance, cioè "tolleranza del guasto".
Esistono tre livelli di fault tolerance: il primo livello è il mirroring, e consente di avere, per esempio, una copia esatta dello stesso disco; il secondo livello è il duplexing, che consiste, nell'avere altre due copie identiche del disco e la duplicazione dei controller del disco; e il terzo riguarda la duplicazione dell'intero sistema, questa applicazione, però, molto considerata in quanto comporta dei costi praticamente doppi.
Un archivio, memorizzato su una memoria di massa , può essere organizzato secondo tre criteri: per ORGANIZZAZIONE SEQUENZIALE, cioè l'organizzazione più semplice in cui per ricercare un determinato record bisogna scorrere l'intero archivio, questo tipo di organizzazione non è molto affidabile; per ORGANIZZAZIONE PER ACCESSO DIRETTO, quando si conosce la posizione di ogni record e vi possiamo accedere direttamente; ed ORGANIZZAZIONE A INDICI, cioè quando ogni record viene identificato da una chiave.
I database risolvono tutti i problemi che derivano dall'organizzazione convenzionale degli archivi, infatti facilitano l'accesso ai dati, le applicazioni sono indipendenti dalla struttura dei dati, e non c'è la possibilità di ridondanza, infatti non possono esserci record uguali, e di conseguenza anche di inconsistenza e incongruenza ed è aumentata la sicurezza dei dati archiviati in quanto si deve essere autorizzati per accedere alle informazioni. Per realizzare e gestire un database occorrono delle specifiche applicazioni, queste prendono il nome di DBMS (DataBase Management System). Un DBMS deve permettere la creazione di una base di dati e delle informazioni contenute in essa (DLL: Data Definition Language), deve permettere l'inserimento e la modifica delle informazioni delle informazioni esistenti (DML: Data Manipulation Language), deve permettere l'estrazione delle informazioni (QL: Query Language).
Esistono vari tipi di struttura per i database:
-gerarchica;
-reticolare;
-relazionale (utillizza le tabelle);
-ad oggetti;
-semantica.

Quella reticolare è la più efficiente e più utilizzata poiché è più vicina al modo di pensare i dati. Quando si realizza un database occorre seguire una determinata metodologia, ed organizzare bene il lavoro da fare. La prima fase del processo riguarda la conoscenza degli obiettivi, cioè bisogna sapere cosa il nostro prodotto finale dovrà fare; per riuscire a sapere ciò bisogna delle volte effettuare delle interviste conoscitive, ovvero conoscere e comprendere la materia oggetto del progetto. La seconda fase riguarda l'analisi, che ha l'obiettivo di definire tutte le componenti del progetto; è una fase importante poiché il suo risultato diventerà la base per l'intero progetto.
Dopo ciò ci sono due fasi parallele: la PROGETTAZIONE e la TRANSIZIONE. La progettazione ha come scopo quello di realizzare i primi prototipi del prodotto finale, mentre nella fase di transizione si passa dal vecchio al nuovo sistema, cioè se, ad esempio, come ad esempio passare da un software vecchio ad uno nuovo. La fase succesiva è quella della REALIZZAZIONE, quindi si realizzano i primi esempi del progetto. A questa seguono altre tre fasi parallele: DOCUMENTAZIONE, TESTING e FORMAZIONE.
Con la fase di documentazione si fornisce agli utenti del nuovo sistema la documentazione necessaria per poter adoperare il software creato, il testing (o prova) consiste, nel testare il prodotto e assicurarsi che soddisfi gli obiettivi prefissati e che non ci siano errori, e, nel caso, correggerli. La fase di formazione ha lo scopo di fornire agli utenti le conoscenze necessarie per utilizzare il prodotto creato. Infine, l'ultima fase della metodologia è l'esercizio, o anche il rilascio del progetto software.
Nella realizzazione di un database occorre creare un'astrazione della realtà osservata, per questa fase si segue la modellazione dei dati. La progettazione di un modello di struttura dati avviene a livelli diversi: il primo è il livello CONCETTUALE che rappresenta, attraverso uno schema, i dati e le relazioni presenti tra di essi, poi abbiamo il livello LOGICO che rappresenta il modo in cui i dati sono organizzati nelle tabelle, ed infine il livello FISICO che si occupa dell'implementazione fisica dei dati nella memoria di massa. Per la realizzazione del modello concettuale viene utilizzato lo schema E\R (entity\ relationship o entità\relazione). Questo schema rappresenta la realtà attraverso entità e associazioni tra esse. L'entità è un oggetto che rappresenta elementi che hanno in comune una o più caratteristiche, l'associazione, invece, è un legame che stabilisce un'interazione tra le entità.
Una associazione può essere di tre tipi:
- ASSOCIAZIONE 1:1 (uno a uno o biunivoca), cioè ogni istanza della prima entità è associata ad una sola istanza della seconda, e viceversa;
- ASSOCIAZIONE 1:N (uno a molti o semplice), quando ad ogni istanza della prima entità possiamo associare più istanze della seconda entità, e ad ogni istanza della seconda entità una sola istanza della prima;
- ASSOCIAZIONE N:N (molti a molti o complessa), quando ad ogni istanza della prima entità si possono associare più istanza della seconda entità e viceversa.
Ogni entità possiede determinate caratteristiche dette attributi o CAMPI. In ogni entità deve esserci un attributo, o un gruppo di essi, che permetta di distinguere tra di loro le varie istanze.
Nel passaggio dal modello concettuale a quello logico-relazionale bisogna rispettare le regole di derivazione del modello E\R, che sono le seguenti:
- ogni entità diventa una tabella,
- ogni attributo di una entità diventa un campo della tabella,
- ogni campo deve ereditare le caratteristiche dell'attributo da cui deriva,
- la chiave dell'entità dovrà essere la chiave primaria della tabella,
- l'associazione 1:1 costituirà un'unica tabella avente come campi gli attributi di entrambe le entità,
- l'associazione 1: N viene realizzata aggiungendo all'entità che svolge il ruolo di "molti" le chiavi dell'entità col ruolo di "uno", questa chiave prende il nome di chiave esterna,
- l'associazione N : N, invece, diventa una nuova tabella contenente le chiavi primarie, che saranno al contempo chiavi esterne, delle due entità che si stanno associando, più degli altri eventuali attributi propri.
Per effettuare le domande ad una base di dati, cioè per estrarre le informazioni che ci interessano, occorre utilizzare gli operatori relazionali, che sono: selezione, proiezione e congiunzione.
La SELEZIONE genera una nuova tabella contenente solo le tuple (o righe) che rispettano una condizione predeterminata, la tabella risultante avrà minore cardinalità (numero delle righe) e grado uguale (numero delle colonne) rispetto alla tabella di partenza.
La PROIEZIONE genera una tabella estraendo dalla tabella "madre" alcune colonne scelte, quindi la nuova tabella avrà la stessa cardinalità e un grado minore rispetto alla tabella primitiva.
La CONGIUNZIONE è l'unico operatore relazionale che agisce su più tabelle aventi uno o più attributi in comune, combinandole, avremo quindi una tabella che ha come grado la somma dei gradi delle tabelle di provenienza meno uno, in quanto l'attributo in comune comparirà una sola volta.
Per creare un database evitando la ridondanza dei dati e la presenza di errori occorre attenersi alle tre regole dette della normalizzazione.
Oltre a queste regole nella creazione di un database bisogna tener conto dell'integrità referenziale, ovvero l'insieme di regole che garantiscono, appunto, l'integrità dei dati quando viene creata una associazione attraverso chiave esterna, e viene rispettata quando per ogni valore della chiave esterna esiste un solo valore corrispondente della chiave primaria nella tabella associata.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License