1
Atzeni, Ceri, Paraboschi, TorloneBasi di dati
McGraw -Hill, 1996-2002
Capitolo 6:
Progettazione di basi di dati:Metodologie e modelli
17/10/2002
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
2
Progettazione di basi di dati
• È una delle attività del processo di sviluppo dei sistemi informativi
• va quindi inquadrata in un contesto più generale:
• il ciclo di vita dei sistemi informativi:• Insieme e sequenzializzazione delle attività
svolte da analisti, progettisti, utenti, nello sviluppo e nell’uso dei sistemi informativi
• attività iterativa, quindi ciclo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
3
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazione
Realizzazione
Validazione e collaudo
Funzionamento
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
4
Fasi (tecniche) del ciclo di vita
• Studio di fattibilità: definizione costi e priorità
• Raccolta e analisi dei requisiti: studio delle proprietà del sistema
• Progettazione:di dati e funzioni
• Realizzazione
• Validazione e collaudo: sperimenazione
• Funzionamento: il sistema diventa operativo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
5
4i dati hanno un ruolo centrale
• i dati sono più stabili
La progettazione di un sistema informativo riguarda due aspetti:
4progettazione dei datiprogettazione delle applicazioni
Ma:
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
6
Studio di fattibilità
Raccolta e analisi dei requisiti
Progettazionedei dati
Realizzazione
Validazione e collaudo
Funzionamento
2
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
7
• Per garantire prodotti di buona qualità è opportuno seguire una • metodologia di progetto, con:
• articolazione delle attività in fasi
• criteri di scelta
• modelli di rappresentazione
• generalità e facilità d'uso
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
8
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazionedei dati
Realizzazione
Validazione e collaudo
Funzionamento
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
9
Progettazionefisica
Schema concettuale
Requisiti della base di dati
Progettazioneconcettuale
Progettazionelogica
Schema logico
Schema fisico
“CHE COSA”:analisi
“COME”:progettazione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
10
• Schema concettuale
• Schema logico
• Schema fisico
I prodotti della varie fasi sono
schemi di alcuni modelli di dati:
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
11
Modello dei dati
• insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica
• componente fondamentale: meccanismi di strutturazione (o costruttori di tipo)
• come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori
• ad esempio, il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
12
Schemi e istanze
• In ogni base di dati esistono:• lo schema, sostanzialmente invariante nel tempo,
che ne descrive la struttura (aspetto intensionale)• nel modello relazionale, le intestazioni delle
tabelle • l’istanza, i valori attuali, che possono cambiare
anche molto rapidamente (aspetto estensionale)• nel modello relazionale, il “corpo” di ciascuna
tabella
3
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
13
Due tipi (principali) di modelli
• modelli logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati• utilizzati dai programmi• indipendenti dalle strutture fisiche
esempi: relazionale, reticolare, gerarchico, a oggetti • modelli concettuali: permettono di rappresentare i
dati in modo indipendente da ogni sistema• cercano di descrivere i concetti del mondo reale• sono utilizzati nelle fasi preliminari di
progettazioneil più noto è il modello Entity-Relationship
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
14
Modelli concettuali, perché?
• Proviamo a modellare una applicazione definendo direttamente lo schema logico della base di dati:• da dove cominciamo?• rischiamo di perderci subito nei dettagli• dobbiamo pensare subito a come
correlare le varie tabelle (chiavi etc.)• i modelli logici sono rigidi
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
15
Modelli concettuali, perché?
• servono per ragionare sulla realtà di interesse, indipendentemente dagli aspetti realizzativi
• permettono di rappresentare le classi di dati di interesse e le loro correlazioni
• prevedono efficaci rappresentazioni grafiche (utili anche per documentazione e comunicazione)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
16
BD
Schema logico
Schema interno
utente
Architettura (semplificata) di un DBMS
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
17
Progettazioneconcettuale
Progettazione logica
Progettazionefisica
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
18
Modello Entity-Relationship (Entità-Relazione)
• Il più diffuso modello concettuale
• Ne esistono molte versioni, • (più o meno) diverse l’una dall’altra
4
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
19
I costrutti del modello E-R
• Entità
• Relationship• Attributo• Identificatore• Generalizzazione• ….
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
20
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
21
Relationship
• Legame logico fra due o più entità, rilevante nell’applicazione di interesse
• Esempi:• Residenza (fra persona e città)• Esame (fra studente e corso)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
22
Uno schema E-R, graficamente
EsameStudente Corso
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
23
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
24
Entità: schema e istanza
• Entità:
• classe di oggetti, persone, … "omogenei" • Occorrenza (o istanza) di entità:
• elemento della classe (l'oggetto, la persona, …, non i dati)
• nello schema concettuale rappresentiamo le
entità, non le singole istanze (“astrazione”)
5
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
25
Rappresentazione grafica di entità
Impiegato Dipartimento
Città Vendita
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
26
Entità, commenti
• Ogni entità ha un nome che la identifica univocamente nello schema:
• nomi espressivi
• opportune convenzioni
• singolare
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
27
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
28
Rappresentazione grafica di relationship
EsameStudente Corso
ResidenzaImpiegato Città
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
29
Relationship, commenti
• Ogni relationship ha un nome che la identifica univocamente nello schema:• nomi espressivi• opportune convenzioni
• singolare• sostantivi invece che verbi (se
possibile)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
30
Esempi di occorrenze
S1
S2
S4
S3
Studente
C1
C2
C3
Corso
E1
E2
E3
E4
6
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
31
Relationship, occorrenze
• Una occorrenza di una relationship binaria è coppia di occorrenze di entità, una per ciascuna entità coinvolta
• Una occorrenza di una 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 (coppie, ennuple) ripetute
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
32
Relationship corrette?
EsameStudente Corso
VisitaPaziente Medico
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
33
Due relationship sulle stesse entità
ResidenzaImpiegato Città
Sede dilavoro
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
34
Relationship n-aria
Fornitore Prodotto
Dipartimento
Fornitura
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
35
Relationship ricorsiva:coinvolge “due volte” la stessa entità
Persona
Conoscenza
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
36
Relationship ricorsiva con “ruoli”
Successione
SovranoSuccessore Predecessore
7
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
37
Confronto
Tennista
Superficie
Relationship ternaria ricorsiva
Migliore Peggiore
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
38
Attributo
• Proprietà elementare di un’entità o di unarelationship, di interesse ai fini dell’applicazione
• Associa ad ogni occorrenza di entità o relationship un valore appartenente a un insieme detto dominio dell’attributo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
39
Attributi, rappresentazione grafica
EsameStudente Corso
Cognome Nome
Matricola
Data Titolo
Codice
Voto
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
40
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
41
Rappresentazione grafica
Impiegato
Cognome
Età Via
Indirizzo Numero
CAP
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
42
ComposizionePartecipazione
Progetto
NomeBudget
Impiegato
Codice
Cognome Telefono
Dipartimento
NomeAfferenza
Data
Direzione
CittàIndirizzo
SedeVia
CAP
8
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
43
Altri costrutti del modello E-R
• Cardinalità
• di relationship • di attributo
• Identificatore• interno• esterno
• Generalizzazione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
44
Cardinalità di relationship
• Coppia di valori associati a ogni entità che partecipa a una relationship
• specificano il numero minimo e massimo di occorrenze delle relationship cui ciascuna occorrenza di una entità può partecipare
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
45
Esempio di cardinalità
AssegnamentoImpiegato Incarico
(1,5) (0,50)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
46
• 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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
47
Occorrenze di Residenza
S1
S2
S4
S3
Studente
C1
C2
C3
Città
R3
R4
R2
R1
C4
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
48
Cardinalità di Residenza
ResidenzaStudente Città
(1,1) (0,N)
9
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
49
Tipi di relationship
• Con riferimento alle cardinalità massime, abbiamo relationship:• uno a uno• uno a molti• molti a molti
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
50
Relationship “molti a molti”
EsameStudente Corso
(0,N) (0,N)
ScalataMontagna Alpinista(0,N) (1,N)
AbilitazioneMacchinista Locomotore
(1,N) (1,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
51
Due avvertenze
• Attenzione al "verso" nelle relationship uno a molti
• le relationship obbligatorie -obbligatorie sono molto rare
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
52
Relationship “uno a molti”
ImpiegoPersona Azienda
(0,1) (0,N)
UbicazioneCinema Località(1,1) (0,N)
UbicazioneComune Provincia
(1,1) (1,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
53
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)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
54
Cardinalità di attributi
• E’ possibile associare delle cardinalità anche agli attributi, con due scopi:
• indicare opzionalità ("informazione incompleta")
• indicare attributi multivalore
10
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
55
Rappresentazione grafica
Impiegato
Telefono
Nome
Numero patente
(0,N)
(0,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
56
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
relationship • identificatore esterno
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
57
Identificatori interni
Persona
Data Nascita
Cognome
Nome
Automobile
Targa
Modello
Indirizzo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
58
Identificatore esterno
IscrizioneStudente Università
Cognome Matricola
Anno di corso
Nome
Indirizzo
(1,1) (0,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
59
Alcune osservazioni
• 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)
• perché non parliamo degli identificatori delle relationship?
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
60
(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
11
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
61
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
62
Rappresentazione grafica
Dipendente
Impiegato Funzionario Dirigente
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
63
Proprietà delle generalizzazioni
Se 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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
64
Persona
Codice fiscale
Nome
Età
Città
Nascita(0,N)
(1,1)
Lavoratore Studente
Stipendio
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
65
Ereditarietà
• tutte le proprietà (attributi, relationship, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
66
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
• consideriamo (senza perdita di generalità) solo generalizzazioni esclusive e distinguiamo fra totali e parziali
12
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
67
Disoccupato Lavoratore
Persona
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
68
Persona
Uomo DonnaUomo Donna
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
69
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
• alcune configurazioni non hanno senso• il genitore di una generalizzazione totale può
non avere identificatore, purché …
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
70
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)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
71
Segretario Direttore Progettista
Responsabile
PersonaCF
Cognome
Età
Uomo Donna
Militare
Impiegato Studente
Stipendio Matr.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
72
Documentazione associata agli schemi concettuali
• dizionario dei dati • entità• relationship
• vincoli non esprimibili
13
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
73
(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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
74
Dizionario dei dati (entità)
Entità Descrizione Attributi IdentificatoreImpiegato Dipendente
dell'aziendaCodice,Cognome,Stipendio
Codice
Progetto Progettiaziendali
Nome,Budget
Nome
Dipartimento Strutturaaziendale
Nome,Telefono
Nome,Sede
Sede Sededell'azienda
Città,Indirizzo
Città
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
75
Relazioni Descrizione Componenti AttributiDirezione Direzione di un
dipartimentoImpiegato,Dipartimento
Afferenza Afferenza a undipartimento
Impiegato,Dipartimento
Data
Partecipazione Partecipazionea un progetto
Impiegato,Progetto
Composizione Composizionedell'azienda
Dipartimento,Sede
Dizionario dei dati (relationship)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
76
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 qualeafferisce
(3) Un dipartimento con sede a Roma deve esserediretto da un impiegato con più di dieci anni dianzianità
(4) Un impiegato che non afferisce a nessundipartimento non deve partecipare a nessun unprogetto
Atzeni, Ceri, Paraboschi, TorloneBasi di dati
McGraw -Hill, 1996-2002
Capitolo 7:
Progettazione concettuale
17/10/2002
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
78
Progettazionefisica
Schema concettuale
Requisiti della base di dati
Progettazionelogica
Schema logico
Schema fisico
Progettazioneconcettuale
14
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
79
Analisi dei requisiti e progettazione concettuale ("Analisi dei dati")
• Comprende attività (interconnesse) di
• acquisizione dei requisiti• analisi dei requisiti• costruzione dello schema concettuale• costruzione del glossario
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
80
Requisiti
• Possibili fonti:• utenti, attraverso:
• interviste• documentazione apposita
• documentazione esistente :• normative (leggi, regolamenti di settore)• regolamenti interni, procedure aziendali• realizzazioni preesistenti
• modulistica
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
81
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
82
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”
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
83
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
84
Requisiti: documentazione descrittiva
• Regole generali:
• scegliere il corretto livello di astrazione• standardizzare la struttura delle frasi• suddividere le frasi articolate• separare le frasi sui dati da quelle sulle
funzioni
15
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
85
Requisiti: 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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
86
Base di dati bibliograficaSi vogliono organizzare i dati di interesseper automatizzare la gestione deiriferimenti bibliografici
Requisiti, un esempio
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
87
Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni dariportarsi in una bibliografia.Per ogni pubblicazione deve esistere uncodice identificante costituito da settecaratteri, indicanti le iniziali degli autori, l'annodi pubblicazione e un carattere aggiuntivo perla discriminazione delle collisioni.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
88
Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni da riportarsiin una bibliografia. Le pubblicazioni sono di duetipi, monografie (per le quali interessano editore,data e luogo di pubblicazione) e articoli su rivista(con nome della rivista, volume, numero, pagine eanno di pubblicazione); per entrambi i tipi sidebbono ovviamente riportare i nomi degli autori.Per ogni pubblicazione deve esistere un codiceidentificante .....
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
89
Società di formazione (1)Si vuole realizzare una base di dati per unasocietà che eroga corsi, di cui vogliamorappresentare i dati dei partecipanti ai corsi e deidocenti. Per gli studenti (circa 5000), identificatida un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, iposti dove hanno lavorato in precedenza insiemeal periodo, l'indirizzo e il numero di telefono, icorsi che hanno frequentato (i corsi sono in tuttocirca 200) e il giudizio finale.
Un esempio più articolato
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
90
Società di formazione (2)Rappresentiamo anche i seminari che stannoattualmente frequentando e, per ogni giorno, iluoghi e le ore dove sono tenute le lezioni. I corsihanno un codice, un titolo e possono avere varieedizioni con date di inizio e fine e numero dipartecipanti. Se gli studenti sono liberiprofessionisti, vogliamo conoscere l'area diinteresse e, se lo possiedono, il titolo. Per quelliche lavorano alle dipendenze di altri, vogliamoconoscere invece il loro livello e la posizionericoperta.
16
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
91
Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo ilcognome, l'età, il posto dove sono nati, il nomedel corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possonoinsegnare. Rappresentiamo anche tutti i lororecapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratoriesterni.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
92
Termine Descrizione Sinonimi CollegamentiPartecipante Persona che
partecipa ai corsiStudente Corso,
SocietàDocente Docente dei corsi.
Può essere esternoInsegnante Corso
Corso Corso organizzatodalla società. Puòavere più edizioni.
Seminario Docente
Società Ente presso cui ipartecipanti lavoranoo hanno lavorato
Posti Partecipante
Glossario dei termini
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
93
Strutturazione dei requisitiin gruppi di frasi omogenee
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
94
Frasi di carattere generaleSi vuole realizzare una base di dati peruna società che eroga corsi, di cuivogliamo rappresentare i dati deipartecipanti ai corsi e dei docenti.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
95
Frasi relative ai partecipantiPer i partecipanti (circa 5000), identificati daun codice, rappresentiamo il codice fiscale,il cognome, l'età, il sesso, la città di nascita,i nomi dei loro attuali datori di lavoro e diquelli precedenti (insieme alle date di inizioe fine rapporto), le edizioni dei corsi chestanno attualmente frequentando e quelliche hanno frequentato nel passato, con larelativa votazione finale in decimi.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
96
Frasi relative ai datori di lavoroRelativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.
Frasi relative ai corsiPer i corsi (circa 200), rappresentiamo il titoloe il codice, le varie edizioni con date di inizio efine e, per ogni edizione, rappresentiamo ilnumero di partecipanti e il giorno dellasettimana, le aule e le ore dove sono tenute lelezioni.
17
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
97
Frasi relative a tipi specifici di partecipantiPer i partecipanti che sono liberiprofessionisti, rappresentiamo l'area diinteresse e, se lo possiedono, il titoloprofessionale. Per i partecipanti che sonodipendenti, rappresentiamo invece il lorolivello e la posizione ricoperta.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
98
Frasi relative ai docentiPer i docenti (circa 300), rappresentiamo ilcognome, l'età, la città di nascita, tutti inumeri di telefono, il titolo del corso cheinsegnano, di quelli che hanno insegnatonel passato e di quelli che possonoinsegnare. I docenti possono esseredipendenti interni della società diformazione o collaboratori esterni.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
99
Quale costrutto E-R va utilizzato per rappresentare un concetto presente nelle
specifiche?
• Bisogna basarsi sulle definizioni dei costrutti del modello E-R
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
100
• 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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
101
Strategie di progetto
• top-down
• bottom -up• inside-out
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
102
Strategia top-down
SpecificheSchema inizialeSchema intermedioSchema intermedioSchema finale
18
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
103
Primitive di raffinamento top-down
EsameEsameStudente CorsoPersona
Persona
Uomo Donna
Impiegato
Cognome Età
Stipendio
Impiegato
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
104
Strategia bottom-up
SpecificheSpecifiche 2Specifiche 1
Specifiche 1,1
Specifiche 1,2
Specifiche 2,1
Specifiche 2,2
Schema 1,1
Schema 1,2
Schema 2,1
Schema 2,2
Schema finale
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
105
Primitive di raffinamento Bottom-up
Studente Corso
Persona
Uomo Donna
ImpiegatoSpecifica suimpiegato
EsameStudente Corso
Persona
Uomo Donna
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
106
Strategia inside-out: un esempio
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
107
Telefono
Dipartimento
Direzione
Afferenza
Data
(1,1)(0,1)
(1,N)(0,1)
(0,1)
(1,N)
Progetto
Partecipazione
NomeBudget
(0,N)
(1,N)
(1,1)
CittàIndirizzo
Composizione
Sede
Nome
Via
CAP
(1,N)
Impiegato
Cognome
Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
108
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
19
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
109
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
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
110
Qualità di uno schema concettuale
• correttezza
• completezza• leggibilità• minimalità
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
111
Un esempio di progettazione concettuale
• Società di formazione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
112
Frasi di carattere generaleSi vuole realizzare una base di dati peruna società che eroga corsi, di cuivogliamo rappresentare i dati deipartecipanti ai corsi e dei docenti.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
113
Partecipante
Corso
Docente
Partecipazione Docenza
Schema scheletro
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
114
Frasi relative ai partecipantiPer i partecipanti (circa 5000), identificati daun codice, rappresentiamo il codice fiscale,il cognome, l'età, il sesso, la città di nascita,i nomi dei loro attuali datori di lavoro e diquelli precedenti (insieme alle date di inizioe fine rapporto), le edizioni dei corsi chestanno attualmente frequentando e quelliche hanno frequentato nel passato, con larelativa votazione finale in decimi.
20
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
115
Frasi relative ai datori di lavoroRelativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.
Frasi relative a tipi specifici di partecipantiPer i partecipanti che sono liberiprofessionisti, rappresentiamo l'area diinteresse e, se lo possiedono, il titoloprofessionale. Per i partecipanti che sonodipendenti, rappresentiamo invece il lorolivello e la posizione ricoperta.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
116
PosizioneLivello Titolo prof. Area
Partecipante
CF
Codice
…..
Impiegopassato
(0,N)
(0,N)
Dipendente Professionista
Datore Nome
…..Impiegocorrente
(0,N)
(1,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
117
Frasi relative ai corsiPer i corsi (circa 200), rappresentiamo il titoloe il codice, le varie edizioni con date di inizio efine e, per ogni edizione, rappresentiamo ilnumero di partecipanti e il giorno dellasettimana, le aule e le ore dove sono tenute lelezioni.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
118
(1,N)
(1,1)
ComposizioneTipologia
(1,1)
(0,N)
Corso
N.Part.Data fine
Data inizio
Edizionecorso
Orario Aula Giorno
Lezione
Titolo Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
119
Frasi relative ai docentiPer i docenti (circa 300), rappresentiamo ilcognome, l'età, la città di nascita, tutti inumeri di telefono, il titolo del corso cheinsegnano, di quelli che hanno insegnatonel passato e di quelli che possonoinsegnare. I docenti possono esseredipendenti interni della società diformazione o collaboratori esterni.
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
120
Docente
Collaboratore Interno
CF
Cognome
Età
Telefono
Città nascita
(1,N)
21
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
121
Partecipante
Corso
Docente
Partecipazione Docenza
Integrazione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
122
PartecipazionePartecipante Corso
partecipazionepassata
(0,N) (0,N)
partecipazionecorrente
(0,1) (0,N)
Partecipante Edizionecorso
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
123
DocenzaCorso Docente
Abilitazione(1,N)
(1,N)
Tipologia
Corso
CodiceTitolo
Datainizio
(0,N)
(1,1)
DocenzaEdizionecorso Docente
Docenzapassata
(0,N)(0,1)
Docenzacorrente
(0,1) (0,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
124
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à(ripetuta e distribuita)
• Verificare le qualità dello schema e modificarlo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
125
Una metodologia con integrazione• Analisi dei requisiti• Passo base• Decomposizione
• decomporre i requisiti con riferimento ai concetti nello schema scheletro
• Passo iterativo, per ogni sottoschema • Integrazione
• integrare i vari sottoschemi in uno schema complessivo, facendo riferimento allo schema scheletro
• Analisi di qualità
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
126
Un'altra metodologia con integrazione• Analisi dei requisiti• Decomposizione dei requisiti
• individuazione di settoro di interesse e suddivisione dei requisiti (o addirittura acquisizione separata)
• Per ciascun settore• Passo base• Passo iterativo
• Integrazione• Analisi di qualità
22
Atzeni, Ceri, Paraboschi, TorloneBasi di dati
McGraw -Hill, 1996-2002
Capitolo 8:
Progettazione logica
17/10/2002
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
128
Progettazionefisica
Schema concettuale
Requisiti della base di dati
Progettazionelogica
Schema logico
Schema fisico
Progettazioneconcettuale
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
129
Obiettivo dellaprogettazione logica
• "tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed
efficiente
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
130
Dati di ingresso e uscita
• Ingresso:
• schema concettuale• informazioni sul carico applicativo• modello logico
• Uscita:
• schema logico• documentazione associata
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
131
• alcuni aspetti non sono direttamente rappresentabili
• è necessario considerare le prestazioni
Non si tratta di una pura e semplice traduzione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
132
Traduzione nelmodello logico
Ristrutturazione dello schema E-R
Schema E-RCaricoapplicativo
Schema E-Rristrutturato
Modellologico
Schema logico
23
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
133
Ristrutturazione schema E-R
• Motivazioni:
• semplificare la traduzione• "ottimizzare" le prestazioni
• Osservazione:• uno schema E-R ristrutturato non è (più)
uno schema concettuale nel senso stretto del termine
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
134
• Ma:
• le prestazioni non sono valutabili con precisione su uno schema concettuale!
Per ottimizzare il risultato abbiamo bisogno di analizzare le prestazioni a questo livello
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
135
Consideriamo “indicatori” dei parametri che regolano le
prestazioni
• spazio: numero di occorrenze previste• tempo: numero di occorrenze (di entità
e relationship) visitate durante un’operazione
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
136
CittàIndirizzo
Telefono
Dipartimento
Composizione
Sede
Direzione
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
Via
CAP
(1,1)(0,1)
(1,N)(0,1)
(0,1)(1,1)
(1,N)
(0,N)
(1,N)
(1,N)
Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
137
Tavola dei volumi
Concetto Tipo VolumeSede E 10
Dipartimento E 80Impiegato E 2000Progetto E 500
Composizione R 80Afferenza R 1900Direzione R 80
Partecipazione R 6000
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
138
Esempio di valutazione di costo
• Operazione:
• trova tutti i dati di un impiegato, del dipartimento nel quale lavora e dei progetti ai quali partecipa
• Si costruisce una tavola degli accessi basata su uno schema di navigazione
24
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
139
Telefono
Dipartimento
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
(1,N)(0,1)
(0,1)(1,1)(0,N)
(1,N)
(1,N)
Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
140
Tavola degli accessi
Concetto Costrutto Accessi TipoImpiegato Entità 1 LAfferenza Relazione 1 L
Dipartimento Entità 1 LPartecipazione Relazione 3 L
Progetto Entità 3 L
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
141
Attività della ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di
entità e relationship• Scelta degli identificatori primari
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
142
Analisi delle ridondanze
• Una ridondanza in uno schema E-R è una informazione significativa ma derivabile da altre
• in questa fase si decide se eliminare le ridondanze eventualmente presenti o mantenerle
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
143
Ridondanze
• Vantaggi
• semplificazione delle interrogazioni• Svantaggi
• appesantimento degli aggiornamenti • maggiore occupazione di spazio
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
144
Forme di ridondanza in uno schema E-R
• attributi derivabili:• da altri attributi della stessa entità (o
relazione)
• da attributi di altre entità (o relazioni)• relazioni derivabili dalla composizione di altre
relazioni in presenza di cicli
25
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
145
Attributo derivabile
Impiegato
Importo netto
IVA
Importo lordo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
146
Attributo derivabile da altra entità
Importo totale
ComposizioneAcquisto Prodotto
Prezzo
(1,N) (1,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
147
Corso
Studente
Frequenza
(0,N)
(1,N)
Professore
Insegnamento(1,1)
(1,1)
Docenza
(0,N)
(1,N)
Ridondanza dovuta a ciclo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
148
Analisi di una ridondanza
ResidenzaPersona Città
Numero abitanti
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
149
• Operazione 1: memorizza una nuova persona con la relativa città di residenza (500 volte al giorno)
• Operazione 2: stampa tutti i dati di una città (incluso il numero di abitanti) (2 volte al giorno)
Concetto Tipo VolumeCittà E 200
Persona E 1000000Residenza R 1000000
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
150
Presenza di ridondanza
Concetto Costrutto Accessi TipoPersona Entità 1 S
Residenza Relazione 1 SCittà Entità 1 LCittà Entità 1 S
Concetto Costrutto Accessi TipoCittà Entità 1 L
Operazione 1
Operazione 2
26
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
151
Assenza di ridondanza
Concetto Costrutto Accessi TipoPersona Entità 1 S
Residenza Relazione 1 S
Concetto Costrutto Accessi TipoCittà Entità 1 L
Residenza Relazione 5000 L
Operazione 1
Operazione 2
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
152
Presenza di ridondanza
• Costi:
• Operazione 1: 1500 accessi in scrittura e 500 accessi in lettura al giorno
• Operazione 2: trascurabile.• Contiamo doppi gli accessi in scrittura
• Totale di 3500 accessi al giorno
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
153
Assenza di ridondanza
• Costi:
• Operazione 1: 1000 accessi in scrittura • Operazione 2: 10000 accessi in lettura al
giorno • Contiamo doppi gli accessi in scrittura
• Totale di 12000 accessi al giorno
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
154
Attività della ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di
entità e relazioni• Scelta degli identificatori primari
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
155
Eliminazione delle gerarchie
• il modello relazionale non può rappresentare direttamente le generalizzazioni
• entità e relazioni sono invece direttamente rappresentabili
• si eliminano perciò le gerarchie, sostituendole con entità e relazioni
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
156
Tre possibilità
1. accorpamento delle figlie della generalizzazione nel genitore
2. accorpamento del genitore della generalizzazione nelle figlie
3. sostituzione della generalizzazione con relazioni
27
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
157
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
158
A11
A21
TIPO
(0,1)
(0,1)
(0,..)
E0
A01 A02
R1 E3
R2
E4
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
159
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
160
E3
R2
E4
E2E1
A11 A21
R12
R11
A01 A02 A01 A02
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
161
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
162
RG2RG1(1,1)
(0,1)
(1,1)
(0,1)
E0
A01 A02
E2E1 R2
E4A11 A21
R1 E3
28
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
163
• la scelta fra le alternative si può fare con metodo simile a quello visto per l'analisi delle ridondanze (però non basato solo sul numero degli accessi)
• è possibile seguire alcune semplici regole generali
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
164
1. conviene se gli accessi al padre e alle figlie sono contestuali
2. conviene se gli accessi alle figlie sono distinti
3. conviene se gli accessi alle entità figlie sono separati dagli accessi al padre
• sono anche possibili soluzioni “ibride”, soprattutto in gerarchie a più livelli
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
165
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
166
E0
A01 A02
E2 R2
E4A21
R1 E3
RG2(1,1)
(0,1)
A11
TIPO
(0,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
167
Attività della ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di
entità e relazioni• Scelta degli identificatori primari
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
168
• Ristrutturazioni effettuate per rendere più efficienti le operazioni in base a un semplice principio
• Gli accessi si riducono:• separando attributi di un concetto che
vengono acceduti separatamente• raggruppando attributi di concetti diversi
acceduti insieme
29
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
169
Ristrutturazioni, casi principali
• partizionamento verticale di entità
• partizionamento orizzontale di relationship
• eliminazione di attributi multivalore
• accorpamento di entità/ relationship
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
170
Impiegato
Livello
Stipendio
Ritenute
Cognome
Indirizzo
Datanascita
Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
171
LivelloStipendio
Ritenute
Cognome
Indirizzo Datanascita
Codice
RDati
anagraficiDati
lavorativi
(1,1) (1,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
172
Agenzia
Indirizzo
Città
Telefono
Nome
(1,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
173
Numero
Indirizzo
Nome
UtenzaAgenzia Telefono
(1,N) (1,1)
Città
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
174
IndirizzoInternoCognome
Indirizzo Datanascita
Codicefiscale
IntestazionePersona Appartamento
(0,1) (1,1)
30
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
175
Persona
Interno
Indirizzo
Cognome
Indirizzo
Datanascita
Codicefiscale
(0,1)
(0,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
176
Cognome
ComposizioneGiocatore Squadra
(1,N) (1,N)
Ruolo NomeCittà
Data acquisto
Data cessione
(0,1)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
177
Cognome
Comp.passata
Giocatore Squadra
(1,N) (1,N)
Ruolo Nome
Città
Data acquisto
Data cessione
Comp.attuale
Data acquisto
(1,1) (1,N)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
178
Attività della ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di entità
e relazioni• Scelta degli identificatori primari
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
179
Scelta degli identificatori principali
• operazione indispensabile per la traduzione nel modello relazionale
• Criteri• assenza di opzionalità• semplicità• utilizzo nelle operazioni più frequenti o
importanti
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
180
Se nessuno degli identificatori soddisfa i requisiti visti?
Si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per
questo scopo
31
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
181
Traduzione verso il modello relazionale
• idea di base:• le entità diventano relazioni sugli stessi
attributi• le associazioni (ovvero le relazioni E-R)
diventano relazioni sugli identificatori delle entità coinvolte (più gli attributi propri)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
182
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
Partecipazione
(0,N) (1,N)
Cognome
Stipendio
Matricola
Impiegato
NomeCodice
Budget
Progetto
Data inizio
Entità e relationship molti a molti
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
183
Entità e relationship molti a molti
Impiegato(Matricola, Cognome, Stipendio)Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
• con vincoli di integrità referenziale fra • Matricola in Partecipazione e (la chiave di)
Impiegato • Codice in Partecipazione e (la chiave di) Progetto
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
184
Nomi più espressivi per gli attributi della chiave della relazione che
rappresenta la relationship
Impiegato(Matricola, Cognome, Stipendio)
Progetto(Codice, Nome, Budget)
Partecipazione(Matricola, Codice, DataInizio)
Partecipazione(Impiegato, Progetto, DataInizio)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
185
Composizione
ProdottoComposto Componente
Costo Nome Codice
(0,N) (0,N)
Prodotto(Codice , Nome, Costo)
Composizione(Composto, Componente , Quantità)
Relationship ricorsiveQuantità
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
186
Nome
Fornitore Prodotto
Dipartimento
Fornitura
Partita IVA Genere CodiceQuantità
Nome
Telefono
(0,N) (1,N)
(1,N)
Relationship n-arie
Fornitore(PartitaIVA, Nome)Prodotto(Codice, Genere)
Dipartimento(Nome, Telefono)Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)
32
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
187
Cognome
Giocatore SquadraContratto
Datanascita Città Nome
Ingaggio
(1,1) (0,N)
Ruolo Colori sociali
Relationship uno a molti
Giocatore(Cognome, DataNascita, Ruolo)Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)
Squadra(Nome, Città, ColoriSociali)• corretto?
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
188
Soluzione più compatta
Giocatore(Cognome, DataNascita, Ruolo)Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)
Squadra(Nome, Città, ColoriSociali)
Giocatore(Cognome, DataNasc, Ruolo, Squadra, Ingaggio)Squadra(Nome, Città, ColoriSociali)
• con vincolo di integrità referenziale fra Squadra in Giocatore e la chiave di Squadra
• se la cardinalità minima della relationship è 0, allora Squadra in Giocatore deve ammettere valore nullo
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
189
IscrizioneStudente Università
Cognome Matricola
AnnoDiCorso
Nome
Indirizzo
(1,1) (1,N)
Città
Entità con identificazione esterna
Studente(Matricola, Università , Cognome, AnnoDiCorso)Università(Nome, Città, Indirizzo)
• con vincolo …17/10/2002 Atzeni-Ceri-Paraboschi-Torlone,
Basi di dati, Capitolo 6190
Direttore DipartimentoDirezione
Cognome Codice Sede NomeData inizio
(1,1) (1,1)
Stipendio Telefono
Relationship uno a uno
• varie possibilità:• fondere da una parte o dall'altra• fondere tutto?
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
191
Direttore DipartimentoDirezione
Cognome Codice Sede NomeData inizio
(0,1) (1,1)
Stipendio Telefono
Una possibilità privilegiata
Impiegato (Codice, Cognome, Stipendio)
Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)
• con vincolo di integrità referenziale, senza valori nulli
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
192
Direttore DipartimentoDirezione
Cognome Codice Sede NomeData inizio
(0,1) (0,1)
Stipendio Telefono
Un altro caso
33
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
193
(1,1)(0,1)
(1,N)(0,1)
(0,1)(1,1)
(1,N)
(0,N)
(1,N)
CittàIndirizzo
Telefono
Dipartimento
Composizione
Sede
Direzione
Afferenza
Impiegato
Progetto
Partecipazione
Nome
Nome
Cognome
Budget
Data
Via
CAP
Codice
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
194
Schema finale
Dipartimento(Nome, Città, Telefono, Direttore)
Impiegato(Codice, Cognome, Dipartimento*,Sede*, Data*)
Partecipazione(Impiegato, Progetto)
Progetto(Nome, Budget)
Sede(Città, Via, CAP)
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
195
Strumenti di supporto
• Esistono sul mercato prodotti CASE che forniscono un supporto a tutte le fasi della progettazione di basi di dati
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
196
17/10/2002 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 6
197