LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano...

39
LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri

Transcript of LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano...

Page 1: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

LA PROGETTAZIONE LOGICA

Didattica delle applicazioni informatiche mod.B

Docente :A.Staiano

Specializzanda:P.Fulgieri

Page 2: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Progettazione Base Dati Ricordiamo che la progettazione di una

Base Dati si divide nelle seguenti tre fasi: Progettazione Concettuale Progettazione Logica Progettazione Fisica

Page 3: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Progettazione Base Dati Progettazione Concettuale :

rappresentazione formale e astratta della realtà di interesse, indipendentemente dai criteri di rappresentazione del DBMS.

Il prodotto è lo schema concettualeschema concettuale e fa riferimento ad un modello concettualemodello concettuale dei dati

Page 4: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Progettazione Base Dati Progettazione logica: consiste nella

“traduzione”dello schema concettuale in un modello di rappresentazione concreto adottato dal DBMS a disposizione.

Il prodotto do tale fase è lo schema logicoschema logico e fa riferimento ad un modello logicomodello logico dei dati.

Le scelte progettuali di tale fase si basano poi su criteri di ottimizzazione da effettuarsi sui dati

Page 5: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Progettazione Base Dati Progettazione fisica : consiste nel

completamento dello schema logico con le specifiche dei parametri fisici di memorizzazione dei dati.

Il prodotto di tale fase è lo schema fisicoschema fisico e fa riferimento ad un modello fisicomodello fisico dei dati che dipende dallo specifico DBMS scelto.

Page 6: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

La Progettazione Logica Obiettivo:

Costruire uno schema logico in grado di descrivere le informazioni contenute nello schema Entità-Relazione prodotto nella fase di progettazione concettuale

Prima di passare allo schema logico, lo schema E-R va ristrutturato: Per semplificare la traduzione (non tutti i costrutti del

modello E-R hanno una traduzione naturale nei modelli logici)

Per ottimizzare il progetto (la progettazione logica deve tener conto delle prestazioni del sistema)

Page 7: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

La Progettazione Logica

FASI: Ristrutturazione dello schema E-R:

indipendente dal modello logico si basa su criteri di ottimizzazione.

Traduzione verso il modello logico: fa riferimento ad un preciso modello logico, in questo caso quello relazionale.

Page 8: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

La Progettazione Logica

INPUT: carico applicativo +schema E-R

Modello logico + schema E-R ristrutturato

OUTPUT:schema logico

Ristrutturazione dello schema E-R

Traduzione nel modello logico

Page 9: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle prestazioni su schemi E-RIndici di prestazioni: le prestazioni di una base di

dati non sono valutabili in maniera precisa dalla progettazione logica (prestazioni approssimate)

Due parametri che regolano le prestazioni dei sistemi software: Costo di una operazione: in termini di numero di

occorrenze di entità e associazione che mediamente vanno visitate per rispondere a una operazione

Occupazione di memoria: lo spazio di memoria necessario per memorizzare i dati descritti dallo schema

Page 10: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle prestazioni su schemi E-R

Per studiare questi parametri, dobbiamo conoscere: Volume dei dati:

Numero di occorrenze di ogni entità e associazione dello schema

Dimensioni di ciascun attributo (di entità o associazione) Caratteristiche delle operazioni: tipo dell’operazione,

frequenza, dati coinvolti Tali informazioni vengono raggruppate nella Tavola

dei Volumi, Tavola delle Operazioni, Tavola degli Accessi.

Page 11: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle prestazioni su schemi E-R

Esempio:

Tavola dei volumi: entità e associazioni con il volume (numero di occorrenze) previsto

persona cittàResidenza

popolazione

(1,1) (1,N)

Concetto Tipo Volume

Città E 200

Persona E 1000000

Residenza R 1000000

Page 12: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle prestazioni su schemi E-R

Tavola delle operazioni: Per ogni operazione, la frequenza prevista e il tipo : interattiva (I) o batch (B)

Esempio:

Op. 1: memorizza una nuova persona con la relativa città di residenza

Op. 2: stampa tutti i dati di una città (incl. num. abitanti)

Operazione Tipo Frequenza

Op. 1 I 500 al giorno

Op. 2 I 2 al giorno

Page 13: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle prestazioni su schemi E-R

Tavola degli accessi: Per una operazione, il numero e il tipo accessi di lettura (L) o scrittura (S) necessario per svolgere l’operazione

Esempio:

Concetto Costrutto Accessi Tipo

Persona E 1 S

Residenza R 1 S

Città E 1 L

Città E 1 S

Concetto Costrutto Accessi Tipo

Città E 1 L

Op.1

Op.2

Page 14: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Ristrutturazione schema E-R

