Document - Matematichiamo

annuncio pubblicitario
I limiti degli archivi
Le tecniche di gestione delle basi di dati nascono per superare i problemi e i limiti insiti nelle
tradizionali organizzazioni degli archivi in modo non integrato.
I difetti di questa organizzazione derivano dalla ridondanza dei dati, cioè gli stessi dati compaiono in
maniera duplicata.
La ridondanza può portare all’incongruenza, nel caso in cui un dato venga aggiornato in un archivio
e non in un altro, oppure siano presenti valori diversi per lo stesso dato.
L’incongruenza porta all’inconsistenza dei dati, cioè i dati a disposizione non sono più affidabili
perché non si sa in modo certo quali dei diversi valori sia quello corretto.
utto ciò deriva dal fatto che i dati sono organizzati in archivi diversi in modo non integrato tra loro.
Esempio
Si vogliono gestire i conti correnti di un’azienda bancaria appartenenti alle diverse filiali e i movimenti
contabili che vengono effettuati sui conti.
Per ogni conto occorre registrare il numero del conto, il nome dell’intestatario, l’indirizzo, il codice
della filiale e la descrizione della filiale.
Tracciato record (Conto)
NumConto
9
Nome
40
Indirizzo
30
Codice
5
Descrizione
20
Nello stesso tempo nelle diverse filiali c’è l’esigenza di registrare le informazioni riguardanti i
movimenti effettuati sui conti: numero del conto, nome del correntista, città, data del movimento,
importo e causale.
Tracciato record (Movimenti)
NumCodice
9
Descrizione
40
Città
20
Data
8
Importo
10
Causale
3
Con questa organizzazione ci possono essere problemi nell’associare i due archivi ad esempio per
calcolare il saldo del conto.


I campi NumConto e Numcodice hanno nomi diversi ma rappresentano la stessa informazione.
I campi Descrizione, pur avendo lo stesso nome rappresentano informazioni diverse (il primo la
descrizione della filiale, il secondo il nome del correntista).
 I campi Indirizzo e Città rappresentano la stessa informazione ma hanno nome e dimensione
differente.
In generale possiamo rilevare le seguenti inefficienze:



Ridondanza dei dati: ad esempio la descrizione della filiale viene ripetuta per ogni record
attinente ai conti appartenenti alla stessa filiale.
Incongruenza dei dati: a causa della ridondanza non è scontato che l’aggiornamento della
descrizione della filiale sia effettuatosi tutti i record che la riguardano.
Inconsistenza dei dati: a causa della incongruenza i dati non risultano essere affidabili in quanto
non si può sapere quali tra i diversi dati siano quelli effettivi.
1
Basi di dati
Per superare le inefficienze appena rilevate in una gestione tradizionale degli archivi, è necessario
riferirsi alle Basi di dati (database), cioè a una collezione di archivi di dati ben organizzati e ben
strutturati, in modo che possano costituire una base di dati di lavoro per utenti diversi con programmi
diversi.
Quando si parla di efficienza e produttività di un organizzazione di archivi si intende naturalmente la
possibilità di ritrovare facilmente le informazioni desiderate, anche attraverso criteri di ricerca diversi
in termini di velocità nell’elaborazione, di sicurezza nei dati e integrità delle registrazioni,
specialmente quando la gestione si riferisce a una mole di dati rilevante.
I database garantiscono il superamento delle problematiche riscontrate nella gestione tradizionale
degli archivi, presentando caratteristiche che assicurano:



L' eliminazione della ridondanza dei dati.
L'eliminazione dell'incongruenza dei dati.
L'eliminazione dell'inconsistenza dei dati.
La gestione integrata dei dati garantisce inoltre:







Indipendenza dalla struttura fisica dei dati.
Indipendenza dalla struttura logica dei dati.
Utilizzo da parte di più utenti.
Facilità di accesso.
Integrità dei dati.
Sicurezza dei dati.
Uso di linguaggi per la gestione dei database.
Il percorso di costruzione di un database passa attraverso varie fasi che prendono il nome di “livelli”.
ali fasi, partendo dal testo di un problema, consentono di specificare, in modo sempre più concreto,
quelle che sono le caratteristiche del database, fino ad arrivare alla sua realizzazione pratica
sull'elaboratore.
Ogni livello è caratterizzato da particolari “strumenti” che si basano su ben precisi concetti teorici, e
che vengono applicati di volta in volta in relazione al testo del problema da risolvere.
I livelli che analizzeremo sono 3:



Livello concettuale (Modello Entità/Relazioni)
Livello logico (Tabelle Relazionali)
Livello fisico (Access)
Prima di iniziare la trattazione del livello concettuale è necessario, però, porre attenzione ad alcuni
concetti necessari per la comprensione del testo di un problema e per la sua “decodifica”.
Meccanismi di astrazione
Quando ragioniamo su un problema usiamo sempre, in funzione del tipo di problema da risolvere, dei
procedimenti mentali di un certo tipo per arrivare alla soluzione, ovvero astraiamo dal caso specifico
per ricondurci a un “pattern” più generale che conosciamo.
Usiamo, cioè, un procedimento detto ASTRAZIONE che possiamo definire come procedimento
mentale che si adotta quando si concentra l’attenzione su alcune caratteristiche, trascurando le altre
giudicate non rilevanti.
2
ale procedimento viene messo in pratica seguendo una serie di meccanismi tra i quali i più rilevanti
sono:



Classificazione:
identifica classi di oggetti del mondo reale aventi proprietà comuni.
Aggregazione:
definisce un nuovo concetto a partire da concetti componenti.
Generalizzazione: definisce una classe astraendo dalle differenze esistenti tra due o più classi.
La Classificazione
Classificare vuol dire definire un concetto (classe) a partire da un insieme di oggetti aventi proprietà
(caratteristiche) comuni.
Ad esempio a partire dagli oggetti Gennaio, Febbraio, ......., Dicembre, possiamo definire una classe
“Mese”. Gli oggetti della classe prendono il nome di Istanze.
La correlazione tra Istanza e Classe di appartenenza viene espressa dal concetto di “IS A”, che
tradotto in italiano diventa “E' UN”.
Infatti diremo che “Febbraio è un Mese”
Da notare che, dato un insieme di oggetti, le classi definibili non sono in generale univocamente
determinate, dipende da ciò che interessa modellare.
L'Aggregazione
Aggregare vuol dire definire un concetto (classe) a partire da un insieme di concetti componenti.
Ad esempio a partire dai concetti di matricola, classe, sezione e media voti, possiamo definire una
classe “Studente”. I concetti che hanno portato a tale definizione prendono il nome di Attributi.
La correlazione tra Attributo e Classe viene espressa dal concetto di “PART OF”, che tradotto in
italiano diventa “E' PARTE DI”.
Infatti diremo che “La matricola è parte di uno studente”.
La Generalizzazione
Generalizzare vuol dire definire un concetto (classe) a partire da un insieme di altre classi.
Ad esempio a partire dalle classi “uomini” e “donne”, possiamo definire una classe “Persona”. Le
classi che hanno portato a tale definizione prendono il nome di Sottoclassi.
DATABASE
3
Il livello concettuale
La progettazione concettuale consiste nel riorganizzare tutti gli elementi che si hanno a disposizione
per definire un modello astratto del database. Il lavoro prodotto, sotto forma di documento, è
destinato a diventare un riferimento ed una base di partenza per il livello successivo.
Il diagramma E/R
Il modello concettuale si basa su un ben preciso modello grafico detto “Modello Entità – Relazioni”,
introdotto da Peter Chen nel 1976, che consente di creare uno schema grafico della descrizione dei
dati e delle relazioni che intercorrono tra essi in una realtà di interesse.
ale rappresentazione prende il nome di Diagramma E/R.
Gli elementi fondamentali di ogni diagramma E/R sono:



Le Entità.
Gli Attributi.
Le Associazioni.
LE ENTITA'
Le Entità corrispondono a classi di oggetti del mondo reale, e sono definite specificando le proprietà
(o attributi) dei loro elementi. Gli elementi di ogni entità vengono definite istanze.
Esempi di entità possono essere:

Persona.

Automobile.

