Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
Corso di
Basi di Dati
Donatella Gubiani
Progettazione delle
basi di dati
IAL – TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHEUF – TP MODELLARE I DATI 2
Progettazionedi una base di dati
• È una delle attività del processo di sviluppo dei sistemi informativi e va inquadrata in tale contesto
• Il ciclo di vita dei sistemi informativi:– insieme delle attività svolte da analisti, progettisti e utenti, nello sviluppo e nell’uso dei sistemi informativi
– attività iterativa (ciclo)
3
Studio di fattibilità
Raccolta e analisi dei requisiti
Progettazionedei dati
Realizzazione
Validazione ecollaudo
Funzionamento
4
Schema concettuale
Requisiti della base di dati
PROGETTAZIONE CONCETTUALE
PROGETTAZIONE LOGICA
Schema logico
Schema fisico
PROGETTAZIONE FISICA
5
Progettazioneconcettuale
Progettazione logica
Progettazionefisica
6
PROGETTAZIONE CONCETTUALE
• Ha lo scopo di trasformare la descrizione informale del domini applicativo in una descrizione formale mediante un modello– conforme al dominio– indipendente dal sistema di gestione di base di dati che si andrà ad utilizzare e dalla struttura fisica dei dati
2
7
PROGETTAZIONE LOGICA
• Trasformazione dello schema concettuale ottenuto dalla progettazione concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente– deve essere conforme al modello logico sottostante il sistema di gestione della base di dati adottata
– deve essere indipendente dalla struttura fisica dei dati
8
PROGETTAZIONE FISICA
• Lo schema ottenuto dalla progettazione logica deve essere completato con la specifica dei parametri fisici di memorizzazione dei dati–dipende dallo specifico sistema di gestione della base di dati utilizzato
– si basa sui criteri di organizzazione fisica dei dati definiti da tale sistema
9
MODELLO CONCETTUALE
10
Modello concettuale
• Collezione di concetti che possono essere usati per descrivere un insieme di dati e, in taluni casi, le relative operazioni di manipolazione
• Permettono di rappresentare in modo strutturato (un’astrazione di) la realtà
11
Modello Entità-Relazioni (ER)
• Modello formale che resta aderente al dominio di partenza
• Caratterizzato da tre concetti fondamentali:–Entità–Relazione–Attributo
12
Entità
• Insieme di elementi/concetti (fatti, persone, cose) dell’applicazione di interesse con proprietà comuni e con esistenza “autonoma”
Studente Corso
3
13
Relazioni - 1
• Legame logico fra due o più entità, rilevante nell’applicazione di interesse
EsameStudente Corso
14
Relazioni - 2
• Istanza di relazione fra n tipi di entità: n-pla di istanze, una per ogni tipo di entità coinvolta nella relazione
S1S2
S4S3
Studente
C1
C2
C3Corso
E1
E2E3
E4
{(S1,C1), (S2,C2), (S2,C3), (S3,C3)}
15
Relazioni n-arie
FornituraFornitore Prodotto
Dipartimento
16
Relazioni ricorsive
Successore Predecessore
Successione
Sovrano
17
Attributi - 1
• Proprietà elementare di un’entità o di una relazione, di interesse ai fini dell’applicazione
• Associa ad ogni occorrenza di un’entità o di una relazione un valore appartenente a un insieme detto dominio dell’attributo
18
Attributi - 2
Cognome Nome
Matricola
Data Titolo
Codice
Voto
EsameStudente Corso
4
19
Attributi - 3• Possono essere di diversi tipi:–SEMPLICI: con valore atomico–COMPOSTI: con diversi componenti
Cognome
Età Via
Numero
CAP
Impiegato
Indirizzo
20
Istanza VS Schema
• Istanza di un’entità: n-pla di valori associati ai diversi attributi– Esempio: (AGTMRC66C60U962M,Marco)
• Schema di un’entità: un nome, un insieme di attributi e per ciascun attributo un dominio– Esempio: Nome: Persona
Attributi: codice fiscale � D: stringa[16]nome � D: stringa
• OSS: il dominio va esteso col valore NULL
Personacodice fiscale
nome
21
Vincoli di partecipazione
• Indicano il numero minimo di istanze della relazione a cui può partecipare ogni istanza di entità–TOTALE: ogni istanza di entità ècoinvolta in almeno una istanza di relazione
–PARZIALE: ci possono essere delle istanze di entità che non partecipano a nessuna istanza di relazione
22
Vincoli di cardinalità
• Indicano il numero massimo di istanze della relazione a cui può partecipare ogni istanza di entità– UNO– MOLTI
23
Esempio vincoli
• Esempio: – TOTALE: ogni impiegato ha assegnato almeno un incarico
– PARZIALE: un incarico può non essere assegnato ad alcun impiegato
– UNO: un incarico può essere assegnato al più ad un impiegato
– MOLTI: ad un impiegato possono essere assegnati più incarichi
Assegnamento
Impiegato
Incarico
(1,N)
(0,1)
24
Cardinalità degli attributi • E’ possibile associare delle cardinalitàanche agli attributi, con due scopi:– indicare opzionalità ("informazione incompleta")
– indicare attributi multivalore
Telefono
Nome
Numero patente
(0,N)
(0,1)
Impiegato
5
25
Identificatore di entità
• Strumento per l’identificazione univoca delle occorrenze di un’entità
• Esistono due tipi di identificatori:– identificatore interno– identificatore esterno
26
Identificatore interno
• Attributo/i di un’entità il cui valore permette di identificare univocamente ogni sua istanza
Targa Modello
Indirizzo
Data Nascita
Cognome
NomeAutomobile
Persona
27
Identificatore esterno - 1
• Entità debole: entità che possiede solo una chiave parziale che non permette di discriminare fra le diverse istanze
• Relazione identificante: collega l’entitàdebole ad un’altra entità, detta proprietaria. Le diverse istanze dell’entitàdebole sono identificate univocamente dalla chiave parziale, una volta partizionato l’insieme delle istanze in base al valore della chiave dell’entitàproprietaria
28
Identificatore esterno - 2
IscrizioneStudente Università
Matricola
Anno di corso
Nome
Indirizzo
(1,1) (0,N)
Nome
29
Identificatori
• 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)
30
Soluzioni alternative
Ditta Sedeha(1,N) (1,N)
Ditta sede(1,N)
6
31
Generalizzazione - 1
• 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
• Motivazioni:– Attributi e relazioni non riferibili a tutte le istanze di un’entità, ma solo una o più
32
Generalizzazione - 2
Dipendente
Impiegato Funzionario Dirigente
33
Ereditarietà
• Tutte le proprietà (attributi, relazioni, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente
34
Caratterizzazione/vincoli - 1
• È 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
35
Caratterizzazione/vincoli - 2
• Consideriamo (senza perdita di generalità) solo generalizzazioni esclusive e distinguiamo fra totali e parziali
36
Disoccupato Lavoratore
Persona
Parziale
7
37
Persona
Uomo Donna
Totale
38
Osservazioni
• Possono esistere gerarchie a più livelli e più 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 relazione sottoinsieme (relazione IS-A)
39
Inserimento delle istanze
• Ad ogni inserimento nell’entitàgenitore bisogna decidere se l’istanza appartiene o no ad una entità figlia e a quale
• A volte l’inserimento può essere fatto automaticamente attraverso il valore di un attributo– Specializzazioni ATTRIBUTE-DEFINED (o PREDICATE-DEFINED)
40
Notazione alternativa: attributi
Impiegato
Codice fiscale
mansioni
data nascita
età
indirizzo
città
ViaN
numerovia
41
Notazione alternativa: entità deboli
Università
Nome
indirizzo
Studente iscrizione
Matricola Nome
(1,1) (0,N)
AnnoCorso
42
Notazione alternativa: generalizzazione
Dipendente
DirigenteFunzionarioImpiegato
8
43
PROGETTAZIONE CONCETTUALE
44
PROGETTAZIONE CONCETTUALE
• Ha lo scopo di trasformare la descrizione informale del domini applicativo in una descrizione formale mediante un modello– conforme al dominio– indipendente dal sistema di gestione di base di dati che si andrà ad utilizzare e dalla struttura fisica dei dati
45
Attività
• Comprende un insieme di attivitàinterconnesse:– raccolta dei requisiti– analisi dei requisiti– costruzione dello schema concettuale– costruzione del glossario
46
Raccolta e Analisi dei Requisiti
• Il reperimento e l’analisi dei requisiti èun’attività difficile e non standardizzabile– dipende fortemente dall’applicazione
• Si possono, però, seguire alcune regole pratiche…
47
Raccolta dei requisiti
•Completa individuazione dei problemi che l’applicazione da realizzare deve risolvere e le caratteristiche che tale applicazione dovrà avere•Aspetti da considerare:– statistici– dinamici
48
Fonti• Utenti dell’applicazione:
– interviste– documentazione apposita
• Documentazione esistente:– moduli– normative (leggi, regolamenti di settore)
– regolamenti interni, procedure aziendali• Realizzazioni preesistenti
9
49
Acquisizione per interviste
• Utenti diversi possono fornire informazioni diverse
• Effettuare spesso verifiche di comprensione e coerenza
• Verificare anche per mezzo di esempi• Richiedere definizioni e classificazioni • Far evidenziare gli aspetti essenziali rispetto a quelli marginali
50
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
51
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.
52
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.
53
Ambiguità e imprecisione
• Regole generali:– scegliere il corretto livello di astrazione
– standardizzare la struttura delle frasi evitando frasi contorte
– individuare sinonimi e unificare i termini
– rendere esplicito il riferimento tra i termini
54
Riscrittura dei requisiti
• Regole generali – costruire un glossario di termini– decomporre del testo in gruppi di frasi omogenee
10
55
Termine Descrizione Sinonimi Collegamenti
Partecipante Persona chepartecipa ai corsi
Studente Corso,
Società
Docente Docente dei corsi.Può essere esterno
Insegnante Corso
Corso Corso organizzatodalla società. Puòavere più edizioni.
Seminario Docente
Società Ente presso cui ipartecipanti lavoranoo hanno lavorato
Posti Partecipante
Glossario dei termini
56
Frasi di carattere generale
Si vuole realizzare una base di dati peruna società che eroga corsi, di cuivogliamo rappresentare i dati deipartecipanti ai corsi e dei docenti.
57
Frasi relative ai partecipanti
Per 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.
58
Frasi relative ai datori di lavoro
Relativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.
Frasi relative ai corsi
Per 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.
59
Frasi relative a tipi specifici di partecipanti
Per 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.
60
Frasi relative ai docenti
Per 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.
11
61
Operazioni sui dati
• Vanno raccolte anche le specifiche delle operazioni da effettuare sui dati raccolti
• Si utilizza la medesima metodologia vista in precedenza
62
Operazione 1: inserisci un nuovo partecipante indicando tutti i suoi dati (40 volte al giorno)
Operazione 2: assegna un partecipante a una edizione di corso (50 volte al giorno)
Operazione 3: inserisci un nuovo docente indicando tutti i suoi dati e i corsi che può insegnare (2 volte al giorno)
Operazione 4: assegna un docente abilitato ad una edizione di un corso (15 volte al giorno)
…
63
Rappresentazione dei dati
• Dalla specifica informale così ottenuta èpossibile passare alla traduzione in costrutti del modello ER
• Non esiste una rappresentazione univoca ma si possono considerare delle “regole concettuali”
64
Rappresentazione dei dati
• se un concetto ha proprietà significative e descrive oggetti con esistenza autonoma �entità
• se un concetto è semplice e non ha proprietà rilevanti associate � attributo
• se un concetto correla due o più concetti �relazione
• se un concetto è caso particolare di un altro concetto � generalizzazione
65
Strategie di progetto
• Lo sviluppo dello schema concettuale può essere sviluppato attraverso diverse strategie:– top-down–bottom-up– inside-out
66
Strategia top-down
• Lo sviluppo dello schema concettuale viene prodotto mediante una serie di raffinamenti successivi
• A partire da uno schema iniziale, si ottengono uno o più schemi intermedi più raffinati, fino ad arrivare allo schema finale
12
67
Strategia top-down
SpecificheSchema inizialeSchema intermedioSchema intermedioSchema finale
68
Trasformazionitop-down
• T1: un’entità descrive in realtà due concetti diversi legati logicamente fra di loro
• T2: un’entità è composta da sotto-entitàdistinte
• T2: una relazione descrive in realtà due relazioni distinte fra le medesime entità
• T4: una relazione descrive in realtà un concetto con esistenza autonoma
• T5: si aggiungono proprietà a entità• T6: si aggiungono proprietà a relazioni
69
Trasformazioni top-down
EsameEsameStudente CorsoPersona
Persona
Uomo Donna
Impiegato
Cognome Età
Stipendio
Impiegato
70
Strategia top-down
• Vantaggi:– inizialmente si trascura i dettagli
• Svantaggi:– si deve avere una visione globale sin dall’inizio
71
Strategia bottom-up
• Le specifiche iniziali vengono suddivise in componenti via via più piccole, finchèdescrivono un frammento elementare
• Le diverse componenti vengono rappresentare attraverso semplici schemi concettuali
• I vari schemi ottenuti vengono poi integrati ad ottenere lo schema finale
72
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
13
73
Trasformazioni bottom-up
• T1: si individua una classe di oggetti con proprietà comuni
• T2: si individua un legame logico fra entità• T3: si individua un legame fra diverse entitàriducibile a una generalizzazione
• T4: a partire da una serie di attributi si individua un’entità che può essere vista come aggregazione di tali attributi
• T5: si individua una relazione che che può essere vista come aggregazione di alcuni attributi
74
Trasformazioni bottom-up
Studente Corso
Persona
Uomo Donna
ImpiegatoSpecifica su
impiegatoEsameStudente Corso
Persona
Uomo Donna
75
Strategia bottom-up
• Vantaggi:– decomposizione del problema in componenti più semplici
• Svantaggi:–Richiede un’operazione di integrazione
76
Strategia bottom-up: inside-out
• Caso particolare della strategia bottom-up
• Inizia individuando solo alcuni concetti importanti e poi si procede, a partire da questi, a macchia d’olio
• Vantaggio:–non richiede la fase di integrazione
77
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 Nome
78
Strategia mista
• 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
14
79
Definizione dello schema scheletro
• Si individuano i concetti più importanti:– ad esempio perché più citati o perchéindicati esplicitamente come cruciali
• Li si organizza in un semplice schema concettuale
80
Strategia mista
• In quasi tutti i casi complessi è l’unica strategia che si può effettivamente adottare
• Vantaggi:– Flessibilità•suddivisione•raffinamento
81
Qualità di uno schema concettuale
• Proprietà importanti da garantire–Correttezza–Completezza– Leggibilità–Minimalità
82
Una metodologia• Analisi dei requisiti
– Costruire un glossario dei termini – Analizzare i requisiti ed eliminare le ambiguità– Raggruppare i requisiti in insiemi omogenei
• Passo base– Individuare i concetti più rilevanti e rappresentarli in
uno schema scheletro• 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
83
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à
84
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à
15
85
Un esempiodi
progettazione concettuale
• Società di formazione
86
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.
87
Partecipante
Corso
Docente
Partecipazione Docenza
Schema scheletro
88
Frasi relative ai partecipanti
Per 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.
89
Frasi relative ai datori di lavoro
Relativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.
Frasi relative a tipi specifici di partecipanti
Per 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.
90PosizioneLivello Titolo prof. Area
Partecipante
CF
Codice
…..
Dipendente Professionista
Datore
Nome
…..
Impiegopassato
(0,N)
(0,N)
data fine
data inizioImpiegocorrente
(0,N)
(1,1)
data inizio
16
91
Frasi relative ai docenti
Per 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.
92
Docente
Collaboratore Interno
CF
Cognome
Età
Telefono
Città nascita
(1,N)
93
Frasi relative ai corsi
Per 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.
94
(1,N)
(1,1)
ComposizioneTipologia
(1,1)
(0,N)
N.Part.Data fine
Data inizio
Edizionecorso
Orario Aula Giorno
LezioneCorso
Titolo Codice
95
Partecipante
Corso
Docente
Partecipazione Docenza
Integrazione
96
PartecipazionePartecipante Corso
partecipazionepassata
(0,N) (0,N)
partecipazionecorrente
(0,1) (0,N)
PartecipanteEdizione
corso
17
97
DocenzaCorso Docente
Abilitazione(1,N)
(1,N)
Tipologia
Corso
CodiceTitolo
Datainizio
(0,N)
(1,1)
DocenzaEdizione
corsoDocente
Docenzapassata
(0,N)(0,1)
Docenzacorrente
(0,1) (0,1)
98
partecip.passata
partecip.corrente
docenzapassata
docenzacorrente
abilitazione
ComposizioneTipologia
N.Part.Data fine
Data inizio
Edizionecorso
Orario Aula Giorno
LezioneCorso
Titolo Codice
PosizioneLivello Titolo prof. Area
Impiegocorrente
data inizioPartecipante
CF
Codice
…..
Dipendente Professionista
DatoreNome
…..
Impiegopassato
data fine
data inizio
Docente
Collaboratore Interno
CF
Cognome
Età
Telefono
Città nascita
99
PROGETTAZIONELOGICA
100
PROGETTAZIONE LOGICA
• Trasformazione dello schema concettuale ottenuto dalla progettazione concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente
• Non si tratta di una pura e semplice traduzione– semplificare la traduzione: alcuni aspetti non sono direttamente rappresentabili
– ottimizzare le prestazioni considerando le prestazioni
101
Traduzione nelmodello logico
Ristrutturazione dello schema E-R
Schema E-RCarico
applicativo
Schema E-Rristrutturato
Modellologico
Schema logico
102
Ristrutturazione
• Per ottimizzare il risultato abbiamo bisogno di analizzare le prestazioni a questo livello
• Le prestazioni non sono valutabili con precisione su uno schema concettuale ma possono essere analizzate sulla base di alcuni indicatori– spazio: numero di occorrenze previste– tempo: numero di occorrenze (di entità e relazioni) visitate durante un’operazione
18
103
Attività di ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di entità e relazioni
• Scelta degli identificatori primari
104
Analisi delle ridondanze - 1
• Una ridondanza in uno schema concettuale corrisponde alla presenza di un dato che può essere derivato da altri dati– Attributi derivabili
• da altri attributi della stessa entità• da attributi di altre entità• da operazioni di conteggio di occorrenze
– Associazioni derivabili dalla composizione di altre associazioni in presenza di cicli
Residenza(1,N) (1,1)
Persona
CFNumero
abitanti
Città
Nome
105
Analisi delle ridondanze - 2
• Le ridondanze presentano vantaggi e svantaggi– riduzione degli accessi per calcolare il dato– maggiore occupazione di memoria
• La decisione di mantenere o eliminare o eliminare una ridondanza va presa confrontando costo di esecuzione delle operazioni che coinvolgono il dato ridondante e relativa occupazione di memoria
106
Analisi delle ridondanze - 3
• Consideriamo lo schema su persone e città visto in precedenza e supponiamo che su di esso siano definite le seguenti operazioni:– Memorizzazione di una nuova persona con la relativa cittàdi residenza � operazione interativa eseguita 500 volte al giorno
– Stampa di tutti i dati di una città � operazione interativa eseguita 2 volte al giorno
• Dobbiamo inoltre considerate una tabella dei volumi:
1.000.000RResidenza
1.000.000EPersona
200ECittà
VolumeTipoConcetto
107
Analisi delle ridondanze - 4• Con presenza della ridondanza:
– Supponendo che il numero degli abitanti di una città richieda 4 byte � 4x200=800byte<1Kbyte di memoria aggiuntiva
– Operazione 1: al giorno• 1500 accessi in scrittura • 500 accessi in lettura
– Operazione 2: • Trascurabile
– Contando doppi gli accessi in scrittura il totale è di 3500 accessi al giorno
S1EntitàCittà
L1EntitàCittà
S1RelazioneResidenza
S1EntitàPersona
TipoAccessoCostruttoConcetto
L1EntitàCittà
TipoAccessoCostruttoConcetto
108
Analisi delle ridondanze - 5• Con assenza della ridondanza:
– Operazione 1: 1000 accessi in scrittura
– Operazione 2: 10000 accessi in lettura al giorno
– Contando doppi gli accessi in scrittura il totale è di 12000 accessi al giorno
S1RelazioneResidenza
S1EntitàPersona
TipoAccessoCostruttoConcetto
CONCLUDENDO:conviene mantenere il dato ridondante
L5000RelazioneResidenza
L1EntitàCittà
TipoAccessoCostruttoConcetto
19
109
Eliminazione dellegeneralizzazioni - 1
• I sistemi per la gestione di basi di dati non consentono di rappresentare direttamente il costrutto di generalizzazione
• Diversi metodi per l’eliminazione delle generalizzazioni:– accorpamento delle figlie nel padre– accorpamento del padre nelle figlie– sostituzione con associazioni
• La scelta fra le diverse alternative può essere fatta in modo analogo all’analisi delle ridondanze
110
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
111
A11
A21
TIPO
(0,1)
(0,1)
(0,..)
E0
A01 A02
R1 E3
R2
E4
112
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
113
E3
R2
E4
E2E1
A11 A21
R12
R11
A01 A02 A01 A02
114
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
20
115
RG2RG1
(1,1)
(0,1)
(1,1)
(0,1)
E0
A01 A02
E2E1 R2
E4A11 A21
R1 E3
116
Partizionamento/accorpamento di entità e relazioni - 1
• Si ottiene maggior efficienza riducendo gli accessi– separando attributi di uno stesso concetto che vengono acceduti da operazioni diverse
– raggruppando attributi di concetti diversi che vengono acceduti dalle medesime operazioni
• Tecniche di decisione analoghe all’analisi delle ridondanze
117
Partizionamento/accorpamento di entità e relazioni - 2
Impiegato
Livello
Stipendio
Ritenute
Cognome
Indirizzo
Data
nascita
Codice
LivelloStipendio
Ritenute
Cognome
Indirizzo Datanascita
Codice
RDati
anagraficiDati
lavorativi
(1,1) (1,1)
118
Scelta degli identificatori primari - 1
• Nel modello relazionale richiede la specifica di una chiave primaria sulla quale vengono creati degli indici per il ripristino efficiente dei dati
• Nel caso in cui ci siano diversi identificatori bisogna scegliere fra di essi la chiave primaria
119
Scelta degli identificatori primari - 2
• Alcune regole:– Attributi con valori nulli non possono partecipare alla formazione di una chiave primaria
– Sono da preferirsi identificatori con pochi attributi– Sono da preferirsi identificatori interni ad identificatori esterni
– Sono da preferirsi identificatori utilizzati da molte operazioni per accedere alle occorrenze di altre entità
• Se non sono presenti identificatori che rispettano le regole precedenti si può pensare di introdurre un nuovo attributo, detto codice
120
Traduzione
• A partire dal modello ristrutturato si può effettuare una vera e propria traduzione
• Idea di base:– le entità diventano relazioni sugli stessi attributi
– le relazioni diventano relazioni sugli identificatori delle entità coinvolte (più gli attributi propri)
21
121
Entità e relazioni 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
Partecipazione
(0,N) (1,N)
Data inizio
Stipendio
Cognome Matricola
Impiegato
NomeCodice
Budget
Progetto
122
Relazioni n-arie
Fornitore(PartitaIVA, Nome)Prodotto(Codice, Genere)
Dipartimento(Nome, Telefono)
Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)
Genere CodiceNome
Fornitore Prodotto
Dipartimento
Fornitura
Partita IVAQuantità
Nome
Telefono
(0,N) (1,N)
(1,N)
123
Relazioni uno a molti - 1
Giocatore(Cognome, DataNascita, Ruolo)Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)
Squadra(Nome, Città, ColoriSociali)
Soluzione corretta ma ne esiste una più compatta…
Datanascita
Cognome
Giocatore SquadraContratto
Città NomeIngaggio
(1,1) (0,N)
Ruolo Colori sociali
124
Relazioni uno a molti - 2
• Osserviamo che a ogni istanza di giocatore corrisponde una e una sola Squadra per cui…
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 relazione è 0, allora Squadra in Giocatore deve ammettere valore nullo
125
Entità con identificazione esterna
Studente(Matricola, Università, Cognome, AnnoDiCorso)
Università(Nome, Città, Indirizzo)
con vincolo di integrità referenziale fra Università in Studente e Nome in Università
IscrizioneStudente Università
Cognome Matricola
AnnoDiCorso
Nome
Indirizzo
(1,1) (1,N)
Città
126
Relazioni uno a uno
• Esistono varie possibilità:• fondere da una parte o dall'altra• fondere tutto?
Direttore DipartimentoDirezione
Cognome Codice Sede NomeData inizio
(1,1) (1,1)
Stipendio Telefono
22
127
Una possibilità privilegiata
Impiegato (Codice, Cognome, Stipendio)
Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)
con vincolo di integrità referenziale, senza valori nulli
Direttore DipartimentoDirezione
Cognome Codice Sede NomeData inizio
(0,1) (1,1)
Stipendio Telefono
128
Caso di studio
129
(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
130
Schema finale
Dipartimento(Nome, Città, Telefono, Direttore)
Impiegato(Codice, Cognome, Dipartimento*,Sede*, Data*)
Partecipazione(Impiegato, Progetto)
Progetto(Nome, Budget)
Sede(Città, Via, CAP)
131
PROGETTAZIONEFISICA
132
PROGETTAZIONE FISICA
• Lo schema ottenuto dalla progettazione logica deve essere completato con la specifica dei parametri fisici di memorizzazione dei dati–dipende dallo specifico sistema di gestione della base di dati utilizzato
– si basa sui criteri di organizzazione fisica dei dati definiti da tale sistema
23
133
GLI INDICI - 1
• I dati di una base di dati sono memorizzati in file come insiemi di record
• Gli indici sono strutture di accesso ai dati utilizzate per rendere piùveloce il recupero di record in presenza di determinate condizioni di ricerca
134
GLI INDICI - 2
• La dimensione della collezione dei dati èmolto maggiore dello spazio disponibile in memoria principale
• Tempo di accesso in memoria secondaria (disco) è molto maggiore del tempo di accesso in memoria principale
• Gli oggetti sono raggruppati in pagine/blocchi, che costituiscono l’unitàdi trasferimento tra memoria principale e disco
135
GLI INDICI - 3
• Le strutture dati utilizzate per strutturare gli indici possono essere suddivise in:– strutture di indicizzazione a singolo livello
• Indice primario: specificato rispetto al campo chiave di un file di record fisicamente ordinato rispetto a tale campo
• Indice di clustering: utilizzato nel caso in cui il campo di ordinamento (fisico) non sia un campo chiave
• Indice secondario: pu`o essere specificato per ogni campo (chiave o non) non utilizzato per ordinare fisicamente il file
– strutture di indicizzazione multilivello
136
Indice primario
137
Indice di clustering
138
Indice secondariosu campo chiave
24
139
Indice secondariosu campo non chiave
140
Strutture multilivello statiche