Corso di digitalizzazione e reti per segretario amministrativo
Modello er (2)
1. Progettazione di una Base di Dati *
La progettazione e la realizzazione di una Base di Dati avviene seguendo le
seguenti fasi :
• Sviluppo del modello concettuale ER , seguendo le seguenti sottofasi
1. Individuare le ENTITA’ coinvolte
2. Definire le ASSOCIAZIONI tra le ENTITA’
3. Classificazione dell’arietà di ogni ASSOCIAZIONE ( 1 : 1 ; 1 : ∞ )
4. Definizione degli ATTRIBUTI per ogni ENTITA’ e
ASSOCIAZIONE
• Traduzione del modello ER in un adeguato modello relazionale
seguendo le seguenti sottofasi :
1. Ristrutturazione del modello ER per eliminare eventuali
RIDONDANZE , eventuali gerarchie ed attributi composti
2. Traduzione in TABELLE delle ENTITA’ e delle ASSOCIAZIONI
utilizzando regole e criteri dettati dalla esperienza
• Implementazione del DataBase tramite un applicativo ( ACCESS )
seguendo le seguenti sottofasi :
1. Definire l’organizzazione fisica del DataBase , ovvero definire
le chiavi primarie e secondarie e gli eventuali indici che
consentono la ricerca univoca delle informazioni. In questa fase
si affina quanto già definito in fase di modello ER relativamente
al formato dei singoli campi ( Char , String , Real , Testo , ….)
ed al tipo di chiavi ( contatore , a campo singolo , multicampo ).
2. Definire le RELAZIONI del DATABASE utilizzando gli strumenti
messi a disposizione dall’applicativo . Strutturare le relazioni
con il massimo di INTEGRITA’ REFERENZIALE possibile.
1
2. Il Modello ER
E’ un modello logico o concettuale che descrive la realtà osservata dal
progettista della base di dati. Solo l’esercizio e l’esperienza consentono di
costruire un buon modello ER.
Le strutture che compongono un modello ER sono :
ENTITA’ : Oggetto che caratterizza in modo significativo la realtà osservata
, deve essere “ autonomo” ovvero può esistere da solo ed essere distinguibile
dal resto che lo circonda. ( vedi programmazione OOP )
ASSOCIAZIONE : ( o RELAZIONE ) Legame di natura logica tra entità.
Il legame è anche di tipo matematico tra elementi che appartengono ad
insiemi ( entità ) diversi. Le associazioni possono essere binarie , ternarie o in
generale di ordine n. Le associazioni di ordine troppo elevato di solito
vengono scomposte in associazioni di ordine inferiore ( minor complessità ).
Le associazioni di solito si individuano a partire da ovvie relazioni del tipo :
• Appartiene a
• E’ fatto da
• E’ composto da
• E’ frutto di
• Si ottiene come
• Concorrono alla cosa
• E’ assegnato a
L’esperienza affina la capacità di individuare buone relazioni , di solito la
conoscenza del tipo di interrogazioni che saranno effettuate è un buon
indicatore delle relazioni.
NOTA : (Consiglio) di solito è buona abitudine mettere sulle frecce uscenti
dalla relazione un commento esplicativo.
2
ALUNNO AUTOMOBILE FATTURA
FIGLI
O
FATT
O
da
Compost
o
da
3. ATTRIBUTO : Proprietà o caratteristica rilevante di una entità o
associazione. Usare attributi semplici e non composti se possibile.
Pensare a quali sono le caratteristiche ELEMENTARI ( ovvero di base ) ed
ESSENZIALI ( per le interrogazioni ) della entità sotto analisi.
• Evitare attributi deducibili da altri ( RIDONDANZA ).
• Evitare attributi NON CORRELATI alla chiave.
ESEMPI errati :
LEGAMI : Ci sono molti modi di disegnare i legami entità-associazione , uno
dei più comuni è il seguente :
uno a uno uno a uno parziale
uno a molti o uno a molti o molti
molti a molti a molti parziale
ESEMPIO :
3
PERSONA
CodiceFiscale
Cognome Nome
Data di nascita
Età
AUTO_POSSEDU
TA
NomeProp
Tipo
Cilindrata
Età è deducibile da Data di nascita
Cilindrata è deducibile da tipo e non è
correlata alla chiave NomeProp
PERSONA CASA
INDIRIZZO
CATAST
O
possiedepropietario
Indirizzo immobileIndirizzo persona
4. Le CHIAVI o IDENTIFICATORI
E’ un attributo o un insieme di attributi che consentono di individuare
UNIVOCAMENTE un elemento ( occorrenza o tupla o riga di una tabella )
di una entità. Svolgono la funzione di indici di ricerca o puntatori .
Le chiavi sono di tre tipi :
• CHIAVE CONTATORE
• CHIAVE ATTRIBUTO
• CHIAVE MULTI-ATTRIBUTO
ESEMPIO : Vediamo come trattare l’entità STUDENTE nei tre casi :
1. CHIAVE CONTATORE
CHIAVE ATTRIBUTO
CODICE_FISCALE Cognome_nome
ABBLCA27A65M172T Abba Luca
CHIAVE INFORMAZIONE
*********************** XXXXXXXXXXXXXXX
X
NUMERO_REGISTRO Cognome_nome
1 Abba Luca
2 Aceto Maria
4
5. 2. CHIAVE MULTI-ATTRIBUTO
Ogni Tabella deve avere almeno una chiave , ma può averne più di una.
ESEMPIO :
• Definizione di SUPERCHIAVE
Insieme di attributi che garantiscono la UNIVOCITA’
• Definizione di CHIAVE PRIMARIA
E’ l’insieme minimo che garantisce la UNIVOCITA’ , togliere un attributo
fa perdere la UNIVOCITA’
• Definizione di CHIAVE ESTERNA
E’ un attributo presente nella tabella che serve da link ( puntatore ) verso
un elemento di una altra tabella .
Cognome Nome Data
nascita
Luogo
nascita Altro
ABBA Luca 27/02/65 Feltre *********
ACETO Maria 11/10/76 Padova *********
5
PAZIENTE
CHIAVE_P
ESAME
CHIAVE_P
CHIAVE_M
CHIAVE-ESAME
MEDICO
CHIAVE_M
TIPO
di
ESAME
CHIAVE_ESAME
6. ESEMPIO :
La RIDONDANZA
La RIDONDANZA si può manifestare sotto due forme :
• Informazione , sotto forma di attributo , inutile perché ricavabile da altre
informazioni presenti nel DATABASE. ( vedi esempio età data di
nascita ).
• Informazione ripetuta più volte. Si deve ad una cattiva
NORMALIZZAZIONE , ovvero si sono usate poche entità ( Tabelle)
costruendo un modello ER inadeguato.
Esempio :
Relativamente all’esempio paziente-medico , si possono creare due entità
separate ( caso corretto ) o una sola entità che genera RIDONDANZA.
Codice-
Paziente
Cognome
Nome
Indirizzo Nome
Medico
Indirizzo
Medico
WER2341E4T De Bona Luca Via Roma ,14
Feltre ( BL )
Dott. Gros
Luca
Via Po ,23
Feltre ( BL )
ASD5436Y6H Cian Mario Via Ruga,32
Busche (BL )
Dott. Gros
Luca
Via Po ,23
Feltre ( BL
6
STUDENTE CLASSE
Codice-Studente
Generalità
Codice-Classe
Codice-Classe
Num-Alunni
Aula
Chiave esterna
RIDONDANZA
7. NOTA
Qualora la dimensione del DATABASE non sia eccessiva si possono tollerare
delle ridondanze , purché contenute , se questo non compromette la
consistenza della base di dati.
In altre parole se la ridondanza si limita ad una inutile occupazione di
memoria si può anche tollerare , se invece crea problemi o anomalie in fase
di aggiornamento , introduzione e cancellazione dati deve essere eliminata.
INTEGRITA’ REFERENZIALE
Nel suo ciclo di vita un DATABASE subisce molte modifiche , vengono
introdotti nuovi dati , modificati alcuni valori ( vedi prezzi ad esempio ) o
cancellati alcune righe di Tabella ( macchina non più prodotta ).
Si corre il rischio che queste modifiche facciano perdere di CONSISTENZA o
COERENZA la base di dati , ovvero non e più garantita la INTEGRITA’ dei
DATI.
ESEMPI :
• Si modifica il prezzo di un prodotto ma le fatture emesse sul prodotto
non risentono della modifica
• Si elimina dalla produzione un prodotto e , senza volerlo , si perdono
tutte le fatture già emesse di quel prodotto
• Un medico sostituisce un medico andato in pensione ma i pazienti del
vecchio medico non risultano associati al nuovo medico
• Azioni congiunte e non mutuamente esclusive portano a valori numerici
assurdi , del tipo stipendio negativo , più biglietti venduti che posti , data
di morte antecedente a quella di nascita ,….etc.
Per evitare queste ANOMALIE le relazioni tra entità devono essere create
utilizzando il VINCOLO della INTEGRITA’ REFERENZIALE.
7
8. REGOLE da seguire
• La chiave esterna deve fare riferimento ad un elemento esistente che
abbia la chiave esterna come chiave primaria. Non è possibile emettere
una fattura verso un cliente inesistente , oppure non si può accettare un
ordine di un prodotto inesistente.
• Le operazioni sui campi numerici devono rimanere all’interno di un
RANGE di consistenza logica
• La concorrenza sulla Base di Dati deve essere gestita con strutture di
sincronizzazione temporale
Gli applicativi commercialmente presenti consentono di creare relazioni
senza vincoli di integrità referenziale lasciando all’utente la corretta gestione
delle operazioni sul DATABASE. La cosa risulta pericolosa .
E’ preferibile utilizzare l’opzione crea integrità referenziale che solleva
eventuali eccezioni qualora si introducano o si modifichino dati in modo
inopportuno.
ACCESS consente di creare relazioni con :
• integrità referenziale
1. Non si può far riferimento a qualcosa che non esiste
2. Modificare le chiavi se questo genera inconsistenza
3. Cancellare elementi correlati
• di cancellare tutte le righe delle relazioni correlate ( toglie vincolo 3 )
• di aggiornare tutte le righe delle relazioni correlate ( toglie vincolo 2 )
Per quanto riguarda la concorrenza la gestione è demandata al gestore
della Base di Dati ( DBA ).
Le operazioni sui campi numerici possono essere vincolate in fase di
creazione delle tabelle , a tal proposito si rimanda al manuale in linea
dell’applicativo in uso.
8
9. Dal Modello ER al Modello Relazionale *
Schemi o regole da seguire nella creazione delle TABELLE.
Binaria
molti a
molti
3 Tabelle
Tab A ( Ka, Aa )
Tab B ( Kb, Ab )
Tab R ( Ka, Kb, Ar )
Ternaria
molti a
molti
4 Tabelle
Tab A ( Ka , Aa )
Tab B ( Kb , Ab )
Tab C ( Kc , Ac )
Tab R ( Ka , Kb , Kc ,
Ar )
Binaria uno
a molti
2 Tabelle
Tab A ( Ka , Aa , Ar , Kb )
Tab B ( Kb , Ab )
Binaria uno
a uno
2 Tabelle
Tab A ( Ka , Aa , Ar , Kb )
Tab B ( Kb , Ab )
Alternativa
Tab AB ( ka , kb , Aa , Ab ,
Ar )
TIPO Diagramma ER TABELLE
9
A
Ka ,Aa
B
A B
C
Ka ,Aa
ArKc ,Ac
A B
Ar
Ka ,Aa
Kb ,Ab
,,,,A A
Kb ,Ab
,,,,A A
A B
Ka ,Aa
Ar
Kb ,Ab
,,,,A A
Kb ,Ab
,,,,A A
Ar
10. Casi particolari di traduzione
• Associazione con identificatore esterno
Esempio :
Tabella STUDENTE
MATRICOLA NOME_UNI Cognome
Nome
Anno Facoltà
153461/IL UNIPD Stefano
Cecchin
Terzo ING.
ELETTRONICA
Tabella UNIVERSITA’
NOME CITTA’ INDIRIZZO
UNIPD Padova Via Gradenigo 11
10
STUDENTE
ISCRIZION
E
UNIVERSITA
Matricola
Nome_Uni
Cognome Nome
Anno
Facoltà
Nome
Città
Indirizzo
Chiave esterna
11. • Associazioni di tipo ISA ( è un ) o GENERALIZZAZIONI
ESEMPIO :
Specializzazione : Avvocato ( Penalista , Civilista , Fiscalista )
Medico ( Pediatra , Cardiologo , ….)
Tabella PROFESSIONISTA
PARTITAIVA ORDINE Cognome Nome Indirizzo
DFG547YTR54E32R MEDICO De Bona Luca Via Roma 11 Feltre
(BL)
AAD347GYT54H76
H
AVVOCATO Cian Paolo Via Borgo Ruga 34
Sedico (BL)
Tabella MEDICO
PARTITAIVA SPECIALIZZAZIONE
DFG547YTR54E32R Cardiologo
Tabella AVVOCATO
PARTITAIVA SPECIALIZZAZIONE
AAD347GYT54H76H Penalista
11
PROFESSIONISTA
AVVOCATO MEDICO
PartitaIVA
OrdineProfessionale
Cognome Nome
Indirizzo
PartitaIVA
Specializzazione
PartitaIVA
Specializzazione
12. • Associazioni di Tipo Ricorsivo ( vedi anche esempio fotocopie pg. 247 )
ESEMPIO :
Una donna è figlia di una sola donna ma può avere più figlie
Tabella DONNA
CODICEFISCALE GENERALITA’
FCNLWN23A65B174H Pinco Pallino
Tabella FIGLIA
( ATTRIBUTI RIDONDANTI )
CODICEMADRE CODICEFIGLIA NUM. SORELLE NUM: FIGLIE
CCCSFN76AD26B234
T
FDCDER04DA23D211D 1 2
STRUTTURA DELLE RELAZIONI
12
DONNA
FIGLI
A
è figlia ha figlie
CodiceFiscale
Generalità
Num. FiglieNum. Sorelle
MADRE
DONNA
1° FIGLIA 2° FIGLIA
LA SORELLA
13. *
Disegnare degli schemi ER completi di attributi e chiavi con
relazioni del tipo : ( usare un po’ di fantasia )
• Uno a uno
• Uno a molti
• Molti a molti
Completare i seguenti schemi ER : ovvero dare un nome alle entità
alle relazioni e definire dei possibili attributi e delle chiavi.
1)
2)
13
14. Definire il modello ER delle seguenti realtà :
1. Si vuole organizzare un Database di tipo bancario che consenta di
operare in automatico sui singoli conti correnti e che permetta di
interrogare il DB con domande del tipo :
• Situazione conto corrente del Sig. Rossi
• Operazioni svolte in data odierna dalla Banca
• Prelievi effettuati dal Sig. Rossi
• Tipologia di operazione più frequente svolta dalla Banca
• Quali sono i 10 migliori clienti
• In quale giorno della settimana c’è maggior lavoro
• Quante operazioni di prelievo sono state effettuate oggi e per che
ammontare complessivo
2. Si vuole organizzare un DataBase che consenta di organizzare le
attività di una scuola. Ritenendo particolarmente importante il
quadro orario delle lezioni. Il DataBase deve essere in grado di
soddisfare alle seguenti domande :
• In quale aula si trova la 3 A la quarta ora del lunedi’
• Quali sono gli insegnanti di matematica della scuola
• Che cosa insegna il Prof. Mario De Bona
• Chi è l’insegnante di storia della 1 B
• Quanti sono gli alunni della 5°BLI
• In quali classi insegna il Prof. Stefano Cecchin
• Quanti banchi ci sono in aula 12
• Quale è l’orario del giovedì della 2H
• Quante ore di informatica fa la 3C alla settimana
14
15. 3. Una azienda desidera gestire le operazioni con i propri fornitori e
con i propri clienti in modo da organizzare sia il magazzino che
l’ufficio amministrativo tramite un DataBase aziendale in grado di
soddisfare le seguenti esigenze.
• Quale è il fornitore dei bottoni per loden
• Quale impiegato ha evaso l’ordine dell’OVIESSE del 12/2/2001
• Quanti ordini ha evaso l’impiegato Sig. Rossi
• Quale corriere ha effettuato la spedizione di maglioni in data
27/7/2000 al negozio COIN
• Con quale corriere lavoriamo di piu’
• Quante sono le fatture emesse relativamente all’articolo
magliette polo
• Quali sono i nostri fornitori
• Quali sono i nostri clienti
• Chi è il miglior cliente
• Chi compra più pantaloni da uomo
• Quanti ordini ha effettuato nell’ultimo mese OVIESSE
4. L’Istituto Geografico D’Agostini vuole realizzare un cd geografico
da diffondere nelle scuole medie e superiori .Il cd riguarda sia la
geografia politica che quella fisica e deve essere di aiuto agli
studenti nell’apprendimento della materia.Gli studenti possono
interpellare il cd formulando domande del tipo :
• Quali sono le province del VENETO
• Con quali regioni confina il PIEMONTE
• Quali sono le regioni a statuto speciale
• Con quali province confina BELLUNO
• Quale è il capoluogo della LIGURIA
• Quali sono le province della Sicilia con più di 600.000 abitanti
• Quali regioni attraversa il Po
• Quali sono gli affluenti del Po
• Quali sono le regioni bagnate dal mare
• Quale è l’estensione in Kmq della LOMBARDIA
• Quali sono i fiumi che nascono nel VENETO
• In quale mare sfocia l’Adige
15
16. 5. L’Ente promozione del turismo di RIMINI vuole organizzare un
sito web che consenta ai visitatori di consultare un DATABASE
relativo alle manifestazioni ( di varia natura ) che si svolgeranno
nel corso dell’intera estate sulla riviera romagnola.Le possibili
interrogazioni dei visitatori del sito possono essere le seguenti :
• In quale data si svolgerà la Sagra del Pesce di Rimini
• Quante sono le mostre di quadri organizzate questa estate
• In quali date si svolgeranno i concerti Rock
• Quanti sono i concerti di “Ramazzotti”
• Dove si svolgerà il “Premio Bancarella” ( edificio-luogo)
• Quali sono le manifestazioni organizzate nella settimana di
Ferragosto
• Quale è la settimana con il maggior numero di
manifestazioni
• Quali manifestazioni sportive sono previste in Luglio
6. Un appassionato di musica desidera organizzare la propria
collezione di cd musicali di vario genere in modo da poter
consultare un DataBase musicale per ottenere informazioni in
merito a :
• Quali sono i titoli dei cd di Bocelli
• Quanti cd di Celentano posseggo
• Che tipo di musica fanno gli U2
• In che anno è uscito il cd “ Ciao Mare “
• Quanti brani contiene mediamente un cd
• Chi canta la canzone “VOLARE”
• Quale genere musicale preferisco ( numero di cd
posseduti) By Stefano Cecchin A. S. 2008/2009
• ITI Segato classe 5 INF
By Stefano Cecchin A. S. 2008/2009
ITI Segato classe 5 INF
16