(03) Progettazione Concettuale - BD Nettuno17-20

Transcript

(03) Progettazione Concettuale - BD Nettuno17-20
IL MODELLO
ENTITA’ - RELAZIONE
I costruttori di base
Argomenti della lezione
• Entità
• Relazioni
• Attributi
• Costruzione di schemi con i
costrutti di base
• Cenni sugli altri costrutti
1
Entità
Classe di oggetti (fatti, persone, cose) della
applicazione di interesse con proprietà
comuni e con esistenza “autonoma”
Esempi:
impiegato
fattura
città
conto corrente
ordine
studente
2
Occorrenza (o istanza) di entità:
oggetto della classe che l’entità
rappresenta
nello schema concettuale
rappresentiamo le entità, non le
singole istanze (“astrazione”)
Rappresentazione grafica
di entità
Impiegato
Dipartimento
Città
Vendita
3
Ogni entità ha un nome
che la identifica univocamente
nello schema:
nomi espressivi
opportune convenzioni
– singolare
Relazione
4
Legame logico, significativo
per l’applicazione di interesse,
fra due o più entità.
Esempi:
Residenza (tra Persona e Città)
Afferenza (tra Impiegato e Dipartimento)
Rappresentazione grafica
di relazione
Studente
Esame
Corso
Impiegato
Residenza
Città
5
Ogni relazione ha un nome
che la identifica
univocamente nello schema:
nomi espressivi
opportune convenzioni
– singolare
– sostantivi invece che verbi
Esempi di occorrenze
E1
E2
S1
E3
S2
C1
C2
S3
S4
Studente
E4
C3
Corso
6
Due osservazioni
Una occorrenza di entità non è un
valore che identifica un oggetto,
ma l’oggetto stesso
In una occorrenza di relazione non
ci possono essere ripetizioni
Due entità possono essere
coinvolte in più relazioni
Sede di
lavoro
Impiegato
Residenza
Città
7
Le relazioni possono
coinvolgere più di due entità
Fornitore
Fornitura
Prodotto
Dipartimento
Una relazione può coinvolgere
“due volte” la stessa entità
(relazione ricorsiva)
Matrimonio
Persona
8
Nelle relazioni ricorsive in alcuni casi
vanno specificati i “ruoli”
Successione
Successore
Sovrano
Predecessore
Relazione ternaria ricorsiva
Superficie
Migliore
Peggiore
Confronto
Tennista
9
Attributi
Proprietà elementare di un’entità o di
una relazione, di interesse ai fini
dell’applicazione
Un attributo associa ad ogni
occorrenza di entità o relazione un
valore appartenente a un insieme
detto dominio dell’attributo
10
Rappresentazione grafica
Cognome
Età
Impiegato
Stipendio
Data nascita
Nome
Nascita
Città
Provincia
Attributi composti
Si ottengono raggruppando attributi
di una medesima entità o relazione
che presentano affinità nel loro
significato o uso
Esempio:
Via, Numero civico e CAP
formano un Indirizzo
11
Rappresentazione grafica
Cognome
Impiegato
Età
Indirizzo
Via
Numero
CAP
Con i costrutti presentati è già
possibile costruire schemi di una
certa complessità
Vediamo un esempio più articolato
di schema Entità-Relazione con
entità relazioni e attributi
12
Cognome
Telefono
Direzione
Impiegato
Dipartimento
Afferenza
Codice
Nome
Composizione
Partecipazione
Data
Progetto
Budget
Nome
Sede
Via
Indirizzo
CAP
Città
Cardinalità delle relazioni
Coppia di valori che si associa a ogni
entità che partecipa a una relazione
specificano il numero minimo e
massimo di occorrenze delle relazione
cui ciascuna occorrenza di una entità
può partecipare
13
Esempio di cardinalità
(1,5)
Impiegato
(0,50)
Assegnamento
Incarico
per semplicità usiamo solo tre
simboli:
0 e 1 per la cardinalità minima:
0 = “partecipazione opzionale”;
1 = “partecipazione obbligatoria”
1 e “N” per la massima:
“N” non pone alcun limite
14
Occorrenze di Residenza
R1
S1
C1
S2
C2
S3
R2
S4
C3
R3
S5
R4
Città
Studente
Cardinalità di Residenza
(1,1)
Studente
(1,N)
Residenza
Città
15
Classificazione di relazioni
Con riferimento alle cardinalità
massime, abbiamo relazioni:
uno a uno,
uno a molti,
molti a molti
Relazioni “molti a molti”
(0,N)
Studente
(0,N)
Corso
Esame
(0,N)
Montagna
(1,N)
Scalata
Alpinista
(0,N)
Macchinista
(0,N)
Abilitazione
Locomotore
16
Relazioni “uno a molti”
(0,1)
Persona
(1,N)
Azienda
Impiego
(1,1)
Persona
(1,N)
Città
Nascita
(1,1)
Comune
(1,N)
Ubicazione
Provincia
Relazioni “uno a uno”
(0,1)
Ordine
(1,1)
(1,1)
Professore
(0,1)
Corso
Docenza
(0,1)
Impiegato
Fattura
Vendita
(1,1)
Direzione
Progetto
17
Cardinalità di attributi
E’ possibile associare delle cardinalità
anche agli attributi, con due scopi:
indicare opzionalità
indicare attributi multivalore
Rappresentazione grafica
(0,N)
Targa auto
Nome
Impiegato
(0,1)
Numero patente
18
Identificatore di una entità
“strumento” per l’identificazione
univoca delle occorrenze di un’entità
costituito da:
attributi dell’entità
→identificatore interno
(attributi +) entità esterne attraverso
relazioni
→identificatore esterno
Identificatori interni
Targa
Automobile
Modello
Colore
Data Nascita
Persona
Cognome
Nome
19
Identificatore esterno
Cognome Matricola
Nome
(1,1)
Studente
Anno Iscrizione
(1,N)
Iscrizione
Università
Indirizzo
Alcune osservazioni
ogni entità deve possedere almeno un
identificatore, ma può averne in
generale più di uno
una identificazione esterna è possibile
solo attraverso una relazione a cui
l’entità da identificare partecipa con
cardinalità (1,1)
20
(0,1)
Cognome
(1,1)
Telefono
Direzione
Impiegato
Codice
(1,N)
(0,1)
(0,N)
Partecipazione
Afferenza
(0,1)
Data
(1,N)
Progetto
Budget
Nome
(1,N)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
Generalizzazione
mette in relazione una o più entità
E1, E2, ..., En con una entità E, che le
comprende come caso particolare
E è generalizzazione di E1, E2, ..., En
E1, E2, ..., En sono specializzazioni (o
sottotipi) di E
21
Rappresentazione grafica
Dipendente
Impiegato
Funzionario
Dirigente
Proprietà di generalizzazioni
Se E (padre) è generalizzazione di E1, E2,
..., En (figlie):
ogni proprietà di E è significativa per
E1, E2, ..., En
ogni occorrenza di E1, E2, ..., En è
occorrenza anche di E
ogni occorrenza di E è occorrenza al
più di una entità tra E1, E2, ..., En
22
Città
(1,N)
Codice
fiscale
Nascita
(1,1)
Nome
Persona
Età
Stipendio
Lavoratore
Studente
Ereditarietà
tutte le proprietà (attributi, relazioni,
altre generalizzazioni) dell’entità
padre vengono ereditate dalle entità
figlie e non rappresentate
esplicitamente
23
Classificazione di generalizzazioni
una generalizzazione è totale se ogni
occorrenza della entità padre è un
occorrenza di almeno una delle entità
figlie, altrimenti è parziale
una generalizzazione è esclusiva se
ogni occorrenza della entità padre è al
più un occorrenza di una delle entità
figlie, altrimenti è sovrapposta
Persona
Uomo
Studente
Lavoratore
Donna
24
Altre proprietà
possono esistere gerarchie a più livelli
e multiple gerarchie allo stesso livello
un'entità può essere inclusa in più
gerarchie, come genitore e/o come
figlia
se una generalizzazione ha solo
un’entità figlia si parla di sottoinsieme
Esercizio
Le persone hanno CF, cognome ed età; gli
uomini anche la posizione militare; gli
impiegati hanno lo stipendio e possono
essere segretari, direttori o progettisti (un
progettista può essere anche responsabile di
progetto); gli studenti (che non possono
essere impiegati) un numero di matricola;
esistono persone che non sono né impiegati
né studenti (ma i dettagli non ci interessano)
25
CF
Persona
Cognome
Uomo
Stipendio
Donna
Età
Matr.
Impiegato
Studente
Direttore
Progettista
Militare
Segretario
Responsabile
Documentazione associata
agli schemi concettuali
dizionario dei dati
– entità
– relazioni
vincoli non esprimibili
26
(0,1)
Cognome
(1,1)
Telefono
Direzione
Impiegato
Codice
(1,N)
(0,1)
(0,N)
(1,N)
Dipartimento
Afferenza
(0,1)
Partecipazione
Composizione
Data
(1,N)
(1,N)
Progetto
Budget
Nome
Nome
(1,1)
Sede
Via
Indirizzo
CAP
Città
Dizionario dei dati (entità)
Entità
Impiegato
Progetto
Descrizione
Dipendente
dell'azienda
Progetti
aziendali
Dipartimento Struttura
aziendale
Sede
Sede
dell'azienda
Attributi
Codice,
Cognome,
Stipendio
Nome,
Budget
Nome,
Telefono
Città,
Indirizzo
Identificatore
Codice
Nome
Nome,
Sede
Città
27
Dizionario dei dati (relazioni)
Relazioni
Direzione
Afferenza
Partecipazione
Composizione
Descrizione
Direzione di un
dipartimento
Afferenza a un
dipartimento
Partecipazione
a un progetto
Composizione
dell'azienda
Componenti Attributi
Impiegato,
Dipartimento
Impiegato,
Data
Dipartimento
Impiegato,
Progetto
Dipartimento,
Sede
(0,1)
Cognome
(1,1)
Telefono
Direzione
Impiegato
Codice
(1,N)
(0,1)
(0,N)
Partecipazione
Afferenza
(0,1)
Data
(1,N)
Progetto
Budget
Nome
(1,N)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
28
Vincoli non esprimibili
Vincoli di integrità sui dati
(1) Il direttore di un dipartimento deve a afferire a tale
dipartimento
(2) Un impiegato non deve avere uno stipendio
maggiore del direttore del dipartimento al quale
afferisce
(3) Un dipartimento con sede a Roma deve essere
diretto da un impiegato con più di dieci anni di
anzianità
(4) Un impiegato che non afferisce a nessun
dipartimento non deve partecipare a nessun un
progetto
Analisi dei dati
Comprende attività di
acquisizione dei requisiti
analisi dei requisiti
costruzione dello schema concettuale
costruzione del glossario
attività spesso interconnesse
29
Requisiti
Possibili fonti:
utenti, attraverso:
– interviste
– documentazione apposita
documentazione esistente:
– normative (leggi, regolamenti di settore)
– regolamenti interni, procedure aziendali
– realizzazioni preesistenti
modulistica
Acquisizione e analisi dei
requisiti
Il reperimento dei requisiti è
un'attività difficile e non
standardizzabile
l'attività di analisi inizia con i primi
requisiti raccolti e spesso indirizza
verso altre acquisizioni
30
Acquisizione per interviste
utenti diversi possono fornire
informazioni diverse
utenti a livello più alto hanno spesso
una visione più ampia ma meno
dettagliata
le interviste portano spesso ad una
acquisizione dei requisiti “per
raffinamenti successivi”
Interazione con gli utenti
Alcune regole:
effettuare spesso verifiche di
comprensione e coerenza
verificare anche per mezzo di esempi
(generali e relativi a casi limite)
richiedere definizioni e classificazioni
far evidenziare gli aspetti essenziali
rispetto a quelli marginali
31
Organizzazione dei requisiti
Alcune regole:
scegliere il corretto livello di astrazione
standardizzare la struttura delle frasi
suddividere le frasi articolate
separare le frasi sui dati da quelle sulle
funzioni
Organizzazione dei requisiti
Alcune regole:
costruire un glossario dei termini
individuare omonimi e sinonimi e
unificare i termini
rendere esplicito il riferimento fra
termini
riorganizzare le frasi per concetti
32
Un primo esempio di
raccolta dei requisiti:
Base di dati bibliografica
Base di dati bibliografica
Si vogliono organizzare i dati di interesse
per automatizzare la gestione dei
riferimenti bibliografici
33
Base di dati bibliografica
Si vogliono organizzare i dati di interesse per
automatizzare la gestione dei riferimenti
bibliografici, con tutte le informazioni da
riportarsi in una bibliografia.
Per ogni pubblicazione deve esistere un
codice identificante costituito da sette
caratteri, indicanti le iniziali degli autori, l'anno
di pubblicazione e un carattere aggiuntivo per
la discriminazione delle collisioni.
Base di dati bibliografica
Si vogliono organizzare i dati di interesse per
automatizzare la gestione dei riferimenti
bibliografici, con tutte le informazioni da riportarsi
in una bibliografia. Le pubblicazioni sono di due
tipi, monografie (per le quali interessano editore,
data e luogo di pubblicazione) e articoli su rivista
(con nome della rivista, volume, numero, pagine e
anno di pubblicazione); per entrambi i tipi si
debbono ovviamente riportare i nomi degli autori.
Per ogni pubblicazione deve esistere un codice
identificante .....
34
Un esempio articolato di
analisi dei requisiti:
Società di formazione
Società di formazione (1)
Si vuole realizzare una base di dati per una
società che eroga corsi, di cui vogliamo
rappresentare i dati dei partecipanti ai corsi e dei
docenti. Per gli studenti (circa 5000), identificati
da un codice, si vuole memorizzare il codice
fiscale, il cognome, l'età, il sesso, il luogo di
nascita, il nome dei loro attuali datori di lavoro, i
posti dove hanno lavorato in precedenza insieme
al periodo, l'indirizzo e il numero di telefono, i
corsi che hanno frequentato (i corsi sono in tutto
circa 200) e il giudizio finale.
35
Società di formazione (2)
Rappresentiamo anche i seminari che stanno
attualmente frequentando e, per ogni giorno, i
luoghi e le ore dove sono tenute le lezioni. I corsi
hanno un codice, un titolo e possono avere varie
edizioni con date di inizio e fine e numero di
partecipanti. Se gli studenti sono liberi
professionisti, vogliamo conoscere l'area di
interesse e, se lo possiedono, il titolo. Per quelli
che lavorano alle dipendenze di altri, vogliamo
conoscere invece il loro livello e la posizione
ricoperta.
Società di formazione (3)
Per gli insegnanti (circa 300), rappresentiamo il
cognome, l'età, il posto dove sono nati, il nome
del corso che insegnano, quelli che hanno
insegnato nel passato e quelli che possono
insegnare. Rappresentiamo anche tutti i loro
recapiti telefonici. I docenti possono essere
dipendenti interni della società o collaboratori
esterni.
36
Glossario dei termini
Termine
Descrizione
Partecipante Persona che
partecipa ai corsi
Docente
Corso
Società
Sinonimi
Studente
Collegamenti
Corso,
Società
Insegnante Corso
Docente dei corsi.
Può essere esterno
Corso organizzato
Seminario
dalla società. Può
avere più edizioni.
Ente presso cui i
Posti
partecipanti lavorano
o hanno lavorato
Docente
Partecipante
Strutturazione dei requisiti
in gruppi di frasi omogenee
37
Frasi di carattere generale
Si vuole realizzare una base di dati per
una società che eroga corsi, di cui
vogliamo rappresentare i dati dei
partecipanti ai corsi e dei docenti.
Frasi relative ai partecipanti
Per i partecipanti (circa 5000), identificati da
un codice, rappresentiamo il codice fiscale,
il cognome, l'età, il sesso, la città di nascita,
i nomi dei loro attuali datori di lavoro e di
quelli precedenti (insieme alle date di inizio
e fine rapporto), le edizioni dei corsi che
stanno attualmente frequentando e quelli
che hanno frequentato nel passato, con la
relativa votazione finale in decimi.
38
Frasi relative ai datori di lavoro
Relativamente ai datori di lavoro presenti e
passati dei partecipanti, rappresentiamo il
nome, l'indirizzo e il numero di telefono.
Frasi relative ai corsi
Per i corsi (circa 200), rappresentiamo il titolo
e il codice, le varie edizioni con date di inizio e
fine e, per ogni edizione, rappresentiamo il
numero di partecipanti e il giorno della
settimana, le aule e le ore dove sono tenute le
lezioni.
Frasi relative a tipi specifici di partecipanti
Per i partecipanti che sono liberi
professionisti, rappresentiamo l'area di
interesse e, se lo possiedono, il titolo
professionale. Per i partecipanti che sono
dipendenti, rappresentiamo invece il loro
livello e la posizione ricoperta.
39
Frasi relative ai docenti
Per i docenti (circa 300), rappresentiamo il
cognome, l'età, la città di nascita, tutti i
numeri di telefono, il titolo del corso che
insegnano, di quelli che hanno insegnato
nel passato e di quelli che possono
insegnare. I docenti possono essere
dipendenti interni della società di
formazione o collaboratori esterni.
Quale costrutto E-R va utilizzato
per rappresentare un concetto
presente nelle specifiche?
Bisogna basarsi sulle definizioni
dei costrutti del modello E-R
40
se ha proprietà significative e descrive
oggetti con esistenza autonoma
→entità
se è semplice e non ha proprietà
→attributo
se correla due o più concetti
→relazione
se è caso particolare di un altro
→generalizzazione
Strategie di progetto
top-down
bottom-up
inside-out
41
Qualità di uno schema
concettuale
correttezza
completezza
leggibilità
minimalità
Strategie di progetto
top-down
bottom-up
inside-out
42
Strategia top-down
Schema
Schema
intermedio
iniziale
Schema
Specifiche
intermedio
Schema
finale
Primitive di raffinamento
top-down
Cognome
Età
Persona
Studente
Impiegato
Esame
Persona
Esame
Uomo
Corso
Donna
Stipendio
43
Strategia bottom-up
Specifiche
2,1
Schema 2,1
Specifiche
1,1
Schema 1,1
Specifiche Specifiche
1
Specifiche 2
Schema finale
Specifiche
2,2
Schema 2,2
Specifiche1,2
1,2
Schema
Primitive di raffinamento
Bottom-up
Persona
Studente
Uomo
Specifica su
Esame
Impiegato
impiegato
Corso
Donna
44
Strategia inside-out:
un esempio
(0,1)
Cognome
(1,1)
Telefono
Direzione
Impiegato
Codice
(1,N)
(0,1)
(0,N)
Partecipazione
Afferenza
(0,1)
Data
(1,N)
Progetto
Budget
Nome
(1,N)
Dipartimento
Nome
(1,1)
Composizione
(1,N)
Sede
Via
Indirizzo
CAP
Città
45
In pratica
si procede di solito con una strategia
ibrida (detta anche mista):
si individuano i concetti principali
e si realizza uno schema scheletro
sulla base di questo si può
decomporre
poi si raffina, si espande, si integra
Definizione dello schema
scheletro
Si individuano i concetti più
importanti, ad esempio perché più
citati o perché indicati esplicitamente
come cruciali e li si organizza in un
semplice schema concettuale
46
Qualità di uno schema
concettuale
correttezza
completezza
leggibilità
minimalità
Un esempio di
progettazione
concettuale
Società di formazione
47
Frasi di carattere generale
Si vuole realizzare una base di dati per
una società che eroga corsi, di cui
vogliamo rappresentare i dati dei
partecipanti ai corsi e dei docenti.
Schema scheletro
Corso
Partecipazione
Docenza
Partecipante
Docente
48
Frasi relative ai partecipanti
Per i partecipanti (circa 5000), identificati da
un codice, rappresentiamo il codice fiscale,
il cognome, l'età, il sesso, la città di nascita,
i nomi dei loro attuali datori di lavoro e di
quelli precedenti (insieme alle date di inizio
e fine rapporto), le edizioni dei corsi che
stanno attualmente frequentando e quelli
che hanno frequentato nel passato, con la
relativa votazione finale in decimi.
Frasi relative ai datori di lavoro
Relativamente ai datori di lavoro presenti e
passati dei partecipanti, rappresentiamo il
nome, l'indirizzo e il numero di telefono.
Frasi relative a tipi specifici di partecipanti
Per i partecipanti che sono liberi
professionisti, rappresentiamo l'area di
interesse e, se lo possiedono, il titolo
professionale. Per i partecipanti che sono
dipendenti, rappresentiamo invece il loro
livello e la posizione ricoperta.
49
Datore
(0,N)
(0,N)
(1,1)
Impiego
corrente
(0,N)
Impiego
passato
Partecipante
Nome
…..
CF
Codice
…..
Dipendente
Livello
Posizione
Professionista
Titolo prof.
Area
Frasi relative ai corsi
Per i corsi (circa 200), rappresentiamo il titolo
e il codice, le varie edizioni con date di inizio e
fine e, per ogni edizione, rappresentiamo il
numero di partecipanti e il giorno della
settimana, le aule e le ore dove sono tenute le
lezioni.
50
Data fine
Data inizio
N.Part.
Edizione
corso
(1,1)
Tipologia
(0,N)
Composizione
(1,1)
Corso
Titolo
(1,N)
Codice
Lezione
Orario Aula Giorno
Frasi relative ai docenti
Per i docenti (circa 300), rappresentiamo il
cognome, l'età, la città di nascita, tutti i
numeri di telefono, il titolo del corso che
insegnano, di quelli che hanno insegnato
nel passato e di quelli che possono
insegnare. I docenti possono essere
dipendenti interni della società di
formazione o collaboratori esterni.
51
Telefono
CF
(1,N)
Cognome
Docente
Città nascita
Età
Collaboratore
Interno
Integrazione
Corso
Partecipazione
Docenza
Partecipante
Docente
52
(0,N)
partecipazione
passata
(0,1)
(0,N)
partecipazione
Partecipazione
corrente
Partecipante
(0,1)
Edizione
Corso
corso
Data
inizio
(0,N)
(0,N)
Docenza
passata
Docente
Docenza
(0,1)
(1,1)
Edizione
Corso
corso
(0,1)
Docenza
corrente
Tipologia
(1,N)
(0,N)
Corso
Abilitazione
(1,N)
Titolo
Codice
53
Una metodologia generale
(1) Analisi dei requisiti
Costruire un glossario dei termini
Analizzare i requisiti ed eliminare le
ambiguità presenti
Raggruppare i requisiti in insiemi
omogenei
Una metodologia generale
(2) Passo base
Individuare i concetti più rilevanti e
rappresentarli in uno schema scheletro
(3) Passo di decomposizione
Effettuare una decomposizione con
riferimento ai concetti dello schema
scheletro
54
Una metodologia generale
(4) Passo iterativo
(da ripetere finché non si è soddisfatti)
Raffinare i concetti presenti sulla base
delle loro specifiche;
Aggiungere concetti per descrivere
specifiche non ancora descritte;
Una metodologia generale
(5) Passo di integrazione
Integrare i vari sotto-schemi con
riferimento allo schema scheletro
(6) Analisi di qualità
(ripetuta e distribuita)
Verificare le qualità dello schema ed
eventualmente ristrutturarlo
55