• Non ci sono risultati.

uno schema E-R ristrutturato non è (più) uno schema concettuale nel senso stretto del termine Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 8 8 • Ma

N/A
N/A
Protected

Academic year: 2021

Condividi "uno schema E-R ristrutturato non è (più) uno schema concettuale nel senso stretto del termine Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 8 8 • Ma"

Copied!
69
0
0

Testo completo

(1)

Capitolo 8:

Progettazione logica Progettazione logica

25/3/2003

Atzeni, Ceri, Paraboschi, Torlone Atzeni, Ceri, Paraboschi, Torlone

Basi di dati Basi di dati

McGraw-Hill, 1996-2002 McGraw-Hill, 1996-2002

modificato per il corso di modificato per il corso di

Laboratorio di Sistemi Informativi Laboratorio di Sistemi Informativi

(2)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 2

Progettazione fisica

Schema concettuale Requisiti della base di dati

Progettazione logica

Schema logico

Schema fisico

Progettazione concettuale

(3)

Obiettivo della Obiettivo della

progettazione logica progettazione logica

"tradurre" lo schema concettuale in uno

schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente

(4)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 4

Dati di ingresso e uscita Dati di ingresso e uscita

Ingresso:

schema concettuale

informazioni sul carico applicativo

modello logico (per noi il modello relazionale)

Uscita:

schema logico

documentazione associata

(5)

alcuni aspetti dello schema concettuale (gerarchie) non sono direttamente

rappresentabili

è necessario considerare le prestazioni

Non si tratta di una pura e semplice traduzione Non si tratta di una pura e semplice traduzione

(6)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 6

Traduzione nel modello logico Ristrutturazione dello

schema E-R

Schema E-R Carico

applicativo

Schema E-R ristrutturato Modello

logico

Schema logico

(7)

Ristrutturazione schema E-R 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

(8)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 8

Ma:

le prestazioni non sono valutabili con precisione su uno schema concettuale!

Per ottimizzare il risultato abbiamo bisogno di Per ottimizzare il risultato abbiamo bisogno di

analizzare le prestazioni a questo livello analizzare le prestazioni a questo livello

(9)

Consideriamo Consideriamo

“indicatori” dei parametri che regolano le prestazioni

“indicatori” dei parametri che regolano le prestazioni

spazio: numero di occorrenze previste

tempo: numero di occorrenze (di entità e relationship) visitate durante un’operazione

(10)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 10

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

(11)

Tavola dei volumi Tavola dei volumi

Concetto Tipo Volume

Sede E 10

Dipartimento E 80

Impiegato E 2000

Progetto E 500

Composizione R 80

Afferenza R 1900

Direzione R 80

Partecipazione R 6000

stiamo quindi supponendo una media di:

6000/2000=3 progetti per impiegato

1900/80=23.75 impiegati per dimpartimento

(12)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 12

Esempio di valutazione di costo 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

(13)

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

(14)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 14

Tavola degli accessi Tavola degli accessi

Concetto Costrutto Accessi Tipo

Impiegato Entità 1 L

Afferenza Relazione 1 L Dipartimento Entità 1 L Partecipazione Relazione 3 L

Progetto Entità 3 L

numero medio di progetti per impiegato

L=lettura S=scrittura

(15)

Attività della ristrutturazione Attività della ristrutturazione

Analisi delle ridondanze

Eliminazione delle generalizzazioni

Partizionamento/accorpamento di entità e relationship

Scelta degli identificatori primari

(16)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 16

Analisi delle ridondanze 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)

Ridondanze Ridondanze

Vantaggi

semplificazione delle interrogazioni

Svantaggi

appesantimento degli aggiornamenti

maggiore occupazione di spazio

(18)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 18

Forme di ridondanza in uno schema E-R 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

(19)

Attributo derivabile Attributo derivabile

Impiegato

Importo netto

IVA

Importo lordo

(20)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 20

Attributo derivabile da Attributo derivabile da

altra entità altra entità

Importo totale

Composizione

Acquisto Prodotto

Prezzo

(1,N) (1,N)

(21)

Corso Studente

Frequenza (0,N)

(1,N)

Professore

Insegnamento (1,1)

(1,1)

Docenza (0,N)

(1,N) Ridondanza dovuta a

Ridondanza dovuta a ciclo

ciclo

(22)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 22

Analisi di una ridondanza Analisi di una ridondanza

Residenza

Persona Città

Numero abitanti

(23)

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 Volume

Città E 200

Persona E 1000000

Residenza R 1000000

(24)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 24

Presenza di ridondanza Presenza di ridondanza

Concetto Costrutto Accessi Tipo

Persona Entità 1 S

Residenza Relazione 1 S

Città Entità 1 L

Città Entità 1 S

Concetto Costrutto Accessi Tipo

Città Entità 1 L

Operazione 1

Operazione 2

(25)

Assenza di ridondanza Assenza di ridondanza

Concetto Costrutto Accessi Tipo

Persona Entità 1 S

Residenza Relazione 1 S

Concetto Costrutto Accessi Tipo

Città Entità 1 L

Residenza Relazione 5000 L

Operazione 1

Operazione 2

