1 Progettazione di basi di dati: Progettazione di basi di dati: Progettazione Concettuale e Progettazione Concettuale e Progettazione Logica Progettazione Logica 03/04/2006 2 Progettazione di basi di dati 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 03/04/2006 3 Studio di fattibilità Raccolta e analisi dei requisiti Progettazione Realizzazione Validazione e collaudo Funzionamento 03/04/2006 4 Fasi (tecniche) del ciclo di vita 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: sperimentazione • Funzionamento: il sistema diventa operativo
29
Embed
Progettazione di basi di dati - si.deis.unical.itsi.deis.unical.it/fortino/teaching/sisinfdes/materiale/Lezioni/... · 1 Progettazione di basi di dati: Progettazione Concettuale e
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Progettazione di basi di dati:Progettazione di basi di dati:
Progettazione di basi di datiProgettazione 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
03/04/2006 3
Studio di fattibilità
Raccolta e analisi dei requisiti
Progettazione
Realizzazione
Validazione e collaudo
Funzionamento
03/04/2006 4
Fasi (tecniche) del ciclo di vitaFasi (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: sperimentazione• Funzionamento: il sistema diventa operativo
2
03/04/2006 5
�i dati hanno un ruolo centrale
• i dati sono più stabili
La progettazione di un sistema informativo riguarda due aspetti:
�progettazione dei datiprogettazione delle applicazioni
Ma:
03/04/2006 6
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazionedei dati
Realizzazione
Validazione e collaudo
Funzionamento
03/04/2006 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
03/04/2006 8
Studio di fattibilità
Raccolta e analisidei requisiti
Progettazionedei dati
Realizzazione
Validazione e collaudo
Funzionamento
3
03/04/2006 9
Progettazionefisica
Schema concettuale
Requisiti della base di dati
Progettazioneconcettuale
Progettazionelogica
Schema logico
Schema fisico
“CHE COSA”:analisi
“COME”:progettazione
03/04/2006 10
• Schema concettuale
• Schema logico
• Schema fisico
I prodotti della varie fasi sono schemi di alcuni modelli di dati:
03/04/2006 11
Modello dei datiModello 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
03/04/2006 12
SchemiSchemi ee istanzeistanze
• 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
4
03/04/2006 13
Due tipiDue tipi ((principaliprincipali) di ) di modellimodelli
• 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
• 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
Identificatore di una entitIdentificatore 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
15
03/04/2006 57
Identificatori interniIdentificatori interni
Persona
Data Nascita
Cognome
Nome
Automobile
Targa
Modello
Indirizzo03/04/2006 58
Identificatore esternoIdentificatore esterno
IscrizioneStudente Università
Cognome Matricola
Anno di corso
Nome
Indirizzo
(1,1) (0,N)
03/04/2006 59
Alcune osservazioniAlcune 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?
03/04/2006 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
16
03/04/2006 61
GeneralizzazioneGeneralizzazione
• mette in relazione una o più entità E1, E2, ..., En con una entità E, che le comprende come caso particolare
• E è generalizzazione di E1, E2, ..., En• E1, E2, ..., En sono specializzazioni (o
sottotipi) di E
03/04/2006 62
Rappresentazione graficaRappresentazione grafica
Dipendente
Impiegato Funzionario Dirigente
03/04/2006 63
ProprietProprietàà delle generalizzazionidelle 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
03/04/2006 64
Persona
Codice fiscale
Nome
Età
Città
Nascita(0,N)
(1,1)
Lavoratore Studente
Stipendio
17
03/04/2006 65
EreditarietEreditarietàà
• tutte le proprietà (attributi, relationship, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente
03/04/2006 66
EsercizioEsercizio
• 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)
03/04/2006 67
Segretario Direttore Progettista
Responsabile
PersonaCF
Cognome
Età
Uomo Donna
Militare
Impiegato Studente
Stipendio Matr.
03/04/2006 68
Documentazione associata agli schemi Documentazione associata agli schemi concettualiconcettuali
• dizionario dei dati • entità• relationship
• vincoli non esprimibili
18
03/04/2006 69
(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
03/04/2006 70
Dizionario dei dati (entitDizionario dei dati (entitàà))
• alcuni aspetti non sono direttamente rappresentabili
Non si tratta di una pura e semplice Non si tratta di una pura e semplice traduzionetraduzione
03/04/2006 78
Traduzione nelmodello logico
Schema E-R
Schema logico
03/04/2006 79
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
03/04/2006 80
AttivitAttivitàà di Traduzionedi Traduzione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di
entità e relationship• Scelta degli identificatori primari
21
03/04/2006 81
Eliminazione delle gerarchieEliminazione 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
03/04/2006 82
Tre possibilitTre possibilitàà
1. accorpamento delle figlie della generalizzazione nel genitore
2. accorpamento del genitore della generalizzazione nelle figlie
3. sostituzione della generalizzazione con relazioni
03/04/2006 83
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
03/04/2006 84
A11A21
TIPO
(0,1)
(0,1)
(0,..)
E0
A01 A02
R1 E3
R2
E4
22
03/04/2006 85
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
03/04/2006 86
E3
R2
E4
E2E1
A11 A21
R12
R11
A01 A02 A01 A02
03/04/2006 87
E0 R1
A01 A02
E3
R2
E4
E2E1
A11 A21
03/04/2006 88
RG2RG1(1,1)
(0,1)
(1,1)
(0,1)
E0
A01 A02
E2E1 R2
E4A11 A21
R1 E3
23
03/04/2006 89
AttivitAttivitàà di Traduzionedi Traduzione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di
entità e relazioni• Scelta degli identificatori primari
03/04/2006 90
Ristrutturazioni, casi principaliRistrutturazioni, casi principali
• partizionamento verticale di entità• partizionamento orizzontale di
relationship• eliminazione di attributi multivalore• accorpamento di entità/ relationship
03/04/2006 91
Impiegato
Livello
Stipendio
Ritenute
Cognome
Indirizzo
Datanascita
Codice
03/04/2006 92
LivelloStipendio
Ritenute
Cognome
Indirizzo Datanascita
Codice
RDati
anagraficiDati
lavorativi
(1,1) (1,1)
24
03/04/2006 93
Agenzia
Indirizzo
Città
Telefono
Nome
(1,N)
03/04/2006 94
Numero
Indirizzo
Nome
UtenzaAgenzia Telefono
(1,N) (1,1)
Città
03/04/2006 95
IndirizzoInternoCognome
Indirizzo Datanascita
Codicefiscale
IntestazionePersona Appartamento
(0,1) (1,1)
03/04/2006 96
Persona
Interno
Indirizzo
Cognome
Indirizzo
Datanascita
Codicefiscale
(0,1)
(0,1)
25
03/04/2006 97
Cognome
ComposizioneGiocatore Squadra
(1,N) (1,N)
Ruolo NomeCittà
Data acquisto
Data cessione
(0,1)
03/04/2006 98
Cognome
Comp.passata
Giocatore Squadra
(1,N) (1,N)
Ruolo Nome
Città
Data acquisto
Data cessione
Comp.attuale
Data acquisto
(1,1) (1,N)
03/04/2006 99
AttivitAttivitàà della ristrutturazionedella ristrutturazione
• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di entità
e relazioni• Scelta degli identificatori primari
03/04/2006 100
Scelta degli Scelta degli identificatoriidentificatori principaliprincipali
• operazione indispensabile per la traduzione nel modello relazionale
• Criteri• assenza di opzionalità• semplicità
26
03/04/2006 101
Se nessuno degli identificatori soddisfa i Se nessuno degli identificatori soddisfa i requisiti visti?requisiti visti?
Si introducono nuovi attributi (codici) contenenti Si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per valori speciali generati appositamente per
questo scopoquesto scopo
03/04/2006 102
Traduzione verso il Traduzione verso il modello relazionalemodello 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)
03/04/2006 103
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
EntitEntitàà ee relationshiprelationship molti a moltimolti a molti
03/04/2006 104
EntitEntitàà ee relationshiprelationship molti a moltimolti a molti