Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati!...

59
Corso di Basi di Dati Progettazione Logica Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Transcript of Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati!...

Page 1: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Corso di Basi di Dati

!

Progettazione Logica !

Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica

Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazioneRisultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione logica

Page 3: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

L’obiettivo della progettazione logica è la realizzazione del modello logico (es. relazionale) a partire dalle informazioni del modello E-R.

Progettazione logica

DIAGRAMMA E-R TAVOLA VOLUMI ANALISI COSTI

PROGETTAZIONE LOGICA

Modello Relazionale

Page 4: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Progettazione logica

Page 5: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Progettazione logica

DIPENDENTE(Nome, AnnoAssunzione, Skill, Tipo) !PROGETTO(Titolo, Budget, NomeDirettore) !RELEASE(Numero, TitoloProgetto, Data) !PARTECIPAZIONE(NomeDipendente, NomeProgetto, MesiUomo)

Page 6: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Una possibilita’ (sconsigliata, ma veloce) è quella di tradurre ogni entita’ ed ogni relazione del modello E-R con una tabella corrispondente … !!PROBLEMI: !➢ Efficienza à Quante tabelle sono generate?

Efficienza delle operazioni sui dati? !➢ Correttezza à Come si possono tradurre le

generalizzazioni? Non esiste un costrutto equivalente nel modello E-R …

Progettazione logica

Page 7: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Per garantire la qualità dello schema prodotto, la progettazione logica tipicamente include due step: !➢ Ristrutturazione del modello concettuale à

modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. !

➢ Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale …

Progettazione logica

Page 8: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Per garantire la qualità dello schema prodotto, la progettazione logica tipicamente include due step: !➢ Ristrutturazione del modello concettuale à

modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. !

➢ Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale …

Progettazione logica

Page 9: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Prima di tradurre il modello E-R, è necessario ristrutturarlo per motivi di correttezza/efficienza: !!!➢ Eliminazione delle generalizzazioni !➢ Eliminazione degli attributi multi-valore !➢ Partizionamento/accorpamento di concetti !➢ Scelta degli identificatori !➢ Analisi delle ridondanze

Progettazione logica

Page 10: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

E0

E1

Progettazione logica

E2

A01 A02

A11A21

SOLUZIONE 1: Accorpamento delle entità figlie nell’entità genitore (con relativi attributi/relazione)…

E0

A01 A02

A11 A21

ATIPO

Attributo aggiunto …

Page 11: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

E0

E1

Progettazione logica

E2

A01 A02

A11A21

SOLUZIONE 2: Accorpamento delle entità genitore nelle entità figlie (con relativi attributi/relazione)…

R1

E1 E2

A11A21

A01 A02

R1

A01 A02

R1

Page 12: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Quale traduzione utilizzare? Dipende … !➢ SOL1 introduce valori nulli ed un attributo

aggiuntivo, ma è conveniente quando non ci sono troppe distinzioni tra E0, E1 ed E2 … !

➢ SOL2 è possibile solo se la generalizzazione è totale, introduce valori nulli, ma è conveniente quando ci sono operazioni che coinvolgono solo E1 ed E2 ma non l’entita’ genitore E0 …

Progettazione logica

Page 13: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

E0

E1

Progettazione logica

E2

A01 A02

A11A21

SOLUZIONE 3: Sostituzione delle generalizzazione con relazioni tra entità genitore ed entità figlie…

R1

E0

E1 E2

A01 A02

A11A21

R1

R01

R02

(0,1) (0,1)

(1,1)(1,1)

Page 14: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

➢ SOL3 non introduce valori nulli, ed è utile quando ci sono operazioni che si riferiscono solo ad entità di E1, E2 ed E0, ma si presenta la necessità di introdurre dei vincoli: !◇ Un’occorrenza di E0 non può partecipare in

contemporanea ad R01 ed R02. !

◇ Se la generalizzazione è totale, ogni occorrenza di E0 deve appartenere ad R01 o R02 …

Progettazione logica

Page 15: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Progettazione logica

SkillTipo

Page 16: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Prima di tradurre il modello E-R, e’ necessario ristrutturarlo per motivi di correttezza/efficienza: !! !➢ Eliminazione delle generalizzazioni !➢ Eliminazione degli attributi multi-valore !➢ Partizionamento/accorpamento di concetti !➢ Scelta degli identificatori !➢ Analisi delle ridondanze

Progettazione logica

Page 17: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

E0

A01 A02

A03

(1,N)

E0 A03R(1,1)(1,N)

Gli attributi multivalore non sono presenti nel modello logico, ma possono essere sostituiti introducendo una relazione uno-a-molti …

Non introduce valori nulli, ma aumenta il numero di entita’ presenti nel sistema …

A01 A02

Page 18: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

PERSONA

Nome Cognome

Telefono

(1,N)

PERSONA TELEFONOR(1,1)(1,N)

Nome Cognome

Gli attributi multivalore non sono presenti nel modello logico, ma possono essere sostituiti introducendo una relazione uno-a-molti …

Page 19: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Prima di tradurre il modello E-R, e’ necessario ristrutturarlo per motivi di correttezza/efficienza: !!!➢ Eliminazione delle generalizzazioni !➢ Eliminazione degli attributi multi-valore !➢ Partizionamento/accorpamento di concetti !➢ Scelta degli identificatori !➢ Analisi delle ridondanze

Progettazione logica

Page 20: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Per una dato modello E-R, è possibile ridurre il numero di accessi: !➢separando attributi di un concetto che vengono

acceduti separatamente à partizionamenti !

➢raggruppando attributi di concetti diversi acceduti insieme à accorpamenti

!➢ E’ necessario avere indicazioni sul volume dei dati

per effettuare partizionamenti/accorpamenti.

Progettazione logica

Page 21: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Gli accorpamenti di entità riguardano in genere associazioni uno-ad-uno…

Progettazione logica

PERSONA ABITAZIONE(1,1)(0,1)

Codice NomePROPRIETA’

Cognome Indirizzo Interno

PERSONA

Codice Nome Cognome

Indirizzo

Interno

Gli accessi all’entità Persona riguardano sempre i dati dell’Abitazione …

Page 22: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Partizionamento verticale di un’entità sulla base dei suoi attributi …

Progettazione logica

STUDENTE DATI UNIVERSITA(1,1)(1,1)

CF NomeDATI

Cognome Matricola Corso di Laurea

STUDENTE

CF Nome Cognome

Matricola

Corso di Laurea

Le operazioni che riguardano i dati anagrafici non riguardano i dati universitari…

Page 23: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Prima di tradurre il modello E-R, e’ necessario ristrutturarlo per motivi di correttezza/efficienza: !!!➢ Eliminazione delle generalizzazioni !➢ Eliminazione degli attributi multi-valore !➢ Partizionamento/accorpamento di concetti !➢ Scelta degli identificatori

!➢ Analisi delle ridondanze

Progettazione logica

Page 24: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Nei casi di entità con più identificatori, è necessario sceglierne uno: !!➢ Evitare attributi con valori nulli.

!➢ Scegliere l’ identificatore minimale.

!➢ Preferire identificatori interni ad identificatori

esterni che coinvolgono molte entità. !➢ Preferire identificatori utilizzati da molte

operazioni per l’accesso all’entità.

Progettazione logica

Page 25: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Prima di tradurre il modello E-R, e’ necessario ristrutturarlo per motivi di correttezza/efficienza: !! !➢ Eliminazione delle generalizzazioni !➢ Eliminazione degli attributi multi-valore !➢ Partizionamento/accorpamento di concetti !➢ Scelta degli identificatori !➢ Analisi delle ridonanze

Progettazione logica

Page 26: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Nel modello E-R, potrebbero essere presenti ridondanze sui dati, ossia informazioni significative ma derivabili da altre già presenti nel modello E-R. !➢ Vantaggi delle ridondanze: ◇ Operazioni sui dati (spesso) più efficienti

!➢ Svantaggi delle ridondanze: ◇ Maggiore occupazione di memoria ◇ Maggiore complessità degli aggiornamenti

Page 27: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Le ridondanze in un diagramma E-R possono presentarsi in varie forme:

STIPENDIO

Lordo Netto Tasse

ATTRIBUTI DERIVABILI

Lo stipendio netto si può ricavare dal lordo e dalle tasse.

PERSONA CITTARESIDENTI

Codice FiscaleCodice

(1,1)

Nome

(1,N)

Descrizione Numero Abitanti

Il Numero Abitanti si può ricavare contando le Persone

Page 28: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

In questa fase, è necessario valutare cosa fare delle ridondanze …

PERSONA CITTARESIDENTI

Codice FiscaleCodice

(1,1)

Nome

(1,N)

Descrizione Numero Abitanti

Il Numero Abitanti si puo’ ricavare contando le Persone

SOLUZIONE1: Eliminare l’attributo NumeroAbitanti !SOLUZIONE2: Conservare l’attributo nello schema.

Page 29: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Per scegliere cosa fare di un attributo ridondante, si puo’ utilizzare l’analisi del modello E-R che abbiamo visto nella progettazione concettuale. !1. Sia S lo schema E-R senza ridondanze !1. Sia Srid lo schema E-R con ridondanze

!2. Si calcolano il costo e l’occupazione di memoria

di entrambi gli schemi: <c(S),m(S)> e <c(Srid), m(Srid)> !

3. Si confrontano c(S)/c(Srid) e |m(s) – m(Srid)|

Page 30: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Per effettuare l’analisi del modello E-R, è necessario disporre delle tavole dei volumi e delle operazioni. !◇ Operazione1: Memorizza una nuova persona (200 volte/

giorno). !◇ Operazione2: Visualizza tutti i dati di una città, incluso il

numero di abitanti (5 volte/giorno)

Operazione Tipo Frequenza

Operazione1 I 200

Operazione2 I 5

TAVOLA delle OPERAZIONI

Page 31: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Per effettuare l’analisi del modello E-R, è necessario disporre delle tavole dei volumi e delle operazioni.

Concetto Tipo Volume

Citta’ E 100

Persona E 500000

Residenti R 500000

TAVOLA dei VOLUMI

Assumiamo che le informazioni sui volumi siano contenute nelle specifiche dei dati …

Page 32: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Analisi dello schema Srid (caso con ridondanza): !Operazione 1: frequenza 200 volte/giorno

Concetto Costrutto Accessi Tipo

Persona Entita’ 1 W

Residenti Relazione 1 W

Citta’ Entita’ 1 W

TAVOLA DEGLI ACCESSI

c(Op1)= 200*1*(3*2)=1200

wI=1

α=2

Page 33: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Analisi dello schema Srid (caso con ridondanza): !Operazione 2: frequenza 5 volte/giorno

Concetto Costrutto Accessi Tipo

Citta’ Entita’ 1 L

TAVOLA DEGLI ACCESSI

c(Op2)= 5*1*(0*2 +1)=5

wI=1

α=2

Page 34: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Analisi dello schema S (caso senza ridondanza): !Operazione 1: frequenza 200 volte/giorno

Concetto Costrutto Accessi Tipo

Persona Entita’ 1 W

Residenti Relazione 1 W

TAVOLA DEGLI ACCESSI

c(Op1)= 200*1*(2*2 +0)=800

wI=1

α=2

Page 35: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Analisi dello schema S (caso senza ridondanza): !Operazione 2: frequenza 5 volte/giorno

Concetto Costrutto Accessi Tipo

Citta’ Entita’ 1 L

Residenza Relazione 5000 L

TAVOLA DEGLI ACCESSI

c(Op2)= 5*1*(0*2 +5001)=25005

wI=1

α=2

Page 36: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Riassumendo: !➢ c(Srid) = c(Op1) + c(Op2) = 1200 + 5 ~ 1200

!➢ c(S) = c(Op1) + c(Op2) = 800 + 25005 ~ 26000 !Vediamo ora l’occupazione di memoria: !➢ m(S) = X (byte) !➢ m(Srid) = X + 100 *4 = X+ 400 (byte)

Il campo aggiuntivo richiede 4 byteVolume dell’entita’ Citta

Page 37: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Riassumendo, la presenza della ridondanza: !➢ Introduce un overhead di memoria di 400 byte

!➢ Migliora lo speedup delle operazioni di un fattore

26000/1200 ~ 20! !Risultato dell’analisi delle ridondanze à In questo caso, è conveniente conservare (o nel caso introdurre) l’attributo Numero Abitanti! !!

Page 38: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Per garantire la qualita’ dello schema prodotto, la progettazione logica tipicamente include due step: !➢ Ristrutturazione del modello concettuale à

modificare lo schema E-R per semplificare la traduzione ed ottimizzare il progetto. !

➢ Traduzione nel modello logico à traduzione dei costrutti del modello E-R nei costrutti del modello relazionale …

Progettazione logica

Page 39: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

La progettazione logica deve tradurre i costrutti del modello E-R nei costrutti del modello relazionale, garantendo l’equivalenza dei modelli … !In pratica: !➢ Le entità diventano tabelle sugli stessi attributi.

!➢ Le relazioni del modello E-R diventano tabelle

sugli identificatori delle entità coinvolte (più gli attributi propri),.. ma sono possibili traduzioni differenti sulla base delle cardinalità in gioco!

Progettazione logica

Page 40: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO

Matricola Nome

Traduzione di entità con identificatore interno

Cognome

Data Nascita

IMPIEGATO(Matricola, Nome, Cognome, DataNascita)

Le entità del modello E-R si traducono in tabelle del modello relazionale. L’identificatore del modello E-R diventa la chiave primaria della tabella.

Page 41: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Traduzione di entità con identificatore esterno

Le entità con identificatore esterno si traducono in una tabella che include tra le chiavi gli identificatori dell’entita’ esterna.

STUDENTE UNIVERSITA

NomeNome

(1,1)

Cognome

(1,N)

Citta IndirizzoMatricola

Page 42: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Traduzione di entità con identificatore esterno

STUDENTE UNIVERSITA

NomeNome

(1,1)

Cognome

(1,N)

Citta IndirizzoMatricola

STUDENTE(Matricola, NomeUniversita, Nome, Cognome) !UNIVERSITA(Nome, Citta, Indirizzo)

Page 43: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO PROGETTOLAVORO

MatricolaCodice

(0,N)

DataCognome

(0,N)

Descrizione Budget

Traduzione di relazioni molti-a-molti

➢ Ogni entita’ diventa una tabella con lo stesso nome, stessi attributi e per chiave il suo identificatore. !➢ Ogni relazione diventa una tabella, con gli stessi attributi e come chiave gli identificatori delle entita’ coinvolte.

Page 44: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO PROGETTOLAVORO

MatricolaCodice

(0,N)

DataCognome

(0,N)

Descrizione Budget

Traduzione di relazioni molti-a-molti

IMPIEGATO(Matricola, Cognome) !PROGETTO(Codice, Descrizione, Budget) !LAVORO(Matricola,Codice, Data)

Vincoli di integrita’ tra gli attributi

Page 45: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO PROGETTOLAVORO

MatricolaCodice

(0,N)

DataCognome

(0,N)

Descrizione Budget

Traduzione di relazioni molti-a-molti

IMPIEGATO(Matricola, Cognome) !PROGETTO(Codice, Descrizione, Budget) !LAVORO(MatImpiegato,CodProgetto, Data)

E’ possibile ridenonimare gli attributi della relazione

Page 46: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

GIOCATORE SQUADRACONTRATTO

Nome Nome

(1,1)

IngaggioCognome

(0,N)

Citta’ Sede

Traduzione di relazioni uno-a-molti

Sono possibili due traduzioni: !1. Traducendo la relazione come una tabella separata (come

nel caso delle relazioni molti-a-molti). !2. Inglobando la relazione nell’entita’ con card. massima 1.

Ruolo

Page 47: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

GIOCATORE SQUADRACONTRATTO

Nome Nome

(1,1)

IngaggioCognome

(0,N)

Citta’ Sede

Traduzione di relazioni uno-a-molti

GIOCATORE(Nome, Cognome, Ruolo) !SQUADRA(Nome, Citta’, Sede) !CONTRATTO(Nome, Cognome, NomeSquadra,Ingaggio)

TRADUZIONE 1

Ruolo

Page 48: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

GIOCATORE SQUADRACONTRATTO

Nome Nome

(1,1)

IngaggioCognome

(0,N)

Citta’ Sede

Traduzione di relazioni uno-a-molti

GIOCATORE(Nome, Cognome, Ruolo, NomeSquadra, Ingaggio) !SQUADRA(Nome, Citta’, Sede)

TRADUZIONE 2

Ruolo

Page 49: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

GIOCATORE SQUADRACONTRATTO

Nome Nome

(_,1)

IngaggioCognome

(0,N)

Citta’ Sede

Traduzione di relazioni uno-a-molti

Cosa accade se vario la cardinalità min. di GIOCATORE? !➢ cardMin=0 à Soluzione 1 preferibile !

➢ cardMin=1 à Soluzione 2 preferibile

Ruolo

Page 50: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(_,1)

DataCognome

(_,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

Sono possibili 3 diverse alternative, in base alla cardinalità minima delle due entità in gioco …

Stipendio

Page 51: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(1,1)

DataCognome

(1,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

➢ Caso 1: Cardinalità obbligatorie per entrambe le entità (cardMin pari ad 1 per entrambe). !

Si traduce il modello inglobando la relazione in una delle due entità (traduzioni simmetriche).

Stipendio

Page 52: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(1,1)

DataCognome

(1,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

IMPIEGATO(Nome, Cognome, Stipendio, Data, NomeUfficio) !UFFICIO(Nome, Citta’, Sede)

Stipendio

In alternativa, è possibile inglobare la relazione DIREZIONE nell’entita’ UFFICIO …

Page 53: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(0,1)

DataCognome

(1,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

➢ Caso 2: Partecipazione obbligatoria per una delle entità (cardMax=1 per una delle due). !

Si traduce il modello inglobando la relazione nell’entità che ha partecipazione obbligatoria …

Stipendio

Page 54: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(0,1)

DataCognome

(1,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

IMPIEGATO(Nome, Cognome, Stipendio) !UFFICIO(Nome, Citta’, Sede, Data, NomeDirettore, CognomeDirettore,)

Stipendio

Page 55: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(0,1)

DataCognome

(0,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

➢ Caso 3: Partecipazione facoltativa per entrambe le entità (cardMin pari a 0 per entrambe).

Si traduce il modello traducendo la relazione come una tabella a sè stante (analogo del caso uno-a-molti).

Stipendio

Page 56: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

IMPIEGATO UFFICIODIREZIONE

Nome Nome

(0,1)

DataCognome

(0,1)

Citta’ Sede

Traduzione di relazioni uno-a-uno

IMPIEGATO(Nome, Cognome, Stipendio) !UFFICIO(Nome, Citta’, Sede) !DIREZIONE(NomeUfficio, NomeDirettore, CognomeDirettore, Data)

Stipendio

Page 57: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

Come per la fase di progettazione concettuale, è necessario corredare lo schema logico di opportuna documentazione perchè non tutti i vincoli sono esprimibili nello schema logico: !➢ Tabella delle business rules (vista in precedenza)

!➢ Insieme dei vincoli di integrità referenziali ◇ Rappresentati attraverso tabella ◇ Rappresentati in maniera grafica (diagramma logico).

Page 58: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Progettazione logica

!IMPIEGATO( Nome, Cognome, Stipendio)

!DIREZIONE( NumUfficio, NomeDir, CognomeDir, Data)

!UFFICIO( Nome, Citta, Sede)

Esempio di diagramma logico, con vincoli di integrità …

cammino di join

cammino di join

Page 59: Corso di Basi di Dati - cs.unibo.itdifelice/dbsi/slides/pdf/6_5.pdf · Corso di Basi di Dati! Progettazione Logica ! ... 02 A 03 (1,N) E0 R A 03 ... Visualizza tutti i dati di una

Ricapitolando: !➢ STEP2: Progettazione Logica

!◇ STEP 2.1: Analisi delle ridondanze ◇ STEP 2.2: Eliminazione delle generalizzazioni

e di attributi multi-valore ◇ STEP 2.3: Accorpamenti/partizionamenti di

concetti ◇ STEP 2.4: Scelta degli identificatori ◇ STEP 2.5: Traduzione nel modello logico

Progettazione logica