BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... ·...

63
1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento di Elettronica e Informazione Politecnico di Milano tratto da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati - McGraw-Hill © Fabio A. Schreiber Progettazione 1 Progettazione 1 © Fabio A. Schreiber Progettazione 1 PROGETTAZIONE DELLA BASE DI DATI

Transcript of BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... ·...

Page 1: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

1

BASI DI DATIPROGETTO DELLA BASE DI DATI

Prof. Fabio A. SchreiberDipartimento di Elettronica e Informazione

Politecnico di Milano

tratto da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati -

McGraw-Hill

© Fabio A. Schreiber Progettazione 1Progettazione 1© Fabio A. Schreiber Progettazione 1

PROGETTAZIONE DELLA BASE DI DATI

Page 2: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

2

© Fabio A. Schreiber Progettazione 2Progettazione 2© Fabio A. Schreiber Progettazione 2

CICLO DI VITA DEL SISTEMA INFORMATIVO

• RACCOLTA E ANALISI DEI REQUISITI

• PROGETTAZIONE

• IMPLEMENTAZIONE

• VALIDAZIONE E COLLAUDO

• ESERCIZIO E MANUTENZIONE

© Fabio A. Schreiber Progettazione 3Progettazione 3© Fabio A. Schreiber Progettazione 3

ANALISI DEI REQUISITI

• INIVIDUAZIONE DI– UNITA’ ORGANIZZATIVE OMOGENEE UTENTI

DEL SISTEMA

– ATTIVITA’ CHE IL SISTEMA DOVRA’ SUPPORTARE

– PROPRIETA’ E FUNZIONALITA’ DEL SISTEMA

– REQUISITI DI MASSIMA DI HW E SW PER SUPPORTARE IL SISTEMA

RICHIEDE DI INTERAGIRE CON GLI UTENTI A TUTTI I LIVELLI, IN PARTICOLARE CON LA DIREZIONE AZIENDALE

Page 3: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

3

© Fabio A. Schreiber Progettazione 4Progettazione 4© Fabio A. Schreiber Progettazione 4

ANALISI DEI REQUISITI

• PRODUZIONE DI– DESCRIZIONE INFORMALE DEI DATI COINVOLTI E

DELLE OPERAZIONI SU DI ESSI

– PIANO DI SVILUPPO DEL SISTEMA

• PRIORITA’

• TEMPI DI REALIZZAZIONE

– STUDIO DI FATTIBILITA’

• RISORSE– IMPIANTI

– PERSONALE

• COSTI

• PROBLEMI DEL PASSAGGIO E ADATTAMENTO AL NUOVO SISTEMA

© Fabio A. Schreiber Progettazione 5Progettazione 5© Fabio A. Schreiber Progettazione 5

ANALISI DEI REQUISITI

LINEE GUIDA– SCEGLIERE TERMINI SPECIFICI

• EVITARE SINONIMI E OMONIMI

– STANDARDIZZARE (FORMALIZZARE) LE FRASI• SE <COND> ALLORA <CASO 1> ALTRIMENTI <CASO 2>

– EVITARE CIRCONLOCUZIONI• OPERATORE ECOLOGICO = SPAZZINO (!)

– ESPLICITARE TUTTI I RIFERIMENTI• “I PARTECIPANTI DI UNA DITTA INDICANO IL NUMERO DI

TELEFONO”: DI CHI????

Page 4: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

4

© Fabio A. Schreiber Progettazione 6

USO DEL LINGUAGGIO NATURALEil progetto di un’altalena

© Fabio A. Schreiber Progettazione 7Progettazione 7© Fabio A. Schreiber Progettazione 7

ANALISI DEI REQUISITI: ESEMPIO

FUNZIONAMENTO DI UN MAGAZZINO– IL MAGAZZINO E’ COMPOSTO DA SCAFFALI

– I FORNITORI FORNISCONO I PRODOTTI

– I CLIENTI ORDINANO I PRODOTTI

– GLI SCAFFALI CONTENGONO I PRODOTTI

– GLI OPERAI SONO ADDETTI AGLI SCAFFALI

Page 5: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

5

© Fabio A. Schreiber Progettazione 8Progettazione 8© Fabio A. Schreiber Progettazione 8

ANALISI DEI REQUISITI: DIZIONARIO

TERMINE DESCRIZIONE SINONIMI LEGAMI

fornitore p.IVA, denominaz., prodottoindirizzo, num. Tel.

cliente p.IVA, denominaz., acquirente prodottoindirizzo, num. Tel.

prodotto codice, nome, articolo, fornitoregenere voce scaffale

clientescaffale supporto numerato ripiano operaio

prodotto

operaio dati anagrafici, addetto, scaffalematricola, qualifica magazziniere

© Fabio A. Schreiber Progettazione 9Progettazione 9© Fabio A. Schreiber Progettazione 9

PROGETTAZIONE

• PROGETTAZIONE DEI DATIINDIVIDUA L’ORGANIZZAZIONE E LA STRUTTURA DELLA BASE DI DATI

• CONCETTUALE

• LOGICA

• FISICA

• PROGETTAZIONE DELLE APPLICAZIONI– SCHEMATIZZA LE OPERAZIONI SUI DATI E PROGETTA

IL SOFTWARE APPLICATIVO

Page 6: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

6

© Fabio A. Schreiber Progettazione 10Progettazione 10© Fabio A. Schreiber Progettazione 10

IMPLEMENTAZIONE

• VENGONO DEFINITE LE COMPONENTI HW E SW DI BASE E DI SVILUPPO DA ACQUISIRE SUL MERCATO

• VIENE COSTRUITA E POPOLATA LA BASE DI DATI

• VENGONO SVILUPPATI I PROGRAMMI APPLICATIVI

© Fabio A. Schreiber Progettazione 11Progettazione 11© Fabio A. Schreiber Progettazione 11

VALIDAZIONE E COLLAUDO

• VERIFICA DELLA CORRETTEZZA DEI DATI

• VERIFICA DEL CORRETTO FUNZIONAMENTO DELLE APPLICAZIONI

• VERIFICA DELLE PRESTAZIONI NELLE CONDIZIONI OPERATIVE– THROUGHPUT

– TEMPO DI RISPOSTA

• VERIFICA DELLA SICUREZZA DEL SISTEMA E DEI DATI

• VERIFICA DELLA RESISTENZA AI GUASTI

• EVENTUALE PERIODO DI PARALLELO CON IL SISTEMA PRECEDENTE

Page 7: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

7

© Fabio A. Schreiber Progettazione 12Progettazione 12© Fabio A. Schreiber Progettazione 12

ESERCIZIO E MANUTENZIONE

• AMMINISTRAZIONE DEL SISTEMA– CONTROLLO DEL CORRETTO FUNZIONAMENTO DEL

SISTEMA

– AUDITING DI SICUREZZA

– GESTIONE DEGLI UTENTI

• MANUTENZIONE– CORRETTIVA

• RIMUOVE EVENTUALI GUASTI O ERRORI

– ADATTATIVA

• RIVEDE SPECIFICHE E IMPLEMENTAZIONE IN FUNZIONE DI MUTATE ESIGENZE APPLICATIVE

– EVOLUTIVA

• FA CRESCERE LE FUNZIONALITA’ E LE PRESTAZIONI DEL SISTEMA NEL TEMPO

© Fabio A. Schreiber Progettazione 13Progettazione 13© Fabio A. Schreiber Progettazione 13

PROGETTAZIONE CONCETTUALE

TRADUCE IL RISULTATO DELL’ANALISI DEI REQUISITI IN UNA DESCRIZIONE FORMALE

– DI FACILE COMPRENSIONE PER GLI ESPERTI DI ORGANIZZAZIONE AZIENDALE

– CHE RAPPRESENTI IL CONTENUTO INFORMATIVO DELLA BASE DI DATI

– INDIPENDENTE DAL DBMS

UTILIZZA UN MODELLO CONCETTUALE

Page 8: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

8

© Fabio A. Schreiber Progettazione 14Progettazione 14© Fabio A. Schreiber Progettazione 14

PROGETTAZIONE CONCETTUALE

SCHEMA CONCETTUALERAPPRESENTAZIONE SEMPLIFICATA CONTENENTE TUTTI E SOLI GLI ASPETTI INTERESSANTI PER LA GESTIONE DELL’AZIENDA

– ELIMINA LE AMBIGUITA’ DEL LINGUAGGIO NATURALE

– ELIMINA I POSSIBILI CONFLITTI DI TERMINOLOGIA PRESENTI NEL GLOSSARIO

E’ IL DOCUMENTO DI PROGETTO FONDAMENTALE CHE DEVE ESSERE VALIDATO DALLA DIREZIONE AZIENDALE

© Fabio A. Schreiber Progettazione 15Progettazione 15© Fabio A. Schreiber Progettazione 15

MODELLI CONCETTUALI• LINGUAGGI FORMALI

– ESEGUIBILI

– NON ESEGUIBILI

• RAPPRESENTAZIONI GRAFICHE CORREDATE DA SCHEDE DESCRITTIVE– MODELLO ENTITA’- RELAZIONE (E-R) (P. P. Chen,

1976)

• NELLE SUE DIVERSE VARIANTI E’ IL PIU’ DIFFUSO

• SONO DISPONIBILI STRUMENTI CASE DI AUSILIO ALLA PROGETTAZIONE

– UNIFIED MODELING LANGUAGE (UML)

• STRUMENTO PIU’ RECENTE CHE PUO’ ESSERE UTILIZZATO A VARI LIVELLI ANCHE PER IL PROGETTO CONGIUNTO DATI-FUNZIONI

