Sei sulla pagina 1di 30

Capitolo 1 GENERALIT SULLE BASI DI DATI

1. DEFINIZIONI INTRODUTTIVE
SISTEMA INFORMATIVO
Insieme organizzato di strumenti automatici, procedure manuali, risorse umane e materiali,
orientato alla gestione delle informazioni rilevanti per unorganizzazione.
Es. Il Sistema Informativo di una scuola composto da: computer degli uffici, registri cartacei, personale
amministrativo e direttivo.

SISTEMA INFORMATICO
Insieme degli strumenti informatici utilizzati da unorganizzazione per il trattamento automatico
delle informazioni.
Es. Il Sistema Informatico di una scuola composto dai computer degli uffici e relative apparecchiature accessorie
(stampanti, rete, modem).

REALT DI INTERESSE
Insieme dei dati rilevanti per unorganizzazione, che devono essere gestiti tramite il sistema
informatico.

TEORIA DEI DATABASE


Scienza che studia come organizzare al meglio grandi quantit di dati, per poter effettuare con
facilit ricerche, elaborazioni, aggiornamenti.

BASE DI DATI (in inglese DATABASE)


Raccolta ottimizzata di dati correlati, progettata per essere adoperata contemporaneamente da pi
utenti.

DBMS (Data Base Management System, ossia sistema di gestione della base di dati)
Componente del software di base non essenziale, gestisce la base di dati su memoria di massa,
ponendosi come intermediario tra il software applicativo e il Sistema Operativo. Costituisce
uninterfaccia intelligente per laccesso ai dati, che risulta notevolmente facilitato e sicuro.

2. CARATTERISTICHE
Una buona Base di Dati deve essere:
 facile da usare;
 veloce nei tempi di risposta;
 integra e consistente (non deve essere possibile inserire dati incongruenti, ossia
contraddittori);
 sicura fisicamente (non deve essere danneggiata da eventi accidentali come crash del
sistema e black-out);
 sicura logicamente (non deve essere consultabile o modificabile da utenti non
autorizzati);
 condivisibile negli accessi (pi utenti devono potervi accedere nello stesso momento);
 efficiente (deve impiegare la minor quantit possibile di risorse).

5
Vincenzo la Cecilia Generalit sulle basi di dati

3. MODELLI
I modelli delle basi di dati si distinguono in:

- Concettuali: servono a rappresentare la realt di interesse, indipendentemente dal tipo di


database da utilizzare. Il pi utilizzato il Diagramma E/R.
- Logici: servono a rappresentare i dati, con riferimento al tipo di database da utilizzare.

