Progettazione di una base di dati Progettazione logica (modello relazionale)

Post on 02-May-2015

226 views 1 download

transcript

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à)