(26)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 26

Presenza di ridondanza 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

(27)

Assenza di ridondanza 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

(28)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 28

Risultati dell'analasi della ridondanza Risultati dell'analasi della ridondanza

La soluzione con ridondanza è preferibile a quella senza ridondanza.

In realtà bisognerebbe considerare la minore

occupazione di memoria in assenza di ridondanza, ma in questo caso è trascurabile.

(29)

Attività della ristrutturazione Attività della ristrutturazione

Analisi delle ridondanze

Eliminazione delle generalizzazioni

Partizionamento/accorpamento di entità e relazioni

Scelta degli identificatori primari

(30)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 30

Eliminazione delle gerarchie 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

(31)

Tre possibilità Tre possibilità

1. accorpamento delle figlie della generalizzazione nel genitore

2. accorpamento del genitore della generalizzazione nelle figlie

3. sostituzione della generalizzazione con relazioni

(32)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 32

E0 R1

A01 A02

E3

R2

E4 E1 E2

A11 A21

(33)

A11 A21

TIPO (0,1)

(0,1)

(0,..) E0

A01 A02

R1 E3

R2

E4

(34)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 34

E0 R1

A01 A02

E3

R2

E4 E1 E2

A11 A21

(35)

E3

R2

E4 E1 E2

A11 A21

R12 R11

A01 A02 A01 A02

(36)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 36

E0 R1

A01 A02

E3

R2

E4 E1 E2

A11 A21

(37)

RG1 RG2

(1,1) (0,1) (1,1)

(0,1)

E0

A01 A02

E1 E2 R2

A11 A21 E4

R1 E3

(38)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 38

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

(39)

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

4. sono anche possibili soluzioni “ibride” , soprattutto in gerarchie a più livelli

(40)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 40

E0 R1

A01 A02

E3

R2

E4 E1 E2

A11 A21

(41)

E0

A01 A02

E2 R2

A21 E4

R1 E3

RG2

(1,1) (0,1) A11

TIPO (0,1)

(42)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 42

Attività della ristrutturazione Attività della ristrutturazione

Analisi delle ridondanze

Eliminazione delle generalizzazioni

Partizionamento/accorpamento di entità e relazioni

Scelta degli identificatori primari

(43)

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

(44)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 44

Ristrutturazioni, casi principali Ristrutturazioni, casi principali

partizionamento entità / relationship

eliminazione di attributi multivalore

accorpamento di entità/ relationship

(45)

Impiegato

Livello

Stipendio

Ritenute Cognome

Indirizzo

nascitaData

Codice

Partizionamento verticale di entità (prima) Partizionamento verticale di entità (prima)

(46)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 46

Livello Stipendio

Ritenute Cognome

Indirizzo Data nascita

Codice

Dati R

anagrafici Dati

lavorativi

(1,1) (1,1)

Partizionamento verticale di entità (dopo) Partizionamento verticale di entità (dopo)

(47)

Agenzia

Indirizzo Città

Telefono Nome

(1,N)

Eliminazione attributi multivalore (prima) Eliminazione attributi multivalore (prima)

(48)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 48

Numero

Indirizzo

Nome

Utenza

Agenzia Telefono

(1,N) (1,1)

Città

Eliminazione attributi multivalore (dopo) Eliminazione attributi multivalore (dopo)

(49)

Indirizzo Interno

Cognome

Indirizzo Data nascita

Codice fiscale

Intestazione

Persona Appartamento

(0,1) (1,1)

Accorpamenti di entità (prima) Accorpamenti di entità (prima)

(50)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 50

Persona

Interno

Indirizzo Cognome

Indirizzo

nascitaData

Codice fiscale

(0,1)

(0,1)

Accorpamenti di entità (dopo) Accorpamenti di entità (dopo)

(51)

Cognome

Composizione

Giocatore Squadra

(1,N) (1,N)

Ruolo Città Nome

Data

acquisto Data cessione (0,1)

Partizionamento orizzontale di rel. (prima) Partizionamento orizzontale di rel. (prima)

(52)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 52

Cognome

Comp.

passata

Giocatore Squadra

(1,N) (1,N)

Ruolo Nome

Città Data

acquisto Data cessione Comp.

attuale Data

acquisto

(1,1) (1,N)

Partizionamento di rel. (dopo) Partizionamento di rel. (dopo)

(53)

Attività della ristrutturazione Attività della ristrutturazione

Analisi delle ridondanze

Eliminazione delle generalizzazioni

Partizionamento/accorpamento di entità e relazioni

Scelta degli identificatori primari

(54)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 54

Scelta degli identificatori principali Scelta degli identificatori principali

operazione indispensabile per la traduzione nel modello relazionale

Criteri

assenza di opzionalità

semplicità

utilizzo nelle operazioni più frequenti o importanti

(55)

Se nessuno degli identificatori soddisfa i requisiti visti?

Se nessuno degli identificatori soddisfa i requisiti visti?

Si introducono nuovi attributi (

Si introducono nuovi attributi (codicicodici) contenenti valori ) contenenti valori speciali generati appositamente per questo scopo

speciali generati appositamente per questo scopo

(56)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 56