I principali modelli logici sono i seguenti:

 Il MODELLO GERARCHICO (anni '60) era fondato sull'organizzazione gerarchica dei dati
ad albero capovolto, organizzato in segmenti:

SCUOLA

PRESIDE MATERIA CLASSE

SEGRETARIO INSEGNANTE INSEGNANTE INSEGNANTE

PERSONALE
CLASSE MATERIA
A.T.A.

AULA

Il primo segmento in alto era detto radice. Ogni record non appartenente al segmento radice
doveva avere uno e un solo record padre nel segmento sovrastante. Il database risultava
abbastanza macchinoso da usare perch per inserire o accedere a un record bisognava prima
accedere a tutti i segmenti dellintero percorso a partire dalla radice.
Il modello gerarchico aveva inoltre un grosso limite: riusciva a rappresentare in modo nativo
solo le associazioni semplici (uno a molti) o biunivoche (uno a uno) ma non quelle
complesse (molti a molti, es.: Insegnante-Materia). Per queste ultime si doveva ricorrere a
due associazioni semplici invertite, duplicando per cos i dati.
Un DB gerarchico molto utilizzato fu lIMS (Information Management System) di IBM,
dotato di un linguaggio specifico per laccesso ai dati, il DL/11 (Data Language One), che
veniva ospitato in altri linguaggi (es. Cobol) in grado di gestire lintefaccia utente e
lelaborazione. Un database IMS poteva avere al massimo: un solo segmento radice; 15
livelli gerarchici; 255 segmenti con 255 campi ciascuno; 1.000 campi in tutto il database.
Lunit minima di trasferimento era la singola ricorrenza di segmento.

1
http://it.wikipedia.org/wiki/IBM_Data_Language_One_(DL/1)

6
Vincenzo la Cecilia Generalit sulle basi di dati

 Il MODELLO RETICOLARE (anni '70) superava la rigidit delle struttura gerarchica con
una organizzazione a rete dei dati, basata su puntatori. Ogni record poteva cos avere sia pi
record padri che pi record figli:

A causa della sua complessit nella gestione dei collegamenti fra i record, ne esistita una
sola implementazione (Codasyl, 1971-1981).

 il MODELLO RELAZIONALE, concepito da Edgar Frank Codd nel 1970, ma sviluppatosi


negli anni '80, basato sul concetto di relazioni, costituite da tabelle di record omogenei. Ha
avuto a tutt'oggi un grandissimo successo, grazie alla sua semplicit, efficacia ed efficienza,
spazzando letteralmente via del mercato tutti i modelli precedenti. Non ha bisogno di
puntatori perch i collegamenti fra i dati sono realizzati con i valori dei dati stessi:

Ne esistono moltissime implementazioni. I pi importanti DBMS relazionali (RDBMS)


presenti sul mercato sono: IBM-DB2 (il primo ad adottare il linguaggio SQL); ORACLE
(per computer di tutte le dimensioni); Microsoft ACCESS Database Engine (il pi diffuso in
ambiente Windows); Microsoft SQL SERVER (prodotto di punta per applicazioni profes-
sionali); MYSQL (gratuito, acquisito di recente da Oracle e tornato indipendente sotto il
come di MariaDB).

 il MODELLO A OGGETTI (1985) un modello relazionale che in aggiunta utilizza le


caratteristiche della programmazione a oggetti. ancora poco usato.
7
Vincenzo la Cecilia Generalit sulle basi di dati

4. UTENTI
I possibili utenti di un database sono:

 PROGRAMMATORI. Progettano e realizzano la base di dati, quindi sviluppano le


applicazioni che consentono agli utenti semplici di accedere con facilit e sicurezza ai dati.
 DBA (Database Administrator). Esperti tecnici di database, ne supervisionano la progettazione e
la realizzazione, disinteressandosi degli aspetti applicativi ma curando lefficienza e la
sicurezza. Si occupano inoltre della manutenzione del database e del mantenimento delle
prestazioni al crescere del volume dei dati.
 UTENTI SEMPLICI. Utenti privi di cognizioni tecniche, utilizzano il database eseguendo i
programmi applicativi creati dai programmatori.
 UTENTI EVOLUTI. Bench alloscuro di teoria dei database e di programmazione, sono in
grado di utilizzare linterfaccia visuale che alcuni DBMS mettono a disposizione (es. Access) e
con essa realizzano piccoli database artigianali, spesso sufficienti per le necessit domestiche.

5. LIVELLI DI ASTRAZIONE DI UN DATABASE


In senso astratto, un database pu essere inteso ai seguenti livelli:

 LIVELLO CONCETTUALE - LOGICO: quello concepito dai progettisti del database.


Definisce la struttura logica dei dati, che indipendente da come essi sono memorizzati nei file
fisici. Fornisce inoltre una mappa delle correlazioni stabilite fra i dati.

 LIVELLO INTERNO o FISICO: indica la struttura fisicamente costituisce il database. Gli


sviluppatori conoscono il nome, la posizione e lo spazio occupato dal database su memoria di
massa, oltre al tipo dei dati, per la tecnica di memorizzazione interna nota solo al DBMS.
Un DBMS installato su un computer pu gestire pi database presenti sulla stessa macchina.

DBMS

DATABASE 1 DATABASE 3
DATABASE 2

8
Vincenzo la Cecilia Generalit sulle basi di dati

 LIVELLO ESTERNO: la superficie del database visibile agli utenti finali, e ha


unattinenza solo approssimativa col livello logico-concettuale. Inoltre di solito nei grandi
sistemi informativi ogni utente, a seconda dei privilegi ricevuti, ha accesso a unarea circoscritta
della base di dati, perci ha una visione solo parziale dellintero database. Il livello esterno in
tal caso linsieme di tutte le viste parziali.

6. LINGUAGGIO PER I DATI


Gli attuali DBMS relazionali accettano i comandi del linguaggio SQL (Structured Query
Language, ovvero linguaggio di richieste strutturate), di 4a generazione. Questo linguaggio
levoluzione del Sequel (Structured English Query Language, Edgar Frank Codd IBM 1974) che
ambiva a diventare simile al linguaggio naturale inglese, ed considerato il sottolinguaggio
universale per i dati.. Infatti composto solo da istruzioni per laccesso ai dati, che vengono
interpretate dal DBMS, mentre non possiede istruzioni per la gestione dellinterfaccia utente n per
il controllo del flusso di esecuzione. Per realizzare applicazioni complete perci lSQL deve essere
ospitato in altri linguaggi di programmazione come Cobol, C, Visual Basic, Access, ASP, PHP e
cos via.
Linsieme dei comandi SQL si suddivide nei seguenti gruppi:
DDL (Data Definition Language o Linguaggio per la Definizione dei Dati), utilizzato per
creare e modificare la struttura vuota del database;
DCL (Data Control Language o Linguaggio per il Controllo dellaccesso ai Dati), composto
dai comandi per la gestione delle autorizzazioni a compiere determinate operazioni sulla base
dei dati. Si utilizza solo se il database destinato a una pluralit di utenti con competenze
differenti;
DML (Data Manipulation Language o Linguaggio per la Manipolazione dei Dati). Permette
di modificare il contenuto del database, con le consuete operazioni di inserimento, modifica,
cancellazione;
QL (Query Language o Linguaggio per le Interrogazioni), composto dai comandi per
lestrazione delle informazioni dalla base di dati.

S Q L
DDL DCL DML QL
Creare o
Limitare luso Modificare il Ottenere
modificare la
del database contenuto delle informazioni
struttura del
concedendo o tabelle. dal database.
database vuoto
revocando
(tabelle, indici,
autorizzazioni.
vincoli, relazioni).

9
Vincenzo la Cecilia Generalit sulle basi di dati

7. CONFRONTO TRA FILES TRADIZIONALI E DATABASE


Rispettivamente in assenza e in presenza di DBMS, l'accesso ai dati in un sistema informatico pu
essere cos schematizzato:

GESTIONE TRADIZIONALE DEI DATI:

Gli utenti possono accedere ai dati, in locale o in


remoto, soltanto attraverso programmi applicativi
appositamente scritti.
Programmi
applicativi I Sistemi Operativi consentono lesecuzione di
pi processi applicativi contemporaneamente.
A B
Le operazioni fisiche sui dati (letture/scritture)
Sistema Operativo vengono materialmente eseguite dal File System
(File System) del Sistema Operativo.

B Se pi operazioni riguardano lo stesso file, il


S.O. le dispone in coda, creando attese.
A
I dati sono depositati in files ad accesso diretto o
FILES sequenziale.

GESTIONE DEI DATI TRAMITE DATABASE

Gli utenti semplici continuano a usare i


programmi applicativi per accedere ai dati.

Gli utenti evoluti e soprattutto i programmatori


possono inoltre utilizzare linterfaccia standard
che il DBMS mette a disposizione per inse-
rire/consultare i dati e compiere operazioni di
Programmi manutenzione.
applicativi
A I programmi applicativi e linterfaccia standard,
B C che sono a conoscenza solo dellorganizzazione
logica dei dati ma non di quella fisica,
Interfaccia
standard presentano le proprie richieste al DBMS.

DBMS Il DBMS valuta l'ammissibilit di ciascuna


richiesta. In caso negativo restituisce un
A B C messaggio d'errore, altrimenti la traduce in
comandi per il File System.
Sistema Operativo
(File System)
Il Sistema Operativo percepisce il DBMS come
C unico utente dei file che costituiscono il
B database, e pertanto esegue tutte le sue richieste
A
in rapida successione senza code di attesa.

DATABASE

10
Vincenzo la Cecilia Generalit sulle basi di dati

6.1. Inconvenienti della gestione tradizionale dei dati


1) Un problema degli archivi tradizio-
nali costituito dalla concorrenza Due processi chiedono
Processo X Processo Y
degli accessi: il Sistema Operativo di aprire il file A.
considera i file come singole risorse
indivisibili. Perci se un processo File A Sistema Operativo (File System)
deve accedere a un record, deve
prima chiedere lapertura (Open) del coda
file che lo contiene, e che gli viene
assegnato per intero (gestione del
lock a livello di file). Tutti i record Il S.O. accoda le richieste, e assegna
del file risultano inaccessibili agli lintero file A al processo X.

altri processi finch il primo non Quando il processo X chiude il file A,


rilascia il file (Close). Pertanto, nei il S.O. lo pu assegnare al processo Y.
sistemi multiprogrammati si creano
code di attesa. Allaumentare della multiutenza conseguente allespansione delle reti, i tempi di
attesa diventano ben presto inaccettabili. Per ridurre al minimo tali code, ogni programma deve
aver cura di chiudere i file appena possibile. Alcuni sistemi operativi consentono gli accessi
simultanei in sola lettura perch questi non modificano i dati.

2) Con i file tradizionali alto il rischio di deadlock (stallo) fra processi. Il deadlock si verifica
quando ad es. un processo X
ottiene dal sistema Operativo luso Processo X Processo Y
del file A e chiede anche laccesso File A File B
al file B senza rilasciare il file A,
mentre un processo Y aveva gi
utilizzato il file B e non lo rilascia
finch non riesce ad accedere al
file A. Cos ciascuno dei due Deadlock
processi occupa la risorsa che
occorre allaltro per proseguire, ed entrambi si bloccano. Dopo un certo lasso di tempo il S.O.
per timeout dichiarer permanentemente indisponibile la risorsa richiesta a uno dei due
processi, cancellandone lesecuzione e liberando il passaggio allaltro. Leffetto per lutente
finale di anomalie apparentemente casuali e inspiegabili.
Esempio: iscrizione di uno studente alla classe 1C di una scuola, mentre in corso la cancellazione
della classe 1D per mancanza di iscrizioni. Il programma Iscrizioni apre il file Alunni per controllare
che lo studente non sia gi iscritto, ma prima di aggiungerlo chiede di aprire anche il file Classi per
verificare che la classe 1C esista. Nel frattempo il programma GestioneClassi, avviato da un altro
utente, ha gi aperto il file Classi per verificare che la 1D esista ancora, ma prima di cancellarla
chiede anche laccesso al file Alunni per controllare che non vi sia nessun alunno iscritto alla 1D.
Risultato: deadlock dei due processi.

Il deadlock si pu prevenire, a livello di intero progetto applicativo, stabilendo un ordine di


accesso ai vari file che tutti i programmi dovranno rispettare (senza andare cio
controcorrente). Ad es. supponendo che in un sistema, adottata unopportuna nomenclatura
dei file di dati, si stabilisca che essi vadano aperti in ordine alfabetico, se un programma ha
bisogno di accedere prima al file B e poi al file A, dovr comunque avere laccortezza di aprire
prima il file A e poi il file B, restando libero di rilasciarli in ordine qualsiasi.
3) Per tutte le ragioni esposte nei due punti precedenti e anche per semplificare la
programmazione, succede spesso con i file tradizionali che le stesse informazioni vengano
memorizzate in pi archivi, cos da essere contemporaneamente disponibili a processi diversi.

