Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... ·...

58
1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi di datia.a. 2013-2014 Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi 2 Lezione 7 Progettazione di basi di dati: metodologie e modelli

Transcript of Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... ·...

Page 1: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

1

1

Corso di Laurea in Ingegneria Informatica

Fondamenti di informatica IIModulo “Basi di dati”

a.a. 2013-2014Docente: Gigliola Vaglini

Docente laboratorio: Francesco Pistolesi

2

Lezione 7

Progettazione di basi di dati:metodologie e modelli

Page 2: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

2

3

Processo di sviluppo di sistemi software

Lo sviluppo di sistemi software in generale, e di sistemi informativi in particolare, è un’attività complessa che comprende diverse fasi. Ciclo di vita: sequenza di attività, anche

ripetute ciclicamente, svolte da analisti, progettisti, utenti, nello sviluppo e nell’uso dei sistemi sw

4

Modello del ciclo di vita a cascata (Waterfall model)

Page 3: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

3

5

Fasi del ciclo di vita Studio di fattibilità: definizione costi e priorità Raccolta e analisi dei requisiti: studio delle

proprietà del sistema Progettazione: individuazione dei dati e delle

funzioni Realizzazione Validazione e collaudo: sperimenazione Funzionamento: il sistema diventa operativo

6

La progettazione è una fase del ciclo di vita

Ci focalizzeremo sul passo 3 del ciclo di vita più alcuni aspetti di raccolta e analisi dei requisiti.

La progettazione di un sistema software consta fondamentalmente di due aspetti– progettazione dei dati– progettazione delle applicazioni

Nel caso di sistemi informativi il progetto della base di dati ha un ruolo centrale

Prima si progetta la base di dati e poi le applicazioni.

Page 4: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

4

7

Un buon progetto

Per garantire prodotti di buona qualità è opportuno seguire una– metodologia di progetto, basata sumodelli per rappresentare i dati che siano

facili da usare decomposizione delle attività in fasi

successive strategie e criteri di scelta nei vari passi

8

Progettare per livelli di astrazione

Basandosi sull’architettura ANSI/SPARC, anche la progettazione procede per livelli:– Livello concettuale. Esprime i requisiti di un sistema

in una descrizione adatta all’analisi dal punto di vista informatico

– Livello logico. Evidenzia l’organizzazione dei dati dal punto di vista del loro contenuto informativo, descrivendo la struttura di ciascun record e i collegamenti tra record diversi.

– Livello fisico. A questo livello la base di dati è vista come un insieme di blocchi fisici su disco. Qui viene decisa l’allocazione dei dati e le modalità di memorizzazione dei dati sul disco.

Page 5: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

5

9

Schemi di basi di dati I prodotti della varie fasi della

progettazione sono schemi della base di dati secondo un certo modello dei dati, ognuno basato su un insieme di costrutti per organizzare i dati e descriverne la dinamica– Schema concettuale– Schema logico– Schema fisico

10

La progettazione

Page 6: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

6

11

Il progetto delle Basi di dati

Dato un DBMS e quindi un modello logico e un’architettura, come si progetta una BD?– Dalle specifiche al modello logico

direttamente– Usando un modello per i dati più astratto, ma

che possa essere tradotto facilmente nel modello logico

12

Modelli concettuali

I dati sono rappresentati in modo indipendente dal modello logico (più vicino al modo di pensare del progettista)– cercano di replicare i concetti del mondo

reale– sono utilizzati nelle fasi preliminari della

progettazione Il modello più diffuso è chiamato Entity-

Relationship

Page 7: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

7

13

Analisi dei requisiti

14

Dall’analisi dei dati allo schema concettuale

– acquisizione dei requisiti: il reperimento dei requisiti è un'attività difficile e non standardizzabile

– analisi dei requisiti: l'attività di analisi inizia con i primi requisiti raccolti e spesso indirizza verso altre acquisizioni

– costruzione del glossario

Page 8: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

8

15

Come si acquisiscono i requisiti– direttamente dagli utenti interviste documentazione apposita

– da documentazione esistente: normative (leggi, regolamenti di settore) regolamenti interni, procedure aziendali realizzazioni preesistenti

16

Interazione con gli utenti Problemi

– utenti diversi possono fornire informazioni diverse

– utenti a livello più alto hanno spesso una visione più ampia ma meno dettagliata