Conto Corrente.

Movimento Contabile.

Verifica di Informatica.
Esempi di istanze possono essere:

Il signor Rossi Paolo è una istanza dell'Entità “Persona”.

La mia automobile è una istanza dell'Entità “Automobile”.

Il tuo Conto Corrente è una istanza dell'Entità “Conto Corrente”.

Il prelievo che tuo zio ha fatto ieri è una istanza dell'Entità “Movimento Contabile”.

La verifica di informatica che l'alunno Neri Nicola ha sostenuto il 10 ottobre 2013 è una istanza
dell'Entità “Verifica di Informatica”.
Per rappresentare graficamente una Entità si utilizza un rettangolo con all'interno il nome dell'entità.
Persona
Automobile
E' convenzione scrivere il nome delle entità al singolare, minuscolo e con lettera maiuscola.
GLI ATTRIBUTI
4
Gli attributi definiscono le proprietà di interesse delle istanze di ogni Entità.
Ogni attributo è specificato da:





Nome:
ipo:
Dimensione:
Dominio:
Chiave:
nome dell'attributo.
il tipo che può essere carattere, numerico, logico, ecc.
dimensione associata al tipo prescelto.
insieme dei possibili valori dell'attributo (se definibile).
indica se l'attributo è chiave.
Come specificato nel modulo precedente è importante scegliere correttamente il Tipo e la
dimensione di ogni attributo.
Esempi di attributo possono essere:

Per una entità “Persona”: Nome, Cognome, Data di nascita... ecc.

Per una entità “Automobile”: Marca, Modello, Data di immatricolazione.... ecc.