11
Vincenzo la Cecilia Generalit sulle basi di dati

Ad es. in una banca gli indirizzi dei clienti possono essere replicati in ciascuno degli uffici in cui
hanno attivit finanziarie come conti correnti, azioni, titoli di stato, fondi di investimento, etc. Inoltre,
per semplicit a volte anche labbinamento CAP-Comune viene ripetuto record per record invece di
essere centralizzato in unico archivio.

Rossi Roberto via Zara, 27 71121 Foggia

Clienti_CC Clienti_Azioni
Rossi Roberto via Zara, 27 71121 Foggia Rossi Roberto via Zara, 27 71121 Foggia

Verdi Mario via Fini, 4 71121 Foggia Verdi Mario via Fini, 4 71121 Foggia

Tale deleterio fenomeno chiamato RIDONDANZA (ripetizione superflua), comporta spreco


di spazio ma soprattutto forte rischio di INCONGRUENZA (incoerenza) tra i dati, che si
verifica se un dato non viene aggiornato coerentemente in tutti i file che lo contengono. Quando
si scopre lincongruenza tra alcuni dati, si deve desumere lINCONSISTENZA
(inaffidabilit) dellintera base di dati.

RIDONDANZA INCONGRUENZA INCONSISTENZA

4) I file tradizionali non contengono n il nome n il tipo dei campi, in una parola non contengono
il proprio tracciato record, che quindi va ripetuto in ogni programma. I nomi dei campi possono
anche cambiare da programma a programma. Ci rende pi macchinosa la scrittura e la
manutenzione del software. Inoltre, la modifica del tracciato record di un archivio, ad es. per
laggiunta di un nuovo campo, comporta la scrittura di un apposito programma di conversione
che legga il vecchio file, ne scriva uno nuovo e infine lo sostituisca al precedente.
Immediatamente occorre adeguare e ricompilare tutti i programmi che accedono a
quell'archivio, anche se non direttamente interessati alla modifica.
5) Molto spesso i dati devono rispettare alcuni vincoli di validit (es. i voti scolastici vanno da 1 a 10),
queste regole vanno implementate nel codice di tutti i programmi di inserimento, modifica e
cancellazione. Se a distanza di tempo occorre modificare tali vincoli, bisogner rintracciare,
modificare, ricompilare e infine reinstallare nel sistema dellutente tutti i programmi coinvolti.
6) I file tradizionali non sono in alcun modo correlati automaticamente tra loro. Tutte le necessarie
regole di correlazione (vincoli referenziali e vincoli di univocit delle chiavi) devono perci
essere implementate nei programmi applicativi, appesantendone la codifica con apposite
routine di controllo.
Ad es.:
- il programma di inserimento dei calciatori deve accertarsi il calciatore digitato non sia gi presente
nel database;
- un programma che consenta di cambiare la squadra a un calciatore deve prima controllare che la
nuova squadra indicata esista nel file delle squadre;
- prima di cancellare una classe di un istituto scolastico dal file delle classi, il programma deve
accertarsi nel file degli alunni che nessun alunno risulti abbinato a quella classe.

7) Per effettuare un aggiornamento batch (non interattivo) occasionale su una serie di record (es.
cambiare laliquota IVA a tutti gli articoli di una certa categoria) necessario scrivere un apposito
programma, destinato ad essere eseguito una volta sola e con estrema prudenza sui dati reali,
dopo essere stato testato accuratamente. Inoltre il programma per tutta la durata della propria
esecuzione bloccher tutti gli accessi allarchivio da parte degli altri processi.

12
Vincenzo la Cecilia Generalit sulle basi di dati

8) Combinare informazioni provenienti da archivi diversi comporta uno sforzo di programma-


zione non trascurabile, oltre a un certo impegno del File System del Sistema Operativo in fase
di esecuzione.
9) I file tradizionali non contengono alcuna documentazione circa il nome, il tipo e il significato
dei campi. Il Dizionario dei dati, riferimento indispensabile in un grosso sistema informativo,
va dunque gestito come documento separato. I tracciati record devono essere ripetuti nei
programmi applicativi e possono utilizzare nomi diversi per gli stessi dati, aumentando il
rischio di confusione.

6.2. Vantaggi derivanti dallintroduzione dei Database


Il DBMS evita gli inconvenienti della gestione tradizionale dei dati, offrendo:
1) Gestione del lock a livello di record. In caso di accessi concorrenti allo stesso archivio,
viene bloccato solo il record a cui ciascun processo sta accedendo (gestione del lock a livello di
record), mentre tutti gli altri record restano accessibili agli altri processi. Il record in uso viene
automaticamente rilasciato non appena il processo passa a un altro record. Ci possibile
perch il DBMS in grado di distinguere i record a cui ogni processo chiede di accedere,
pertanto accoglie pi richieste comtemporanee e le traduce in comandi per il Sistema
Operativo, per il quale esso rappresenta lunico processo che accede fisicamente ai dati. I
programmi accedono ai dati senza pi lanciare istruzioni di apertura e chiusura dei singoli
archivi, ma solo dellintero database.
2) Validit dei dati. I vincoli di validit che i dati devono rispettare (ad es. i voti degli studenti
devono essere compresi tra 1 e 10) sono ora scritti nelle tabelle stesse che li contengono. Il DBMS
non consente in nessun caso n a programmi applicativi n a utenti in modalit interattiva di
violare i vincoli di validit.
3) Integrit dei dati. Il DBMS gestisce in modo centralizzato le correlazioni tra i dati. I
programmi non devono pi contenere istruzioni per garantire la c.d. integrit referenziale. e i
vincoli di univocit delle chiavi. Le regole di correlazione sono scritte nel database e consultate
alloccorrenza dal DBMS. Ogni tentativo di violare lintegrit dei dati viene intercettato dal
DBMS e opportunamente segnalato.
4) Eliminazione delle ridondanze. I dati vengono registrati una volta sola e resi disponibili ai
programmi con il tracciato necessario a ciascuno di essi. Oltre al risparmio di spazio su disco e
tempo di aggiornamento, si prevengono le anomalie dell'incongruenza e dell'inconsistenza.
5) Indipendenza logica dei programmi dai dati. possibile modificare lo schema dei dati
(es. aggiunta o eliminazione di un campo da un archivio) senza modificare i programmi non
direttamente interessati alla modifica, che continuano regolarmente a funzionare. Non
neppure necessario scrivere programmi di conversione, perch ad essa provvede
automaticamente il DBMS.
6) Indipendenza fisica dei dati. possibile modificare la collocazione e altre caratteristiche
fisiche dei dati sulla memoria di massa (es. allungamento di campi esistenti) senza modificare
l'organizzazione logica n i programmi.
7) Facilit duso. Il linguaggio per laccesso ai dati non procedurale, cio sufficiente
specificare cosa fare e non come. Sono abolite le vecchie istruzioni di apertura e chiusura dei
file con la dichiarazione dellintento di accesso. Il DBMS interpreta il comando e lo traduce in
istruzioni per il sistema operativo. Le operazioni ripetitive su una serie di record possono essere
eseguite velocemente con un solo comando, senza necessit di istruzioni iterative, anchesse
divenute superflue.

13
Vincenzo la Cecilia Generalit sulle basi di dati