Page 9: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

9

© Fabio A. Schreiber Progettazione 16Progettazione 16© Fabio A. Schreiber Progettazione 16

IL MODELLO ENTITA’ RELAZIONE (E-R)

• IL MODELLO E-R USA SIMBOLI GRAFICIPER FAVORIRE LA COMPRENSIONE DEI CONCETTI ANCHE E SOPRATTUTTO AI NON SPECIALISTI

• IL MODELLO E-R- E’ QUINDI UN GRAFOCHE USA NODI ETEROGENEI PER RAPPRESENTARE ENTITA’ E RELAZIONI

• I GRAFI E-R VENGONO AFFIANCATI DA SIMBOLI DI VINCOLO E DA SCHEDE DI DETTAGLIO

© Fabio A. Schreiber Progettazione 17Progettazione 17© Fabio A. Schreiber Progettazione 17

ENTITA’

• RAPPRESENTA UNA CLASSE DI OGGETTI DEL MONDO RALE DI INTERESSE PER L’APPLICAZIONE

• GLI OGGETTI POSSONO ESSERE– MATERIALI (automobili, impiegati, ...)

– IMMATERIALI (conti correnti, corsi, …)

• OGNI ENTITA’ E’ CARATTERIZZATA DA UN NOME

Page 10: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

10

© Fabio A. Schreiber Progettazione 18Progettazione 18© Fabio A. Schreiber Progettazione 18

ENTITA’

IL SIMBOLO GRAFICO CHE RAPPRESENTA UN’ENTITA’ E’ IL RETTANGOLO

NOME DELLA

ENTITA’

STUDENTE ESAMECONTO

CORRENTE

ESEMPI

© Fabio A. Schreiber Progettazione 19Progettazione 19© Fabio A. Schreiber Progettazione 19

ASSOCIAZIONE (O RELAZIONE)

• RAPPRESENTA UN LEGAME LOGICOTRA ENTITA’ DI INTERESSE PER L’APPLICAZIONE

• UN’ISTANZA DI UN’ASSOCIAZIONE E’ UNA ENNUPLA TRA SINGOLE ISTANZE DELLE ENTITA’ COINVOLTE

• OGNI ASSOCIAZIONE E’ DISTINTA DA UN NOME

• CI POSSONO ESSERE PIU’ ASSOCIAZIONI DIVERSE TRA LE STESSE ENTITA’

Page 11: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

11

© Fabio A. Schreiber Progettazione 20Progettazione 20© Fabio A. Schreiber Progettazione 20

ASSOCIAZIONE

IL SIMBOLO GRAFICO CHE RAPPRESENTA UN’ASSOCIAZIONE E’ IL ROMBO

NOME DELLAASSOCIAZIONE

ESEMPIO

SUPERASTUDENTE ESAME

© Fabio A. Schreiber Progettazione 21Progettazione 21© Fabio A. Schreiber Progettazione 21

ASSOCIAZIONE TRA INSIEMI

L’ASSOCIAZIONE RAPPRESENTA UNA RELAZIONE TRA INSIEMI

STUDENTE ESAME

Page 12: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

12

© Fabio A. Schreiber Progettazione 22Progettazione 22© Fabio A. Schreiber Progettazione 22

CARATTERISTICHE DELLE ASSOCIAZIONI

CARDINALITA’ (min, Max)

NUMERO DI VOLTE CHE UNA DATA ISTANZA DI ENTITA’ DEVE O PUO’ PARTECIPARE ALL’ASSOCIAZIONE

• (1,1) OBBLIGATORIA, UNA SOLA VOLTA

• (1,n) OBBLIGATORIA, FINO AD n VOLTE

• (0,1) OPZIONALE , UNA SOLA VOLTA

• (0,n) OPZIONALE, FINO AD n VOLTE

© Fabio A. Schreiber Progettazione 23Progettazione 23© Fabio A. Schreiber Progettazione 23

ESEMPI DI SCHEMI

SVILUPPAREINGEGNERE PROGETTO

APPARTENENZAIMPIEGATO UFFICIO

Page 13: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

13

© Fabio A. Schreiber Progettazione 24Progettazione 24© Fabio A. Schreiber Progettazione 24

ESEMPI DI SCHEMI

GUIDAREGUIDATORE AUTOBUS

PERCORSO

PERCORRENZA

© Fabio A. Schreiber Progettazione 25Progettazione 25© Fabio A. Schreiber Progettazione 25

ESEMPI DI SCHEMI

CONTENEREMAGAZZINO SCAFFALE

OGGETTO

RISIEDERESU

OPERAIO

LAVORARE

Page 14: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

14

© Fabio A. Schreiber Progettazione 26Progettazione 26© Fabio A. Schreiber Progettazione 26

ESEMPI DI SCHEMI

FATTURA ARTICOLO

IMPIEGATO

CLIENTE

RICEVERE

RIFERIMENTO

GESTIRE

APPARTENERE A

UFFICIO

© Fabio A. Schreiber Progettazione 27Progettazione 27© Fabio A. Schreiber Progettazione 27

PROPRIETA’ (O ATTRIBUTI)• RAPPRESENTANO CARATTERISTICHE

DELLE ENTITA’ O DELLE ASSOCIAZIONI DI INTERESSE PER L’APPLICAZIONE

• ENTITA’ E ASSOCIAZIONI VENGONO DESCRITTE MEDIANTE L’AGGREGAZIONE DI PROPRIETA’

• OGNI ISTANZA DI ENTITA’ O DI ASSOCIAZIONE POSSIEDE UN VALOREPER CIASCUN ATTRIBUTO

• OGNI ATTRIBUTO E’ CARATTERIZZATO DA UN NOME

Page 15: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

15

© Fabio A. Schreiber Progettazione 28Progettazione 28© Fabio A. Schreiber Progettazione 28

ATTRIBUTI

IL SIMBOLO GRAFICO CHE RAPPRESENTA UN ATTRIBUTO E’ IL CIRCOLETTO

NOME DELL’ATTRIBUTO

ESEMPI

SUPERA

VOTO

STUDENTE

MATRICOLA COGNOMENOME

ANNO DI CORSO

© Fabio A. Schreiber Progettazione 29Progettazione 29© Fabio A. Schreiber Progettazione 29

ATTRIBUTI

• SCALARE– L’ATTRIBUTO HA UN SOLO VALORE

• MULTIPLO– L’ATTRIBUTO AMMETTE PIU’ VALORI

MATRICOLACOGNOMEVOTO

(min, Max)QUALIFICATITOLOSPECIALITA’

(min, Max) RAPPRESENTANO LA CARDINALITA’ MINIMA E MASSIMA DELL’ATTRIBUTO

Page 16: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

16

© Fabio A. Schreiber Progettazione 30Progettazione 30© Fabio A. Schreiber Progettazione 30

ATTRIBUTI

• COMPOSTO– LA PROPRIETA’ E’ A SUA VOLTA FORMATA

DA ELEMENTI PIU’ SEMPLICI

• COMPOSTO– LA PROPRIETA’ E’ A SUA VOLTA FORMATA DA

ELEMENTI PIU’ SEMPLICI

• MULTIPLO COMPOSTO

(1,1)

(1,N)

DATA (gg, mm, aaaa)INDIRIZZO (spec. topon., denomin., civico, cap, citta’)

TELEFONO (stato, citta’, numero, interno)

© Fabio A. Schreiber Progettazione 31Progettazione 31© Fabio A. Schreiber Progettazione 31

ATTRIBUTI

• OPZIONALE– SI AMMETTE CHE IL VALORE POSSA NON

ESISTERE

• DIVERSO DA sconosciuto

• DIVERSO DA non applicabile

• DIVERSO DA valore = 0 !!!

(0, 1) (0, N)

Page 17: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

17

© Fabio A. Schreiber Progettazione 32Progettazione 32© Fabio A. Schreiber Progettazione 32

MONDO REALE E MODELLO E-R

ENTITA’, RELAZIONI E ATTRIBUTI NON SONO FATTI ASSOLUTI, MA DIPENDONO DAL CONTESTO APPLICATIVO– SE IL CONCETTO E’ SIGNIFICATIVO PER IL

CONTESTO APPLICATIVO --> ENTITA’

– SE IL CONCETTO E’ MARGINALE E DESCRIVIBILE IN MODO SEMPLICE --> ATTRIBUTO

– SE IL CONCETTO DEFINISCE UN LEGAME TRA ENTITA’ --> RELAZIONE

© Fabio A. Schreiber Progettazione 33Progettazione 33© Fabio A. Schreiber Progettazione 33

ESEMPI DI SCHEMIE’ POSSIBILE CHE LA STESSA REALTA’ VENGA MODELLATA CON SCHEMI DIVERSI

FEMMINA MASCHIOMATRIMONIO

LUOGO DATA

(m,M) (m,M)

PERSONAE’

CONIUGEDI

(0,1), (0,1) --> MONOGAMIA

(0,1), (0,N) --> POLIGAMIA

(0,N), (0,1) --> POLIANDRIA

(0,N), (0,M) --> COMUNE

PERSONA

SESSO STATO CIVILE

NOME DELCONIUGE

(0,1)

Page 18: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

18

© Fabio A. Schreiber Progettazione 34Progettazione 34© Fabio A. Schreiber Progettazione 34

ASTRAZIONI

• UN MODELLO E’ UN’ASTRAZIONE DELLA REALTA’

• NEL CASO DEL MODELLO E-R E’ UTILE CONSIDERARE TRE TIPI DI ASTRAZIONI