Attività della ristrutturazione Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e

relationship Scelta degli identificatori primari

Page 15: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle Ridondanze Una ridondanza in uno schema E-R è una

informazione significativa ma derivabile da altre.

Forme di ridondanza in uno schema E-R Attributi derivabili: - da altri attributi della stessa entità (o

associazione) - da attributi di altre entità (o associazioni) Relazioni derivabili dalla composizione di altre

relazioni in presenza di cicli

Page 16: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle Ridondanze : esempio

Attributo derivabile

impiegato

Importo netto

ritenute

Importo lordo(ridondanza)

Page 17: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle Ridondanze : esempio

Attributo derivabile da altre entità

acquisto prodottocomposizione(1,N) (1,N)

prezzoImporto totale (ridondanza)

Page 18: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle Ridondanze : esempio

studente professoreCorso frequenza insegnamento

docenza

La relazione docenza deriva da frequenza + insegnamento.Non tutti i cicli danno luogo a ridondanze

Page 19: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle Ridondanze La presenza di ridondanze presenta :un vantaggio : riduzione degli accessi necessarialcuni svantaggi : appesantimento degli aggiornamenti maggiore occupazione di spazio (trascurabile)

La decisione di mantenere o eliminare una ridondanza va presa confrontando il costo delle operazioni che coinvolgono il dato ridondante e la relativa occupazione in memoria nei casi di presenza o assenza della ridondanza

Page 20: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle ridondanze : esempio

Il dato ridondante è costituito dall’attributo popolazione = n°abitanti . Assumiamo che tale attributo richieda 4 byte e poiché le città prese in considerazione nelle tabelle precedenti sono 200, il dato ridondante richiede 800 byte.

persona cittàResidenza

popolazione

(1,1) (1,N)

Page 21: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle ridondanze : esempioCon dato di ridondanzaOp. 1: memorizza una nuova

persona con la relativa città di residenza.

Dalla sua tavola degli accessi, op. 1 richiede:

Un accesso tipo S a Persona (memorizzare la nuova persona)

Un accesso tipo S a Residenza (per memorizzare una nuova coppia persona-città)

Un accesso tipo L a Città (per cercare la città di interesse)

Un accesso tipo S a Città (per incrementare di uno il numero di abitanti di quella città)

Concetto Costr.

Acc.

Tipo

Persona E 1 S

Residenza R 1 S

Città E 1 L

Città E 1 S

Page 22: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle ridondanze : esempioSenza dato di ridondanza Op. 1: una nuova tavola degli

accessi: Un accesso tipo S a

Persona (memorizzare la nuova persona)

Un accesso tipo S a Residenza (per memorizzare una nuova coppia persona-città)

Conclusione: per op. 1, è meglio l’assenza del dato ridondante (meno accessi, 800 byte risparmiato)

Concetto Costr. Acc. Tipo

Persona E 1 S

Residenza R 1 S

Page 23: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle ridondanze : esempioLa situazione per op. 2 : stampa

tutti i dati di una città, incluso numero abitanti, è diversa.

Con ridondanza: 1 accesso tipo L

Senza ridondanza: in media, 5000 accessi tipo L a

Residenza [5000 è ottenuto dividendo il numero di persone (1000000) per il numero di città (200)]

Concetto Costr Acc Tipo

Città E 1 L

Concetto Costr. Acc. Tipo

Città E 1 L

Residenza R 5000 L

Page 24: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Analisi delle ridondanze : esempio

Conclusioni :

supponendo che il costo in scrittura sia doppio rispetto a quello in lettura si può concludere che:

con la ridondanza si hanno 3500 ( 1500x2 in S + 500 in L)accessi al giorno

senza ridondanza si hanno 12000( 5000x2 in S + 2000 in L) accessi al giorno

Pertanto considerando che il risparmio di tempo è notevole conviene lasciare il dato di ridondanza

Page 25: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Eliminazione delle generalizzazioni

I modelli logici tradizionali, tra cui il modello relazionale, non consentono di rappresentare direttamente una generalizzazione

È necessario trasformare le generalizzazioni in entità e/o associazioni

Tre metodi:1. Accorpamento delle figlie della generalizzazione nel

padre2. Accorpamento del padre della generalizzazione nelle

figlie3. Sostituzione della generalizzazione con associazioni

Page 26: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Eliminazione delle generalizzazioni

La soluzione più conveniente si ricava da un’analisi simile a quella fatta per le ridondanze o ci si basa su alcune regole generali.

Questa ristrutturazione ha il vantaggio di generare entità con pochi attributi e quindi di creare strutture logiche di piccole dimensioni.

Page 27: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Partizionamenti o accorpamenti di concetti

