Cos'è una base di dati
Una base di dati (o database):
 è una collezione di dati strutturati
 accessibile in modo efficace/efficiente da parte di applicazioni differenti
 e differenti utenti CONTEMPORANEAMENTE.
COS’È:
Un insieme di dati memorizzati senza inutili ridondanze (ripetizioni)
COME:


è organizzato in modo da essere indipendente dai programmi che necessitano di accedere ai
dati stessi
è in grado di servire più accessi simultanei eventualmente da programmi e utenti differenti
GESTIONE E VERIFICA DELLA COERENZA E CONSISTENZA:
DBMS (data base management system): il dbms è costituito da un insieme di programmi software
che controllano l’organizzazione, la memorizzazione e il reperimento dei dati in un database. Esso
controlla anche l’integrità e la sicurezza del database. Il dbms si colloca tra i programmi applicativi
e il sistema operativo e si occupa di gestire i dati andandoli a prelevare direttamente dal database.
COME FUNZIONA:
Gli utenti accedono ai programmi tramite interfacce e i programmi, quando hanno necessità di
accedere ai dati, li richiedono al DBMS, che li preleva dal database interagendo con il file system
del sistema operativo, per restituirli infine ai programmi richiedenti.
PERCHÈ CREARE LE BASI DI DATI
1. IL SISTEMA EDP
EDP Electronic Data Processing: è un insieme di dati memorizzati su supporti elettronici e di
applicazioni informatiche utilizzate per agevolare il raggiungimento degli obiettivi di un’azienda.
Per applicazione informatica si intende una componente del sistema informativo (SI) che utilizza
dati in esso immagazzinati per compiere una funzione specifica all’interno dell’organizzazione a cui
il SI appartiene.
Ogni singola applicazione del SI 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).
File system (ARCHIVI TRADIZIONALI): è un meccanismo con il quale i file sono memorizzati e
organizzati su un dispositivo di archiviazione (hard disk o cd).
- ogni applicazione opera in modo indipendente (o quasi) dalle altre applicazioni utilizzando propri
dati e propri programmi
- struttura problematica nel caso in cui sia necessaria una condivisione di dati da parte di due o più
applicazioni
2. BASI DI DATI E DBMS
- una base dati è un’organizzazione di dati progettati per essere usati in applicazioni differenti e da
più utenze, senza duplicazioni, per servire più applicazioni contemporaneamente ed essere
indipendenti dai programmi che li usano
- percorso richiesta dati: GUI → programma → DBMS → database
3. CENTRALIZZAZIONE DEI DATI
- ridondanza: duplicazione del dato o memorizzazione di un dato che deriva dall’elaborazione di
altri
- attraverso i DBMS è possibile evitare la duplicazione delle informazioni
- ridondanza utile: memorizzazione di ulteriori dati in funzione di frequenti richieste
- DBA (data base administrator) è il responsabile della base dati che deve decidere se inserire o
meno le ridondanze (garantire la massima efficienza della base dati)
- inconsistenza: quando due dati che rappresentano la stessa cosa assumono valori diversi
- integrità dei dati: il DBMS si occupa di controllare che l’inserimento/cancellazione di dati non
alteri la struttura della base dati (esempio database biblioteca autori/opere)
Architettura
1. MODELLO ANSI/SPARC
Nell’organizzazione dei database possiamo evidenziare tre livelli di astrazione:
- schema fisico (livello interno): descrive come sono organizzati fisicamente i dati sulla memoria di
massa
- schema logico concettuale (livello concettuale): rappresenta l’organizzazione logico concettuale
dei dati
- sottoschemi o viste (livello esterno): differenti utenti possono avere differenti visioni a seconda
dell’uso
LIVELLO INTERNO
Rappresenta la descrizione fisica delle strutture degli archivi, orientato a valutazione di carattere
tecnico ed economico, tecnologia hardware e software.
LIVELLO LOGICO CONCETTUALE
LIVELLO ESTERNO
E’ detto anche livello applicativo e descrive come i dati sono visti dalle applicazioni e dagli utenti.
INDIPENDENZA LOGICA E FISICA
INDIPENDENZA LOGICA:
è la possibilità di modificare lo schema concettuale senza dover modificare i programmi.
INDIPENDENZA FISICA: è la possibilità di modificare l’organizzazione fisica dei dati senza
modificare l’organizzazione logica concettuale dei dati.
1. Un utente o un’applicazione richiede un dato al DBMS
2. Il DBMS individua la corrispondenza tra il dato richiesto e quello definito nello schema
concettuale (schema logico concettuale: organizzazione logica concettuale dei dati)
3. Il DBMS attraverso lo schema fisico individua dove il dato è fisicamente memorizzato e i metodi
per potervi accedere
4. Il DBMS chiede al SO di prelevare il dato in questione
5. Il SO restituisce in un’apposita area (buffer di comunicazione) il record prelevato dal DBMS
6. Il DBMS effettuerà le trasformazioni del record per renderlo compatibile con il modello esterno
7. Il DBMS restituisce il record all’applicazione richiedente
I LINGUAGGI
Per poter gestire le basi di dati tramite i DBMS sono stati introdotti dei linguaggi specifici.
DDL (Data Definition Language)
E’ un linguaggio a sé stante con sintassi semantica propria ed è indipendente dalle applicazioni,
utilizzata soprattutto dal DBA. Consente a ogni programmatore di selezionare solo una parte dello
schema che gli interessa.
Un esempio potrebbe essere Access.
DML (Data Manipulation Language)
E’ un linguaggio per la modifica, l’inserimento, la cancellazione e il reperimento dei dati. Può
essere un linguaggio a sé stante o un’estensione del linguaggio ospite.
Esempio: collegamento a Visual Basic
All’interno del DML si possono distinguere in:
- procedurali: quando hanno gli operatori per trarre i singoli record
- non procedurali: quando gli operatori sono indipendenti dal concetto di posizione cioè considerano
i dati collettivamente
GLI UTENTI
Il DBA ha il compito di:
- creare e manutenere lo schema logico (organizzazione dei dati)
- definire e manutenere lo schema interno (gestione dei dati sui supporti di massa)
- definire ed aggiornare le restrizioni d’accesso
- ripristinare la base di dati in caso di mal funzionamento
Il programmatore ha il compito di:
- realizzare applicazioni utilizzando il DML o altri linguaggi di programmazione
Utenti finali
- occasionali (hanno bisogno di GUI amichevoli per l’accesso al database)
- frequenti (non hanno conoscenze informatiche, ma una discreta dimestichezza con il sistema)
- inconsapevoli (coloro che utilizzano una particolare applicazione senza sapere che è basata su una
base di dati)
MODELLI
La classificazione dei modelli è basata su come vengono rappresentate e trattate le associazioni, in
particolare come vengono gestiti gli archi che rappresentano le associazioni nella rappresentazione
grafica dello schema.
- arco informativo (utilizzati da modelli a grafo): senza la sua presenza fisica non è possibile
collegare le due entità
- arco non informativo (utilizzati da modelli relazionali): le informazioni necessarie sono già
contenute nelle entità stesse e quindi non è necessario utilizzare puntatori fisici