Per una entità “Verifica di Informatica”: Data, Voto, Argomento.... ecc.
Per rappresentare graficamente gli Attributi, associati ad una certa Entità, si utilizza una linea che
parte dal rettangolo dell'Entità e termina con un piccolo cerchio bianco ed il nome dell'attributo. In
caso di attributi chiave il cerchio sarà nero ed il nome dell'attributo sarà sottolineato.
Esempio
Rappresentiamo l'entità persona con gli attributi codice fiscale, Cognome e data di nascita.
Codice_fiscale
Persona
Cognome
Data_di_nascita
E' convenzione scrivere il nome degli attributi al singolare, minuscole e con lettera maiuscola.
LE ASSOCIAZIONI
L'Associazione, in inglese Relationship, è un legame esistente tra due o più entità. Le associazioni
corrispondono a classi di fatti della realtà.
Esempio
Considerate le due entità “Persona” e “Automobile”, esiste una Associazione tra le due classi (e di
conseguenza tra le istanze delle due classi), che descrive nel linguaggio naturale il fatto secondo il
quale:
Ogni persona può possedere una o più automobile.
Ogni automobile è posseduta da una persona.
NB: come si vede dall'esempio ogni associazione tra due entità ha 2 versi, ed è identificata da un
verbo ben preciso.
5
NB: anche le associazioni possono essere dotate di uno o più attributi, aggettivi cioè che non sono
riferibili alle entità, ma che fanno parte dell'associazione stessa.
Esempio
Con riferimento all'esempio precedente, all'associazione “possiede”, che lega l'entità “Persona”
all'entità “Automobile”, può essere aggiunto l'attributo “Data di acquisto” che, evidentemente ha
senso di esistere non legato alla persona o all'automobile, ma al fatto “acquisto della vettura”.
Per rappresentare graficamente le Associazioni si utilizza un Rombo che contiene il nome
dell'associazione, e che è legato alle entità a cui si riferisce.
Esempio:
Codice_fiscale
Persona
Cognome
Data_di_nascita
possiede
Data_di_acquisto
Targa
Automobile
Marca
Modello
Osservazione 1: E' possibile che tra due entità esistano più associazioni, ognuna rappresentata a
livello grafico dal suo rombo. Ad esempio tra le entità “Persona” e “Comune” hanno senso le
associazioni “lavora”, “ènato”, “risiede”.
Osservazione 2: Oltre le associazioni binarie, che lavorano cioè tra due entità, esistono anche le
Associazioni Multiple, che lavorano su più di due entità. Tali associazioni, tuttavia, possono essere
sempre ricondotte ad associazioni binarie.
Osservazione 3: E' possibile che una certa associazione lavori sulla stessa entità, come ad esempio
l'associazione “ègenitoredi”, che lavora sia in entrata che in uscita sull'entità “Persona”.
6
Associazioni dirette ed inverse
Il verbo utilizzato per identificare l'associazione è, di solito, riferito all'associazione che è definita
“diretta”. Nell'esempio precedente, infatti, possiamo affermare che “Persona possiede Automobile”. E'
chiaro che se leggiamo l'associazione come “inversa”, il verbo deve essere opportunamente reso
passivo: “Automobile è posseduta” da Persona”. Nella rappresentazione grafica è possibile
esplicitare i ruoli dell'associazione inserendo i verbi nel diagramma E/R.
Persona
Automobile
possiede
èpossedutada
possiede
Associazioni Totali, Parziali, Univoche e Multiple
otale: E' un'associazione tra due entità che fa corrispondere ad ogni istanza della prima entità
almeno una istanza della seconda entità.
Parziale: E' un'associazione tra due entità per la quale non è detto che ad ogni istanza della prima
entità corrisponda una istanza della seconda entità.
Univoca: E' un'associazione tra due entità che fa corrispondere ad ogni istanza della prima entità al
massimo una istanza della seconda entità.
Multipla: E' un'associazione tra due entità che fa corrispondere ad ogni istanza della prima entità più
di una istanza della seconda entità.
Esempio:
Entità1: Persona
Entità2: Conto_corrente
Associazione: possiede
Diretta: Persona ètitolaredi Conto corrente
Inversa: Conto corrente èintestatoa Persona
L'associazione diretta è “parziale” perchè non è detto che ogni persona sia titolare di un conto
corrente. E' anche multipla visto che una persona può essere titolare di più cinti correnti.
L'associazione inversa è “totale” perchè ogni conto corrente deve essere intestato a qualcuno. E'
anche multipla visto che un conto corrente può essere cointestato.
NB: A livello grafico un'associazione parziale si rappresenta con una linea tratteggiata, mentre
un'associazione multipla si rappresenta con piccole diramazioni.
7
Conto_corrente
possiede
Persona
ètitolaredi
èintestatoa
Regole di lettura
Le regole di lettura servono per effettuare un controllo sull'efficacia della modellazione effettuata. Se
leggendo le regole di lettura si riesce a comprendere il significato del diagramma vuol dire che si sta
effettuando un buon lavoro di analisi della realtà di interesse.
Le regole di lettura si scrivono interpretando il diagramma costruendo frasi abbinate alle
caratteristiche di ogni associazione (diretta ed inversa).
La caratteristica “totale” di un'associazione viene espressa dalla parola “deve”.
La caratteristica “parziale” di un'associazione viene espressa dalla parola “può”.
La caratteristica “univoca” di un'associazione viene espressa dalla parola “uno”.
La caratteristica “multipla” di un'associazione viene espressa dalla parola “uno o più”.
Esempio:
con riferimento all'esempio precedente avremo le seguenti regole di lettura:
Diretta: Ogni Persona può essere titolare di uno o più Conti correnti.
Inversa: Ogni Conto corrente deve essere intestato a una o più Persone.
Tipi di associazioni
Associazione Uno a Uno (1:1)
Si definisce di tipo 1:1 quell'associazione in cui sia la diretta che l'inversa sono univoche.
E' ad esempio di tipo 1:1 l'associazione “dirige” tra le entità “Preside” e “Scuola”
NB: sia la diretta che l'inversa possono essere totali o parziali.
Esempio
Si suppone che un preside possa essere in pensione e quindi non dirigere scuole.
1
Preside
dirige
dirige
1
Scuola
èdirettada
Regole di lettura
Diretta: Ogni Preside può dirigere di una Scuola.
Inversa: Ogni Scuola deve essere diretta da un Preside.
8
Associazione Uno a Molti (1:N)
Si definisce di tipo 1:N (anche detta “semplice”) quell'associazione in cui o la diretta o l'inversa sono
multiple.
E' ad esempio di tipo 1:N l'associazione “frequenta” tra le entità “Alunno” e “Scuola”
NB: sia la diretta che l'inversa possono essere totali o parziali.
Esempio
1
Alunno
frequenta
frequenta
N
Scuola
èfrequentatada
Regole di lettura
Diretta: Ogni Alunno deve frequentare una Scuola.
Inversa: Ogni Scuola deve essere frequentata da uno o più Alunni.
Associazione Molti a Molti (N:N)
Si definisce di tipo N:N (anche detta “complessa”) quell'associazione in cui sia la diretta che l'inversa
sono multiple.
E' ad esempio di tipo N:N l'associazione “insegna” tra le entità “Professore” e “Classe”
NB: sia la diretta che l'inversa possono essere totali o parziali.
Esempio
Professore
N
insegna
N
insegna
Classe
èinsegnatada
Regole di lettura
Diretta: Ogni Professore deve insegnare in una o più Classi.
Inversa: Ogni Classe deve essere insegnata da uno o più Professori.
9
ESERCIZI
Per ognuno dei seguenti esercizi:

Individuare, motivando le scelte effettuate
1.TLe entità
2.TGli attributi
3.TLe associazioni

Disegnare il modello E/R

Verificare lo schema con le regole di lettura
1.
Un’università vuole raccogliere ed organizzare in un database le informazioni sui propri
studenti in relazione ai corsi che essi frequentano ed agli esami che essi sostengono.
2.
Si vuole organizzare un sondaggio in merito al lavoro degli impiegati nello svolgimento delle
pratiche. Le pratiche vengono individuate tramite un codice ed un argomento da scegliere tra
“automobilistica”, “previdenziale” e “sanitaria”. Il sondaggio vuole tenere conto anche delle città
italiane in cui lavorano gli impiegati.
3.
Una società polisportiva vuole organizzare dei corsi tenuti da propri istruttori. Ogni corso è
specifico per una data disciplina ed è frequentato da soci della società.
4.
Una catena di negozi è costituita da un certo numero di centri vendita di cui interessano il
codice, la ragione sociale e l’indirizzo. I centri vendita effettuano ordini (caratterizzati da un
codice e dalla data d’ordine) che comprendono gli articoli da vendere, i quali appartengono a
diverse categorie merceologiche (ad esempio “alimentari”, “abbigliamento” ecc.)
5.
Una società che gestisce un noleggio di film dvd vuole organizzare un database a fini statistici.
Ogni noleggio è individuato dal codice e dalla data di noleggio. A tale scopo è interessata a
catalogare i suoi clienti tramite il numero di tessera, il nominativo e la data di nascita. Inoltre di
ogni dvd sono noti il titolo ed il regista, oltre le informazioni utili allo scopo.
6.
Si vuole organizzare un database che archivi le opere d’arte presenti nei musei italiani. Tali
opere sono identificate tramite un codice identificativo, il titolo ed il valore commerciale. Il
database vuole gestire anche un’anagrafica degli artisti che hanno espongono nei musei italiani
ed un’anagrafica delle città italiane viste sia come sede dei musei stessi, sia come luogo di
nascita degli artisti.
7.
Una compagnia aerea vuole gestire per i suoi clienti un servizio tramite il quale prenotare
online i propri voli, ognuno dei quali è costituito da un preciso numero di posti. Di ogni posto è
interessante conoscere il numero, la fila ed il fatto se è libero oppure già prenotato. Nella
progettazione del servizio va tenuto conto che ogni volo parte da un preciso aeroporto ed arriva
ad un altro aeroporto.
8.
Un’indagine statistica vuole organizzare un database in merito a scuole e docenti (individuati
da un codice univoco, dal proprio nominativo e dal proprio indirizzo). Si vuole limitare l’indagine
ai soli docenti che insegnano presso i capoluoghi di provincia italiani. Ogni docente, inoltre, è
nato in una specifica città italiana (capoluogo o meno che sia). Ogni scuola risiede in uno
specifico capoluogo ed è associata ad un grado di istruzione (quali ad esempio “superiore”,
“media”,.. ecc.)
10
Scarica