Date post: | 02-May-2015 |
Category: |
Documents |
Upload: | girolamo-lillo |
View: | 226 times |
Download: | 1 times |
Progettazione di una base di dati
Progettazione logica
(modello relazionale)
studente
corsoesame(0,n) (0,n)
matricola
cognome
voto data
indirizzopersona
docente affidamento(1,n)
modalità
(1,n)
nascita comune
com provdata-nasc
CF
nome
qualifica
(1,1) (1,n)
C# titolo
Eliminazione delle gerarchie
Il modello relazionale non permette di rappresentare
direttamente le gerarchie ISA
E E3R1
E4R2E2E1
K A
A2A1
Eliminazione delle gerarchiemetodo 1: quando le operazioni non fanno distinzione tra le occorrenze delle diverse entità
E E3R1
E4R2
K A
A2
A1
Eliminazione delle gerarchiemetodo 2: quando la generalizzazione è totale (ogni occorrenza dell'entita` padre e` occorrenza di una delle entita` figlie) o ci sono operazioni che si riferiscono a occorrenze di una sola delle entità
E3R12
E4R2E2E1
K A
A2A1K
A
R12
Eliminazione delle gerarchie
metodo 3: quando la generalizzazione non è totale e/o ci sono operazioni che si riferiscono a occorrenze di una sola delle entità figlie
E E3R1
E4R2E2E1
K A
A2A1 R11 R12
studente
corsoesame(0,n) (0,n)
matricola
cognome
voto data
indirizzopersona
docente affidamento(1,n)
modalità
(1,n)
nascita comune
com provdata-nasc
CF
nome
qualifica
(1,1) (1,n)
C# titolo
studente
corsoesame
(0,n)
(0,n)
matricola
cognome
voto data
indirizzo
docente
affidamento
(1,n)
modalità
(1,n)
nascita-s comune
com prov
data-nasc CF
nome
qualifica
(1,1) (1,n)
C# titolo
cognome
indirizzo
nome
nascita-d
(1,n)
(1,1)
data-nasc
CF
Entità
Ad ogni entità corrisponde una relazione.
Gli attributi semplici (a singolo valore) dell’entità diventano attributi della relazione. L’identificatore dell’entità diventa chiave primaria della relazione
Entità… Per gli attributi composti (multivalore):
studente
giorno-nasc
mese-nasc
anno-nasc
studentegiorno-nasc
mese-nasc
anno-nasc
studente data-nasc
data-nasc
Entità
… Per gli attributi composti (multivalore):
impiegatocodice figli
impiegato
codice
figlio
nome
ha
ENTITA’ DEBOLE
Relazioni corrispondenti ad entità
• Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc)
oppure
Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc)• Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc)• Corso(C#,Titolo)• Comune(Com,Prov)
Associazioni binarie one-to-one
se entrambe le entità hanno partecipazione totale
E1K1 E2R K2
(1) E1(K1, attributi di E1, attributi di E2, attibuti di R)
(1,1) (1,1)
(2) E1(K1, attributi di E1)E2(K2, K1, attributi di E2, attributi di R)
esempio
studentematr
documentoriconosc numero
(1) studente(matr, cognome, nome, tipo-doc,numero-doc, ente-ril)
(1,1) (1,1)
(2) studente(matr, cognome, nome) documento(tipo, numero, matr, ente-ril)
tipo
ente-rilcognome
nome
Associazioni binarie one-to-one
se una sola delle entità ha partecipazione totale
E1K1 E2R K2
E1(K1, attributi di E1)E2(K2, K1, attributi di E2, attributi di R)
(0,1) (1,1)
esempio
studentematr
tesiassegn
argomento
(0,1) (1,1)
studente(matr, cognome, nome) tesi(titolo, matr, argomento, data)
titolo
datacognome
nome
Associazioni binarie one-to-one
se entrambe le entità hanno partecipazione parziale
E1K1 E2R K2
E1(K1, attributi di E1)E2(K2, attributi di E2)R(K1, K2, attributi di R)
(0,1) (0,1)
esempio
studentematr
tesi disponassegn
argomento
(0,1) (0,1)
studente(matr, cognome, nome) tesidispon(titolo, argomento)
assegn(matr, titolo, data)
titolo
datacognome
nome
Associazioni binarie one-to-many
se l'entità dalla parte "many" ha partecipazione totale
E1K1 E2R K2
E1(K1, K2, attributi di E1, attributi di R)E2(K2, attributi di E2)
(1,1) (min,n)
esempio
studentematr
cittànasc
prov
(1,1) (min,1)
studente(matr, cognome, nome, città-nasc) città(nome, prov)
nome
cognomenome
Associazioni binarie one-to-many
se l'entità dalla parte "many" ha partecipazione parziale
E1K1 E2R K2(0,1) (min,n)
E1(K1, attributi di E1)E2(K2, attributi di E2)R(K1, K2, attributi di R)
esempio
studentematr
docenterelatore
cognome
(0,1) (1,n)
studente(matr, cognome, nome) relatore(matr, CF)
docente(CF, cognome)
CF
cognomenome
Associazioni binarie many-to-many
E1K1 E2R K2
E1(K1, attributi di E1)E2(K2, attributi di E2)R(K1, K2, attributi di R)
(min,n)(min,n)
esempio
studentematr
corsoesame
nome
(0,n) (0,n)
studente(matr, cognome, nome) corso(cod, nome)
esame(matr, cod, data, voto)
Cod
cognomenome datavoto
Associazioni n-arie
E1K1 E2R K2
E1(K1, attributi di E1)E2(K2, attributi di E2)E3(K3, attributi di E3)R(K1,K2,K3, attributi di R)
(min,n)(min,n)
E3 K3
(min,n)
esempio
branonome
direttoreesecuzione
cognome
orchestra(nome, num-comp)brano(nome, autore)direttore(cognome, nazionalità)esecuzione(nome-orch,nome-brano,cognome, luogo, data)
(min,n)(min,n)
orchestranome
(min,n)
autore
num-comp
nazionalitàdataluogo
Relazioni corrispondenti ad associazioni
studente corsoesame(0,n) (0,n)
matricola
cognome
voto data
indirizzo
nome
C# titolodata-nasc CF
Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc,Com)Corso(C#,Titolo)Esame(Matr,C#,Data,Voto)
Relazioni corrispondenti ad associazioni
corsodocente affidamento(1,n)
modalità
(1,n)
data-nasc CF
qualifica C# titolo
cognome
indirizzo
nome
Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc,Com)Corso(C#,Titolo)Affidamento(CF,C#,Modalità)
Schema relazionale
Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc,Com)Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc,Com)Corso(C#,Titolo)Comune(Com,Prov)
Esame(Matr,C#,Data,Voto)Affidamento(CF,C#,Modalità)