Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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:
Il MODELLO GERARCHICO (anni '60) era fondato sull'organizzazione gerarchica dei dati
ad albero capovolto, organizzato in segmenti:
SCUOLA
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).
4. UTENTI
I possibili utenti di un database sono:
DBMS
DATABASE 1 DATABASE 3
DATABASE 2
8
Vincenzo la Cecilia Generalit sulle basi 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
DATABASE
10
Vincenzo la Cecilia Generalit sulle basi di 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.
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.
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
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
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
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
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
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 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?
18
Vincenzo la Cecilia LAnalisi delle basi di dati
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.
In presenza di pi soluzioni alternative si motiva la scelta adottata, infine si conclude con un grafico
riassuntivo.
19
Vincenzo la Cecilia LAnalisi delle basi di dati
20
Vincenzo la Cecilia LAnalisi delle basi di dati
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)
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 Associazioni si utilizzano dei rombi (v. par. 2.2, Associazioni). acquista
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.
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
PERSONA Indirizzo
CodFis Nome
c
Cognome
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
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
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.
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
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
possiede N
PERSONA AUTOMOBILE
1 appartieneA
CodiceFiscale Telaio
Cognome Targa
Nome Marca
Indirizzo Modello
Telefono Colore
PERSONE AUTOMOBILI
A. B. 2.
D. 1.
C.
E. 3.
dirige
DIRETTORE FILIALE
1 Diretta
28
Vincenzo la Cecilia La progettazione concettuale
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).
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.
Matricola N
Cognome coordina
Nome
Caso M:N
M
SQUADRA
DataPartita
Nome N
Citt incontra
Prov Risultato
CodFisc Cognome
PROFESSORE Nome
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
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
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
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.
N Lunghezza
TRENO trasporta VAGONE
1 CaricoMax
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.
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.
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
1
Nato
N
Matricola Nome CAP Denominazione
1
RAPPRESENTANTE risiede COMUNE
N
Cognome
N
serve
1
34