BASE DI DATI Una base di dati, detta anche database, può essere

BASE DI DATI
Una base di dati, detta anche database, può essere considerata come una raccolta di dati logicamente
correlati tra di loro e utilizzati per modellare una determinata realtà. In questo caso, i dati, sono
memorizzati su un supporto di massa e sono progettati per essere gestiti in modo:
- Semplice, in quanto le informazioni devono essere facilmente reperibili
- Efficiente, sia in termini di spazio con un efficiente utilizzo della memoria, sia in termini di
tempo con uno efficiente utilizzo del microprocessore.
- Efficace, in quanto le informazioni devono essere rappresentative della realtà che si vuole
analizzare.
Per gestire una base di dati, entra in funzione il cosiddetto DBMS, ovvero database management
system, il quale è un insieme di strumenti software che provvede a garantire:
- La gestione della base di dati, infatti, esso, deve permettere operazioni di creazione,
inserimento, aggiornamento e interrogazione della base di dati.
- La persistenza dei dati, infatti, esso, deve essere in grado di conservare intatto il contenuto
della base di dati in caso di mal funzionamento del sistema. In sintesi, la base di dati, non
deve avere un tempo di vita limitato ma deve durare nel tempo.
- La consistenza dei dati, infatti, esso, deve fare in modo che i dati siano significativi ed
utilizzabili nelle applicazioni dell'azienda per cui la base di dati è stata progettata.
- La privatezza e la sicurezza dei dati, infatti, ciascun utente, deve essere autorizzato a
svolgere solo specifiche azioni sui dati. In sintesi, la base di dati, deve impedire eventuali
danneggiamenti del sistema o interventi da parte di utenti non autorizzati.
- L'integrità dei dati, infatti, esso, deve garantire che le operazioni effettuate da utenti
autorizzati non provochino una perdita di consistenza dei dati.
- La scalabilità del database, in quanto deve essere possibile aggiungere altre informazioni
- Il supporto alle transazioni, ovvero il supporto a quelle sequenze di operazioni effettuate su
una base di dati, che possono concludersi con un successo o con un insuccesso. Nel caso di
successo, le modifiche apportate alla base di dati devono essere rese permanenti, altrimenti,
non deve rimanere traccia della transazione.
- La gestione del dizionario dei dati, ovvero quella specie di catalogo della base di dati che
contiene le informazioni che descrivono gli oggetti della base di dati (metadati).
Nel caso di database relazionali, invece, si parla di relational database management system.
In generale, un database management system, deve essere:
- Efficiente, ovvero capace di svolgere le operazioni richieste, tramite un efficiente utilizzo
della memoria (efficienza in termini di spazio) e un efficiente utilizzo del microprocessore
(efficienza in termini di tempo).
- Efficace, ovvero deve essere in grado di rendere semplici le attività richieste dagli utenti
Oltre a questo, un database management system, è costituito da diversi livelli, ovvero:
- Livello esterno che permette di far interagire i singoli utenti del database attraverso
specifiche applicazioni e di fornire gli strumenti necessari per modificare e vedere i dati. In
questo caso, per indicare una porzione di dati che ciascun utente può visualizzare, si utilizza
il termine vista.
- Livello concettuale o logico, che rappresenta la struttura logica assunta dai dati e quindi il
loro schema astratto.
- Livello interno o fisico, che è quello utilizzato per la memorizzazione dei dati, organizzati in
file, record e strutture di accesso. In questo livello, troviamo il database fisico,che è
costituito dall'implementazione del database logico.
I linguaggi principali che il database management system mette a disposizione, sono:
- DBA (database administrator), che riguarda l'amministratore del sistema e fornisce a ciascun
utente un sottoschema del database logico, ovvero una vista.
-
DML (data manipulation language), che consente di interrogare il database e soprattutto di
inserire, cancellare e modificare i dati.
- DDL (data definition language), che viene utilizzato per descrivere le caratteristiche delle
categorie di dati presenti nel database e le corrispondenze esistenti tra di esse.
- DCL (data control language), che permette di controllare gli accessi degli utenti
- DMCL (device media control language), che organizza i dati in modo da raggiungere
l'obiettivo dell'efficienza del database.
Infine, il database management system, permette di superare alcune difficoltà, presenti ancora in un
archivio, tra cui:
- La ridondanza dei dati, ovvero la memorizzazione degli stessi dati in diversi file
- L'incongruenza dei dati, ovvero una versione non aggiornata dei dati e questo porterebbe a
un'errata interpretazione degli stessi.
- L'inconsistenza di dati, ovvero l'aggiornamento di alcuni dati e il non aggiornamento di altri
e questo renderebbe inaffidabile il risultato di ogni interrogazione.
- La concorrenza, che si ha quando vari programmi operano su uno stesso file tentando di
accedere ai suoi dati. Se due programmi leggono uno stesso valore iniziale e lo modificano
contemporaneamente, solo l'ultima operazione di modifica sarà registrata, con il risultato
che un'operazione di scrittura andrà persa.
SISTEMA INFORMATIVO E SISTEMA INFORMATICO
Un sistema informativo, è un insieme organizzato di strumenti automatici, procedure manuali, e
risorse umane e materiali, orientato alla gestione delle informazioni rilevanti per un'organizzazione,
ovvero alla raccolta, all’archiviazione, all’elaborazione e allo scambio di informazioni. Un sistema
informatico, invece, è un sistema informativo, che fa uso di tecnologie informatiche. In sintesi, un
sistema informatico, ed insieme degli strumenti informatici utilizzati per il trattamento automatico
delle informazioni.
Sistema informativo e sistema informatico
DATI, INFORMAZIONI, SCHEMI E ISTANZE
Il dato, è un qualcosa di non organizzato, mentre se si attribuisce ad esso una chiave di
interpretazione che consente di comprendere il suo significato, allora, il dato, diventa informazione.
In sintesi, l'informazione è l'incremento di conoscenza che può essere acquisita dai dati.
Se ad esempio consideriamo una popolazione formata da soli numeri, non sappiamo a cosa essi
sono attribuiti e quindi non hanno alcun significato. Se a questi numeri si attribuisce una chiave di
interpretazione come ad esempio articoli in magazzino, allora, sappiamo che quei dati si riferiscono
agli articoli presenti in magazzino. Questa chiave di interpretazione dei dati, o meglio il significato
che si attribuisce al dato per ricavare informazione, si chiama schema o intensione. L'insieme dei
valori assunti da uno schema in un certo istante di tempo, invece, si chiama istanza di uno schema o
estensione. In generale, si parla di significato intensionale quando ci si riferisce al contenuto
informativo dei dati e quindi alla loro interpretazione, mentre si parla di significato estensionale,
quando ci si riferisce ai valori che uno schema può assumere in un certo istante di tempo. Oltre a
questo, si parla anche di categoria quando si vuole indicare un gruppo di dati aventi la stessa chiave
di interpretazione, ovvero lo stesso schema, mentre si parla di occorrenza di una base di dati,
quando si vuole indicare l'insieme delle istanze delle categorie in un determinato istante di tempo.
Categoria, Attributo, Schema, Istanza e valore
Esempio significato intensionale del dato 23: “quantità in magazzino dell’Art01”
MODELLO DI DATI
Un modello di dati è un insieme di concetti utilizzati per organizzare i dati e descriverne la struttura
e la dinamica. Nella giuria della base di dati, i modelli, si distinguono i modelli concettuali che
mettono in evidenza i concetti presenti una base di dati e modelli logici e consentono di
rappresentare in modo specifico i dati. I principali modelli logici, sono:
- Modello gerarchico (struttura ad albero): i dati sono organizzati in record connessi tra di loro
secondo struttura ad albero. Ogni record del database deve avere un unico padre, ma
possono esserci più record che rappresentino la stessa informazione. Inoltre, la cancellazione
di un record comporta l'eliminazione di tutti i record dipendenti da esso, mentre
l'aggiornamento di un dato richiede la modifica di altri il record per assicurare la consistenza
del database. Un esempio di modello gerarchico, è dato dai file system.
- Modello reticolare (struttura a grafo): è basato su strutture di dati a reticolo e deriva dal
modello gerarchico ma si differenzia in quanto i record sono legati tra di loro con strutture
ad anello che permettono all'utente finale di accedere ai dati in maniera più semplice.
Inoltre, in questo caso, un record può avere uno o più padri e quindi si evitano i problemi
relativi alla ridondanza dei dati. Infine, la gestione delle informazioni in un modello
reticolare, è più complessa in quanto deve essere utilizzata una struttura a grafo e quindi
risulta difficile l'implementazione e la costruzione del software. Lo svantaggio principale, è
che bisogna cancellare e ricreare il database quando lo si vuole modificare.
- Modello relazionale (struttura a tabelle): è basato sul concetto di insiemi di record e le
relazioni tra le informazioni derivano da alcuni campi record relativi ad altre tabelle.
- Modello a oggetti: riprende il concetto di programmazione ad oggetti ma soprattutto supera
alcune caratteristiche dei database relazionali quali le applicazioni multimediali. In generale,
lo sviluppatore del database, gestisce tutti gli aspetti del database stesso.
Modello gerarchico
Modello relazionale
Modello reticolare
Modello a oggetti
PROGETTAZIONE DI UNA BASE DI DATI
La metodologia di progettazione di una base di dati parte da un insieme di specifiche che
formalizzano le esigenze dell'utente. Successivamente, queste specifiche della realtà di interesse
vengono trasformate in specifiche formali, dopo una prima fase di analisi, in cui viene determinato
cosa deve fare il programma. Infine, questa fase di progettazione di una base di dati, è volta a
determinare come il programma dovrà fare quanto stabilito e quindi in che modo il documento di
specifiche formali viene trasformato in programma. In sintesi, si assiste ad un approccio
asimmetrico, detto a pari dignità, tra dati e funzioni, in cui la risorsa centrale sono i dati.
Fase di progettazione di una base di dati
Approccio asimmetrico tra dati e funzioni
Le progettazioni principali di una base di dati, sono:
- Progettazione concettuale che costruisce e definisce una rappresentazione corretta e
completa della realtà di interesse. L'input di questa fase sono le specifiche formali, mentre
l’output è uno schema concettuale, ovvero una rappresentazione astratta della realtà.
- Progettazione logica che trasforma la rappresentazione ancora astratta in uno schema logico.
L'input di questa fase è il diagramma E/R della fase di progettazione concettuale, mentre
l'output è uno schema logico riassumibile con relazioni rappresentate tramite tabelle.
- Progettazione fisica che implementa lo schema logico definendo tutti gli aspetti fisici di
memorizzazione e di rappresentazione in memoria di massa. L'input di questa fase sono le
tabelle della fase di progettazione logica, mentre l'output è l'implementazione in memoria di
massa di tali tabelle, ovvero i file.