Traduzione verso il Traduzione verso il modello relazionale modello relazionale

idea di base:

le entità diventano tabelle sugli stessi attributi

le associazioni (ovvero le relazioni E-R) diventano tabelle sugli identificatori delle entità coinvolte (più gli attributi propri)

(57)

Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget)

Partecipazione(Matricola, Codice, DataInizio)

Partecipazione

(0,N) (1,N)

Cognome

Stipendio

Matricola

Impiegato

Codice Nome

Budget Progetto Data inizio

Entità e relationship molti a molti Entità e relationship molti a molti

(58)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 58

Entità e relationship molti a molti 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

(59)

Composizione

Prodotto

Composto Componente

Costo Nome Codice

(0,N) (0,N)

Prodotto(Codice, Nome, Costo)

Composizione(Composto, Componente, Quantità)

Relationship ricorsive Relationship ricorsive

Quantità

(60)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 60

Nome

Fornitore Prodotto

Dipartimento Fornitura

Partita IVA Quantità Genere Codice

Nome Telefono

(0,N) (1,N)

(1,N)

Relationship n-arie Relationship n-arie

Fornitore(PartitaIVA, Nome) Prodotto(Codice, Genere) Dipartimento(Nome, Telefono)

Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)

(61)

Cognome

Giocatore Contratto Squadra

nascitaData Ingaggio Città Nome

(1,1) (0,N)

Ruolo Colori sociali

Relationship uno a molti Relationship uno a molti

Giocatore(Cognome, DataNascita, Ruolo)

Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio) Squadra(Nome, Città, ColoriSociali)

corretto?

(62)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 62

Soluzione più compatta 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

(63)

Iscrizione

Studente Università

Cognome Matricola

AnnoDiCorso

Nome

Indirizzo

(1,1) (1,N)

Città

Entità con identificazione esterna Entità con identificazione esterna

Studente(Matricola, Università, Cognome, AnnoDiCorso) Università(Nome, Città, Indirizzo)

la chiave esterna funge anche da chiave primaria

(64)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 64

Direttore Direzione Dipartimento

Cognome Codice Sede Nome

Data inizio

(1,1) (1,1)

Stipendio Telefono

Relationship uno a uno Relationship uno a uno

varie possibilità:

fondere da una parte o dall'altra

accorpare tutto in una unica entità

(65)

Direttore Direzione Dipartimento

Cognome Codice Sede Nome

Data inizio

(0,1) (1,1)

Stipendio Telefono

Una possibilità privilegiata Una possibilità privilegiata

Impiegato (Codice, Cognome, Stipendio)

Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)

con vincolo di integrità referenziale, senza valori nulli

(66)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 66

Telefono

Nome Cognome

CAP Codice

(1,1) (0,1)

(1,N) (0,1)

(0,1)

(1,1)

(1,N) (0,N)

(1,N)

Città Indirizzo

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome Budget

Data

Via

(67)

Schema finale Schema finale

Dipartimento(Nome, Telefono, Direttore, Sede) Impiegato(Codice, Cognome, Dipartimento*, Data*)

Partecipazione(Impiegato, Progetto) Progetto(Nome, Budget)

Sede(Città, Via, CAP)

(68)

25/3/2003 Atzeni-Ceri-Paraboschi-Torlone, Basi

di dati, Capitolo 8 68

Documentazione dello schema logico Documentazione dello schema logico

Come per lo schema concettuale, anche per lo schema logico è necessaria una documentazione di supporto.

Gran parte della documentazione dello schema

concettuale si può riutilizzare nello schema logico (descrizioni attributi, vincoli di integrità, regole di derivazione)

Serve nuova documentazione per i vincoli di integrità referenziale introdotti dalla traduzione al modello

relaizionale.

(69)

Esempio di documentazione Esempio di documentazione

Matricola Cognome Stipendio

Codice Nome Budget

Impiegato Progetto DataInizio

   

 

     

   

Riferimenti

Documenti correlati

L’incontro è aperto alla partecipazione di docenti universitari, avvocati, studiosi e operatori

L’incontro è aperto alla partecipazione di docenti universitari, avvocati, studiosi e operatori

mettono la lettura di questi li b r i , cooperano alla rovina della civile società e a danno della Chiesa quei maestri, quei superiori che trascurano d ’im­.. pedire

Le Olimpiadi prevedono una fase scolastica (in ciascun istituto scolastico partecipante), una fase regionale, una finale nazionale e la gara internazionale che designerà

Si rappresenti un insieme di nu- meri mediante una lista in cui il campo chiave di ogni oggetto della lista contiene un elemento dell’insieme.. la lista che rappresenta l’insieme non

Non si tratta di un Gruppo di lavoro riconosciuto ufficialmente ma la stesura della Procedura P27 Prevenzione e Gestione degli atti di violenza nei luoghi di lavoro definisce

 Riassumendo, in C/C++ il campo di visibilità degli Riassumendo, in C/C++ il campo di visibilità degli identificatori e, come vedremo, il tempo di vita degli identificatori e,

•  "tradurre" lo schema concettuale in uno schema logico che rappresenti.. gli stessi dati in maniera corretta