8) Interfaccia standard per dialogare col DBMS, sia per la costruzione del database che per
l'accesso immediato ai dati, cio anche senza programmi applicativi. perfino possibile
eseguire aggiornamenti una tantum su una serie di record senza scrivere appositi programmi,
ma con un solo comando interattivo. Alcuni DBMS offrono uninterfaccia pi spartana a linea
di comando su schermo a caratteri, mentre altri offrono uninterfaccia grafica molto evoluta e
ricca di comode funzionalit.
9) Sicurezza fisica. Il DBMS salva immediatamente su memoria di massa ogni modifica ai
singoli record, senza trattenerla in memoria centrale, cos da prevenire la perdita di dati dovuta
all'improvvisa caduta del sistema. Inoltre possiede funzioni di utilit che agevolano il
salvataggio periodico (backup) dell'intera base dati.
10) Sicurezza logica. Il DBMS pu identificare l'utente e controllarne le autorizzazioni
all'accesso in lettura o in scrittura e con riferimento ai singoli archivi. Non possibile accedere
ai dati con programmi editor che aggirino il DBMS e dialoghino direttamente col Sistema
Operativo, perch il formato fisico di salvataggio dei dati noto solo al DBMS stesso.
11) Sottoschemi. Il DBMS consente lutilizzo di sottoschemi dei dati, detti viste logiche,
attraverso i quali ogni utente vedr solo la porzione di database che gli compete. Ci offre
ulteriore sostegno alla sicurezza logica.
12) Supporto alle transazioni. La transazione unoperazione di senso compiuto costituita da
una sequenza di azioni elementari, che quindi devono essere eseguite tutte, oppure annullate.
Es. i record di due persone che contraggono matrimonio vanno modificati entrambi, o nessuno
dei due; lo stesso vale per i due c/c coinvolti in un bonifico bancario. La delimitazione delle
transazioni nei programmi molto semplice. In esecuzione il DMBS, se non riesce a eseguire
lintera sequenza, ripristina la situazione precedente e segnala lerrore.
13) Gestione del Dizionario dei Dati. Il DBMS attribuisce un nome e un tipo a ogni campo
garantendo cos luniformit tra i programmi. Inoltre alcuni DBMS accanto al nome
consentono di conservare un commento chiarificatore, agevolando sensibilmente la
documentazione elettronica del significato di ciascun dato.

RIEPILOGO DEFINIZIONI

RIDONDANZA: Ripetizione di un dato nello stesso o in diversi archivi.


INCONGRUENZA: Incoerenza, contraddizione fra dati.
INCONSISTENZA: Inaffidabilit della base di dati.
INTEGRIT: Un dato integro quando non assume valori inammissibili.

8. FASI DELLA CREAZIONE DI UNA BASE DI DATI


Una nuova base di dati, col relativo software applicativo, nasce attraverso le seguenti fasi:

o ANALISI DEL SISTEMA INFORMATIVO: definisce con chiarezza l'ambito del progetto,
le sue caratteristiche e le funzionalit richieste.
o PROGETTAZIONE CONCETTUALE: individua i dati rilevanti e le loro associazioni,
producendo uno Schema Concettuale (Entit/Associazioni) della realt dinteresse, indipen-
dente dal modello di DB da utilizzare;

14
Vincenzo la Cecilia Generalit sulle basi di dati

ANALISI DEL SISTEMA


INFORMATIVO

PROGETTAZIONE ANALISI DELLE FUNZIONI


CONCETTUALE (Diagramma delle Funzioni,
(Diagramma E/R) Disegno delle interfacce utente)

PROGETTAZIONE LOGICA PROGETTAZIONE DELLE FUNZIONI


(Schema Logico Relazionale) (Specifiche di programmazione)

PROGETTAZIONE FISICA REALIZZAZIONE DELLE FUNZIONI


(Specifiche fisiche) (Codifica)

PROGRAMMI
DATABASE

PRODOTTO
FINITO

TEST

INSTALLAZIONE

MANUTENZIONE

o PROGETTAZIONE LOGICA: produce uno Schema Logico dei dati, orientato al tipo di DB
(solitamente relazionale) da utilizzare;
o PROGETTAZIONE FISICA: descrive tipo e formato degli attributi, tenendo conto delle
possibilit offerte dal particolare DBMS scelto, e tutti i dettagli necessari per la realizzazione
del database sulla memoria di massa. Da questa si ottiene un database con tutti i contenitori
correlati per i dati, ovviamente vuoti;
o ANALISI DELLE FUNZIONI: stabilisce quali sono le funzionalit che il progetto dovr
offrire, in che modo saranno raggiungibili dall'utente e che aspetto avranno;
o PROGETTAZIONE DELLE FUNZIONI: definisce le specifiche tecniche di ogni
programma, le eventuali viste logiche e i comandi SQL per le interrogazioni;
o REALIZZAZIONE DELLE FUNZIONI: la fase in cui vengono realizzate al computer le
interfacce per l'utente e i programmi;
o il PRODOTTO FINITO viene testato dapprima con dati di prova, poi possibilmente con dati
reali, e quindi installato presso il cliente. Ne viene curata la manutenzione nel tempo.

15
Capitolo 2 LANALISI DELLE BASI DI DATI

1. LANALISI DEL SISTEMA INFORMATIVO


Si tratta della fase preliminare alla progettazione tecnica, e consiste nel riportare per iscritto in
linguaggio naturale tutte le informazioni utili per le fasi successive.

In ambito professionale, le informazioni vengono raccolte tramite


svariate interviste al committente e indagini conoscitive presso la sua
sede operativa. Ogni software house di una certa solidit sviluppa dei
propri standard procedurali per questa fase e predispone una modulistica
che guida gli analisti, facilitando lorganizzazione e la documentazione
del lavoro.

In ambito scolastico, il cliente sostituito dalla traccia della prova, e il


tempo a disposizione molto limitato. Ciononostante i problemi
proposti sono abbastanza realistici.

In questa sede, scolastica ma anche preparatoria a una possibile


professione, si propone un modello che possa conciliare lapproccio metodologico professionale
con la brevit della soluzione scolastica.
Il modello non va applicato rigidamente, ma se ne possono utilizzare solo le sezioni ritenute volta
per volta significative rispetto al problema da affrontare. Lobiettivo quello della chiarezza e
coerenza dellimpianto progettuale complessivo.

1.1. Analisi della Realt di interesse


il primo punto da affrontare e consiste nellesaminare attentamente e ripetutamente il problema
proposto, evidenziando tutti gli elementi rilevanti e distinguendo tra le presumibili entit, attributi e
associazioni. Particolare attenzione va prestata a insidiosi sinonimi, approssimazioni e impropriet
talvolta (volutamente) presenti.
Quindi, in linguaggio naturale ma rigoroso, chiaro, semplice e scevro da ambiguit, occorre:
indicare inizialmente il committente e lo scopo del progetto per definire lambito della Realt
di interesse (o Realt di riferimento). Questultima dunque non potr essere un elemento degli
schemi successivi perch ne il contenitore.
Es.: Se si deve progettare il database di una scuola, Scuola non un elemento della realt di
interesse ma il contenitore di essa.
descrivere il comportamento dei soggetti che producono dati rilevanti, ricostruendo il
funzionamento della realt di interesse, soprattutto negli aspetti non immediatamente evidenti.
Sono da evitare le pure ripetizioni di aspetti gi chiari nella traccia. Pu essere utile citare gli
elementi fondamentali (entit) specificando gli identificatori (chiavi) e le varie azioni
(associazioni) anche in termini di molteplicit (uno o pi). Non indispensabile stilare un
elenco delle entit. Va prestata attenzione alle necessit di dei soggetti che estrarranno
informazioni dalla base di dati;
specificare se il database attuale o storico. Un database attuale se deve gestire solo la
situazione contingente e quindi mantiene solo i dati attuali, cio progettato in modo che i
nuovi dati sostituiscano i precedenti; invece storico se progettato in modo da conservare

17
Vincenzo la Cecilia LAnalisi delle basi di dati

indefinitamente anche i dati passati, quelli cio che hanno esaurito il proprio effetto sul presente,
almeno fino a cancellazione volontaria da parte dellutente. Laspetto della storicizzazione o
meno dei dati non va trascurato perch pu condizionare sensibilmente lo sviluppo successivo.
Esempi:

- Un database di Calcio storico se conserva i dati di pi campionati, e se di ciascun calciatore


memorizza non solo il nome della squadra attuale, ma anche quelli delle squadre precedenti. Se
invece il database attuale, consentir di gestire solo il campionato in corso e la composizione
attuale delle squadre.

- Un database dei medici di base coi rispettivi pazienti storico se di ciascun assistito, oltre al
medico attuale, conserva anche linformazione su quali siano stati i suoi medici precedenti.

Qualche volta possono essere necessari database in cui solo alcune informazioni vengono
storicizzate.
Ad es. in un Autonoleggio si potrebbe decidere non mantenere i dati dei noleggi conclusi (quindi la
restituzione dellauto cancella il noleggio), per di conservare i dati delle automobili dismesse.

In attesa di acquisire familiarit e scioltezza con questa fase della progettazione, si pu cominciare a
compilarla rispondendo almeno alle seguenti domande-guida:
 Chi ha commissionato il sistema informativo?
 Qual lo scopo del progetto?
 Quali dati devono essere registrati nel database?
 Chi sono i soggetti coinvolti e quali dati generano col proprio comportamento? Quali
azioni compiono sulla base di dati?
 I dati possono essere cancellati quando non hanno pi efficacia o restano storicizzati?

1.2. Requisiti del Software


Ogni software per larchiviazione dei dati deve necessariamente offrire le consuete funzioni di
servizio per linserimento, la modifica, la cancellazione e la semplice consultazione dei dati. Tali
requisiti sono pertanto imprescindibili e ovvi. Vanno invece qui specificati, se occorre, i requisiti
particolari del sistema richiesto, cio le funzionalit che conferiscono valore aggiunto al prodotto e
che giustificano il costo del progetto. Si tratta in genere dei controlli di ammissibilit dei dati
digitati e soprattutto delle funzioni che ricavano informazioni dal database.
Ad es., nel caso di un sistema per la gestione di una gara sportiva, i requisiti richiesti potrebbero essere cos
descritti:
Il sistema dovr rifiutare i punteggi inferiori a 0 o superiori a 10, e inoltre consentire allutente di:
- visualizzare il nome del vincitore e il suo punteggio;
- visualizzare le prime tre posizioni gestendo anche il caso di ex-equo;
- stampare la classifica completa di nomi, punteggi e nazionalit.

1.3. Ipotesi aggiuntive


Nel caso del software professionale non occorrono ipotesi, perch ogni dubbio sul funzionamento
della realt di interesse pu essere dissipato semplicemente chiedendo chiarimenti al cliente. Nelle
tracce scolastiche invece taluni aspetti sono appositamente sottaciuti, perch lo studente si ponga
delle domande e si dia delle risposte plausibili, avanzando in questa sezione, con lausilio
dellesperienza maturata, le ipotesi necessarie per la corretta prosecuzione della progettazione.

18
Vincenzo la Cecilia LAnalisi delle basi di dati

Esempi di ipotesi aggiuntive:


- si suppone che un atleta possa gareggiare anche per pi di una specialit;
- si suppone che in ogni gara pi atleti possano conseguire lo stesso punteggio.

Non sono da considerarsi ipotesi aggiuntive gli aspetti della realt di interesse gi stabiliti dalla
traccia; n si possono avanzare ipotesi in difformit ad essi.
In definitiva le ipotesi aggiuntive vanno a completare la traccia proposta, laddove necessario.

1.4. Vincoli
In questa sezione possono essere esplicitati i vincoli, desumibili dai vari punti precedenti, a cui
sottoposto il funzionamento della realt di interesse e della cui osservanza il DBMS si far garante,
dopo essere stato opportunamente istruito.
Es.
- un giudice non pu votare per pi di una specialit;
- ogni squadra deve avere un allenatore.

1.5. Scelte implementative


In questa sezione si possono giustificare talune scelte progettuali, adottate in presenza di pi
alternative possibili.
Es.
- si ritiene preferibile indicare la Durata in secondi, e non in minuti e secondi, perch etc.

1.6. Schema funzionale dell'architettura


Questa sezione ha ragione di esistere se la realt di riferimento ha unestensione geografica e quindi
i dati viaggiano su reti telematiche. Il futuro va senzaltro in questa direzione e le tracce degli esami
di Stato pure. Va specificato: se il DB centralizzato su un solo server o distribuito su pi server
decentrati; dove sono i vari utenti del sistema e di quali strumenti hardware e software dispongono;
quali sono i percorsi seguti dai dati in ingresso e le informazioni in uscita dal database.

In presenza di pi soluzioni alternative si motiva la scelta adottata, infine si conclude con un grafico
riassuntivo.

Si possono tener presenti le seguenti domande-guida:


 Dov' fisicamente dislocato il database?
 Chi deve accedervi, da dove, e quali operazioni pu compiere?
 Quali altre ipotesi architetturali si potrebbero avanzare?
 Qual la migliore e perch?
(Es.: la meno dispendiosa in termini di hardware, di sviluppo o manutenzione; consente una pi agevole consultazione;
di semplice implementazione con tecnologia web; etc.)

19
Vincenzo la Cecilia LAnalisi delle basi di dati

Esempi di grafici dello schema funzionale dellarchitettura:

20
Vincenzo la Cecilia LAnalisi delle basi di dati

1.7. Strumenti software da utilizzare


In questa sezione andrebbero indicati gli strumenti software da utilizzare per la realizzazione del
prodotto finale.
Ad es.
Per lo sviluppo saranno utilizzati, su piattaforma ____________:
- Ambiente di programmazione: _______________;
- DBMS: ______________
- Linguaggio di accesso ai dati: SQL versione________
- Linguaggio Web lato client: HTML ______
- Web server: _______________
- Linguaggio Web lato server: ____________

21
Capitolo 3 - LA PROGETTAZIONE CONCETTUALE

1. LO SCHEMA CONCETTUALE
ANALISI DELLA REALT
La realt di interesse, come visto nel capitolo precedente, DI INTERESSE
inizialmente descritta e analizzata in linguaggio naturale. (linguaggio naturale)

La progettazione concettuale sostituisce al linguaggio naturale un


linguaggio grafico formale per modellare schematicamente i dati.
unabilit che si conquista gradualmente con l'esperienza, e che le
prime volte richiede un certo sforzo mentale. PROGETTAZIONE
CONCETTUALE
La progettazione concettuale totalmente indipendente dal modello di
database e dalle tecniche realizzative che si intende adottare. Si presta
perfino a progetti per file tradizionali.
SCHEMA CONCETTUALE
Tutte le informazioni rilevanti della realt dinteresse vengono
(Diagramma E/R)
rappresentate in uno SCHEMA CONCETTUALE., che si compone
di:

o Entit: sono i vari tipi di elementi della realt dinteresse, che possiedono delle caratteristiche
dette attributi. Per indicare unentit si usa un sostantivo singolare (es. Persona, Automobile).
Ogni esemplare concreto di un'entit detto istanza o occorrenza (es. Mario Rossi unistanza di
Persona).
o Associazioni: sono degli eventi che accadono tra le Entit e cos le collegano. Per indicare
unassociazione si usa un verbo (es. acquista), oppure un sostantivo che sottintende unazione
(es. contratto, terapia).
o Attributi: sono i dati rilevanti di unEntit (es. Cognome, Nome, etc.) o di unAssociazione
(es. DataDiAcquisto, Anticipo, NumeroDiRate). Gli attributi possono in origine essere:
 SEMPLICI, che descrivono le propriet elementari delle entit e delle associazioni
(es. Nome, Cognome, Matricola), detti anche atomici, cio non ulteriormente scomponibili;
 COMPOSTI, che sono costituiti da unaggregazione di pi attributi (es. Indirizzo, in quanto
pu essere composto da Via, CAP, Citt, Provincia);
 MULTIPLI, che sono un elenco di lunghezza imprevedibile di valori dello stesso attributo