– spesso l’ acquisizione dei requisiti avviene“per raffinamenti successivi”

Page 9: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

9

17

Interazione con gli utenti

Spunti:– 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

18

Interazione con gli utenti tramite documentazione

Regole generali:– scegliere il corretto livello di astrazione– standardizzare la struttura delle frasi– separare le frasi sui dati da quelle sulle

funzioni– organizzare termini e concetti

Page 10: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

10

19

Organizzazione di termini e concetti

Regole generali – costruire un glossario dei termini– individuare omonimi e sinonimi e unificare i

termini– rendere esplicito il riferimento fra termini– riorganizzare le frasi per concetti

20

Un esempio

Page 11: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

11

21

22

Page 12: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

12

23

Glossario dei termini

24

Strutturazione dei requisitiin gruppi di frasi omogenee

Page 13: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

13

25

26

Page 14: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

14

27

28

Page 15: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

15

29

30

Modello concettuale

Page 16: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

16

31

Modelli concettuali Permettono di ragionare sulla realtà di interesse Permettono di rappresentare le classi di dati di

interesse e le loro correlazioni– le specifiche delle operazioni implicano solo la verifica che lo

schema contenga tutte le informazioni necessarie per eseguirle Prevedono efficaci rappresentazioni grafiche (utili

anche per la documentazione e la comunicazione) Partire direttamente dal modello logico ci fa perdere

nei dettagli: i modelli logici sono più rigidi

32

La progettazione concettuale Traduce i requisiti di un qualsiasi sistema

informatico in una descrizione:– formale: espressa in modo non ambiguo, ma adeguato

a catturare le caratteristiche fondamentali del mondo da descrivere

– integrata: la descrizione si riferisce alla totalità dell’ambiente (non settoriale)

– indipendente dalla realizzazione fisica e basata su un processo di astrazione Cioè il progetto evidenzia alcune proprietà rilevanti ai fini

dell’applicazione Ma esclude le proprietà irrilevanti ai fini dell’applicazione

Page 17: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

17

33

Progettazioneconcettuale

Progettazione logica

Progettazionefisica

Passaggi tra un modello e l’altro?

34

Il modello utilizzato Sono stati proposti diversi modelli, basati su

– linguaggi formali eseguibili e non eseguibili– rappresentazioni grafiche corredate da descrizioni, il

modello Entity-Relationship (E-R) appartiene a questa categoria

il modello E-R (Entity-Relationship, P.P.Chen 1976) si è ormai affermato nelle metodologie di progetto e nei sistemi SW di ausilio alla progettazione (strumenti CASE)

Page 18: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

18

35

Costrutti del modello E-R– Costrutti di base Entità Relationship Attributo

– Altri costrutti Identificatore Generalizzazione ….

36

Entità

Classe di oggetti (fatti, persone, cose) della applicazione di interesse con proprietà comuni e con esistenza “autonoma”

Esempi:– impiegato, città, conto corrente, ordine,

fattura

Page 19: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

19

37

Entità/occorrenza

Entità– classe di oggetti, persone, … "omogenei"

es. l’entita’ “impiegato”

Occorrenza (o istanza) di entità– elemento della classe (l'oggetto, la persona, …, non

un valore dei dati legati all’oggetto) es. un “impiegato”, non so nulla di lui, ma esiste

38

Rappresentazione grafica di entità

Impiegato Dipartimento

Città Vendita

Page 20: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

20

39

Entità: caratteristiche

Ogni entità ha un nome che la identifica univocamente nello schema:– nomi espressivi– opportune convenzioni singolare

40

Relationship

Legame logico fra due o più entità, rilevante nell’applicazione di interesse Esempi:

– Residenza (fra persona e città)– Esame (fra studente e corso)

Chiamata anche: – relazione, correlazione, associazione

Page 21: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

21

41

Relationship: occorrenze Un’occorrenza di relationship binaria è

una coppia di occorrenze di entità, una per ogni entità coinvolta Un’occorrenza di relationship n-aria è una

n-upla di occorrenze di entità, una per ciascuna entità coinvolta Nell'ambito di una relationship non ci

possono essere occorrenze ripetute sulle stesse occorrenze di entità

42

Rappresentazione grafica di relationship

EsameStudente Corso

ResidenzaImpiegato Città

Page 22: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

22

43

Relationship: caratteristiche

