• Non ci sono risultati.

PROGETTAZIONE LOGICA

N/A
N/A
Protected

Academic year: 2021

Condividi "PROGETTAZIONE LOGICA"

Copied!
20
0
0

Testo completo

(1)

Basi di dati| Progettazione logica 7{0

Progettazione logica

Obiettivo

: \tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed eciente

Input

:

 schema concettuale

 informazioni sul carico applicativo

 modello logico

Output

:

(2)

Non si tratta di una pura e semplice traduzione per due motivi:

 alcuni aspetti non sono direttamente o univocamente rappresentabili

 e necessario prestare attenzione alle prestazioni Usuale articolazione:

 ristrutturazione dello schema E-R

 traduzione nel modello logico (ed eventuale successiva ristrutturazione)

Basi di dati | Progettazione logica 7{2

Ristrutturazione dello schema E-R Motivazioni

:

 sempli cazione (eliminazione dei costrutti per i quali non esiste una traduzione immediata)

 trasformazione sulla base dei parametri quantitativi

Nota bene

: unso schema E-R ristrutturato non e (piu) uno schema concettuale nel senso stretto del termine, perche

rappresenta i dati tenendo presenti aspetti realizzativi (facilita di

(3)

Analisi delle prestazioni (su schemi E-R)

 le prestazioni non sono valutabili con precisione (perche dipendono da fattori non noti: resto del carico del sistema, parametri sici, caratteristiche del DBMS)

 consideriamo \indici di prestazioni" per spazio e tempo:

spazio

dimensione dei dati

tempo

numero di occorrenze (di entita e relationship) visitate la schematizzazione sul tempo (che utilizzeremo in particolare)

e molto approssimativa

Basi di dati | Progettazione logica 7{4

Informazioni sul carico applicativo Volume dei dati

 numero (medio) di occorrenze di ogni entita e associazione dello schema,

 dimensioni di ciascun attributo (di entita o associazione)

Caratteristiche delle operazioni

 tipo dell'operazione (interattiva o batch),

 frequenza (numero medio di esecuzioni in un certo intervallo di tempo),

(4)

IMPIEGATO AFFERENZA

DIREZIO NE

DIPARTIMENTO

PROGETTO PARTECIPAZIO N E

SEDE

COM POSIZIONE

Età Cognome

Stipendio

Data consegna Nome Budget

Nome Telefono

Città Data inizio

Data afferenza

Indirizzo Via Numero civico

CAP Codice

(0,1) (1,N)

(0,1) (1,1)

(1,1)

(1,N) (0,N)

(1,N)

(1,N)

(0,1)

Basi di dati | Progettazione logica 7{6

Operazione 1:

assegna un impiegato a un progetto.

Operazione 2:

trova i dati di un impiegato, del dipartimento nel quale lavora e dei progetti ai quali partecipa.

Operazione 3:

trova i dati di tutti gli impiegati di un certo dipartimento.

Operazione 4:

per ogni sede, trova i suoi dipartimenti con il cognome del direttore e l'elenco degli impiegati del

dipartimento.

(5)

Tavola dei volumi

ConcettoSede Tipo VolumeE 10

Dipartimento E 80

Impiegato E 2000

Progetto E 500

Composizione R 80

A erenza R 1900

Direzione R 80

Partecipazione R 6000

Tavola delle operazioni Operazione Tipo Frequenza

Op. 1 I 50 al giorno Op. 2 I 100 al giorno Op. 3 I 10 al giorno Op. 4 B 2 a settimana

Basi di dati | Progettazione logica 7{8

Schema di operazione

IMPIEGATO AFFEREN ZA DIPARTIMENTO

PROGETTO PA RTECIPA ZIO N E

Età Cognome

Stipendio

Data consegna Nome Budget

Nome

Data inizio

Data afferenza Codice

(0,1) (1,N)

(0,N)

(1,N)

Telefono

(1,N)

(0,1)

(6)

Tavola degli accessi

Concetto Costrutto Accessi Tipo

Impiegato Entita 1 L

A erenza Relazione 1 L

Dipartimento Entita 1 L

Partecipazione Relazione 3 L

Progetto Entita 3 L

Basi di dati | Progettazione logica 7{10

Ristrutturazione di schemi E-R

 Analisi delle ridondanze

 Eliminazione delle generalizzazioni

 Partizionamento/accorpamento di entita e associazioni

 Scelta degli identi catori primari

(7)

Analisi delle ridondanze

 a seconda delle metodologie seguite, possiamo avere schemi E-R che ammettono ridondanze oppure no

 in questa fase si decide se mantenere le ridondanze e/o se introdurne di nuove

 in uno schema concettuale, possiamo avere ridondanze per:

{

rappresentare informazioni signi cative ma derivate

 in uno schema logico, le ridondanze possono

{

sempli care le interrogazioni

{

appesantire gli aggiornamenti (sia come prestazioni sia come onere di programmazione) e occupare piu spazio

Basi di dati| Progettazione logica 7{12

Forme di ridondanza in uno schema E-R

 attributi derivabili, occorrenza per occorrenza, da altri attributi della stessa entita (o associazione)

 attributi derivabili da attributi di altre entita (o associazioni), di solito attraverso funzioni aggregative (somma, media,

conteggio, ...)

 associazioni derivabili dalla composizione di altre associazioni in presenza di cicli

(8)

ACQUISTO CO M PO SIZIO N E PRODOTTO Importo

totale Prezzo

(1,N) (1,N)

STUDENTE

DO CEN ZA

CORSO

(0,N) (1,N)

FREQ U EN ZA INSEG NA M ENTO PROFESSORE

(1,1) (1,1)

(1,N) (0,N)

PERSONA RESID EN ZA CITTÀ

Numero abitanti

(1,1) (1,N)

FATTURA

Importo netto

Importo lordo IVA

Basi di dati | Progettazione logica 7{14

Persona Residenza

H

H

H

H

H

H











 H H H H H

H Citta

(1,1) (0,N) eNumero Abitanti

Operazione 1:

memorizza una nuova persona con la relativa citta di residenza.

Operazione 2:

stampa tutti i dati di una citta (incluso il numero di abitanti).

(9)

Tavola dei volumi Concetto Tipo VolumeCitta E 200

Persona E 1000000 Residenza R 1000000

Tavola delle operazioni A Operazione Tipo FrequenzaOp. 1 I 500 al giorno

Op. 2 I 10 al giorno

Tavola delle operazioni B Operazione Tipo Frequenza

Op. 1 I 500 al giorno

Op. 2 I 1 al mese

Basi di dati | Progettazione logica 7{16

Tavole degli accessi in presenza di ridondanzaOperazione 1 Concetto Costr. Acc. TipoPersona E 1 S

Residenza R 1 S

Citta E 1 L

Citta E 1 S

Operazione 2

Concetto Costr. Acc. Tipo

Citta E 1 L

Tavole degli accessi inassenza di ridondanza Operazione 1

Concetto Costr. Acc. TipoPersona E 1 S

Residenza R 1 S

Operazione 2

Concetto Costr. Acc. Tipo

Citta E 1 L

Residenza R 5000 L

(10)

Eliminazione delle gerarchie

 il modello relazionale (come gli altri modelli logici) non ha costrutti per rappresentare direttamente le gerarchie

 entita e relationship sono direttamente rappresentabili

 conviene eliminare le gerarchie, sostituendole con entita e relationship

Basi di dati| Progettazione logica 7{18

tre possibilita:

1. accorpamento delle glie della generalizzazione nel genitore 2. accorpamento del genitore della generalizzazione nelle glie 3. sostituzione della generalizzazione con associazioni

(11)

E2 E0

E1

R1

A21 A11

A01 A02

R2

E3

E4

(X,Y)

Basi di dati | Progettazione logica 7{20

E0 R1

A01 A02

R2

E3

E4

ATIPO

E2 E1

R12

A21

R2 E3

E4

A01

A02

R11

A01

A02

(0,Y)

E0 R1

A01 A02

E3

(0,1) (0,1)

A11

A11 A21

(0,1) (0,1)

(12)

 la scelta fra le alternative si puo fare con metodo simile a

quello visto per l'analisi delle ridondanze (attenzione pero: non

e suciente far riferimento al numero di accessi)

 semplici regole generali:

(1) conviene se gli accessi agli attributi di E1 e di E0 (nonche di E2 e E0) sono solitamente contestuali e le operazioni accedono sia alle occorrenze di E1 sia a quelle di E2

(2) e possibile solo se la generalizzazione e completa e conviene se gli accessi a E1 sono distinti da quelli a E2

(3) conviene se gli accessi alle entita glie sono separati dagli accessi al genitore

Basi di dati | Progettazione logica 7{22

 sono possibili soluzioni interemdie

 nel caso di gerarchie a piu livelli, le scelte possono essere diverse ai vari livelli

(13)

Partizionamento/accorpamento di concetti

 si basa su criteri simili a quelli utilizzati per le generalizzazioni

 esempi:

{

partizionamento (verticale) di entita

{

partizionamento (orizzontale) di relationship

{

accorpamento di entita

Basi di dati | Progettazione logica 7{24

IMPIEGATO

Data Nascita Cognome Indirizzo

Livello Stipendio Ritenute

DATI LAVORATIVI Codice

DATI ANAGRAFICI

DATI IM PIEG ATO

Data Nascita Cognome Indirizzo

Livello Stipendio Ritenute

Codice Codice

(1,1) (1,1)

(14)

GIOCATORE CO M POSIZION E SQUADRA

Ruolo

Cognome Nome

Città Data acquisto

(1,N) (1,N)

GIOCATORE SQUADRA

COM PO SIZIONE PRECED ENTE

Ruolo

Cognome Nome

Città

Data acquisto

(0,N) (1,N)

CO M POSIZIO N E ATTUA LE

Data acquisto

(1,1) (1,N)

Data cessione Data cessione

(0,1)

Basi di dati | Progettazione logica 7{26

PERSONA Cognome

Indirizzo

Indirizzo

APPARTAMENTO

PERSONA IN TESTA ZIO N E

Età Cognome

Indirizzo

Interno

Indirizzo Codice fiscale

(1,1) (0,1)

Età

Codice fiscale

Interno

(0,1) (0,1)

(15)

Scelta degli identi catori principali

 e indispensabile nella progettazione nel modello relazionale

 in altri contesti si tratta di una scelta legata alla struttura sica (alla chiave primaria viene associato un cammino d'accesso privilegiato)

Criteri per la scelta:

 assenza di valori nulli

 semplicita

 utilizzo nelle operazioni piu frequenti o importanti

 preferenza per gli identi catori interni

Basi di dati| Progettazione logica 7{28

Traduzione verso il modello relazionale

idea fondamentale:

 le entita diventano relazioni (sugli stessi attributi)

 le relationship diventano relazioni sulle chiavi delle relazioni che rappresentano le entita coinvolte (piu gli attributi propri)

(16)

Entita e relationship molti a molti

IMPIEGATO PA RTECIPA ZIO N E PROGETTO Matricola

Cognome Stipendio

Nome

Codice Data inizio

(0,N) (0,N) Budget

Impiegato

(

Matricola

,

Cognome

,

Stipendio

)

Progetto

(

Codice

,

Nome

,

Budget

)

Partecipazione

(

Matricola

,

Codice

,

DataInizio

)

con vincoli di integrita referenziale tra gli attributi

Matricola

e

Codice

di

Partecipazione

e le chiavi di

Impiegato

e

Progetto

Basi di dati | Progettazione logica 7{30

 puo essere utile ridenominare gli attributi della chiave della relazione che rappresenta la relationship

IMPIEGATO PA RTECIPA ZIO N E PROGETTO Matricola

Cognome Stipendio

Nome

Codice Data inizio

(0,N) (0,N) Budget

Impiegato

(

Matricola

,

Cognome

,

Stipendio

)

Progetto

(

Codice

,

Nome

,

Budget

)

Partecipazione

(

Impiegato

,

Progetto

,

DataInizio

) invece di

(17)

 la ridenominazione e essenziale per le relationship ricorsive:

PRODOTTO CO M PO SIZIO N E

Composto Componente

Codice (0,N)

Costo Nome

(0,N) Quantità

Prodotto

(

Codice

,

Nome

,

Costo

)

Composizione

(

Composto

,

Componente

,

Quantita

)

con due vincoli di integrita referenziale

Basi di dati | Progettazione logica 7{32

Relationship ternarie

DIPARTIMENTO

FORNITORE FORN ITU RA PRODOTTO

(0,N) (1,N)

(1,N) Partita Iva

Nome ditta

Codice

Genere

Nome Telefono Quantità

Fornitore

(

PartitaIVA

,

NomeDitta

)

Prodotto

(

Codice

,

Genere

),

Dipartimento

(

Nome

,

Telefono

)

Fornitura

(

Fornitore

,

Prodotto

,

Dipartimento

,

Quantita

).

(18)

Relationship uno a molti

GIOCATORE CON TRA TTO SQUADRA

Ruolo Cognome

Data nascita Nome

Colori sociali Ingaggio

(1,1) (0,N) Città

 traduzione standard:

Giocatore

(

Cognome

,

DataNascita

,

Ruolo

)

Contratto

(

Giocatore

,

DataNascitaGiocatore

,

NomeSquadra

,

Ingaggio

)

Squadra

(

Nome

,

Citta

,

ColoriSociali

)

 le prime due relazioni hanno la stessa chiave; e possibile fonderle:

Giocatore

(

Cognome

,

DataNascita

,

Ruolo

,

NomeSquadra

,

Ingaggio

)

Squadra

(

Nome

,

Citta

,

ColoriSociali

)

Basi di dati | Progettazione logica 7{34

Entita con identi catore esterno

 sono coinvolte in relationship uno a molti

 si traducono con relazioni che contengono (come parte della chiave) anche la chiave della relazione identi cante;

si rappresenta cos anche la relationship

STUDENTE ISCRIZIO NE UNIVERSITÀ

Nome Città Indirizzo Matricola

Cognome Anno Iscrizione

(1,1) (1,N)

Studente

(

Matricola

,

NomeUniversita

,

Cognome

,

AnnoIscrizione

)

Universita

(

Nome

,

Citta

,

indirizzo

)

(19)

Relationship uno a uno

 varie possibilita, anche sulla base delle cardinalita minime; ad esempio

DIRETTORE DIREZIONE DIPARTIMENTO Codice

Cognome

Stipendio Nome

Sede Data inizio

(1,1) (1,1) Telefono

Direttore

(

Codice

,

Cognome

,

Stipendio

,

DipartimentoDiretto

,

InizioDirezione

)

Dipartimento

(

Nome

,

Telefono

,

Sede

)

Direttore

(

Codice

,

Cognome

,

Stipendio

)

Dipartimento

(

Nome

,

Telefono

,

Sede

,

Direttore

,

InizioDirezione

)

 fondere tutto?

Basi di dati | Progettazione logica 7{36

IMPIEGATO DIREZION E DIPARTIMENTO Codice

Cognome

Stipendio Nome

Data inizio Sede

(0,1) (1,1) Telefono

 una possibilita privilegiata:

Impiegato

(

Codice

,

Cognome

,

Stipendio

)

Dipartimento

(

Nome

,

Telefono

,

Sede

,

Direttore

,

InizioDirezione

)

(20)

E1

E2

E3

E5

E4

E6 R1

R2 R12

R3

R4

R5

A12 A11

A51 A52

AR3

AR5

A61 A62 A63

A41 A42 AR21

AR22 A21

A22

A31 A32

(1,1)

(1,1)

(0,N)

(0,N)

(0,N)

(0,N)

(1,N)

(1,N)

(1,N) (0,1)

(0,1)

(0,1) (1,1)

E1

(

A11, A51, A12

)

E2

(

A21, A11, A51, A22

)

E3

(

A31, A32

)

E4

(

A41, A42

),

E5

(

A51, A52, A61R3, A62R3, AR3, A61R4, A62R4, A61R5, A62R5, AR5

)

E6

(

A61, A62, A63

)

R2

(

A21, A11, A51, A31, A41, AR21, AR22

)

Basi di dati| Progettazione logica 7{38

Riferimenti

Documenti correlati

Fare un lavoro che non si detesti, non lavorare troppo, coltivare relazioni di qualità, fa- re volontariato, contribuire alla colletti- vità perché questo rende più felici”.

Assessorato alle Politiche per la Salute della Provincia Autonoma di Trento Azienda Provinciale per i Servizi Sanitari Ordine dei Medici, dei Chirurghi e degli Odontoiatri..

• l’entità padre partecipa con cardinalità (0, 1), anche se la generalizzazione è totale (perché, comunque, un’istanza del padre potrebbe essere associata solo ad alcune

Spiegare bene la

•  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). •  è

Risoluzione

• le associazioni (ovvero le relazioni E-R) diventano tabelle sugli identificatori delle entità coinvolte (più gli attributi propri).. Impiegato(Matricola, Cognome,

[r]