semplice (es. Sport praticati da uno Studente).
Gli attributi composti e multipli sono unanomalia che deve essere corretta durante il c.d. raffinamento dello
schema concettuale, scomponendoli in attributi semplici (v. par. 7, Consigli per la modellazione).
Ogni attributo semplice possiede le seguenti propriet:
 NOME;
 OPZIONALITA, cio un attributo pu essere obbligatorio (es. Cognome) oppure
facoltativo (es. Telefono). Nel primo caso deve sempre assumere un valore, nel secondo
pu essere lasciato anche vuoto (valore nullo);
 TIPO (es. Numerico, Alfanumerico, Booleano, Data, Moneta);
 DIMENSIONE, che determina spazio occupato (es. Intero Corto, 20 caratteri, etc.);
 DOMINIO, cio linsieme dei valori che pu assumere (es. da 1 a 10).

Lo Schema Concettuale tiene conto che i dati dovranno essere inseriti rispettando alcune propedeu-
ticit (es.: non sar possibile inserire i dati di un calciatore se non stata acquisita la sua squadra).
23
Vincenzo la Cecilia La progettazione concettuale

2. IL DIAGRAMMA E/R
Uno strumento grafico molto utilizzato per rappresentare lo Schema Concettuale il Diagramma
E/R2 (Entity/Relationship ossia Entit/Associazioni) formalizzato dal prof. Peter Chen nel 19763.
Per disegnarlo sono sorte nel tempo varie simbologie alternative. In questa sede se ne propone una
molto vicina alloriginale, ritenuta semplice, chiara ed efficace.

Per le Entit si utilizza un rettangolo. PERSONA

Per le Associazioni si utilizzano dei rombi (v. par. 2.2, Associazioni). acquista

I collegamenti fra entit avvengono attraverso le associazioni,


utilizzando segmenti (anche ortogonali piuttosto che obliqui),
tratteggiati o continui (v. par. 2.5) che vanno dai lati delle entit
fino agli spigoli delle associazioni.
Non possibile collegare direttamente tra loro le entit, e neppure le associazioni.

Cognome Nome
Per gli Attributi obbligatori si utilizzano dei segmenti che cominciano
dal bordo dellentit o dellassociazione (preferibilmente non dagli spigoli),
e finiscono con un pallino e il nome dellattributo. PERSONA

PERSONA
Per comodit possibile utilizzare un segmento di raccordo verso gli Cognome
attributi. Nome
Indirizzo
Per gli Attributi facoltativi la linea tratteggiata. Telefono

AUTOMOBILE
Gli attributi scelti per costituire la Chiave primaria vengono sottolineati.
Telaio
Per gli attributi che costituiscono altre Chiavi candidate (v. par. seg.) la Targa
sottolineatura doppia.

Il Diagramma E-R viene solitamente prodotto per raffinamenti successivi, PERSONA


cominciando dagli elementi pi evidenti e procedendo man mano con
CodFisc
aggiunte e rettifiche. Cognome
Agli attributi individuati come composti si sovrappone al pallino un Nome
Indirizzo
quadrato pieno. SportPraticati
Agli attributi individuati come multipli si antepone al pallino una
doppia freccia.

Per scomporre un attributo composto senza ridisegnare il diagramma, si Via


Indirizzo Numero
pu cerchiarlo e scomporlo sul posto in attributi semplici. Comune

A diagramma completato non possono risultare entit o gruppi di entit isolate dalle altre, che altrimenti
costituirebbero un database separato.

2
http://it.wikipedia.org/wiki/Modello_E-R
3
Peter Chen, The Entity/Relationship Model Toward a Unified View of Data, ACM 1976

24
Vincenzo la Cecilia La progettazione concettuale

2.1. Tecniche alternative di rappresentazione


Esistono numerose varianti, abbastanza equivalenti, per rappresentare gli schemi concettuali. Ad es.

1) Gli attributi possono essere racchiusi in ellissi:

PERSONA Indirizzo

CodFis Nome
c
Cognome

ma una tecnica dispendiosa in termini di spazio.

2) Gli attributi chiave possono essere segnalati con un pallino scuro, mentre tutti gli altri hanno il
pallino chiaro:

PERSONA
CodFisc
Cognome
Nome
Indirizzo
Telefono

ma cos facendo diventa difficile segnalare le altre chiavi candidate.

3) Gli attributi possono essere racchiusi in un rettangolo sottostante a quello dellentit, e i rombi
delle associazioni possono essere omessi:

possiede
PERSONA appartiene AUTOMOBILE
CodFisc Telaio
Cognome Targa
Nome AnnoImmatricolazione
Indirizzo Colore
Telefono

una tecnica apparentemente comoda, ma diventa poco chiara la distinzione fra unassociazione
binaria con attributi dellassociazione e unassociazione ternaria. Es.
insegnaIn
DOCENTE riceveLezioniDa CLASSE
CodFisc Anno
Cognome Materia Sezione
Nome Corso
Ore
Indirizzo
Telefono (Associazione binaria con attributi dellassociazione)

insegnaIn
DOCENTE riceveLezioniDa CLASSE
CodFisc Anno
Cognome Sezione
Nome MATERIA Corso
Indirizzo Materia
Telefono Ore
(Associazione ternaria)

25
Vincenzo la Cecilia La progettazione concettuale

2.2. Attributi Chiave


Per ogni entit occorre individuare dapprima le chiavi candidate (cio lattributo o il gruppo di
attributi che identifica univocamente ciascuna istanza dell'entit). Tra tutte le chiavi candidate deve
essere scelta la chiave primaria, che pu essere quella pi breve o quella pi significativa, e che
va sottolineata. Le chiavi candidate scartate non devono essere abbandonate ma vanno
contrassegnate con una doppia sottolineatura.
Es.: Ogni Conto Corrente identificato univocamente dal Codice IBAN.
Ogni Persona identificata dal Codice Fiscale ma anche da Cognome-Nome-LuogoDiNascita-DataDiNascita.
Ogni Automobile identificata sia dalla Targa che dal NumeroDiTelaio.

Se l'entit non possiede neppure una chiave candidata, o questa risulti estremamente scomoda, si
pu anche aggiungere una chiave "artificiale" (Id), purch si tuteli lunivocit delle eventuali chiavi
candidate naturali gi presenti.
Attenzione: luso indiscriminato di chiavi artificiali in sostituzione delle chiavi candidate e senza ladozione di chiavi
secondarie su queste ultime, espone il database al rischio di incongruenza.
Es. Laggiunta di un IdSocio ai componenti di una cooperativa senza creare un indice secondario sulla
chiave candidata Codice Fiscale, consentirebbe di iscrivere pi volte la stessa persona.

2.3. Associazioni e Ruoli


Nel Diagramma E/R, per rappresentare un'associazione si pu utilizzare la seguente notazione
grafica:

MEDICO visita PAZIENTE


Matricola Codice Fiscale
Cognome DataVisita Diagnosi Cognome
Nome Nome

Ogni associazione tra due entit ha due versi, detti associazione diretta e associazione
inversa. L'inversa solitamente la forma passiva della diretta (MEDICO visita PAZIENTE,
PAZIENTE VisitatoDa MEDICO), e in tal caso sufficiente scrivere nel rombo solo la forma
attiva. Quindi si dir che:
- tra MEDICO e PAZIENTE c' l'associazione visita
- tra PAZIENTE e MEDICO c' l'associazione VisitatoDa.

Si noti che gli attributi DataVisita e Diagnosi non appartengono n al MEDICO n al PAZIENTE, ma
scaturiscono dallincontro tra i due, e pertanto sono detti attributi dellassociazione.