Le entità e le relazioni di un modello E-R possono essere partizionate o accorpate con lo scopo di ottenere una maggior efficienza delle operazioni, ossia ridurre il numero di accessi mediante: Partizionamento di entità Eliminazione di attributi multivalore Accorpamento di entità

Page 28: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Partizionamenti o accorpamenti di concetti : esempio

Partizione dell’entità impiegato nel caso in cui le operazioni più frequenti su tale entità riguardano i dati anagrafici o i dati retributivi

Prima

impiegato

codice

livello

stipendio

ritenute

cognome

indirizzo

Data nascita

Page 29: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Partizionamenti o accorpamenti di concetti : esempio

Dopo

Dati anagrafici Dati lavorativiDati impiegato

codice codice

indirizzo

cognome

Data nascita ritenute stipendio

livello

Page 30: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Scelta degli identificatori principali (chiavi primarie)

Questa fase è fondamentale nelle traduzioni verso il modello relazionale poiché le chiavi vengono usate per stabilire legami tra dati in relazioni diverse.

Infatti i sistemi di gestione dei DB richiedono generalmente di specificare una chiave primaria sulla quale costruire delle strutture di dati (indici) per il reperimento dei dati in modo più efficiente.

Page 31: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Scelta degli identificatori principali (chiavi primarie)

Criteri di decisione: Non possono essere attributi con valori nulli È preferibile scegliere un identificatore

costituito da uno o pochi attributi È preferibile scegliere identificatori interni È preferibile usare un identificatore

utilizzato da molte operazioni.

Page 32: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale

Traduzione tra modelli di dati diversi:dallo schema E-R ristrutturato allo schema

logico equivalente in grado di rappresentare le medesime informazioni.

Si fa riferimento ad un modello che: Non contiene generalizzazioni Non contiene attributi multivalore Utilizza solo identificatori primari

Page 33: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale

Per tradurre il modello E-R ristrutturato si tiene conto dei diversi casi che si possono presentare:

Entità e associazioni molti a molti Associazioni uno a molti Associazioni uno a uno Entità con identificatore esterno

Page 34: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale

Per ogni entità viene creata una relazione (tabella) con lo stesso nome avente per attributi i medesimi attributi dell’entità e pe chiave il suo identificatore

Per ogni relazione E-R molti a molti , viene creata una relazione (tabella) con lo stesso nome, avente per attributi quelli della relazione E-R e gli identificatori delle entità coinvolte. Tali identificatori formano la chiave della relazione

Page 35: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale : esempio molti a molti

Lo schema relazione corrispondente:Impiegato(Matricola, Cognome, Stipendio)

Progetto(Codice, Nome, Budget)Partecipazione(Matricola, Codice, DataInizio)

Due vincoli di integrità: tra Matricola e Codice di Partecipazione e Matricola e Codice di Impiegato e Progetto

Impiegato ProgettoPartecipazione(0,N) (1,N)

Nome

Codice

Cognome Stipendio

Matricola

Data inizio

Budget

Page 36: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale : esempio uno a uno

docente cattedratitolare

Nome

Cognome CF annoMonte ore

Nome( 1,1) (1,1)

Se la partecipazione è totale da ambo le parti DOCENTE ( CF, Nome, Cognome, Cattedra, Anno)CATTEDRA (Nome, Monte ore)OppureDOCENTE( CF, Nome, Cognome)CATTEDRA (Nome, Monte ore, Docente, Anno)

Page 37: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

Traduzione verso il modello relazionale : esempio uno a uno

impiegato dipartimentodirezione

StipendioDatainizio Sede Telefono

Nome

NomeCodice

(0,1) (1,1)

Se la partecipazione è parziale su un lato: IMPIEGATO( Codice, Nome, Stipendio) DIPARTIMENTO( Nome, Sede, Codicedirettore, Data inizio)Oppure IMPIEGATO (Codice, Nome, Stipendio,Dipartimento,Sede,Telefono, Datainizio)Se la partecipazione è parziale da ambo le parti: IMPIEGATO (Codice, Nome, Stipendio) DIPARTIMENTO ( Nome, Sede, Telefonare) DIREZIONE (CodiceDirettore, Nomedip, Datainizio)

Page 38: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

La Progettazione Logica

Conclusioni : esistono sul mercato degli strumenti di supporto a tutte le fasi di progettazione di un DB ( strumenti CASE). Tali supporti sono utili in fase di traduzione ma non in fase di ristrutturazione del modello E-R che rimane quindi interamente a carico del progettista.

Page 39: LA PROGETTAZIONE LOGICA Didattica delle applicazioni informatiche mod.B Docente :A.Staiano Specializzanda:P.Fulgieri.

verifica

Prova semistrutturata