Ogni relationship ha un nome che la identifica univocamente nello schema:– nomi espressivi– opportune convenzioni singolare sostantivi invece che verbi (se possibile) per non

dare un verso alla relationship

44

Esempi di occorrenze(di entità e di relationship)

S1

S2

S4

S3

Studente

C1

C2

C3

Corso

E1

E2

E3

E4

Esame

Page 23: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

23

45

Relationship

EsameStudente Corso

Problema.Ma se uno studente sostiene piu’ volte lo stesso esame prima di essere promosso, come si vede?Non si può vedere perchè risulterebbero coppie di occorrenze di entità ugualiEsame, studente, corso devono diventare tutte entità, messe in relazione dalla relationship Prova, ad esempio

46

Soluzione: Relationship n-aria

AppelloEsame Studente

Corso

Prova

Page 24: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

24

47

Relationship diverse sulle stesse entità

ResidenzaImpiegato Città

Sede dilavoro

48

Relationship ricorsiva

Persona

Conoscenza

Page 25: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

25

49

Relationship ricorsiva con “ruoli”

Successione

SovranoSuccessore Predecessore

50

Confronto

Tennista

Superficie

Relationship mista (ternaria)

Migliore Peggiore

Page 26: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

26

51

Attributo

Proprietà elementare di un’entità o di una relationship

Associa ad ogni occorrenza di entità o relationship un valore appartenente a un insieme detto dominio dell’attributo

52

Attributi: rappresentazione grafica

EsameStudente Corso

Cognome Nome

Matricola

Data Titolo

Codice

Voto

Page 27: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

27

53

Attributi composti

Raggruppano attributi di una medesima entità o relationship che presentano affinità nel loro significato o uso Esempio:

– Via, Numero civico e CAP formano un Indirizzo

54

Rappresentazione grafica

Impiegato

Cognome

Età Via

Indirizzo Numero

CAP

Page 28: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

28

55

Schema E-R con solo i costrutti base

Si vuole descrivere l’organizzazione di un’azienda– Con sedi diverse– Ogni sede è composta di vari dipartimenti– Gli impiegati dell’azienda afferiscono ai vari

dipartimenti e un’impiegato li dirige– Gli impiegati lavorano su progetti– Ogni entità o relationship può avere vari attributi.

56

ComposizionePartecipazione

Progetto

NomeBudget

Impiegato

Codice

Cognome Telefono

Dipartimento

NomeAfferenza

Data

Direzione

CittàIndirizzo

SedeVia

CAP

Page 29: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

29

57

Altri costrutti del modello E-R

Cardinalità– di relationship – di attributo

Identificatore– interno– esterno

Generalizzazione

58

Cardinalità di relationship

Coppia di valori associati a ogni entità che partecipa a una relationship

– specificano il numero minimo e massimo di occorrenze della relationship cui ciascuna occorrenza di entità può partecipare

Page 30: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

30

59

Esempio di cardinalità

AssegnamentoImpiegato Incarico

(1,5) (0,50)

60

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

Page 31: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

31

61

Occorrenze di Residenza

S1

S2

S4

S3

Studente

C1

C2

C3

Città

R3

R4

R2

R1

C4

Residenza

62

Cardinalità di Residenza

ResidenzaStudente Città

(1,1) (0,N)

Page 32: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

32

63

Tipi di relationship

Con riferimento alle cardinalità massime, abbiamo relationship:– uno a uno– uno a molti– molti a molti

64

Relationship “molti a molti”

EsameStudente Corso

(0,N) (0,N)

ScalataMontagna Alpinista

(0,N) (1,N)

AbilitazioneMacchinista Locomotore

(1,N) (1,N)

Page 33: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

33

65

Relationship “uno a molti”

ImpiegoPersona Azienda

(0,1) (0,N)

UbicazioneCinema Località

(1,1) (0,N)

UbicazioneComune Provincia

(1,1) (1,N)

66

Relationship “uno a uno”

TitolaritàProfessore Cattedra

(0,1) (0,1)

TitolaritàProfessore

di ruoloCattedra

(1,1) (0,1)

TitolaritàProfessore

di ruoloCattedracoperta

(1,1) (1,1)

Page 34: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

34

67

Cardinalità di attributi

È possibile associare delle cardinalità anche agli attributi, con due scopi:

– indicare opzionalità ("informazione incompleta")

– indicare attributi multivalore

68

Rappresentazione grafica

Impiegato

Telefono