Quando il verbo intransitivo pu essere pi chiaro esprimere l'associazione diretta e l'inversa con
termini differenti (es. TENNISTA gareggiaSu CAMPO, CAMPO UtilizzatoDa TENNISTA),
utilizzando i ruoli (cio scritte che chiariscono il ruolo che ciascuna entit svolge nell'associazione):

gareggiaSu
TENNISTA CAMPO
UtilizzatoDa

26
Vincenzo la Cecilia La progettazione concettuale

2.4. Opzionalit della partecipazione allassociazione


Ciascuna entit pu partecipare in modo obbligatorio o facoltativo a unassociazione. Nel primo
caso ogni sua istanza deve essere collegata a una istanza dellaltra entit; nel secondo caso ci
possono anche essere istanze che non partecipano allassociazione.
Se ogni istanza deve partecipare, la partecipazione in quel verso totale e si indica con
Se ogni istanza pu partecipare (senza obbligo), la partecipazione parziale e si indica con -----

Nell'esempio, si dir che l'associazione (diretta) Persona possiede Automobile parziale, mentre lassocia-
zione (inversa) Automobile appartieneA Persona totale. Cio:
- ogni persona pu possedere una o pi automobili (associazione diretta)
- ogni automobile deve appartenere a una persona (associazione inversa)

Nota. Pu esserci differenza tra la realt osservata dallutente semplice e la realt di interesse
schematizzata dallanalista informatico. Ad es., nel database degli alunni di una Scuola:

contiene N
CLASSE ALUNNO
1 appartieneA
Anno Matricola
Sezione Cognome
Corso Nome
DataNascita

Lutente direbbe che un Alunno deve appartenere a una Classe, o non sarebbe un Alunno, e una
Classe deve contenere Alunni, altrimenti non potrebbe esistere. Ci vero nella realt concreta e
soprattutto a regime, ossia quando gli elementi che la costituiscono sono tutti gi presenti. Si tratta
di una percezione statica. Invece lidea dinamica, cio in divenire, che il progettista ha del database,
prevede che i dati non arriveranno simultaneamente ma uno dopo laltro, sotto il vaglio del DBMS
che garantisce il rispetto delle regole di integrit stabilite.
Pertanto nellesempio il DBMS dovr consentire limmissione di una Classe prima di un suo
Alunno, oppure di un Alunno prima della propria Classe.
Per questa ragione i vincoli di partecipazione totale-totale a unassociazione non sono gestibili dal
DBMS. La scelta che si adopera di lasciar creare prima il dato che funge concettualmente da
contenitore e poi il suo contenuto.
Quindi nellesempio occorre lasciar creare prima una Classe senza Alunni e poi obbligare tutti gli
Alunni in ingresso a essere associati a una Classe. Nello schema concettuale si dir che:
ogni Classe pu contenere uno o pi Alunni; ogni Alunno deve appartenere a una sola Classe.
Casi del tutto identici sono: Squadra-Calciatore, Medico-Assistito, Reparto-Paziente, etc.
Soltanto in unassociazione biunivoca (1:1) il DBMS pu gestire la partecipazione totale-totale,
perch le due entit possono essere raggruppate in una sola relazione (v. par. 5.5).

27
Vincenzo la Cecilia La progettazione concettuale

2.5. Molteplicit e Cardinalit


Di ciascun verso delle associazioni va stabilita la molteplicit, cio il numero di istanze di una
entit con cui associata ogni istanza dellaltra entit. Le possibilit sono solo due: 1 oppure N
(molti), che si appone sullentit di destinazione. Loperazione va ripetuta indipendentemente per
ciascun verso dell'associazione.
Il procedimento sar pi chiaro con un esempio:
Una persona possiede quante automobili? - Risposta: N.
Una automobile appartiene a quante persone? - Risposta: 1.

possiede N
PERSONA AUTOMOBILE
1 appartieneA
CodiceFiscale Telaio
Cognome Targa
Nome Marca
Indirizzo Modello
Telefono Colore

Interpretazione insiemistica ( di aiuto le prime volte):

PERSONE AUTOMOBILI

A. B. 2.
D. 1.
C.
E. 3.

Ogni persona pu possedere una o pi automobili Un'automobile appartiene a una persona


(ma non tutti ce l'hanno). (tutte le auto sono intestate a qualcuno).

L'insieme delle molteplicit di una associazione compone la sua cardinalit. La cardinalit di


unassociazione binaria (cio tra due entit) pu essere:
1:1 UNO A UNO detta anche BIUNIVOCA;
1:N UNO A MOLTI detta anche SEMPLICE;
M:N MOLTI A MOLTI detta anche COMPLESSA.

Esempio (database di unazienda con pi filiali): +++

dirige
DIRETTORE FILIALE
1 Diretta

28
Vincenzo la Cecilia La progettazione concettuale

2.6. Lettura dello Schema Concettuale


Il Diagramma E/R va costruito e letto pronunciando entrambi i versi di ogni associazione.
La formulazione di ciascuna delle due frasi deve avvenire nel modo seguente:
Ogni
< entit di partenza >
pu ( ----- ) oppure deve ( )
< verbo
verbo > dellassociazione in modo infinito presente attivo o passivo
un solo (1 sull'entit di arrivo) oppure uno o pi (N sull'entit di arrivo)
< entit di arrivo >

Nellesempio dellAutomobile, poich non tutte le persone possiedono un'auto (cio lassociazione diretta
a partecipazione parziale), mentre tutte le auto devono appartenere ad una persona (lassociazione
inversa a partecipazione totale), si legge con linguaggio formale e rigoroso:
- Ogni Persona pu possedere una o pi Automobili. (associazione diretta)
- Ogni Automobile deve appartenere a una sola Persona. (associazione inversa)

3. I VINCOLI DI INTEGRITA
I vincoli di integrit sono delle limitazioni che possono essere imposte al dominio di alcuni
attributi (cio linsieme dei valori ammissibili), per salvaguardare l'integrit dei dati. Possono
essere:
 IMPLICITI, cio derivanti dalla stessa struttura dei dati, che si dividono in:
1. Vincoli di chiave primaria: i valori della chiave primaria di una entit devono
essere tutti diversi tra loro (si impongono evidenziando il campo chiave).
2. Vincoli referenziali: date 2 entit A e B e un associazione diretta totale tra loro,
non si pu inserire unoccorrenza in A senza associarla ad unoccorrenza gi
presente in B (linea continua dellassociazione, letta come deve).

 ESPLICITI: impongono dei limiti ai valori che un attributo pu assumere.


Es. V1) Docente.OreCattedra <= 24
V2) Dipendente.RedditoBase > 0

29
Vincenzo la Cecilia La progettazione concettuale

4. GRADO DI UNASSOCIAZIONE
Il grado il numero di entit che partecipano allassociazione. Di solito 2 (associazioni binarie,
utilizzate negli esempi precedenti) , ma si incontrano anche associazioni di gradi differenti.

4.1. Associazioni di primo grado


Non impossibile che il grado sia 1 (associazioni ricorsive), come nei casi seguenti.
Caso 1:N
1
DIPENDENTE

Matricola N
Cognome coordina
Nome

Caso M:N
M
SQUADRA
DataPartita
Nome N
Citt incontra
Prov Risultato

4.2. Associazioni di grado superiore


Abbastanza frequenti nelle realt di interesse sono anche le associazioni di 3 grado
(associazioni ternarie), in cui cio le entit coinvolte nellassociazione sono 3.
Si consideri ad es. il caso di un istituto tecnico in cui coppie di insegnanti possono fare
compresenza, per uno tiene le lezioni teoriche in aula e laltro quelle pratiche in laboratorio:

CodFisc Cognome
PROFESSORE Nome

Codice P Anno Sezione Corso


Denominazione insegna

insegnata N
MATERIA CLASSE
M riceve lezioni
OreSettimanali

