+ All Categories
Home > Documents > Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

Date post: 02-May-2015
Category:
Upload: felisa-caputo
View: 247 times
Download: 0 times
Share this document with a friend
74
Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)
Transcript
Page 1: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

Basi di dati

Progetto Logico

per il

Modello Relazionale

(E. Baralis, Politecnico di Torino)

Page 2: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

2

Trasformazione da schema E-R a modello relazionale

Risultato: schema relazionale nella forma normale opportuna.

SCHEMA E-R

Schema E-Rristrutturato

A

Set di relazioni(modello relazionale)

B

passo A: ristrutturazione

passo B: traduzione

Page 3: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

3

Passo A: ristrutturazione dello schema E-R

E’ una fase di riorganizzazione dello schema E-R sulla base del carico applicativo previsto.

Il carico applicativo consiste di:1) Volumi dei dati (memoria d’occupazione);2) Caratteristiche delle operazioni (piu’

rilevanti).

Page 4: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

4

Carico applicativo

1) Volumi dei dati:valutati come N*O, dove

N è il numero di occorrenze di ogni entità e/o relazione;

O è l’occupazione in bytes di ogni occorrenza.

2) Caratteristiche delle operazioni:- tipo (interattivo o batch);- frequenza (numero medio di operazioni

in una certa unità di tempo);- volumi di dati coinvolti.

Page 5: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

5

Indici di prestazioni

• Lo scopo del passo di ristrutturazione è di ottimizzare i seguenti indici di prestazione:– costo di una operazione:

valutato come numero di accessi ad occorrenze di entità e/o relazione visitati per rispondere a una operazione;

– occupazione di memoria

Page 6: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

6

Esempiocodice nome

impiegato

progetto

dipartimento

nome budget data_consegna

data_inizio

data_afferenza

afferenza

partecipazione

stipendio

età

telefono(1,n)

nome

N_progetti (0,n)

(1,n)

(0,1) (1,n)

Page 7: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

7

Tavola dei volumi

Concetto Tipo Volume (n. occ)

Impiegato

Dipartimento

Progetto

entità

entità

entità

2000

80

500

Partecipazione

Afferenza

relazione

relazione

6000

1900

• Dipende dalla cardinalità delle entità e dalla cardinalità media di partecipazione di una occorrenza di entità ad una relazione:

• Ipotesi: se un impiegato partecipa in media a 3 progetti, la relazione partecipazione ha in media 2000*3 occorrenze; invece afferenza ha cardinalità di poco inferiore a impiegato

Page 8: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

8

Tavola delle operazioni

• Operazione 1: assegna un impiegato ad un progetto.

• Operazione 2: trova tutti i dati di un impiegato (con i dati del suo dipartimento e l’elenco dei progetti ai quali lavora).

• Operazione 3: trova tutti i dati di un dipartimento (con l’elenco dei suoi dipendenti).

Operazione Tipo Frequenza

Operazione 1

Operazione 2

Operazione 3

interattiva

batch

interattiva

50 volte al giorno

100 volte al giorno

1 volta alla settimana

Page 9: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

9

Costo dell’Operazione 1:“assegna un impiegato ad un progetto”

• Schema dell’operazione

impiegato

progetto

nome budget data_consegna

data_inizio

partecipazione

stipendio

età

N_progetti (0,n)

(1,n)

codice nome

+1

Page 10: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

10

Tavola degli accessi

Concetto Tipo N accessi

Impiegato entità

relazione

1

1Partecipazione

Lettura/Scrittura

S

S

• Costo:2 operazioni di scrittura * 50 volte al giorno

Page 11: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

11

Passo A: ristrutturazione dello schema E-R

E’ costituito da una sequenza di passi:

1) Analisi delle ridondanze;

2) Eliminazione delle gerarchie di generalizza-zione;

3) Partizionamento/accorpamento di entità;

4) Scelta degli identificatori.

Page 12: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

12

Analisi delle ridondanze

• Conviene mantenere l’attributo ridondante N_progetti in impiegato?

• Costo in volumi di dati per l’attributo N_progetti: 2000 impiegati * 2 byte= 4Kbyte.

• Costo in aggiornamento (Op.1): 1 accesso in scrittura per 50 volte al giorno.

• Costo in lettura (Op.2):1 accesso in lettura per 100 volte al giorno.

• Se supponiamo che un’operazione di scrittura costi il doppio rispetto ad una di lettura si hanno 200 accessi al giorno.

Page 13: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

13

Eliminazione attributo N_progetti

• Alternativamente potrei contare il numero di occorrenze della relazione partecipazione che si riferiscono ad un certo impiegato.

• Costo in volumi di dati: nullo.

• Costo di mantenimento:nullo.

• Costo di lettura:in media 3 operazioni di lettura per 100 volte al giorno: 300 accessi al giorno.

Page 14: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

14

Eliminazione delle gerarchie di generalizzazione

Vi sono alcune possibilità:1) Collassamento delle sottoclassi nella

superclasse: – gli attributi delle sottoclassi sono uniti a quelli

dell’entità superiore– si aggiunge un attributo discriminante

2) Eliminazione della superclasse:– propagazione degli attributi della superclasse

in tutte sottoclassi

3) Mantenimento di tutte le entità, correlate da relazioni che rappresentano la generalizzazione.

Page 15: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

15

STUDENTEC_FISCNOMECORSO_DI_STUDI

LAUREANDO UNIVERSITARIO

HA_RELATORE

SOCIO_DI

FACOLTA`ASSOCIAZIONE_STUDENTESCA

(p,e)

(1,1)

(1,n) (1,n)

(0,1)TITOLO_

TESI

TUTORE

STUDENTEC_FISCNOMECORSO_DI_STUDI

HA_RELATORE

SOCIO_DI

FACOLTA`ASSOCIAZIONE_STUDENTESCA

(0,1)

(1,n) (1,n)

(0,1)

TUTOREGRADO(a.d.,(0,1))TITOLO_TESI (0,1)

Esempio

Page 16: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

16

Scelta 1

Svantaggi:Incremento di occupazione di memoria (presenza

di valori nulli per gli attributi non significativi).

Vantaggi:Conviene quando le operazioni non fanno distinzione rispetto all’appartenenza di una occorrenza a una sottoclasse: numero minore di accessi perché le occorrenze di interesse sono tutte concentrate in una stessa entità.

Page 17: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

17

IMPIEGATO PAGA_CONTR

(0,1)

(1,1)CONTRIBUTI

SEGRETARIO INGEGNERE MANAGER

USA

WORD_PROCESSOR

(t,e)

(0,m)

(0,n)

CAPACITA`SPECIALIZZAZIONE

NOMEC_FISC

NUM_SOTTOPOSTI

(1,n)

DIRETTORE

Rappresentazione di gerarchie di generalizzazionemediante sottoclassi

Esempio

(0,1)

(1,n)

Page 18: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

18

CONTR_1

CONTRIBUTICONTR_2

INGEGNERE MANAGERCONTR_3

SEGRETARIO

USA

WORD_PROCESSOR

DIRETT_2

DIRETT_1DIRETT_3

(0,1)

(0,1)

(0,1)

(0,1)

(0,1)

(0,1)

(0,1)

(1,n)

(1,n)

(1,n)

(1,n)

(1,1)

(1,1)

(0,m)

(0,n)

C_FISC

NOME

SPECIALIZ

C_FISCNOME

CONOSC

NUM_SOTTOPOSTI

C_FISC

NOME

Page 19: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

19

Scelta 2

Svantaggi: E’ possibile solo se la generalizzazione è totale, altrimenti

le occorrenze della sopraclasse non sarebbero rappresentate. Occorre duplicare il numero di relazioni per ciascuna sottoclasse.

Vantaggi:Conviene se le operazioni fanno accesso solo ad occorrenze di una o delle altre sottoclassi. Si risparmia in memoria perché si eliminano i valori nulli degli attributi. Si riducono gli accessi rispetto alla scelta 3 perché per accedere ad un’occorrenza di una sottoclasse non si deve passare per la sopraclasse.

Page 20: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

20

PROGETTO HA(1,m) (1,n) MEMBRI_

PROGETTO

PROGETTO_SW

PROGETTO_HW

SOTTOCONTRATTO

USA

COMPONENTI_HW

(p,o)

(1,n)

(0,m)

MESI_UOMO CONTRAENTE_PRINCIPALE

NUM_SCHEDE

BUDGET

NUM_PROGNOME_PROG

Rappresentazione di gerarchie di generalizzazione tramite relazioni

Esempio

Page 21: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

21

PROGETTO HA(1,m) (1,n) MEMBRI_

PROGETTO

PROGETTO_SW

PROGETTO_HW

SOTTOCONTRATTO

USA

COMPONENTI_HW

(1,n)

(0,m)

MESI_UOMO CONTRAENTE_PRINCIPALE

NUM_SCHEDE

BUDGET

NUM_PROGNOME_PROG

TIPO_SW TIPO_HW TIPO_SOTTOCONTR

(0,1)

(0,1)(0,1)

(1,1)(1,1)(1,1)

Page 22: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

22

Scelta 3

SvantaggiSi incrementa il numero di accessi per le occorrenze

delle sottoclassi. Se la generalizzazione è totale ed esclusiva, occorre aggiungere dei vincoli: una occorrenza della sopraclasse deve partecipare ad una ed una sola relazione con una delle sottoclassi.

VantaggiConviene quando la generalizzazione non è totale, e le

operazioni fanno accesso o ad occorrenze della sopraclasse, o di sottoclassi. Si risparmia memoria e ciò può aumentare il numero di dati che si recuperano con l’accesso ad un singolo buffer di disco.

Page 23: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

23

Partizionamento di entità (e relazioni)

• Il partizionamento d’entità (relazioni) corrisponde a separare i concetti che vengono acceduti da operazioni diverse. Si può decomporre:

• verticalmente selezionando gli attributi (tramite proiezione). Ha il vantaggio che generano entità semplici, con pochi attributi.

• orizzontalmente (selezionando le occorrenze sulla base dei valori degli attributi). Ciò può anche essere visto come l’introduzione di una nuova generalizzazione a livello logico. Ha lo svantaggio che si duplicano le relazioni per le due nuove entità.

Page 24: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

24

Esempio: partizionamento verticale di entità

impiegato

cognome

indirizzo

Data_nascita

codice

livello

stipendio

ritenute

Dati anagrafici Dati lavorativiDati_impiegato(1,1)(1,1)

livello

stipendio

ritenute

cognome

indirizzo

Data_nascita

codice

Page 25: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

25

Partizionamento di relazione

Giocatore Squadracomposizione(1,n)(1,n)

città

nomecognome

ruolo

Giocatore SquadraComposizione

attuale

(1,n)(1,1)nome

città

cognome

ruolo

Composizioneprecedente

(1,n)(0,n)

Data_acquisto

Data_cessione (0,1)

Data_acquisto

Data_cessione Data_acquisto

Page 26: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

26

Accorpamento di entità

• L’accorpamento d’entità corrisponde a raggruppare i concetti che vengono acceduti insieme dalle stesse operazioni. Ciò ad esempio permette di ridurre il numero di join tra entità.

Uno svantaggio però consiste nel fatto che potrebbero essere introdotti attributi con valori nulli. Inoltre si introduce una certa ridondanza, il che è equivalente ad una operazione di de-normalizzazione. Perciò viene utilizzata dove sussistono relazioni 1:1 o 0:1 tra le entità da accorpare, e raramente se le relazioni sono 1:molti.

Page 27: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

27

Esempio

Persona appartamentointestazione(1,1)(0,1)

indirizzo

interno

cognome

indirizzo

Data_nascita

CF

Persona

cognome

indirizzo

Data_nascita

CF

Indirizzo (0,1)

Interno (0,1)

Page 28: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

28

Eliminazione di attributi composti

Due possibilità:a) considerare l’attributo composto come

insieme di attributi singoli Problema: si perde la nozione di

collegamento tra gli attributib) eliminare le componenti individuali

considerando solo i valori aggregati Problema: il singolo attributo deve poi

essere scisso dall’applicazione per individuare i valori separati

Page 29: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

29

PERSONA

INDIRIZZO

PERSONA

COGNOME

ETA`

SESSOVIA

CITTA`

STATO

COGNOME

ETA`

SESSO

VIA

CITTA`

STATO

(a) Schema con un attributo composto

(b) Attributo composto ridotto nelle sue componenti

Esempio

PERSONA

(c) Attributo composto considerato come attributo singolo

COGNOME

ETA`

INDIRIZZO

SESSO

Page 30: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

30

Eliminazione degli attributi multivalore dalle entità

• Ogni attributo a molti valori è rappresentato da un'entità, in cui può essere rappresentato come attributo a singolo valore.

• La nuova entità contiene l’attributo a molti valori più l’identificatore dell’entità di origine.

• L’identificatore della nuova entità è l’insieme di tutti gli attributi.

Page 31: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

31

E1 R EAM

EAM

E1

E1

Attributi multivalore di entità

A

AB

AB (1,n)

B

A

Page 32: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

32

PRODOTTO

PRODOTTO

PRODOTTO_MATERIALE

Esempio

CODICE_PRODOTTO

CODICE_MATERIALE (1,n)

DESCRIZIONE

PREZZO

CODICE_PRODOTTO

DESCRIZIONE

PREZZO

CODICE_PRODOTTO

CODICE_MATERIALE

Page 33: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

33

Eliminazione degli attributi multivalore dalle relazioni

• Attributo a molti valori appartiene alla relazione R tra le entità E1 e E2

nuova entità NE che include 1 o 2 attributi presi da E1 o E2 (o entrambi) in funzione del tipo di relazione:

– relazione 1 a 1: NE richiede 1 degli identificatori di E1 o E2

– relazione 1 a molti: NE comprende l’identificatore di E2 (E2 nel lato “molti”)

– relazione molti a molti: NE comprende gli identificatori provenienti da E1 ed E2

Page 34: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

34

• La chiave primaria di NE è costituita da:–tutti gli attributi di NE provenienti

da E1 ed E2–l’attributo multi valore

• Gli attributi non multivalore di R rimangono a R.

Eliminazione degli attributi multivalore dalle relazioni

Page 35: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

35

Attributi a molti valori di relazioni

E1

R

E2

AttribB

E1

R

E2

C

D

(0,n)

(0,m)

AB (1,n)

C

D

A

B CD

Page 36: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

36

INSEGNANTE

CORSO

TIENE

(0,m)

(1,n)

CF_INSEGNANTE

DIPARTIMENTO

TELEFONO

MAX_NUM_STUD

SEMESTRE (1,n)

NUM_CORSO

Esempio

Page 37: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

37

OFFERTA_CORSI

SEMESTRE

INSEGNANTE

CORSO

TIENE

(0,m)

(1,n)

CF_INSEGNANTE

DIPARTIMENTO

TELEFONO

MAX_NUM_STUD

NUM_CORSO

CF_INSEGNANTENUM_CORSO

eliminazione di attributo multivalore da una relazione tramite creazione di entità separate

Page 38: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

38

Scelta degli identificatori

• Un attributo che ammette valori nulli non può essere un identificatore.

• La scelta tra due identificatori alternativi avviene in base alla semplicità.

• Occorre considerare anche la presenza di eventuali identificatori esterni.

• Conviene preferire gli identificatori che vengono utilizzati dal maggior numero di operazioni.

• In alcuni casi, può convenire creare “ad arte” un codice che serva da identificatore. Questo potrebbe essere creato automaticamente dal DBMS o sarà l’applicazione a dover gestire la creazione e l’unicità del codice.

Page 39: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

39

Eliminazione di identificatori esterni

Gli identificatori esterni sono trasformati in identificatori interni.

E1

R

E2

A

B

ID

(1,1)

(1,n)

E2

E1

B

B A

Page 40: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

40

UNIVERSITÀ

ISCRIVE

STUDENTE

CODICE UNIVERSITÀ

NOME

CITTÀ

MATRICOLA_STUDENTE

COGNOME

ETÀ

(a) Schema iniziale

Esempio

Page 41: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

41

UNIVERSITÀ

STUDENTE

CODICE UNIVERSITÀ

NOME

CITTÀ

MATRICOLA_STUDENTECOGNOMEETÀ

(b) Schema finale

CODICE UNIVERSITÀ

Esempio

+

Page 42: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

42

Eliminazione di identificatori esterni

E1

R1

E3

E2

R2

E1

E2

E3

A

B

C

A

ID1

AB

AB

ID2

C

Page 43: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

43

Passo B:traduzione nel modello relazionale

1) Traduzione di ogni entità in una tabella

2) Traduzione delle relazioni:– le relazioni 1:1, 1:molti, molti:1 sono modellate

aggiungendo attributi a tabelle esistenti– le relazioni molti:molti richiedono sempre la

creazione di una nuova tabella

Page 44: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

44

IMPIEGATO

Traduzione di entità

Entità = Tabella

Esempio:

CF

NOME

COGNOMESTIPENDIO

IMPIEGATO (CF, NOME, COGNOME, STIPENDIO)

Page 45: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

45

Riassunto

• Associazione binaria molti a molti

E1A11

A12

R AR

E2A21

A22

(X,n)

(X,n)

• E1(A11,A12)

• E2(A21,A22)

• R(A11,A21,AR)

Page 46: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

46

Riassunto

• Associazione ternaria molti a molti

E1A11

A12

R AR

E2A21

A22

(X,n)

(X,n)

• E1(A11,A12)• E2(A21,A22)• E3(A31,A32)• R(A11,A21,A31,AR)

E3

A31 A32

(X,n)

Page 47: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

47

Riassunto

• Associazione uno a molti con partecipazione obbligatoria

E1A11

A12

R AR

E2A21

A22

(1,1)

(X,n)

• E1(A11,A12,A21,AR)

• E2(A21,A22)

Page 48: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

48

Riassunto

• Associazione uno a molti con partecipazione opzionale

E1A11

A12

R AR

E2A21

A22

(0,1)

(X,n)

• E1(A11,A12,A21*,AR*)

• E2(A21,A22)

Oppure

• E1(A11,A12)

• E2(A21,A22)

• R(A11,A21,AR)

Page 49: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

49

Riassunto

• Associazione con identificatore esterno

E1A11A12

R AR

E2A21

A22

(1,1)

(X,Y)

• E1(A11,A21,A12,AR)

• E2(A21,A22)

Page 50: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

50

Riassunto

• Associazione uno a uno con partecipazione obbligatoria per entrambe le entita`

E1A11

A12

R AR

E2A21

A22

(1,1)

(1,1)

• E1(A11,A12,A21,AR)

• E2(A21,A22)

Oppure

• E1(A11,A12)

• E2(A21,A22,A11,AR)

Page 51: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

51

Riassunto

• Associazione uno a uno con partecipazione opzionale per una sola entita`

E1A11

A12

R AR

E2A21

A22

(1,1)

(0,1)

• E1(A11,A12,A21,AR)

• E2(A21,A22)

Page 52: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

52

Riassunto

• Associazione uno a uno con partecipazione opzionale per entrambe le entita`

E1A11

A12

R AR

E2A21

A22

(0,1)

(0,1)

• E1(A11,A12,A21*,AR*)• E2(A21,A22)

Oppure• E1(A11,A12)• E2(A21,A22,A11*,AR*)

Oppure• E1(A11,A12)• E2(A21,A22)• R(A11,A21,AR)

Page 53: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

53

Esercizio 1• Si vuole realizzare una base di dati per una societa’ che eroga corsi, di

cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti.Per i partecipanti (circa 5000), identificati da un codice, si vuole memorizzare il codice fiscale, il cognome, l’eta’, il sesso, il luogo di nascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato in precedenza insieme al periodo, l’indirizzo e il numero telefonico, i corsi che hanno frequentato (i corsi sono in tutto 200) e il giudizio finale. Si vuole rappresentare anche i seminari che stanno attualmente frequentando, e per ogni giorno, i luoghi e le ore dove sono tenute le varie lezioni. I corsi hanno un codice, un titolo e possono avere varie edizioni, con le date di inizio e fine, e numero dei partecipanti. Se gli studenti sono liberi professionisti, vogliamo conoscere l’area di interesse e, se lo possiedono, il titolo. Per coloro che lavorano alle dipendenze di altri, vogliamo conoscere il livello ricoperto e la posizione.Per gli insegnanti (circa 300) rappresentiamo il cognome, l’eta’ il posto dove sono nati, il nome del corso che insegnano e di quelli che hanno gia’ insegnato e che possono insegnare. Rappresentiamo anche tutti i loro recapiti telefonici. Inoltre, i docenti possono essere dipendenti interni della societa’ o collaboratori esterni.

Page 54: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

54

Operazioni1. inserisci un nuovo partecipante: 40 volte al giorno2. assegna un partecipante ad una edizione di corso: 50

volte al giorno3. inserisci un nuovo docente e i corsi che puo’ insegnare: 2

volte al giorno4. assegna un docente abilitato ad una edizione di corso: 15

volte al giorno5. stampa le informazioni su una edizione di corso passata,

con gli orari delle lezioni e numero dei partecipanti: 10 volte al giorno

6. stampa tutti i corsi offerti, con i relativi docenti abilitati: 20 volte al giorno

7. per ogni docente, trova tutti i partecipanti ai corsi da lui insegnati: 5 volta alla settimana

8. effettua una statistica sulla votazione riportata dai partecipanti a una edizione di corso: 10 volte al mese (batch).

Page 55: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

55

Tavole dei volumi

• Lezione: 8000• Edizione corso: 1000• Corso: 200• Docente: 300• Collaboratore: 250• Interno: 50• Partecipante: 5000• Dipendente: 4000• Professionista: 1000• Datore: 8000

• Part passata: 10000• Part corrente: 500• Composizione: 8000• Appartenenza: 1000• Collaboratore: 250• Doc passata: 900• Doc corrente: 100• Abilitazione: 500• Impiego corrente: 4000• Impiego passato: 1000

Page 56: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

56

Schema concettuale: corso

corso

edizione_corso

lezione

partecipante

partecipazione_corrente

partecipazione_passata

votazione

titolo

codice

appartenenza

composizione

data_inizio

data_fine

(1,1)

(0,n)

(1,n)

(1,1)orarioaulagiorno

(0,n) (0,n)

(0,n)(0,n)

n_partecip

Page 57: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

57

Schema concettuale: partecipante

partecipante

CFcognome

sessocodice

eta’ citta’_nascita

dipendente professionista

areaposizione livello

(p,e)

titolo_professionale

Page 58: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

58

Schema concettuale: datore di lavoro

datore_di_lavoro

nomeindirizzo

telefono

partecipante

dipendente professionista

(p,e)

occupazione_attuale

occupazione_passata

data_inizio

data_inizio data_fine

(1,1)

(0,n)

(0,n)(0,n)

Page 59: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

59

Schema concettuale: docente

corso

edizione_corso

appartenenza

(1,1)

(0,n)

docente

collaboratore interno

(t,e)

abilitazione(1,n) (1,n)

docenza_corrente

docenza_passata

(0,1)

(0,1) (0,n)

(0,1)

CFcognome

eta’citta’_nascita

tel (0,n)

Page 60: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

60

Mantenere attributo derivato n_partecip?

• Tra le operazioni specificate, solo le prestazioni delle operazioni 2 e 5 vengono influenzate da n_partecip.

• Non conviene tenerlo perche’ in questo caso ci sono svantaggi:– nell’occupazione aggiuntiva (4Kb)– stesso numero di accessi (490) che in

assenza di dato derivato

Page 61: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

61

Calcolo accessi con n_partecip presente

• Op 2 (50 volte al giorno)

tipo concetto n. accessi

lettura

lettura

scrittura

scrittura

partecipante

ed_corso

ed_corso

partecip_corrente

1

1

1x 2

1 x 2

Totale: 300 accessial giorno

Page 62: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

62

Calcolo accessi con n_partecip presente

• Op 5 (10 volte al giorno)

tipo concetto n. accessi

lettura

lettura

lettura

lettura

ed_corso

appartenenza

corso

composizione

1

1

1

8

Totale: 190 accessial giorno

lettura 8 lezione

Page 63: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

63

Calcolo accessi con n_partecip assente

• Op 2 (50 volte al giorno)

tipo concetto n. accessi

lettura

lettura

scrittura

partecipante

ed_corso

partecip_corrente

1

1

1 x 2

Totale: 200 accessial giorno

Page 64: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

64

Calcolo accessi con n_partecip assente

• Op 5 (10 volte al giorno)tipo concetto n. accessi

lettura

lettura

lettura

lettura

ed_corso

appartenenza

corso

composizione

1

1

1

8

Totale: 290 accessial giorno

lettura 8 lezione

lettura partecip_corrente

10

Page 65: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

65

Eliminazione delle gerarchie

• Conviene eliminare la gerarchia dei docenti (le operazioni non fanno distinzione e le classi figlie non hanno attributi aggiuntivi)

• Conviene mantenere le sottoclassi della gerarchia sui partecipanti (ci sono molti attributi aggiuntivi che diverrebbero valori null nella classe padre, anche se le operazioni 1, 2 e 8 non fanno differenza tra le occorrenze dei partecipanti): introduciamo due relazioni dati_dipendente e dati_professionista.

Page 66: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

66

Partizionamento di concetti

• Partizionare edizione_corso in passato e corrente? (operazione 5 considera solo le edizioni passate) – Non conviene perche’ si dovrebbero

duplicare le relazioni composizione e appartenenza;

– Inoltre, le operazioni 7 e 8 non fanno distinzione tra le edizioni di corso correnti e passate.

Page 67: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

67

Accorpamento di concetti

• Accorpare docenza_passata e docenza_corrente? (e analogamente partecipazione_passata e corrente?)– Conviene perche’ le operazioni 7 e 8 non fanno differenza tra le

occorrenze passate e correnti– Inoltre, non si dovrebbero spostare le occorrenze di docenza e

partecipazione correnti in quelle passate una volta terminata l’edizione del corso.

– C’e’ pero’ lo svantaggio che c’e’ uno spreco di memoria per rappresentare l’attributo votazione anche per le partecipazioni correnti. Tuttavia, la frazione del numero totale di occorrenze di partecipazioni correnti e’ piccola rispetto a quelle passate (1/20, e si sprecano solo 2 Kb nell’ipotesi di allocare 4 bytes per ciascuna votazione).

Page 68: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

68

Scelta degli identificatori principali

• Scegliamo il codice interno per identificare i partecipanti.

• Invece assegnamo un codice ad-hoc per identificare l’edizione corsi invece di usare la coppia (data_inizio,codice_corso) che rappresenta un identificatore troppo “pesante” (e viene usato per rappresentare anche le relazioni partecipazione e docenza).

Page 69: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

69

Schema ER ristrutturato: corso

corso

edizione_corso

lezione

partecipante

partecipazione

votazione (0,1)

titolo

codice

appartenenza

composizione

data_inizio

data_fine

(1,1)

(0,n)

(1,n)

(1,1)orarioaulagiorno

(0,n)(0,n)

codice

Page 70: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

70

Schema ER ristrutturato: partecipante

partecipante

CFcognome

sessocodice

eta’ citta’_nascita

dipendente professionista

areaposizione livello titolo_professionale

dati_dip dati_prof

(0,1) (0,1)

(1,1)(1,1)

Page 71: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

71

telefono

corso

edizione_corso

appartenenza

(1,1)

(0,n)

docenteabilitazione(1,n) (1,n)

docenza

(0,n)

(0,1)

CFcognome

eta’citta’_nascita

tel (0,n)

tipo

Schema ER ristrutturato: docente

telef_docente

intestazione

(0,n)

(1,1)

Page 72: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

72

Schema ER ristrutturato: datore

cognome codice

partecipante

CF sesso eta’ citta’_nascita

dipendente professionista

areaposizionelivello titolo_professionale

dati_dip dati_prof(0,1) (0,1)

(1,1)(1,1)

datore_di_lavoro

nomeindirizzo

telefono

occupazione_attuale

occupazione_passata

data_inizio

(1,1)

(0,n)

data_inizio

data_fine

(0,n)

(0,n)

Page 73: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

73

Traduzione nel modello relazionale

• Edizione_corso(codice, data_inizio, data_fine, corso, docente)• Lezione(ora, aula, giorno, edizione_corso)• Docente(CF, cognome, eta’, citta’_nascita, tipo)• Telefono(numero, docente)• Corso(codice, nome)• Abilitazione(corso, docente)• Partecipante(codice, CF, cognome, eta’, citta’_nascita, sesso)• Partecipazione(partecipante, edizione_corso, votazione*)• Datore(nome, telefono, indirizzo)• Occupazione_passata(partecipante, datore, data_inizio, data_fine)• Professionista(partecipante, area, titolo*)• Dipendente(partecipante, livello, posizione, datore, data_inizio)

Page 74: Basi di dati Progetto Logico per il Modello Relazionale (E. Baralis, Politecnico di Torino)

74

Schema relazionale dellasocieta’ di formazione

• Edizione_corso(codice, data_inizio, data_fine, corso, docente)• Lezione(ora, aula, giorno, edizione_corso)• Docente(CF, cognome, eta’, citta’_nascita, tipo)• Telefono(numero, docente)• Corso(codice, nome)• Abilitazione(corso, docente)• Partecipante(codice, CF, cognome, eta’, citta’_nascita, sesso)• Partecipazione(partecipante, edizione_corso, votazione*)• Datore(nome, telefono, indirizzo)• Occupazione_passata(partecipante, datore, data_inizio, data_fine)• Professionista(partecipante, area, titolo*)• Dipendente(partecipante, livello, posizione, datore, data_inizio)


Recommended