Nome

Numero patente

(0,N)

(0,1)

Page 35: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

35

69

Identificatore di una entità

“strumento” per l’identificazione univoca delle occorrenze di un’entità costituito da:

– attributi dell’entità identificatore interno (o chiave)

– (attributi +) entità esterne attraverso relationship identificatore esterno

70

Identificatori interni

Persona

Data Nascita

Cognome

Nome

Automobile

Targa

Modello

Indirizzo

Page 36: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

36

71

Identificatore esterno

IscrizioneStudente Università

Cognome Matricola

Anno di corso

Nome

Indirizzo

(1,1) (0,N)

72

Identificatori: caratteristiche

ogni entità deve possedere almeno un identificatore, ma può averne in generale più di uno una identificazione esterna è possibile

solo attraverso una relationship a cui l’entità da identificare partecipa con cardinalità (1,1)

Page 37: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

37

73

Schema E-R con costrutti di base, identificatori e

cardinalita’ Riprendiamo l’esempio dell’azienda ed

introduciamo la cardinalità per attributi e relazioni, ed individuiamo gli identificatori delle entità coinvolte.

74

(1,1)(0,1)

(0,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Page 38: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

38

75

Generalizzazione

Mette in relazione una o più entità E1, E2, ..., En con una entità E, che le comprende come casi particolari

– E è generalizzazione di E1, E2, ..., En– E1, E2, ..., En sono specializzazioni (o

sottotipi) di E

76

Generalizzazione: rappresentazione grafica

Dipendente

Impiegato Funzionario Dirigente

Page 39: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

39

77

Proprietà delle generalizzazioniSe E (genitore) è 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

78

Persona

Codice fiscale

Nome

Età

Città

Nascita

(0,N)

(1,1)

Lavoratore Studente

Stipendio

Page 40: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

40

79

Ereditarietà

tutte le proprietà (attributi, relationship, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente

80

Tipi di generalizzazioni totale se ogni occorrenza dell'entità

genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale

esclusiva se ogni occorrenza dell'entità genitore è occorrenza di al più una delle entità figlie, altrimenti è sovrapposta

Page 41: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

41

81

Tipi di generalizzazioni

Consideriamo negli schemi sologeneralizzazioni esclusive (si puo’ sempre trasformare una generalizzazione sovrapposta in una esclusiva) e distinguiamo frageneralizzazioni parziali e totali

82

Studente Lavoratore

Persona

Page 42: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

42

83

Persona

Uomo DonnaUomo Donna

84

Altre proprietà possono esistere gerarchie a più livelli e

multiple generalizzazioni 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, di che tipo è questa generalizzazione?

il genitore di una generalizzazione parziale deve avere un identificatore tra i suoi attributi, quello di una generalizzazione totale no, però? …

Page 43: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

43

85

Esercizio Le persone hanno CF, cognome ed età, gli

uomini la posizione militare, le donne il numero dei figli;

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) hanno un numero di matricola;

esistono persone che non sono né impiegati né studenti (ma i dettagli non ci interessano)

86

Segretario Direttore Progettista

Responsabile

PersonaCF

Cognome

Età

Uomo Donna

Militare

Impiegato Studente

Stipendio Matr.

N.Figli

Page 44: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

44

87

Documentazione associata agli schemi concettuali

Uno schema E-R non è quasi mai sufficiente da solo a rappresentare tutti i dettagli di un’applicazione Ci sono vincoli non esprimibili È necessario associare una

documentazione di supporto

88

Documentazione

– Regole aziendali Vincoli di integrità Possibili derivazioni

– Dizionario dei dati entità relationship

Page 45: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

45

89

(1,1)(0,1)

(0,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

90

Dizionario dei dati (entità)

Page 46: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

46

91

Dizionario dei dati (relationship)

92

Regole di vincolo

Page 47: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

47

93

Regole di vincolo

Notare che si possono inserire nella tabella anche alcune regole che sono già espresse nello schema.

94

Regole di derivazione

Page 48: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

48

95

Affrontare il progetto

96

Quale costrutto E-R va utilizzato per rappresentare un concetto presente nelle specifiche dei

requisiti?

Bisogna basarsi sulle definizioni dei costrutti del modello E-R

Page 49: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

49

97

– se ha proprietà significative e descrive oggetti con esistenza autonoma

– entità– se è semplice e non ha proprietà

– attributo– se correla due o più concetti

– associazione– se è caso particolare di un altro

– generalizzazione

98

Strategie di progetto– top-down– bottom-up– inside-out

Page 50: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

50

99

Strategia top-down

Si parte da uno schema iniziale che viene successivamente raffinato e integrato per mezzo di primitive che lo trasformano in una serie di schemi intermedi per arrivare allo schema E-R finale

100

Primitive di raffinamento top-down

Da entità a associazione tra entità Da entità a generalizzazione Da associazione a insiemi di relazioni Da associazione a entità con associazioni Introduzione di attributi su entità e

associazioni

Page 51: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

51

101

Strategia bottom-up

Si parte dalle specifiche iniziali e si suddividono fino a dare specifica ad una componente minima di cui si da’ lo schema E-R questi schemi vengono fusi e integrati

fino ad ottenere lo schema finale

102

Primitive di trasformazioneBottom-up

Generazione di entita’ Generazione di associazione Generazione di generalizzazione Aggregazione di attributi

Page 52: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

52

103

In pratica

si procede di solito con una strategia ibrida (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

104

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

Page 53: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

53

105

Qualità di uno schema concettuale

– correttezza– completezza– leggibilità– minimalità

106

Una metodologia Analisi dei requisiti

– Analizzare i requisiti ed eliminare le ambiguità– Costruire un glossario dei termini – Raggruppare i requisiti in insiemi omogenei

Passo base– Definire uno schema scheletro con i concetti più rilevanti

Passo iterativo(da ripetere finché non si è soddisfatti)– Raffinare i concetti presenti sulla base delle loro specifiche– Aggiungere concetti per descrivere specifiche non descritte

Analisi di qualità- Verificare le qualità dello schema e se insoddisfacente modificarlo

Page 54: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

54

107

Archivio fotograficoSi vuole rappresentare la base di dati di un archivio fotografico distribuito in varie sedi. Le fotografie sono catalogate in base ad un catalogo di soggetti possibili, ciascun soggetto ha una propria chiave. Le foto hanno una dimensione ed uno stato di conservazione; per le foto a colori, è noto il tipo di stampa (chiaro o opaco). Le foto sono reperibili in archivi, di cui è noto il responsabile, l’indirizzo, il numero telefonico e l’orario di apertura. Le foto possono descrivere personaggi, luoghi o oggetti. I personaggi hanno un nome ed un sesso; alcuni sono deceduti. Per i personaggi politici, si indica il partito di appartenenza e l’eventuale carica governativa ricoperta. Per gli artisti, si indica la loro attività prevalente (pittura, scultura, ...). Quando le foto descrivono opere artistiche, è noto il nome dell’opera d’arte, l’artista che l’ha realizzata, il luogo dove l’opera risiede e l’anno di realizzazione. Quando le foto descrivono luoghi o oggetti, è noto nome e descrizione.

108

Ristrutturazione delle frasi

Si vuole rappresentare la base di dati di un archivio fotografico distribuito in varie sedi. Le foto sono reperibili in archivi, di

cui è noto il responsabile, l’indirizzo, il numero telefonico e l’orario di apertura.

Page 55: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

55

109

Le fotografie sono catalogate in base ad un catalogo di soggetti possibili. Le foto hanno una dimensione ed uno

stato di conservazione; per le foto a colori, è noto il tipo di stampa (chiaro o opaco).

110

Le foto possono descrivere personaggi, luoghi o oggetti, ciascun soggetto ha una propria chiave.

I personaggi hanno un nome ed un sesso; alcuni sono deceduti. Per i personaggi politici, si indica il partito di appartenenza e l’eventuale carica governativa ricoperta. Per gli artisti, si indica la loro attività prevalente (pittura, scultura, ...). Quando le foto descrivono opere artistiche, è noto il nome dell’opera d’arte, l’artista che l’ha realizzata, il luogo dove l’opera risiede e l’anno di realizzazione. Quando le foto descrivono luoghi o oggetti, è noto nome e descrizione.

Page 56: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

56

111

Definizione dello scheletro

112

Analisi dello scheletro (1)

Page 57: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

57

113

Analisi dello scheletro (2)

114

Analisi dello scheletro (3)

Page 58: Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo “Basi ... · 2014-04-07 · 1 1 Corso di Laurea in Ingegneria Informatica Fondamenti di informatica

58

115

Schema finale