Per stabilire la cardinalit dellassociazione, cio le tre molteplicit, occorre porsi tre domande, in
cui a turno si considera una coppia di istanze di due entit e ci si chiede con quante istanze della
restante entit in associazione. Es.:

30
Vincenzo la Cecilia La progettazione concettuale

o Un Professore insegna una Materia in quante Classi? - Risposta: N.


o Una Classe riceve lezioni da un Professore in quante Materie? - Risposta: M.
o Una Materia insegnata in una Classe da quanti Professori? - Risposta: P.

Le risposte vanno apposte sempre sullentit di destinazione.

Se diventasse rilevante anche il luogo delle lezioni, avremmo unassociazione di 4 grado:

CodFisc Cognome
PROFESSORE Nome

CodMateria Denominazione
1 Anno Sezione Corso
insegna
insegnata N
MATERIA CLASSE
M riceve lezioni
ospita OreSettimanali
1
NumeroAula AULA MQ
CapienzaPosti

Non si possono semplicemente considerare valide le molteplicit precedenti e aggiungere solo


quella mancante. Le molteplicit vanno invece tutte rideterminate, ponendosi stavolta quattro
domande:
o Un Professore insegna una Materia in unAula a quante Classi? - R.: N.

o Un Aula ospita lezioni di un Professore a una Classe in quante Materie? - R.: M.

o Una Materia insegnata a una Classe in unAula da quanti Professori? - R.: 1.

o Una Classe riceve lezioni da un Professore in una Materia in quante Aule? - R.: 1.

5. GERARCHIE ISA
In progettazione concettuale, quando le istanze di unentit possono raggrupparsi in sottoinsiemi
secondo una caratteristica che pu assumere solo valori prestabiliti, siamo in presenza di una
gerarchia ISA (IS A, cio E UN). La gerarchia ha una struttura ad albero capovolto: la radice
rappresenta lentit padre, mentre i vari rami rappresentano le entit figlie. Un triangolo isoscele
(o una freccia a punta larga) rappresenta la diramazione.
Per creare una gerarchia procedendo dal padre verdo le figlie si attua un processo di
specializzazione, cio di suddivisione dellentit padre in entit figlie pi specifiche, che
possono anche avere differenti attributi o differenti associazioni con le altre entit. Si pu procedere
anche in senso inverso attuando un processo detto di generalizzazione.
Gli attributi e le associazioni comuni a tutte le entit figlie vanno imputati all'entit padre, quelli
specifici sulle entit figlie.

31
Vincenzo la Cecilia La progettazione concettuale

Alcuni esempi:

ANAGRAFE

Cognome Indirizzo
LuogoNascita
Nome
DataNascita
CodiceFiscale PERSONA
Genere

MASCHIO FEMMINA

SCUOLA CodiceFiscale
DIPENDENTE Cognome
Nome
Ruolo
OreCattedra
DOCENTE TECNICO AMMINISTRATIVO AUSILIARIO
M 1 N 1

CLASSE insegna manutiene AddettoA cura


P
Anno N 1 1 N
Sezione MATERIA LABORATORIO UFFICIO LOCALE
Corso
CodMateria
Denominazione Laboratorio Ufficio NumLocale

Nel primo esempio le entit figlie non possiedono attributi o associazioni differenti luna dallaltra.
Nel secondo esempio le entit figlie hanno pochi attributi in comune, e svariati attributi e associa-
zioni specifici.

6. ENTIT FORTI ED ENTIT DEBOLI


Le entit forti sono le normali entit che possiedono attributi sufficienti a costruire una chiave
primaria univoca. Alcune entit invece, dette deboli, possiedono una chiave che diventa univoca
solo se unita a quella di unentit forte. Si pensi ad es. ai vagoni dei treni-merci: il numero del
vagone univoco solo all'interno del convoglio, ma non all'interno del sistema ferroviario. La realt
di interesse viene cos rappresentata:

Numero OraPartenza NumeroVagone

N Lunghezza
TRENO trasporta VAGONE
1 CaricoMax

Entit identificante Associazione identificante Entit debole

32
Vincenzo la Cecilia La progettazione concettuale

Vanno evidenziate con un doppio bordo ogni entit debole e la rispettiva associazione
identificante verso l'entit forte di cui erediter la chiave.
Altri esempi di entit deboli:
- i posti sugli aerei;
- le poltrone numerate in un cinema multisala;
- i nomi dei Comuni italiani rispetto alle Province.

7. CONSIGLI PER LA MODELLAZIONE


Dopo una prima stesura dello schema concettuale, normale una fase di raffinamento in cui gli
elementi individuati vengono trasformati o riposizionati. Alcuni principi di fondo possono guidare
nelle scelte.

7.1. Attributo o Entit?


Rappresentando una realt di interesse, sorge talvolta il dubbio se modellare un concetto come
attributo o come entit.

Se un concetto elementare, e non richiede ulteriori specificazioni, pu essere considerato un


attributo. Se invece possiede a sua volta attributi, sicuramente un'entit.
Es.: Aula pu essere un attributo dellentit CLASSE, se rilevante soltanto il numero dellaula:

Anno
Sezione CLASSE NumAula
Corso

ma se rilevante anche la Palazzina, il Piano, la Superficie, etc., AULA diventa entit e mantiene il
suo legame con CLASSE grazie a unapposita associazione:

NumeroAula
Anno
1 Palazzina
Sezione CLASSE occupa AULA
Piano
Corso
Superficie

In una entit non va incluso un attributo che non le appartenga strettamente, cio che pu avere
una sua esistenza indipendente. Esso diventer quindi un'entit associata.
Es.:
In una scuola, dell'entit PERSONA si pu considerare attributo il Cognome ma non la CITT.
In un database di opere d'arte, Autore non attributo di OPERA, ma unentit associata.
Di solito questi attributi si presentano in rapporto 1:N con lentit in cui erano stati inizialmente
individuati. Infatti in 1 CITT risiedono N PERSONE.

7.2. Attributi composti e multipli


Accade che un attributo si riveli composto da pi informazioni distinte. Va pertanto scomposto
in attributi semplici, su cui sar possibile imporre vincoli ed effettuare ricerche mirate.
Es.: Lattributo Recapito va scomposto almeno in Indirizzo e Citt, oppure in Indirizzo e CAP, pi
unassociazione verso lentit CITT.

33
Vincenzo la Cecilia La progettazione concettuale

Accade che un attributo si presenti multiplo (cio in rapporto N:1 con la propria entit), e quindi
verrebbe spontaneo esprimerlo al plurale (es.: Sport praticati, Numeri di telefono, Caselle e-mail,
Specializzazioni, Malattie, etc.). Per ragioni che saranno pi chiare nel prossimo capitolo, gli
attributi multipli (specie se di numerosit imprevedibile) rappresentano un'anomalia nel modello
logico relazionale. Perci preferibile trasformarli sin da ora in entit, riconducendoli al
singolare e "verticalizzando" in tal modo la numerosit.
Es.: Si vogliono archiviare gli indirizzi dei siti web pubblicati dagli alunni delle varie classi di un Istituto:

N 1
ALUNNO frequenta CLASSE
Matricola Anno
Cognome Sezione
Nome Corso
Siti

Poich non tutti gli alunni pubblicano un sito, per pu essere che qualche alunno ne pubblichi pi di
uno, bene raffinare lo schema concettuale nel modo seguente:

N 1
ALUNNO frequenta CLASSE
Matricola Anno
1
Cognome Sezione
Nome Corso
pubblica

N
SITO URL

7.3. Associazioni plurime


Non strano che tra due entit possa intercorrere pi di unassociazione, anche con cardinalit
differenti.
Es.: azienda di distribuzione all'ingrosso:

1
Nato
N
Matricola Nome CAP Denominazione

1
RAPPRESENTANTE risiede COMUNE
N

Cognome
N
serve
1

34