– CLASSIFICAZIONE (is-member-of)

– AGGREGAZIONE (is-part-of)

– GENERALIZZAZIONE/SPECIALIZZAZIONE(is-a)

© Fabio A. Schreiber Progettazione 35Progettazione 35© Fabio A. Schreiber Progettazione 35

CLASSIFICAZIONE (is-member-of)

• DEFINISCE UNA CLASSE DI OGGETTI CON PROPRIETA’ COMUNI

• IDENTIFICA UN’ENTITA’ ATTRAVERSO I SUOI ATTRIBUTI

ESEMPI

ATTRIBUTO: colore = CLASSE {rosso, giallo, verde, …}

ATTRIBUTO: tipo = CLASSE {corsa, turismo, montagna, …}

ATTRIBUTO: proprietario = CLASSE {Pietro, Giuseppe, …}

ENTITA’: bicicletta = CLASSE {colore, tipo, proprietario}

Page 19: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

19

© Fabio A. Schreiber Progettazione 36Progettazione 36© Fabio A. Schreiber Progettazione 36

AGGREGAZIONE (is-part-of)

• DEFINISCE UNA NUOVA CLASSE A PARTIRE DA ALTRE CLASSI COMPONENTI

• IDENTIFICA UN’ENTITA’ ATTRAVERSO I SUOI COMPONENTI

ESEMPI

ENTITA’: ruota

ENTITA’: telaio

ENTITA’: sellino

ENTITA’: bicicletta = AGGREGAZIONE {ruota, telaio, sellino}

© Fabio A. Schreiber Progettazione 37Progettazione 37© Fabio A. Schreiber Progettazione 37

SOTTOINSIEMI DI UN INSIEME

COPERTURA– RISPETTO ALLA PARTECIPAZIONE

• TOTALE (t)– TUTTI GLI ELEMENTI DELL’INSIEME FANNO PARTE DI UN

SOTTOINSIEME

• PARZIALE (p)– ALCUNI ELEMENTI POSSONO NON FAR PARTE DI ALCUN

SOTTOINSIEME

– RISPETTO ALLA SOVRAPPOSIZIONE

• ESCLUSIVA (e)– OGNI ELEMENTO PUO’ FAR PARTE DI UN SOLO

SOTTOINSIEME

• SOVRAPPOSTA (s)– UN ELEMENTO PUO’ FAR PARTE DI PIU’ SOTTOINSIEMI

UNA SUDDIVISIONE (t,e) SI DICE PARTIZIONE DELL’INSIEME

Page 20: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

20

© Fabio A. Schreiber Progettazione 38Progettazione 38© Fabio A. Schreiber Progettazione 38

GENERALIZZAZIONE (is-a)

• DEFINISCE UNA CLASSE COME GERARCHIA DI SOTTOINSIEMI

GLI ATTRIBUTI DEL PADRE VENGONO EREDITATIDAI FIGLI

TITOLI

AZIONI OBBLIGAZIONI TITOLI DI STATO

codiceidentif

denominazione

n° azioniemesse

quotazione

data quotazione

statoemittente

tasso scadenzaenteemittente

tasso scadenzatipoazienda

tipo

(p,e)

© Fabio A. Schreiber Progettazione 39Progettazione 39© Fabio A. Schreiber Progettazione 39

IDENTIFICATORE (CHIAVE)UN IDENTIFICATORE, COSTITUITO DA UNO O PIU’ ATTRIBUTI, CARATTERIZZA IN MODO UNIVOCO LA SINGOLA ISTANZA DI ENTITA’ O DI ASSOCIAZIONE

– TOTALE, OBBLIGATORIO, UNICO, ESPLICITO

– PUO’ ESSERE COMPOSTO, MA NON DEVE AVERE null

– IN GENERE NON E’ MODIFICABILE

– L’IDENTIFICATORE DI UN’ASSOCIAZIONE E’ COSTITUITO DALL’UNIONE DEGLI IDENTIFICATORI DELLE ENTITA’ CHE PARTECIPANO

id

ESEMPI

n°telaio

ATOMOBILE ISBN LIBROc.f. DIPENDENTE

Page 21: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

21

© Fabio A. Schreiber Progettazione 40Progettazione 40© Fabio A. Schreiber Progettazione 40

IDENTIFICATORE (CHIAVE)

DIPENDENTE

c.f.

cognome

nome

data_nascita

livello

recapito

qualifica

stipendio

data_assunzione

telefono

indirizzo

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(1,2)

(1,n)

(1,1)

© Fabio A. Schreiber Progettazione 41Progettazione 41© Fabio A. Schreiber Progettazione 41

IDENTIFICATORE COMPOSTO

DIPENDENTE

c.f.

cognome

nome

data_nascita

livello

recapito

qualifica

stipendio

data_assunzione

telefono

indirizzo

(1,1)

(1,1)

(1,1)

(1,2)

(1,n)

(1,1)

Page 22: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

22

© Fabio A. Schreiber Progettazione 42Progettazione 42© Fabio A. Schreiber Progettazione 42

ESEMPI DI SCHEMI

GUIDATORE

PERCORSO

AUTOBUSGUIDARE

ADIBITO_A

matr.

turno

n_aut

cod_p

(0,1) (0,n)

(0,1)

(1,n)

GUIDATORE AUTOBUS

TURNOFARE USARE

matr.

n_autnumero data fascia

id_tu

(0,n) (0,n)

(1,1) (1,1)

QUESTO E’ LO SNAPSHOTPER UNA SOLA GIORNATA

QUESTO E’ UNO SCHEMAVALIDO PER PIU’ GIORNI

© Fabio A. Schreiber Progettazione 43Progettazione 43© Fabio A. Schreiber Progettazione 43

ESEMPI DI SCHEMI

GUIDAREGUIDATOREmatr. AUTOBUS

n_aut

PERCORSOcod_p

(0,1) (0,1)

(0,n) LA CHIAVE DELL’ASSOCIAZIONETERNARIA E’ (matr., n_aut, cod_p);

LE CARDINALITA’ SI RIFERISCONO ALL’ASSOCIAZIONE DI UN’ENTITA’ CON LA COPPIA DELLE ALTRE DUE

GV

(0,n)

GUIDATOREmatr. AUTOBUS

n_aut

PERCORSO

cod_pcod_v

VIAGGIO

AV

VP

data_p data_a

(0,n)

(0,n)(1,1)(1,1)

(1,1)

E’ ANCHE POSSIBILE (1,n) INVECE DI (1,1)

Page 23: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

23

© Fabio A. Schreiber Progettazione 44Progettazione 44© Fabio A. Schreiber Progettazione 44

AUTO-ASSOCIAZIONI (RELAZIONI UNARIE)

• SONO ASSOCIAZIONI AVENTI COME PARTECIPANTI ISTANZE PROVENIENTI DALLA STESSA ENTITA’

• VENGONO ANCHE CHIAMATE RELAZIONI DI RUOLO O AD ANELLO

© Fabio A. Schreiber Progettazione 45Progettazione 45© Fabio A. Schreiber Progettazione 45

AUTO-ASSOCIAZIONI (RELAZIONI UNARIE)

IMPIEGATO DIPENDEREmanager

(0,n)

(1,n) segretaria

matr

IL RUOLO VIENE RIPORTATOSUL RELATIVO RAMO

IMPIEGATO CONTROLLO

CONTROLLORE(0,n)

(1,1) CONTROLLATO

matr

ASSOCIAZIONE RICORSIVA, GERARCHIA (1:n)

Page 24: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

24

© Fabio A. Schreiber Progettazione 46Progettazione 46© Fabio A. Schreiber Progettazione 46

RIDONDANZE NEGLI SCHEMI• LA SPECIFICA DI UNA BASE DI DATI ESPRESSA

IN LINGUAGGIO NATURALE PUO’ PORTARE ALL’INTRODUZIONE DI RIDONDANZA

• LE RIDONDANZE NEGLI SCHEMI DEVONO ESSERE IDENTIFICATE ED ELIMINATEMODIFICANDOLI OPPORTUNAMENTE

ESEMPIO• UNA SOCIETA’ GESTISCE SALE PER ESPOSIZIONI

• LE SALE SONO RISERVATE A MARCHE DI MACCHINE

• LE SALE COMPRENDONO SPAZI DI ESPOSIZIONE

• GLI SPAZI CONTENGONO MACCHINE

• LE MACCHINE APPARTENGONO AD UNA CERTA MARCA

© Fabio A. Schreiber Progettazione 47Progettazione 47© Fabio A. Schreiber Progettazione 47

RIDONDANZE NEGLI SCHEMI

SALA SPAZIO

MACCHINAMARCA

COMPR.

RISERV. CONTIENE.

APPART.

(1,1)

(1,1)

(1,1)

(1,1)(1,n)

(1,n)

(1,n)

(1,n)

POTREBBE ESSERCI RIDONDANZA

Page 25: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

25

© Fabio A. Schreiber Progettazione 48Progettazione 48© Fabio A. Schreiber Progettazione 48

RIDONDANZE NEGLI SCHEMI

• VINCOLO– UNA SALA CONTIENE UNA SOLA MARCA

• SE IL VINCOLO PER LA SISTEMAZIONE DELLE MACCHINE NEGLI SPAZI VIENE RISPETTATO IL CICLO E’ RIDONDANTE

• NON E’ POSSIBILE ELIMINARE UN LATO A CASO SENZA PERDERE INFORMAZIONE

© Fabio A. Schreiber Progettazione 49Progettazione 49© Fabio A. Schreiber Progettazione 49

RIDONDANZE NEGLI SCHEMI

SALA SPAZIO

MACCHINAMARCA

COMPR.

RISERV. CONTIENE.

APPART.

(1,1)

(1,1)

(1,1)

(1,1)(1,n)

(1,n)

(1,n)

(1,n)

DATO UNO SPAZIO NON E’ PIU’ POSSIBILE RISALIRE ALLA SALADI APPARTENENZA(CI POSSONO ESSERE PIU’ SALE DEDICATE ALLA STESSA MARCA)

Page 26: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

26

© Fabio A. Schreiber Progettazione 50Progettazione 50© Fabio A. Schreiber Progettazione 50

RIDONDANZE NEGLI SCHEMI

SALA SPAZIO

MACCHINAMARCA

COMPR.

RISERV. CONTIENE.

APPART.

(1,1)

(1,1)

(1,1)

(1,1)(1,n)

(1,n)

(1,n)

(1,n)

DATA UNA MACCHINA NON E’ PIU’ POSSIBILE RISALIRE ALLOSPAZIO CHE LA CONTIENE(CI SONO PIU’ SPAZI IN UNA SALA)

© Fabio A. Schreiber Progettazione 51Progettazione 51© Fabio A. Schreiber Progettazione 51

RIDONDANZE NEGLI SCHEMI

SALA SPAZIO

MACCHINAMARCA

COMPR.

RISERV. CONTIENE.

APPART.

(1,1)

(1,1)

(1,1)

(1,1)(1,n)

(1,n)

(1,n)

(1,n)

L’INFORMAZIONE VIENE PRESERVATA

Page 27: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

27

© Fabio A. Schreiber Progettazione 52Progettazione 52© Fabio A. Schreiber Progettazione 52

RIDONDANZE NEGLI SCHEMI

SALA SPAZIO

MACCHINAMARCA

COMPR.

RISERV. CONTIENE.

APPART.

(1,1)

(1,1)

(1,1)

(1,1)(1,n)

(1,n)

(1,n)

(1,n)

L’INFORMAZIONE VIENE PRESERVATA

© Fabio A. Schreiber Progettazione 53Progettazione 53© Fabio A. Schreiber Progettazione 53

ENTITA’ DEBOLI

• CONTENGONO ISTANZE ACCETTATE DAL SISTEMA SOLO IN PRESENZA DI DETERMINATE ISTANZE DI ALTRE ENTITA’ DALLE QUALI ESSE DIPENDONO

• IN CASO DI ELIMINAZIONE DELL’ISTANZA DI RIFERIMENTO DEVONO ESSERE ELIMINATE ANCHE LE ISTANZE DEBOLI AD ESSA COLLEGATE (DIPENDENZA ESISTENZIALE)

• L’IDENTIFICATORE DELL’ENTITA’ DEBOLE DEVE CONTENERE L’IDENTIFICATORE DELL’ENTITA’ DALLA QUALE DIPENDE

Page 28: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

28

© Fabio A. Schreiber Progettazione 54Progettazione 54© Fabio A. Schreiber Progettazione 54

ENTITA’ DEBOLI

MOVIMENTO

CONTO CORRENTE

OPERA

n_conto

cod_mov

(0,n)

(1,1)

IDENTIFICATORE = {n_conto, cod_mov}

© Fabio A. Schreiber Progettazione 55Progettazione 55© Fabio A. Schreiber Progettazione 55

ESEMPIO DI ENTITA’ DEBOLI

• I TRENI SONO IDENTIFICATI DA UN NUMERO E DA UNA DATA E SONO COMPOSTI DA VETTURE CHE CONTENGONO I POSTI DA PRENOTARE

• LE VETTURE SONO NUMERATE E I POSTI SONO NUMERATI ALLO STESSO MODO IN OGNI VETTURA

• SE LE VETTURE HANNO SCOMPARTIMENTI, I POSTI STANNO ALL’INTERNO DI UNO SCOMPARTIMENTO

Page 29: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

29

© Fabio A. Schreiber Progettazione 56Progettazione 56© Fabio A. Schreiber Progettazione 56

ESEMPIO DI ENTITA’ DEBOLI

VETTURA TRENO

POSTOSCOMPARTIMENTO

COMP.

CONT.

IN

n_tr datan_vett

n_sc

n_p

(1,1)

(1,1)

(1,1)

(1,n)

(1,n)

(1,n)

SE VIENE CANCELLATO IL TRENO, VENGONO CANCELLATI ANCHE TUTTI I POSTI

© Fabio A. Schreiber Progettazione 57Progettazione 57© Fabio A. Schreiber Progettazione 57

LE GERARCHIE

• ALCUNE ENTITA’ POSSONO ESSERE MOLTO SIMILI O CASI PARTICOLARI L’UNA DELL’ALTRA

• RISULTA UTILE “PORRE A FATTOR COMUNE” LE CARATTERISTICHE COMUNI E EVIDENZIARE I MOTIVI DI DISTINZIONE

• IL LEGAME LOGICO CHE UNISCE LA CLASSE DEGLI ATTRIBUTI COMUNI (PADRE) CON LE SOTTOCLASSI SPECIALIZZATE (FIGLI) E’ LA GERARCHIA DI SPECIALIZZAZIONE

Page 30: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

30

© Fabio A. Schreiber Progettazione 58Progettazione 58© Fabio A. Schreiber Progettazione 58

LE GERARCHIE

• OGNI ISTANZA DI UN’ENTITA’ FIGLIO E’ NECESSARIAMENTE ANCHE ISTANZA DELL’ENTITA’ PADRE

• UN’ISTANZA DELL’ENTITA’ PADRE PUO’ESSERE ISTANZA DI UNA O PIU’ ENTITA’ FIGLIO

• NEL CASO DI PARTIZIONE ANCHE OGNI ISTANZA DELL’ENTITA’ PADRE E’ NECESSARIAMENTE ISTANZA DI UNA E UNA SOLA ENTITA’ FIGLIO

© Fabio A. Schreiber Progettazione 59Progettazione 59© Fabio A. Schreiber Progettazione 59

ESEMPIO DI GERARCHIA

CONSULENTEESTERNO

LEGALE INGEGNERE ECONOMISTA

c.f. cognome

nome

p, e

MECCANICO AERONAUTICOMATEMATICO

p, s

Page 31: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

31

© Fabio A. Schreiber Progettazione 60Progettazione 60© Fabio A. Schreiber Progettazione 60

EREDITARIETA’ DELLE PROPRIETA’

• GLI ATTRIBUTI DELL’ENTITA’ PADRE NON DEVONO ESSERE REPLICATI SULLE ENTITA’ FIGLIE– GLI ATTRIBUTI DELL’ENTITA’ PADRE

VENGONO EREDITATI DALLE ENTITA’ FIGLIEE FANNO PARTE DEL SUO TIPO

– NON E’ VERO IL VICEVERSA

© Fabio A. Schreiber Progettazione 61Progettazione 61© Fabio A. Schreiber Progettazione 61

GERARCHIE ISA

LA GERARCHIA ISA CONTIENE PIU’ INFORMAZIONE DELL’ASSOCIAZIONE UNARIA RICORSIVA

DIPENDENTE

IMPIEGATO DIRIGENTEDIREZIONE(1,1) (0,n)

DIPENDENTE

(0,n)dirige

(1,1)diretto

Page 32: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

32

© Fabio A. Schreiber Progettazione 62Progettazione 62© Fabio A. Schreiber Progettazione 62

STRATEGIE DI PROGETTO

• TOP - DOWN

• BOTTOM - UP

• INSIDE - OUT

• MISTA

STRATEGIE DI PROGETTO

© Fabio A. Schreiber Progettazione 63

Page 33: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

33

© Fabio A. Schreiber Progettazione 64Progettazione 64© Fabio A. Schreiber Progettazione 64

STRATEGIA TOP - DOWN

• SI COSTRUISCE UNO SCHEMA INIZIALE A PARTIRE DALLE SPECIFICHE

• PER RAFFINAMENTI SUCCESSIVI SI ARRIVA A SCHEMI INTERMEDI E QUINDI ALLO SCHEMA FINALE

• LA TRASFORMAZIONE PREVEDE L’USO DI PRIMITIVE ELEMENTARI CHE OPERANO SUL SINGOLO CONCETTO PER DESCRIVERLO CON MAGGIORE DETTAGLIO

© Fabio A. Schreiber Progettazione 65Progettazione 65© Fabio A. Schreiber Progettazione 65

PRIMITIVE DI TRASFORMAZIONE

CORSO

EDIZIONEDI CORSO

TIPO DICORSO

TIPOLOGIA

P1

PARTECIPANTE PARTECIPANTE

DIPENDENTE PROFESSIONISTA

P2

Page 34: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

34

© Fabio A. Schreiber Progettazione 66Progettazione 66© Fabio A. Schreiber Progettazione 66

PRIMITIVE DI TRASFORMAZIONE

CORSO

DOCENTE

DOCENZA

CORSO

DOCENTE

DOCENZACORRENTE

DOCENZAPASSATA

P3

ESAME

CORSO

STUDENTE

CORSOESAME

STUDENTE

P4SOSTIENE RELATIVO

© Fabio A. Schreiber Progettazione 67Progettazione 67© Fabio A. Schreiber Progettazione 67

PRIMITIVE DI TRASFORMAZIONE

EFFETTUA

CORSO

MOVIMENTO

CORSOcodice

crediti

P5

MOVIMENTO EFFETTUA

P7

EFFETTUAP5

EFFETTUA

data

Page 35: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

35

© Fabio A. Schreiber Progettazione 68Progettazione 68© Fabio A. Schreiber Progettazione 68

ESEMPIO DI SVILUPPO TOP-DOWN

AFFERISCE

DIRIGE

E’ PARTE

PERSONALE

PROGETTO

PARTECIPA

DIPARTIMENTO

SEDE

COMPOSTO

AMMINISTR.

TECNICO

© Fabio A. Schreiber Progettazione 69Progettazione 69© Fabio A. Schreiber Progettazione 69

ESEMPIO DI SVILUPPO TOP-DOWN

DIRIGE

E’ PARTE

PERSONALE

PROGETTO

PARTECIPA

DIPARTIMENTO

SEDE

COMPOSTO

AMMINISTR.

TECNICO

INGEGNERE

COORDINA

DOMICILIATO

Page 36: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

36

© Fabio A. Schreiber Progettazione 70Progettazione 70© Fabio A. Schreiber Progettazione 70

STRATEGIA TOP-DOWN• VANTAGGI

– IL PROGETTISTA DESCRIVE INIZIALMENTE LO SCHEMA TRASCURANDO I DETTAGLI

– LE PRECISAZIONI AVVENGONO GRADUALMENTE APPROFONDENDO L’ANALISI

• PROBLEMA– NON SI ADATTA AD APPLICAZIONI MOLTO

COMPLESSE POICHE’ E’ DIFFICILE AVERE SIN DALL’INIZIO UNA VISIONE GLOBALE SUFFICIENTEMENTE PRECISA DI TUTTE LE PARTI DEL SISTEMA

© Fabio A. Schreiber Progettazione 71Progettazione 71© Fabio A. Schreiber Progettazione 71

STRATEGIA BOTTOM-UP

• LE SPECIFICHE NASCONO SUDDIVISE PER SOTTOPROGETTI DESCRIVENTI FRAMMENTI LIMITATI DELLA REALTA’ DA MODELLARE

• SI SVILUPPANO SOTTOSCHEMI SEPARATI

• SI FONDONO I SOTTOSCHEMI PER OTTENERE LO SCHEMA FINALE

Page 37: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

37

© Fabio A. Schreiber Progettazione 72Progettazione 72© Fabio A. Schreiber Progettazione 72

STRATEGIA BOTTOM-UP

• VANTAGGI– DIVERSI PROGETTISTI ELABORANO GLI

SCHEMI PARZIALI, OGNUNO AVENDO UNA VISIONE PIU’ PRECISA DEL PROPRIO SETTORE

– SI ADATTA ANCHE AD APPLICAZIONI MOLTO COMPLESSE

• PROBLEMA– SI POSSONO INCONTRARE CONFLITTI E

DIFFICOLTA’ DI INTEGRAZIONE NON FACILI DA RISOLVERE

© Fabio A. Schreiber Progettazione 73Progettazione 73© Fabio A. Schreiber Progettazione 73

ALTRE STRATEGIE

• INSIDE-OUTVARIANTE DELLA BOTTOM-UP NELLA QUALE SI SVILUPPANO SCHEMI PARZIALI IN AGGIUNTA A SOTTOSCHEMI GIA’ DEFINITI PRECEDENTEMENTE E SEPARATAMENTE

• MISTA– SI PARTE DA UNO SCHEMA SCHELETRO GENERALE

– LO SI SUDDIVIDE IN SOTTOSCHEMI DA DETTAGLIARE

– SI FONDONO I SOTTOSCHEMI

IN LINEA DI MASSIMA E’ CONVENIENTE ADDOTTARE A POSTERIORI UNA SOLUZIONE TOP-DOWN COME DOCUMENTAZIONE

Page 38: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

38

© Fabio A. Schreiber Progettazione 74Progettazione 74© Fabio A. Schreiber Progettazione 74

PRORPIETA’ GENERALI DI UNO SCHEMA E-R

• COMPLETEZZARISPETTO ALL’APPLICAZIONE

• CORRETTEZZA– SINTATTICA

– SEMANTICA

• LEGGIBILITA’– GRAFICA

• MINIMIZZARE CURVE E INCROCI

• FARE IN MODO CHE IL GRAFO SIA PLANARE

• DISPORRE GLI ELEMENTI SU UNA GRIGLIA

– CONCETTUALE

© Fabio A. Schreiber Progettazione 75Progettazione 75© Fabio A. Schreiber Progettazione 75

PRORPIETA’ GENERALI DI UNO SCHEMA E-R

• MINIMALITA’ASSENZA DI CICLI RIDONDANTI

• AUTO-ESPLICATIVITA’MINIMIZZARE LA DOCUMENTAZIONE DI SUPPORTO

Page 39: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

39

© Fabio A. Schreiber Progettazione 76Progettazione 76© Fabio A. Schreiber Progettazione 76

PROGETTO LOGICO

© Fabio A. Schreiber Progettazione 77Progettazione 77© Fabio A. Schreiber Progettazione 77

PROGETTO LOGICO

• LO SCHEMA E-R DESCRIVE IL DOMINIO APPLICATIVO AD UN CERTO LIVELLO DI ASTRAZIONE– FORNISCE UNA DESCRIZIONE SINTETICA

VISIVA

– RAPPRESENTA BUONA PARTE DELA SEMANTICA DELL’APPLICAZIONE

– E’ UTILE PER SCAMBIARE INFORMAZIONITRA I MEMBRI DELL’UNITA’ DI PROGETTO E PER MANTENERE LA DOCUMENTAZIONE

Page 40: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

40

© Fabio A. Schreiber Progettazione 78Progettazione 78© Fabio A. Schreiber Progettazione 78

PROGETTO LOGICO

• NON ESISTONO DBMS IN GRADO DI OPERARE DIRETTAMENTE A PARTIRE DAGLI SCHEMI E-R– OCCORRE TRADURLI IN ALTRI FORMALISMI

(SCHEMI LOGICI)

– LA TRADUZIONE PUO’ ESSERE FATTA IN MODO SEMIAUTOMATICO

– LE SCELTE ALTERNATIVE DEVONO TENER CONTO DELL’EFFICIENZA DELLO SCHEMA LOGICO RISULTANTE E DELLE OPERAZIONI DA EFFETTUARE

© Fabio A. Schreiber Progettazione 79Progettazione 79© Fabio A. Schreiber Progettazione 79

PROCESSO DI PROGETTAZIONE

DOMINIO APPLICATIVO

SCHEMA CONCETTUALE(E-R)

RACCOLTA DEI REQUISITI

PROGETTAZIONE CONCETTUALE

PROGETTAZIONE LOGICASCHEMA LOGICO

(SQL: DDL)

DBMS

(SQL: DDL, DML)

DB

Page 41: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

41

© Fabio A. Schreiber Progettazione 80Progettazione 80© Fabio A. Schreiber Progettazione 80

PROGETTO LOGICO

SI POSSONO INDIVIDUARE ALCUNE LINEE GUIDAPER LE SCELTE DI PROGETTO

– CONSIDERARE LE PROPRIETA’ LOGICHE COMUNQUE PREVALENTI RISPETTO A CONSIDERAZIONI DI EFFICIENZA

– TENERE SULLA STESSA ENTITA’ INFORMAZIONI CHE VERRANO FREQUENTEMENTE CONSULTATE ASSIEME

– TENERE SU ENTITA’ SEPARATE INFORMAZIONI DESTINATE AD ESSERE CONSULTATE SEPARATAMENTE

– LIMITARE L’INCIDENZA DI VALORI NULLI PER ATTRIBUTI OPZIONALI

© Fabio A. Schreiber Progettazione 81Progettazione 81© Fabio A. Schreiber Progettazione 81

FASI DEL PROGETTO LOGICO

LE TRASFORMAZIONI E LE TRADUZIONI TRA LO SCHEMA E-R E LO SCHEMA LOGICO AVVENGONO PER FASI

1 - ELIMINAZIONE DELLE GERARCHIE ISA

2 - SELEZIONE DELLE CHIAVI PRIMARIE

• ELIMINAZIONE DELLE IDENTIFICAZIONI ESTERNE

3 - NORMALIZZAZIONE DEGLI ATTRIBUTI COMPOSTI O MULTIPLI

4 - TRADUZIONE DI ENTITA’ E ASSOCIAZIONI IN SCHEMI DI RELAZIONI

5 - VERIFICA DI NORMALIZZAZIONE

Page 42: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

42

© Fabio A. Schreiber Progettazione 82Progettazione 82© Fabio A. Schreiber Progettazione 82

ELIMINAZIONE DELLE GERARCHIE

IL MODELLO RELAZIONALE E’ “PIATTO” E NON PUO’ RAPPRESENTARE LE GERARCHIE CHE SONO SOSTITUITE DA ENTITA’ E ASSOCIAZIONI

• MANTENIMENTO DELLE ENTITA’ CON ASSOCIAZIONI

• COLLASSO VERSO L’ALTO

• COLLASSO VERSO IL BASSO

L’APPLICABILITA’ E LA CONVENIENZA DI CIASCUNA SOLUZIONE DIPENDONO DALLE PROPRIETA’ DI COPERTURA E DALLE OPERAZIONI PREVISTE

E

E1 E2a1 a2

k a

© Fabio A. Schreiber Progettazione 83Progettazione 83© Fabio A. Schreiber Progettazione 83

MANTENIMENTO DELLE ENTITA’

• TUTTE LE ENTITA’ VENGONO MANTENUTE

• LE ENTITA’ FIGLIE SONO ASSOCIATE ALL’ENTITA’ PADRE

• LE ENTITA’ FIGLIE SONO IDENTIFICATE ESTERNAMENTE TRAMITE L’ASSOCIAZIONE

SOLUZIONE SEMPRE POSSIBILE INDIPENDENTEMENTE DALLA COPERTURA

k a

E

E1 E2a1 a2

(0,1) (0,1)

(1,1) (1,1)

Page 43: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

43

© Fabio A. Schreiber Progettazione 84Progettazione 84© Fabio A. Schreiber Progettazione 84

MANTENIMENTO DELLE ENTITA’

n_schede

PROGETTO

PROG_SWmesiuomo

cod desc

PROG_HW

COMP_HW

USA(0,n)

(1,n)

(0,1) (0,1)

(1,1) (1,1)

COMP_HW

USA(0,n)

(1,n)

PROGETTO

cod desc

PROG_SWmesiuomo

PROG_HWn_sc

© Fabio A. Schreiber Progettazione 85Progettazione 85© Fabio A. Schreiber Progettazione 85

ELIMINAZIONE DELLE GERARCHIE

IL COLLASSO VERSO L’ALTO RIUNISCE TUTTE LE ENTITA’ FIGLIE NELL’ENTITA’ PADRE

E

E1 E2a1 a2

k a

E

a

ka1

a2

selettore

(0,1)

(0,1)

selettore E’ UN ATTRIBUTO CHE SPECIFICA SE UNA ISTANZA DI E APPARTIENE A UNA DELLE SOTTOENTITA’

Page 44: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

44

© Fabio A. Schreiber Progettazione 86Progettazione 86© Fabio A. Schreiber Progettazione 86

COLLASSO VERSO L’ALTO

• FAVORISCE LE OPERAZIONI CHE CONSULTANO INSIEME GLI ATTRIBUTI DELL’ENTITA’ PADRE E QUELLI DI UN’ENTITA’ FIGLIA– SI ACCEDE AD UNA SOLA ENTITA’ INVECE

CHE A DUE ATTRAVERSO UN’ASSOCIAZIONE

• GLI ATTRIBUTI OBBLIGATORI PER LE ENTITA’ FIGLIE DIVENTANO OPZIONALI PER L’ENTITA’ PADRE

© Fabio A. Schreiber Progettazione 87Progettazione 87© Fabio A. Schreiber Progettazione 87

COLLASSO VERSO L’ALTO

E

a

ka1

a2

selettore

(0,1)

(0,1)

COPERTURA DELL’ISA

• TOTALE, ESCLUSIVAselettore HA n VALORI QUANTE SONO LE SOTTOENTITA’

• PARZIALE ESCLUSIVAselettore HA n+1 VALORI PER POTER SEGNALARE LE ISTANZE CHE NON APPARTENGONO AD ALCUNA SOTTOENTITA’

Page 45: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

45

© Fabio A. Schreiber Progettazione 88Progettazione 88© Fabio A. Schreiber Progettazione 88

COLLASSO VERSO L’ALTO

COPERTURA DELL’ISA

• SOVRAPPOSTA, TOTALE• OCCORRONO TANTI selettori

BOOLEANI QUANTE SONO LE SOTTOENTITA’

• sel_i E’ vero SE L’ISTANZA APPARTIENE ALLA i-esima SOTTOENTITA’

• SOVRAPPOSTA, PARZIALE• I selettori POSSONO ESSERE

ANCHE TUTTI falsi

E

a

k

sel_i

(0,n)

• LE ASSOCIAZIONI CONNESSE ALLE SOTTTOENTITA’ SI TRASPORTANO SU E

• LE EVENTUALI CARDINALITA’ MINIME DIVENTANO 0

© Fabio A. Schreiber Progettazione 89Progettazione 89© Fabio A. Schreiber Progettazione 89

COLLASSO VERSO L’ALTO

RELATORE AZIENDA

STUDENTE

LAUREANDO DIPLOMANDO

cod_r denomin.

matrcognome

tesi stagep, e

(1,1) (1,1)

RELATORE AZIENDA

cod_r denomin.

(0,1) (0,1)

STUDENTEmatrcognomeselettore

tesi

stage

(0,1)

(0,1)

IL DOMINIO DI selettore E’ (l, d, null)

Page 46: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

46

© Fabio A. Schreiber Progettazione 90Progettazione 90© Fabio A. Schreiber Progettazione 90

COLLASSO VERSO IL BASSO

SI ELIMINA L’ENTITA’ PADRE TRASFERENDONE GLI ATTRIBUTI SU TUTTE LE ENTITA’ FIGLIE

– UN’ASSOCIAZIONE DEL PADRE E’ REPLICATA TANTE VOLTE QUANTE SONO LE ENTITA’ FIGLIE

– E’ CONVENIENTE QUANDO CI SIANO MOLTI ATTRIBUTI DI SPECIALIZZAZIONE

• VERSO L’ALTO SI AVREBBE UN ECCESSO DI VALORI NULLI

– FAVORISCE LE OPERAZIONI NELLE QUALI SI ACCEDE SEPARATAMENTE ALLE ENTITA’ FIGLIE

© Fabio A. Schreiber Progettazione 91Progettazione 91© Fabio A. Schreiber Progettazione 91

COLLASSO VERSO IL BASSO

E

E1 E2a1 a2

k a

E1 E2a2

k a k a

a1

LIMITI DI APPLICABILITA’

• COPERTURA PARZIALE• NON SI PUO’ FARE

NON SI SAPREBBE DOVE METTERE LE ENTITA’ CHE NON APPARTENGONO A E1O A E2

• COPERTURA SOVRAPPOSTA• INTRODUCE RIDONDANZA

GLI ATTRIBUTI DI E VENGONO RIPETUTI PER TUTTE LE ISTANZE CHE APPARTENGONO A PIU’ SOTTOENTITA’

Page 47: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

47

© Fabio A. Schreiber Progettazione 92Progettazione 92© Fabio A. Schreiber Progettazione 92

COLLASSO VERSO IL BASSO

DIPENDENTE SINDACATO

OPERAIO IMPIEGATO DIRIGENTE

ISCRITTO

DIRIGE

cf

cognome

mansione qualifica classe

t,e

(1,n) (1,n)

(1,n)(0,1)

(0,1)

© Fabio A. Schreiber Progettazione 93Progettazione 93© Fabio A. Schreiber Progettazione 93

COLLASSO VERSO IL BASSO

SINDACATO

OPERAIO IMPIEGATO DIRIGENTE

ISCRITTO

DIRIGE

mansione qualifica classe

(1,n) (1,n)

(0,n)

(0,1)

cfcognome

cfcognome cognome

cf

ISCRITTO ISCRITTO

(0,n)

(0,n)

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

(0,n)

DIRIGE

DIRIGE(0,1)(0,1)

(0,n)

(0,n)

Page 48: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

48

© Fabio A. Schreiber Progettazione 94Progettazione 94© Fabio A. Schreiber Progettazione 94

SCELTA DELLA CHIAVE PRIMARIA

TRA I POSSIBILI IDENTIFICATORI DI UN’ENTITA’ E’ NECESSARIO SCEGLIERE UNA CHIAVE PRIMARIA

– IL DBMS DEVE POTER GARANTIRNE L’UNICITA’ DEI VALORI

– CRITERI EURISTICI DI SCELTA• SCEGLIERE L’IDENTIFICATORE USATO PIU’

FREQUENTEMENTE PER ACCEDERE ALL’ENTITA’

• PREFERIRE CHIAVI SEMPLICI A CHIAVI COMPOSTE

• PREFERIRE CHIAVI INTERNE A CHIAVI ESTERNE

© Fabio A. Schreiber Progettazione 95Progettazione 95© Fabio A. Schreiber Progettazione 95

IDENTIFICATORI ESTERNI

UNA COMPONENTE DI IDENTIFICAZIONE ESTERNA DI UNA ENTITA’ E2 DA UNA ENTITA’ E1ATTRAVERSO UNA RELAZIONE R COMPORTA IL TRASPORTO DELLA CHIAVE PRIMARIA DI E1SU E2

LAVORA

(E1)

(E2)

(R)

(1,n)

(1,1)

STABILIMENTO

DIPENDENTE

codice

denominaz

matr

cognome

Page 49: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

49

© Fabio A. Schreiber Progettazione 96Progettazione 96© Fabio A. Schreiber Progettazione 96

IDENTIFICATORI ESTERNI

• L’ASSOCIAZIONE VIENE RAPPRESENTATA ATTRAVERSO LA CHIAVE E PUO’ ESSERE ELIMINATA

• LA CHIAVE TRASPORTATA E’ CHIAVE ESTERNA

• CON PIU’ IDENTIFICAZIONI IN CASCATA E’ NECESSARIO INIZIARE LA PROPAGAZIONE DALL’ENTITA’ CHE NON HA IDENTIFICAZIONI ESTERNE

(E1)

(E2)

STABILIMENTO

DIPENDENTE

codice

denominaz

matr

cognome

codice

© Fabio A. Schreiber Progettazione 97Progettazione 97© Fabio A. Schreiber Progettazione 97

ATTRIBUTI COMPOSTI O RIPETUTI

• IL MODELLO RELAZIONALE AMMETTE SOLO ATTRIBUTI ATOMICI– ELIMINAZIONE DEGLI ATTRIBUTI COMPOSTI

O RIPETUTI

DIPENDENTE

cf

cognome

via num. città

numero

descrizione(0,n)

indirizzo

telefono

DUE POSSIBILI SOLUZIONI

Page 50: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

50

© Fabio A. Schreiber Progettazione 98Progettazione 98© Fabio A. Schreiber Progettazione 98

ATTRIBUTI COMPOSTI

• PRIMA SOLUZIONE

– ELIMINARE L’ATTRIBUTO COMPOSTO E CONSIDERARE I SUOI COMPONENTI COME ATTRIBUTI SEMPLICI

– SI PERDE LA VISIONE UNITARIA

– SI MANTIENE L’ARTICOLAZIONE DEI COMPONENTI

DIPENDENTE

cf

cognome

via num. città

numero

descrizione(0,n)

telefono

© Fabio A. Schreiber Progettazione 99Progettazione 99© Fabio A. Schreiber Progettazione 99

ATTRIBUTI COMPOSTI

• SECONDA SOLUZIONE

– ELIMINARE I COMPONENTI E CONSIDERARE L’ATTRIBUTO COME SEMPLICE

– LO SCHEMA E’ SEMPLIFICATO

– SI PERDE PARTE DEI DETTAGLI

• L’INDIRIZZO DIVENTA UNA STRINGA MONOLITICA

DIPENDENTE

cf

cognome

indirizzo

numero

descrizione(0,n)

telefono

Page 51: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

51

© Fabio A. Schreiber Progettazione 100Progettazione 100© Fabio A. Schreiber Progettazione 100

ATTRIBUTI RIPETUTI

• SI CREA UNA NUOVA ENTITA’ CHE CONTIENE L’ATTRIBUTO

• LA NUOVA ENTITA’ E’ COLLEGATA A QUELLA ORIGINARIA– UN VALORE PUO’ COMPARIRE UNA SOLA

VOLTA NELLA RIPETIZIONE

– UN VALORE PUO’ COMPARIRE PIU’ DI UNA VOLTA NELLA RIPETIZIONE

© Fabio A. Schreiber Progettazione 101Progettazione 101© Fabio A. Schreiber Progettazione 101

ATTRIBUTI RIPETUTI

UN VALORE PUO’ COMPARIRE UNA SOLA VOLTA NELLA RIPETIZIONE

LA NUOVA ENTITA’ HA UN IDENTIFICATORE COMPOSTO DALLA CHIAVE DELL’ENTITA’ ORIGINARIA PIU’ L’ATTRIBUTO RIPETUTO

DIPENDENTE

cf

cognome

indirizzo

numero

descrizione

TELEFONOcf

Page 52: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

52

© Fabio A. Schreiber Progettazione 102Progettazione 102© Fabio A. Schreiber Progettazione 102

ATTRIBUTI RIPETUTI

UN VALORE PUO’ COMPARIRE PIU’ DI UNA VOLTA NELLA RIPETIZIONE

LA NUOVA ENTITA’ HA LO STESSO IDENTIFICATORE DI QUELLA ORIGINARIA PIU’ UN VALORE SINTETICO

PARTITA…...

data casa ospiti

marcatori(0,n)

PARTITA…...

data casa

ospiti

marcatore(1,1)

MARCATURE

data casa

{n_ordine

© Fabio A. Schreiber Progettazione 103Progettazione 103© Fabio A. Schreiber Progettazione 103

TRADUZIONE STANDARD• OGNI ENTITA’ E’ TRADOTTA CON UNA

RELAZIONE (TABELLA) – CON GLI STESSI ATTRIBUTI

– CON LA STESSA CHIAVE

• OGNI ASSOCIAZIONE E’ TRADOTTA CON UNA RELAZIONE (TABELLA) – CON GLI STESSI ATTRIBUTI

– SI AGGIUNGONO GLI IDENTIFICATORI DI TUTTE LE ENTITA’ COLLEGATE

– LA CHIAVE E’ COMPOSTA DALLE CHIAVI DELLE ENTITA’ COLLEGATE (POTREBBE ESSERE SUPERCHIAVE)

Page 53: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

53

© Fabio A. Schreiber Progettazione 104Progettazione 104© Fabio A. Schreiber Progettazione 104

TRADUZIONE STANDARD

R

E1

E2

k2

k1 a1 b1

a2 b2

ar br

E1 (k1, a1, b1, …)

E2 (k2, a2, b2, …)

R (k1, k2, ar, br, ...)

(1,n)

(1,n)

© Fabio A. Schreiber Progettazione 105Progettazione 105© Fabio A. Schreiber Progettazione 105

TRADUZIONE STANDARD

PIANO_S

STUDENTE

CORSO

cod

matrcognome

nome

denom

anno

(1,n)

(1,n)

CREATE TABLE STUDENTE (matr… NOT NULL, … nome …, PRIMARY KEY (matr))

CREATE TABLE CORSO (codice… NOT NULL, … denom …, PRIMARY KEY (codice))

CREATE TABLE PIANO_S (matr… NOT NULL, codice… NOT NULL, anno …, PRIMARY KEY (matr, codice) FOREIGN KEY (matr) REFERENCES STUDENTEFOREIGN KEY (codice) REFERENCES CORSO);

Page 54: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

54

© Fabio A. Schreiber Progettazione 106Progettazione 106© Fabio A. Schreiber Progettazione 106

ALTRE TRADUZIONI

• LA TRADUZIONE STANDARD – E’ SEMPRE POSSIBILE

– E’ L’UNICA PER LE ASSOCIAZIONI (n:m)

• ALTRE FORME DI TRADUZIONE SONO POSSIBILI PER LE ASSOCIAZIONI (1.1) E (1:n)

• LE ALTRE FORME DI TRADUZIONE FONDONO IN UNA STESSA RELAZIONE ENTITA’ E ASSOCIAZIONI

© Fabio A. Schreiber Progettazione 107Progettazione 107© Fabio A. Schreiber Progettazione 107

ALTRE TRADUZIONI

• DANNO ORIGINE AD UN MINOR NUMERO DI RELAZIONI E QUINDI AD UNO SCHEMA PIU’ SEMPLICE

• RICHIEDONO UN MINOR NUMERO DI JOINPER LA NAVIGAZIONE ATTRAVERSO UNA ASSOCIAZIONE

• PENALIZZANO LE OPERAZIONI CHE CONSULTANO GLI ATTRIBUTI DI UNA SOLA ENTITA’ CHE E’ STATA FUSA

Page 55: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

55

© Fabio A. Schreiber Progettazione 108Progettazione 108© Fabio A. Schreiber Progettazione 108

ASSOCIAZIONE BINARIA 1:n

• SE E1 PARTECIPA CON CARDINALITA’ (1,1) PUO’ ESSERE FUSA CON L’ASSOCIAZIONE

E1 (k1, a1, b1, k2, ar, br)

E2 (k2, a2, b2)

• SE E1 PARTECIPA CON CARDINALITA’ (0,1)QUESTA SOLUZIONE HA VALORI NULLI IN k2, ar, br PER LE ISTANZE DI E1 CHE NON PARTECIPANO ALL’ASSOCIAZIONE

© Fabio A. Schreiber Progettazione 109Progettazione 109© Fabio A. Schreiber Progettazione 109

ASSOCIAZIONE BINARIA 1:n

R

E1

E2

k2

k1 a1 b1

a2 b2

ar br

(1,1)

(1,n)

E2

k2 a2 b2

E1

k1 a1 b1

k2 ar br{

Page 56: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

56

© Fabio A. Schreiber Progettazione 110Progettazione 110© Fabio A. Schreiber Progettazione 110

ASSOCIAZIONE BINARIA 1:n

• IN QUESTO CASO LA PARTECIPAZIONE DI E1 E’ (0,1) O (0,n)– AD UN DATO VALORE DI k1 CORRISPONDE UNO E

UNO SOLO VALORE DI k2

– NON E’ VERO IL CONTRARIO

• SI PUO’ QUINDI DIRE CHE k1 IMPLICA k2(DIPENDENZA FUNZIONALE DA k1 A k2)

• SE SI UTILIZZA IL MODELLO STANDARD A TRE RELAZIONI LA CHIAVE DELLA RELAZIONE CHE TRADUCE L’ASSOCIAZIONE SI RIDUCE A k1

E1 (k1, a1, b1) E2 (k2, a2, b2) R (k1, k2, ar, br)

© Fabio A. Schreiber Progettazione 111Progettazione 111© Fabio A. Schreiber Progettazione 111

ASSOCIAZIONE BINARIA 1:n

INVIA

CLIENTE

ORDINE

num

p_IVAtelefono

nome

data

sconto

(1,1)

(0,n)

CREATE TABLE CLIENTE (p_IVA … NOT NULL, nome …, telefono …, PRIMARY KEY (p_IVA))

CREATE TABLE ORDINE (numero… NOT NULL, data …, p_IVA … NOT NULL, SCONTO …, PRIMARY KEY (numero)FOREIGN KEY (p_IVA) REFERENCES CLIENTE);

CLIENTE

p_IVAtelefono

nomeORDINE

num data

p_IVAsconto

Page 57: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

57

© Fabio A. Schreiber Progettazione 112Progettazione 112© Fabio A. Schreiber Progettazione 112

ASSOCIAZIONE BINARIA 1:1

AMMINISTRA

COMUNE

SINDACO

nome_s

abitantinome_c

partito

data

(1,1)

(1,1)

SI TRADUCE CON UNA SOLA RELAZIONE CHE COMPRENDE TUTTI GLI ATTRIBUTI

CREATE TABLE AMMINISTRAZIONE (nome_c … NOT NULL, abitanti …, nome_s … NOT NULL UNIQUE, partito …, data … PRIMARY KEY (nome_c));

© Fabio A. Schreiber Progettazione 113Progettazione 113© Fabio A. Schreiber Progettazione 113

ASSOCIAZIONE BINARIA 1:1• CARDINALITA’ MINIME ENTRAMBE 1

– VERRA’ SCELTA COME CHIAVE PRIMARIA LA PIU’ SIGNIFICATIVA TRA k1 E k2

• CARDINALITA’ DI E2 E’ (0,1) E QUELLA DI E1 E’ (1,1) – LA CHIAVE PRIMARIA SARA’ k2

– CI SARANNO VALORI NULLI DI k1 IN CORRISPONDENZA DELLE ISTANZE DI E2 CHE NON SI ASSOCIANO

• CARDINALITA’ (0,1) PER ENTRAMBE– BISOGNA MANTENERE DUE RELAZIONI DISTINTE

POICHE’ ALTRIMENTI CI SAREBBERO VALORI NULLI SULLA CHIAVE

Page 58: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

58

© Fabio A. Schreiber Progettazione 114Progettazione 114© Fabio A. Schreiber Progettazione 114

ASSOCIAZIONE BINARIA 1:1

• TRADUZIONE CON DUE RELAZIONI– L’ASSOCIAZIONE PUO’ ESSERE

COMPATTATA CON L’ENTITA’ CHE PARTECIPA OBBLIGATORIAMENTE

– SE ENTRAMBE SONO OBBLIGATORIE SI SCEGLIE QUELLA PIU’ SIGNIFICATIVA

• TRADUZIONE CON TRE RELAZIONI– LA CHIAVE DELLA RELAZIONE CHE

TRADUCE L’ASSOCIAZIONE PUO’ ESSERE INDIFFERENTEMENTE k1 O k2 (NON CI SONO PROBLEMI DI VALORI NULLI)

© Fabio A. Schreiber Progettazione 115Progettazione 115© Fabio A. Schreiber Progettazione 115

AUTO-ASSOCIAZIONE (n:m)

VIENE TRADOTTA CON– UNA RELAZIONE PER L’ENTITA’

– UNA RELAZIONE PER L’ASSOCIAZIONE

• QUESTA CONTIENE DUE VOLTE LA CHIAVE DELL’ENTITA’

• E’ NECESSARIO DIVERSIFICARE I NOMIDEI DUE ATTRIBUTI PER EVITARE L’OMONIMIA

Page 59: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

59

© Fabio A. Schreiber Progettazione 116Progettazione 116© Fabio A. Schreiber Progettazione 116

AUTO-ASSOCIAZIONE (n:m)

STATO CONFINA(0,n)

(0,n)

nome

area

CREATE TABLE STATO (nome … NOT NULL, area …PRIMARY KEY (nome))

CREATE TABLE CONFINA (stato_a … NOT NULL, stato_b … NOT NULL,PRIMARY KEY (stato_a, stato_b)FOREIGN KEY (stato_a) REFERENCES STATOFOREIGN KEY (stato_b) REFERENCES STATO);

© Fabio A. Schreiber Progettazione 117Progettazione 117© Fabio A. Schreiber Progettazione 117

AUTO-ASSOCIAZIONE (1:n)

VIENE TRADOTTA CON– UNA SOLA RELAZIONE

– L’ATTRIBUTO CHIAVE VIENE RIPETUTO DUE VOLTE

• UNA VOLTA COME CHIAVE

• LA SECONDA VOLTA COME RIFERIMENTO ALL’ISTANZA CONNESSA

– I DUE NOMI VENGONO DIVERSIFICATI

Page 60: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

60

© Fabio A. Schreiber Progettazione 118Progettazione 118© Fabio A. Schreiber Progettazione 118

AUTO-ASSOCIAZIONE (1:n)

DIPENDENTE CAPO_DI

capo

(0,n)

(0,1)nome

matr

CREATE TABLE DIPENDENTE (matr … NOT NULL, nome …, capo …,PRIMARY KEY (matr)FOREIGN KEY (capo) REFERENCES DIPENDENTE);

© Fabio A. Schreiber Progettazione 119Progettazione 119© Fabio A. Schreiber Progettazione 119

AUTO-ASSOCIAZIONE (1:1)

• NEL CASO DI AUTO-ASSOCIAZIONE (1:1) IL RUOLO ASSUME MAGGIORE IMPORTANZA

• SU ENTRAMBI I RAMI E’ BENE SPECIFICARE IL RUOLO

• CONVIENE LA SOLUZIONE A DUE RELAZIONI PER EVITARE – RIDONDANZE

– VINCOLI

– ECCESSO DI VALORI NULLI

Page 61: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

61

© Fabio A. Schreiber Progettazione 120Progettazione 120© Fabio A. Schreiber Progettazione 120

AUTO-ASSOCIAZIONE (1:1)

DIPENDENTE SPOSATI

marito

(0,1)

moglie (0,1)nome

matr

CREATE TABLE DIPENDENTE (matr … NOT NULL, nome …, capo …,PRIMARY KEY (matr))

CREATE TABLE SPOSATI (moglie … NOT NULL, marito … NOT NULLPRIMARY KEY (moglie)FOREIGN KEY (moglie) REFERENCES DIPENDENTEFOREIGN KEY (marito) REFERENCES DIPENDENTE);

© Fabio A. Schreiber Progettazione 121Progettazione 121© Fabio A. Schreiber Progettazione 121

ASSOCIAZIONE n-ARIA

SEGUE LA TRADUZIONE STANDARD– NELLA RELAZIONE CHE TRADUCE

L’ASSOCIAZIONE TALVOLTA LA CHIAVEOTTENUTA COMPONENDO LE CHIAVI DI TUTTE LE ENTITA’ PARTECIPANTI E’ UNA SUPERCHIAVE (LA CHIAVE VERA E’ UN SUO SOTTOINSIEME)

Page 62: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

62

© Fabio A. Schreiber Progettazione 122Progettazione 122© Fabio A. Schreiber Progettazione 122

ASSOCIAZIONE n-ARIA

PROGETTO

MAGAZZINO

DATAPARTE CONSEGNA(1,n) (1,n)

(1,n)

(1,n)

prjn descrizione

distanza

nome tipo

cod_p

cod_m nome

qtà

© Fabio A. Schreiber Progettazione 123Progettazione 123© Fabio A. Schreiber Progettazione 123

ASSOCIAZIONE n-ARIACREATE TABLE PROGETTO (prj ... NOT NULL, descrizione …,

PRIMARY KEY (prj))

CREATE TABLE PARTE (cod_p ... NOT NULL, nome …, tipo …,PRIMARY KEY (cod_p))

CREATE TABLE MAGAZZINO (cod_m ... NOT NULL, nome …, distanza …, PRIMARY KEY (cod_m))

CREATE TABLE CONSEGNA (prj ... NOT NULL, cod_p … NOT NULL, cod_m … NOT NULL, data … NOT NULL, qtà ... PRIMARY KEY (prj, cod_p, cod_m, data)

FOREIGN KEY (prj) REFERENCES PROGETTO

FOREIGN KEY (cod_p) REFERENCES PARTE

FOREIGN KEY (cod_m) REFERENCES MAGAZZINO);

NON C’E’ UNA RELAZIONE PER DATA IN QUANTO E’ UN’ENTITA’ FITTIZIA USATA PER GARANTIRE L’UNICITA’ DELLE CONSEGNE (COMPARE NELLA CHIAVE)

Page 63: BASI DI DATI - Intranet DEIBhome.deib.polimi.it/schreibe/BasidiDati0607/LucidiTeoria/Progetto... · 1 BASI DI DATI PROGETTO DELLA BASE DI DATI Prof. Fabio A. Schreiber Dipartimento

63

© Fabio A. Schreiber Progettazione 124Progettazione 124© Fabio A. Schreiber Progettazione 124

ASSOCIAZIONE n-ARIA

• PUO’ SUCCEDERE CHE NEL CORSO DEL PROGETTO CI SI ACCORGA CHE UNA PARTE PUO’ ESISTERE IN UN SOLO MAGAZZINO

• IN TAL CASO cod_p IMPLICA cod_m E QUEST’ULTIMO DIVENTA RIDONDANTE NELLA CHIAVE DELLA RELAZIONE

…………………………………………….

CREATE TABLE CONSEGNA (prj ... NOT NULL, cod_p … NOT NULL, cod_m … NOT NULL, data … NOT NULL, qtà …

PRIMARY KEY (prj, cod_p, data)

FOREIGN KEY (prj) REFERENCES PROGETTO

FOREIGN KEY (cod_p) REFERENCES PARTE);

© Fabio A. Schreiber Progettazione 125Progettazione 125© Fabio A. Schreiber Progettazione 125

ASSOCIAZIONE n-ARIA• NELL’ESEMPIO PRECEDENTE LA DIPENDENZA TRA

MAGAZZINO E PARTE NON ERA STATA ESPRESSA SULLA RELAZIONE n-ARIA

• SE IL PROGETTO CONCETTUALE E’ BEN FATTO CASI DEL GENERE NON SONO FREQUENTI

• DIVERSO E’ IL CASO IN CUI SI VOGLIANO ESPRIMERE DEI VINCOLI CHE RICHIEDEREBBERO UN USO COMPLICATO DI ENTITA’ DI COLLEGAMENTO CON IDENTIFICAZIONE ESTERNA

• LA VERIFICA DELLE CHIAVI DELLE RELAZIONI E’ QUINDI IMPORTANTE E LA MATERIA E’ OGGETTO DELLA TEORIA DELLA NORMALIZZAZIONE