Database

Con il termine database, si indicano in informatica gli archivi di dati, organizzati e gestiti sulle memorie di massa dei computer attraverso appositi software. Negli archivi deve essere garantita la consistenza, cioè i dati in essi contenuti devono essere significativi ed essere utilizzabili nelle applicazioni dell’azienda; i dati devono essere protetti per impedire perdite accidentali, la produzione deve anche riguardare gli interventi sui dati dovuti ad accessi non autorizzati con operazioni di lettura, modifica o cancellazione. La sicurezza è utile per impedire che il database venga danneggiato da interventi accidentali o non autorizzati; integrità, significa garantire che le operazioni effettuate sul database da utenti autorizzati non provochino una perdita di consistenza ai dati. I prodotti software per la gestione di database vengono indicati con il termine DBMS (DataBase Management System).
I difetti dell’organizzazione degli archivi derivano dalla ridondanza dei dati, cioè gli stessi dati compaiono in maniera duplicata che può portare all’incongruenza, nel caso in cui un dato venga aggiornato in un archivio e non in  altro, oppure siano presenti valori diversi per lo stesso dato; questo a sua volta porta all’inconsistenza dei dati, cioè i dati a disposizione non sono più affidabili, perché non si sa con certezza quale dei diversi valori sia quello corretto.
Nello sviluppo della teoria dei database, sono emersi tre tipi diversi di modelli per le basi di dati cronologicamente:

  1. gerarchico, sviluppato negli anni sessanta, ed ha una struttura ad albero nella quale i nodi rappresentano le entità e gli archi le associazioni;
  2. reticolare, sviluppato negli anni sessanta, ed ha una struttura a grafo nella quale i nodi rappresentano i nodi e gli archi rappresentano le associazioni;
  3. relazionale, sviluppato tra gli anni settanta e ottanta e rappresentano il database come un insieme di tabelle;
  4. ad oggetti, sviluppato negli anni ottanta ed è basato sulla programmazione a oggetti.

Quello più utilizzato al giorno d’oggi è quello relazionale, perché è considerato il modello più semplice ed efficace. Questo modello si basa su alcuni concetti matematici e assegna grande importanza all’uso del linguaggio matematico con, due obiettivi importanti:

Il modello E/R

 

Il modello Entità-Relazione, è piuttosto semplice e il suo nome deriva dal fatto che permette di modellare il mondo reale utilizzando entità e relazioni. Il risultato è un diagramma E/R che viene utilizzato per rappresentare visivamente gli oggetti del modello. Le entità sono gli oggetti su cui vengono raccolte informazioni e possono essere persone, macchine, eventi ecc.
La relazione rappresenta un’associazione tra una o più entità. Si dicono:

La caratteristica principale della relazione è la cardinalità, la quale descrive la mappa delle istanze delle entità associate nelle relazioni. I tipi principali di cardinalità sono: uno a uno, uno a molti, molti a molti. Date due entità A e B, la relazione uno a uno (1:1) si ottiene quando un’unica istanza dell’entità A viene associata a un’unica istanza dell’entità B. la relazione uno a molti (1:M) si verifica quando a una istanza dell’entità A corrispondono zero, una, o molte istanze dell’entità B, ma a un’istanza dell’entità b corrisponde solo un’istanza dell’entità A. una relazioni molti a molti (M:M), si verifica quando per un’istanza dell’entità A ci sono zero, una o molte istanze dell’entità B, e per un’istanza dell’entità B ci sono zero, una o molte istanze dell’entità A.
In un modello E/R sono presenti anche gli attributi che descrivono le entità con le quali sono associati.
Una particolare istanza di un attributo è detta valore. Questi possono essere identificatori, dette anche chiavi, le quali identificano univocamente un’istanza di un’entità; e descrittori, la quale descrivere una caratteristica non unica di una istanza di un’entità. Gli attributi chiave sono quelli che possono essere per identificare un’entità; quelli non chiave, descrivono l’entità a cui appartengono e possono e possono esistere solo in un’entità; quelli derivati, creati da una formula o da operazioni di elaborazione su altri attributi. Il dominio di un attributo è la collezione di tutti i valori possibili di un attributo.

Le chiavi

 

La chiave primaria è un attributo o un insieme di attributo che identificano univocamente una specifica istanza di una entità e l’attributo deve avere le seguenti proprietà:

Le tabelle

Le tabelle vengono ricavate dal modello E/R applicando le regole di derivazione del modello logico, e cioè:

  1. ogni entità diventa relazione;
  2. ogni attributo di un’entità diventa un attributo della relazione;
  3. ogni attributo della relazione eredita le caratteristiche dell’attributo dell’entità da cui deriva;
  4. l’identificatore univoco diventa la chiave primaria della relazione derivata;
  5. l’associazione uno a uno diventa un’unica relazione che contiene gli attributi della prima e della seconda entità;
  6. nell’associazione uno a molti la chiave primaria dell’entità di partenza diventa chiave esterna dell’entità di arrivo associata;
  7. l’associazione molti a molti diventa una nuova relazione composta dagli identificatori univoci dalle due entità e dagli eventuali attributi dell’associazione.

Le tabelle relazionali godono di 6 proprietà:

  1. i valori sono atomici. Questa proprietà indica che le colonne non sono scomponibili;
  2. i valori delle colonne sono omogenei tra di loro. Tutti i valori in una colonna appartengono allo stesso dominio;
  3. ogni riga è univoca. Questa proprietà assicura che non ci siano due righe identiche;
  4. la sequenza della colonna non è significativa;
  5. la sequenza delle righe non è significativa;
  6. ogni colonna deve avere un nome univoco.

Le operazioni operazionali

 

Gli operatori relazionali agiscono su una relazione per ottenere una nuova relazione. Quindi le operazioni relazionali consentono di effettuare le interrogazioni (o query) ai database per ottenere le informazioni desiderate estraendo da una tabella una sottotabella.
Alcune principali operazioni del modello relazionale sono:

  1. la selezione genera una nuova relazione costituita solo dalle tuple della relazione di partenza che soddisfano a una determinata condizione; la relazione ottenuta possiede tutte le colonne della relazione di partenza e quindi ha lo stesso grado, la cardinalità può essere minore o uguale alla tabella di partenza, ma di solito è minore.
  2. la proiezione genera una nuova relazione estraendo della tabella iniziale due o più colonne corrispondenti agli attributi prefissati. La tabella ottenuta potrebbe contenere alcune righe uguali: in questo caso occorre chiedere che ne venga conservata una sola perché il modello relazionale non consente righe uguali tra loro; nelle relazioni risultante il grado è minore o uguale al grado della relazione di partenza, la cardinalità di norma è uguale a quella di partenza;
  3. la congiunzione serve a combinare due relazioni aventi uno o più attributi in comune, generando una nuova relazione che contiene le righe della prima e della seconda tabella, che possono essere combinate secondo i valori uguali dell’attributo comune; la coniugazione viene realizzata facendo corrispondere valori uguali per attributi comuni nelle due tabelle: per questo motivo si chiama equi-join.

Esistono altri tipi di congiunzione:

Se le tabelle  su si opera hanno una struttura gabellare omogenea si possono applicare le usuali operazione sugli insiemi: