Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi
-
Upload
biagino-salvadori -
Category
Documents
-
view
215 -
download
0
Transcript of Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi
![Page 1: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/1.jpg)
Corso di Basi di Dati
Progettazione LogicaHome page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
![Page 2: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/2.jpg)
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMACONCETTUALE
SCHEMALOGICO
SCHEMAFISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
Progettazione logica
![Page 3: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/3.jpg)
L’obiettivo della progettazione logica e’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/4.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/5.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/6.jpg)
Una possibilita’ (sconsigliata, ma veloce) e’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/7.jpg)
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 8: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/8.jpg)
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 9: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/9.jpg)
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 10: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/10.jpg)
E0
E1
Progettazione logica
E2
A01 A02
A11A21
SOLUZIONE 1: Accorpamento delle entita’ figlie nell’entita’ genitore (con relativi attributi/relazione)…
E0
A01 A02
A11 A21
ATIPO
Attributo aggiunto …
![Page 11: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/11.jpg)
E0
E1
Progettazione logica
E2
A01 A02
A11A21
SOLUZIONE 2: Accorpamento delle entita’ genitore nelle entita’ figlie (con relativi attributi/relazione)…
R1
E1 E2
A11A21
A01 A02
R1
A01 A02
R1
![Page 12: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/12.jpg)
Quale traduzione utilizzare? Dipende …
SOL1 introduce valori nulli, ed un attributo aggiuntivo, ma e’ conveniente quando non ci sono troppe distinzioni tra E0, E1 ed E2 …
SOL2 e’ possibile solo se la generalizzazione e’ totale, introduce valori nulli, ma e’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/13.jpg)
E0
E1
Progettazione logica
E2
A01 A02
A11A21
SOLUZIONE 3: Sostituzione delle generalizzazione con relazioni tra entita’ genitore ed entita’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/14.jpg)
SOL3 non introduce valori nulli, ed e’ utile quando ci sono operazioni che si riferiscono solo ad entita’ di E1, E2 ed E0, ma si presenta la necessita’ di introdurre dei vincoli:
Un’occorrenza di E0 non puo’ partecipare in contemporanea ad R01 ed R02.
Se la generalizzazione e’ totale, ogni occorrenza di E0 deve appartenere ad R01 o R02 …
Progettazione logica
![Page 15: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/15.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/16.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/17.jpg)
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 dientita’ presenti nel sistema …
A01 A02
![Page 18: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/18.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/19.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/20.jpg)
Per una dato modello E-R, e’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/21.jpg)
Gli accorpamenti di entita’ 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’entita’Persona riguardano sempre i dati dell’Abitazione …
![Page 22: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/22.jpg)
Partizionamento verticale di un’entita’ 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 riguardanoi dati anagraficinon riguardano i dati universitari…
![Page 23: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/23.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/24.jpg)
Nei casi di entita’ con piu’ identificatori, e’ necessario sceglierne uno:
Evitare attributi con valori nulli.
Scegliere l’ identificatore minimale.
Preferire identificatori interni ad identificatori esterni che coinvolgono molte entita’.
Preferire identificatori utilizzati da molte operazioni per l’accesso all’entita’.
Progettazione logica
![Page 25: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/25.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/26.jpg)
Progettazione logica
Nel modello E-R, potrebbero essere presenti ridondanze sui dati, ossia informazioni significative ma derivabili da altre gia’ presenti nel modello E-R.
Vantaggi delle ridondanze: Operazioni sui dati (spesso) piu’
efficienti
Svantaggi delle ridondanze: Maggiore occupazione di memoria Maggiore complessita’ degli
aggiornamenti
![Page 27: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/27.jpg)
Progettazione logica
Le ridondanze in un diagramma E-R possono presentarsi in varie forme:
STIPENDIO
Lordo Netto Tasse
ATTRIBUTI DERIVABILI
Lo stipendio netto si puo’ ricavare dal lordo e dalle tasse.
PERSONA CITTARESIDENTI
Codice Fiscale Codice
(1,1)
Nome
(1,N)
DescrizioneNumero Abitanti
Il Numero Abitanti si puo’ ricavare contando le Persone
![Page 28: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/28.jpg)
Progettazione logica
In questa fase, e’ necessario valutare cosa fare delle ridondanze …
PERSONA CITTARESIDENTI
Codice Fiscale Codice
(1,1)
Nome
(1,N)
DescrizioneNumero 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/29.jpg)
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
2. Sia Srid lo schema E-R con ridondanze
3. Si calcolano il costo e l’occupazione di memoria di entrambi gli schemi: <c(S),m(S)> e <c(Srid), m(Srid)>
4. Si confrontano c(S)/c(Srid) e |m(s) – m(Srid)|
![Page 30: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/30.jpg)
Progettazione logica
Per effettuare l’analisi del modello E-R, e’ necessario disporre delle tavole dei volumi e delle operazioni.
Operazione1: Memorizza una nuova persona con la relativa citta’ d’appartenza (200 volte/giorno).
Operazione2: Visualizza tutti i dati di una citta’, 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/31.jpg)
Progettazione logica
Per effettuare l’analisi del modello E-R, e’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/32.jpg)
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 R
Citta’ Entita’ 1 W
TAVOLA DEGLI ACCESSI
c(Op1)= 200*1*(3*2 +1)=1400
wI=1a=2
![Page 33: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/33.jpg)
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=1a=2
![Page 34: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/34.jpg)
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=1a=2
![Page 35: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/35.jpg)
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=1a=2
![Page 36: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/36.jpg)
Progettazione logica
Riassumendo:
c(Srid) = c(Op1) + c(Op2) = 1400 + 5 ~ 1400
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/37.jpg)
Progettazione logica
Riassumendo, la presenza della ridondanza:
Introduce un overhead di memoria di 400 byte
Migliora lo speedup delle operazioni di un fattore 26000/1400 ~ 18!
Risultato dell’analisi delle ridondanze In questo caso, e’ conveniente conservare (o nel caso introdurre) l’attributo Numero Abitanti!
![Page 38: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/38.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/39.jpg)
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 cardinalita’ in gioco!
Progettazione logica
![Page 40: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/40.jpg)
Progettazione logica
IMPIEGATO
Matricola Nome
Traduzione di entita’ con identificatore interno
Cognome
Data Nascita
IMPIEGATO(Matricola, Nome,Cognome, DataNascita)
Le entita’ 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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/41.jpg)
Progettazione logica
Traduzione di entita’ con identificatore esterno
Le entita’ con identificatore esterno si traducono in una tabella che include tra le chiavi gli identificatori dell’entita’ esterna.
STUDENTE UNIVERSITA
Nome Nome
(1,1)
Cognome
(1,N)
Citta IndirizzoMatricola
![Page 42: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/42.jpg)
Progettazione logica
Traduzione di entita’ con identificatore esterno
STUDENTE UNIVERSITA
Nome Nome
(1,1)
Cognome
(1,N)
Citta IndirizzoMatricola
STUDENTE(Matricola, NomeUniversita, Nome, Cognome)
UNIVERSITA(Nome, Citta, Indirizzo)
![Page 43: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/43.jpg)
Progettazione logica
IMPIEGATO PROGETTOLAVORO
Matricola Codice
(0,N)
DataCognome
(0,N)
DescrizioneBudget
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/44.jpg)
Progettazione logica
IMPIEGATO PROGETTOLAVORO
Matricola Codice
(0,N)
DataCognome
(0,N)
DescrizioneBudget
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/45.jpg)
Progettazione logica
IMPIEGATO PROGETTOLAVORO
Matricola Codice
(0,N)
DataCognome
(0,N)
DescrizioneBudget
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/46.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/47.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/48.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/49.jpg)
Progettazione logica
GIOCATORE SQUADRACONTRATTO
Nome Nome
(_,1)
IngaggioCognome
(0,N)
Citta’ Sede
Traduzione di relazioni uno-a-molti
Cosa accade se vario la cardinalita’ min. di GIOCATORE?
cardMin=0 Soluzione 1 preferibile
cardMin=1 Soluzione 2 preferibile
Ruolo
![Page 50: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/50.jpg)
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 cardinalita’minima delle due entita’ in gioco …
Stipendio
![Page 51: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/51.jpg)
Progettazione logica
IMPIEGATO UFFICIODIREZIONE
Nome Nome
(1,1)
DataCognome
(1,1)
Citta’ Sede
Traduzione di relazioni uno-a-uno
Caso 1: Cardinalita’ obbligatorie per entrambe le entita’ (cardMin pari ad 1 per entrambe).
Si traduce il modello inglobando la relazione in una delle due entita’ (traduzioni simmetriche).
Stipendio
![Page 52: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/52.jpg)
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, e’ possibile inglobare la relazione DIREZIONE nell’entita’ UFFICIO …
![Page 53: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/53.jpg)
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 entita’ (cardMax=1 per una delle due).
Si traduce il modello inglobando la relazione nell’entita’che ha partecipazione obbligatoria …
Stipendio
![Page 54: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/54.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/55.jpg)
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 entita’ (cardMin pari a 0 per entrambe).
Si traduce il modello traducendo la relazione come una tabella a se’ stante (analogo del caso uno-a-molti).
Stipendio
![Page 56: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/56.jpg)
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 Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/57.jpg)
Progettazione logica
Come per la fase di progettazione concettuale, e’ necessario corredare lo schema logico di opportuna documentazione perche’ non tutti i vincoli sono esprimibili nello schema logico:
Tabella delle business rules (vista in precedenza)
Insieme dei vincoli di integrita’ referenziali Rappresentati attraverso tabella Rappresentati in maniera grafica
(diagramma logico).
![Page 58: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/58.jpg)
Progettazione logica
IMPIEGATO( Nome, Cognome, Stipendio)
DIREZIONE( NumUfficio, NomeDir, CognomeDir, Data)
UFFICIO( Nome, Citta, Sede)
Esempio di diagramma logico, con vincoli di integrita’ …
cammino di join
cammino di join
![Page 59: Corso di Basi di Dati Progettazione Logica Home page del corso: difelice/dbsi](https://reader036.fdocumenti.com/reader036/viewer/2022081602/5542eb66497959361e8d2668/html5/thumbnails/59.jpg)
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