24
1 Corso di Basi di Dati Donatella Gubiani Progettazione delle basi di dati IAL – TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE UF – TP MODELLARE I DATI 2 Progettazione di una base di dati • È una delle attività del processo di sviluppo dei sistemi informativi e va inquadrata in tale contesto • Il ciclo di vita dei sistemi informativi: – insieme delle attività svolte da analisti, progettisti e utenti, nello sviluppo e nell’uso dei sistemi informativi – attività iterativa (ciclo) 3 Studio di fattibilità Raccolta e analisi dei requisiti Progettazione dei dati Realizzazione Validazione e collaudo Funzionamento 4 Schema concettuale Requisiti della base di dati PROGETTAZIONE CONCETTUALE PROGETTAZIONE LOGICA Schema logico Schema fisico PROGETTAZIONE FISICA 5 Progettazione concettuale Progettazione logica Progettazione fisica 6 PROGETTAZIONE CONCETTUALE • Ha lo scopo di trasformare la descrizione informale del domini applicativo in una descrizione formale mediante un modello – conforme al dominio – indipendente dal sistema di gestione di base di dati che si andrà ad utilizzare e dalla struttura fisica dei dati

Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

1

Corso di

Basi di Dati

Donatella Gubiani

Progettazione delle

basi di dati

IAL – TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHEUF – TP MODELLARE I DATI 2

Progettazionedi una base di dati

• È una delle attività del processo di sviluppo dei sistemi informativi e va inquadrata in tale contesto

• Il ciclo di vita dei sistemi informativi:– insieme delle attività svolte da analisti, progettisti e utenti, nello sviluppo e nell’uso dei sistemi informativi

– attività iterativa (ciclo)

3

Studio di fattibilità

Raccolta e analisi dei requisiti

Progettazionedei dati

Realizzazione

Validazione ecollaudo

Funzionamento

4

Schema concettuale

Requisiti della base di dati

PROGETTAZIONE CONCETTUALE

PROGETTAZIONE LOGICA

Schema logico

Schema fisico

PROGETTAZIONE FISICA

5

Progettazioneconcettuale

Progettazione logica

Progettazionefisica

6

PROGETTAZIONE CONCETTUALE

• Ha lo scopo di trasformare la descrizione informale del domini applicativo in una descrizione formale mediante un modello– conforme al dominio– indipendente dal sistema di gestione di base di dati che si andrà ad utilizzare e dalla struttura fisica dei dati

Page 2: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

2

7

PROGETTAZIONE LOGICA

• Trasformazione dello schema concettuale ottenuto dalla progettazione concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente– deve essere conforme al modello logico sottostante il sistema di gestione della base di dati adottata

– deve essere indipendente dalla struttura fisica dei dati

8

PROGETTAZIONE FISICA

• Lo schema ottenuto dalla progettazione logica deve essere completato con la specifica dei parametri fisici di memorizzazione dei dati–dipende dallo specifico sistema di gestione della base di dati utilizzato

– si basa sui criteri di organizzazione fisica dei dati definiti da tale sistema

9

MODELLO CONCETTUALE

10

Modello concettuale

• Collezione di concetti che possono essere usati per descrivere un insieme di dati e, in taluni casi, le relative operazioni di manipolazione

• Permettono di rappresentare in modo strutturato (un’astrazione di) la realtà

11

Modello Entità-Relazioni (ER)

• Modello formale che resta aderente al dominio di partenza

• Caratterizzato da tre concetti fondamentali:–Entità–Relazione–Attributo

12

Entità

• Insieme di elementi/concetti (fatti, persone, cose) dell’applicazione di interesse con proprietà comuni e con esistenza “autonoma”

Studente Corso

Page 3: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

3

13

Relazioni - 1

• Legame logico fra due o più entità, rilevante nell’applicazione di interesse

EsameStudente Corso

14

Relazioni - 2

• Istanza di relazione fra n tipi di entità: n-pla di istanze, una per ogni tipo di entità coinvolta nella relazione

S1S2

S4S3

Studente

C1

C2

C3Corso

E1

E2E3

E4

{(S1,C1), (S2,C2), (S2,C3), (S3,C3)}

15

Relazioni n-arie

FornituraFornitore Prodotto

Dipartimento

16

Relazioni ricorsive

Successore Predecessore

Successione

Sovrano

17

Attributi - 1

• Proprietà elementare di un’entità o di una relazione, di interesse ai fini dell’applicazione

• Associa ad ogni occorrenza di un’entità o di una relazione un valore appartenente a un insieme detto dominio dell’attributo

18

Attributi - 2

Cognome Nome

Matricola

Data Titolo

Codice

Voto

EsameStudente Corso

Page 4: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

4

19

Attributi - 3• Possono essere di diversi tipi:–SEMPLICI: con valore atomico–COMPOSTI: con diversi componenti

Cognome

Età Via

Numero

CAP

Impiegato

Indirizzo

20

Istanza VS Schema

• Istanza di un’entità: n-pla di valori associati ai diversi attributi– Esempio: (AGTMRC66C60U962M,Marco)

• Schema di un’entità: un nome, un insieme di attributi e per ciascun attributo un dominio– Esempio: Nome: Persona

Attributi: codice fiscale � D: stringa[16]nome � D: stringa

• OSS: il dominio va esteso col valore NULL

Personacodice fiscale

nome

21

Vincoli di partecipazione

• Indicano il numero minimo di istanze della relazione a cui può partecipare ogni istanza di entità–TOTALE: ogni istanza di entità ècoinvolta in almeno una istanza di relazione

–PARZIALE: ci possono essere delle istanze di entità che non partecipano a nessuna istanza di relazione

22

Vincoli di cardinalità

• Indicano il numero massimo di istanze della relazione a cui può partecipare ogni istanza di entità– UNO– MOLTI

23

Esempio vincoli

• Esempio: – TOTALE: ogni impiegato ha assegnato almeno un incarico

– PARZIALE: un incarico può non essere assegnato ad alcun impiegato

– UNO: un incarico può essere assegnato al più ad un impiegato

– MOLTI: ad un impiegato possono essere assegnati più incarichi

Assegnamento

Impiegato

Incarico

(1,N)

(0,1)

24

Cardinalità degli attributi • E’ possibile associare delle cardinalitàanche agli attributi, con due scopi:– indicare opzionalità ("informazione incompleta")

– indicare attributi multivalore

Telefono

Nome

Numero patente

(0,N)

(0,1)

Impiegato

Page 5: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

5

25

Identificatore di entità

• Strumento per l’identificazione univoca delle occorrenze di un’entità

• Esistono due tipi di identificatori:– identificatore interno– identificatore esterno

26

Identificatore interno

• Attributo/i di un’entità il cui valore permette di identificare univocamente ogni sua istanza

Targa Modello

Indirizzo

Data Nascita

Cognome

NomeAutomobile

Persona

27

Identificatore esterno - 1

• Entità debole: entità che possiede solo una chiave parziale che non permette di discriminare fra le diverse istanze

• Relazione identificante: collega l’entitàdebole ad un’altra entità, detta proprietaria. Le diverse istanze dell’entitàdebole sono identificate univocamente dalla chiave parziale, una volta partizionato l’insieme delle istanze in base al valore della chiave dell’entitàproprietaria

28

Identificatore esterno - 2

IscrizioneStudente Università

Matricola

Anno di corso

Nome

Indirizzo

(1,1) (0,N)

Nome

29

Identificatori

• Ogni entità deve possedere almeno un identificatore, ma può averne in generale più di uno

• Una identificazione esterna èpossibile solo attraverso una relazione a cui l’entità da identificare partecipa con cardinalità (1,1)

30

Soluzioni alternative

Ditta Sedeha(1,N) (1,N)

Ditta sede(1,N)

Page 6: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

6

31

Generalizzazione - 1

• Mette in relazione una o più entità E1, E2, ..., En con una entità E, che le comprende come casi particolari– E è generalizzazione di E1, E2, ..., En– E1, E2, ..., En sono specializzazioni (o sottotipi) di E

• Motivazioni:– Attributi e relazioni non riferibili a tutte le istanze di un’entità, ma solo una o più

32

Generalizzazione - 2

Dipendente

Impiegato Funzionario Dirigente

33

Ereditarietà

• Tutte le proprietà (attributi, relazioni, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente

34

Caratterizzazione/vincoli - 1

• È totale se ogni occorrenza dell'entità genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale

• È esclusiva se ogni occorrenza dell'entità genitore è occorrenza di al più una delle entità figlie, altrimenti è sovrapposta

35

Caratterizzazione/vincoli - 2

• Consideriamo (senza perdita di generalità) solo generalizzazioni esclusive e distinguiamo fra totali e parziali

36

Disoccupato Lavoratore

Persona

Parziale

Page 7: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

7

37

Persona

Uomo Donna

Totale

38

Osservazioni

• Possono esistere gerarchie a più livelli e più generalizzazioni allo stesso livello

• Un'entità può essere inclusa in piùgerarchie, come genitore e/o come figlia

• Se una generalizzazione ha solo un’entità figlia si parla di relazione sottoinsieme (relazione IS-A)

39

Inserimento delle istanze

• Ad ogni inserimento nell’entitàgenitore bisogna decidere se l’istanza appartiene o no ad una entità figlia e a quale

• A volte l’inserimento può essere fatto automaticamente attraverso il valore di un attributo– Specializzazioni ATTRIBUTE-DEFINED (o PREDICATE-DEFINED)

40

Notazione alternativa: attributi

Impiegato

Codice fiscale

mansioni

data nascita

età

indirizzo

città

ViaN

numerovia

41

Notazione alternativa: entità deboli

Università

Nome

indirizzo

Studente iscrizione

Matricola Nome

(1,1) (0,N)

AnnoCorso

42

Notazione alternativa: generalizzazione

Dipendente

DirigenteFunzionarioImpiegato

Page 8: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

8

43

PROGETTAZIONE CONCETTUALE

44

PROGETTAZIONE CONCETTUALE

• Ha lo scopo di trasformare la descrizione informale del domini applicativo in una descrizione formale mediante un modello– conforme al dominio– indipendente dal sistema di gestione di base di dati che si andrà ad utilizzare e dalla struttura fisica dei dati

45

Attività

• Comprende un insieme di attivitàinterconnesse:– raccolta dei requisiti– analisi dei requisiti– costruzione dello schema concettuale– costruzione del glossario

46

Raccolta e Analisi dei Requisiti

• Il reperimento e l’analisi dei requisiti èun’attività difficile e non standardizzabile– dipende fortemente dall’applicazione

• Si possono, però, seguire alcune regole pratiche…

47

Raccolta dei requisiti

•Completa individuazione dei problemi che l’applicazione da realizzare deve risolvere e le caratteristiche che tale applicazione dovrà avere•Aspetti da considerare:– statistici– dinamici

48

Fonti• Utenti dell’applicazione:

– interviste– documentazione apposita

• Documentazione esistente:– moduli– normative (leggi, regolamenti di settore)

– regolamenti interni, procedure aziendali• Realizzazioni preesistenti

Page 9: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

9

49

Acquisizione per interviste

• Utenti diversi possono fornire informazioni diverse

• Effettuare spesso verifiche di comprensione e coerenza

• Verificare anche per mezzo di esempi• Richiedere definizioni e classificazioni • Far evidenziare gli aspetti essenziali rispetto a quelli marginali

50

Società di formazione (1)

Si vuole realizzare una base di dati per unasocietà che eroga corsi, di cui vogliamorappresentare i dati dei partecipanti ai corsi e deidocenti. Per gli studenti (circa 5000), identificatida un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, iposti dove hanno lavorato in precedenza insiemeal periodo, l'indirizzo e il numero di telefono, icorsi che hanno frequentato (i corsi sono in tuttocirca 200) e il giudizio finale.

Un esempio

51

Società di formazione (2)

Rappresentiamo anche i seminari che stannoattualmente frequentando e, per ogni giorno, iluoghi e le ore dove sono tenute le lezioni. I corsihanno un codice, un titolo e possono avere varieedizioni con date di inizio e fine e numero dipartecipanti. Se gli studenti sono liberiprofessionisti, vogliamo conoscere l'area diinteresse e, se lo possiedono, il titolo. Per quelliche lavorano alle dipendenze di altri, vogliamoconoscere invece il loro livello e la posizionericoperta.

52

Società di formazione (3)

Per gli insegnanti (circa 300), rappresentiamo ilcognome, l'età, il posto dove sono nati, il nomedel corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possonoinsegnare. Rappresentiamo anche tutti i lororecapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratoriesterni.

53

Ambiguità e imprecisione

• Regole generali:– scegliere il corretto livello di astrazione

– standardizzare la struttura delle frasi evitando frasi contorte

– individuare sinonimi e unificare i termini

– rendere esplicito il riferimento tra i termini

54

Riscrittura dei requisiti

• Regole generali – costruire un glossario di termini– decomporre del testo in gruppi di frasi omogenee

Page 10: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

10

55

Termine Descrizione Sinonimi Collegamenti

Partecipante Persona chepartecipa ai corsi

Studente Corso,

Società

Docente Docente dei corsi.Può essere esterno

Insegnante Corso

Corso Corso organizzatodalla società. Puòavere più edizioni.

Seminario Docente

Società Ente presso cui ipartecipanti lavoranoo hanno lavorato

Posti Partecipante

Glossario dei termini

56

Frasi di carattere generale

Si vuole realizzare una base di dati peruna società che eroga corsi, di cuivogliamo rappresentare i dati deipartecipanti ai corsi e dei docenti.

57

Frasi relative ai partecipanti

Per i partecipanti (circa 5000), identificati daun codice, rappresentiamo il codice fiscale,il cognome, l'età, il sesso, la città di nascita,i nomi dei loro attuali datori di lavoro e diquelli precedenti (insieme alle date di inizioe fine rapporto), le edizioni dei corsi chestanno attualmente frequentando e quelliche hanno frequentato nel passato, con larelativa votazione finale in decimi.

58

Frasi relative ai datori di lavoro

Relativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.

Frasi relative ai corsi

Per i corsi (circa 200), rappresentiamo il titoloe il codice, le varie edizioni con date di inizio efine e, per ogni edizione, rappresentiamo ilnumero di partecipanti e il giorno dellasettimana, le aule e le ore dove sono tenute lelezioni.

59

Frasi relative a tipi specifici di partecipanti

Per i partecipanti che sono liberiprofessionisti, rappresentiamo l'area diinteresse e, se lo possiedono, il titoloprofessionale. Per i partecipanti che sonodipendenti, rappresentiamo invece il lorolivello e la posizione ricoperta.

60

Frasi relative ai docenti

Per i docenti (circa 300), rappresentiamo ilcognome, l'età, la città di nascita, tutti inumeri di telefono, il titolo del corso cheinsegnano, di quelli che hanno insegnatonel passato e di quelli che possonoinsegnare. I docenti possono esseredipendenti interni della società diformazione o collaboratori esterni.

Page 11: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

11

61

Operazioni sui dati

• Vanno raccolte anche le specifiche delle operazioni da effettuare sui dati raccolti

• Si utilizza la medesima metodologia vista in precedenza

62

Operazione 1: inserisci un nuovo partecipante indicando tutti i suoi dati (40 volte al giorno)

Operazione 2: assegna un partecipante a una edizione di corso (50 volte al giorno)

Operazione 3: inserisci un nuovo docente indicando tutti i suoi dati e i corsi che può insegnare (2 volte al giorno)

Operazione 4: assegna un docente abilitato ad una edizione di un corso (15 volte al giorno)

63

Rappresentazione dei dati

• Dalla specifica informale così ottenuta èpossibile passare alla traduzione in costrutti del modello ER

• Non esiste una rappresentazione univoca ma si possono considerare delle “regole concettuali”

64

Rappresentazione dei dati

• se un concetto ha proprietà significative e descrive oggetti con esistenza autonoma �entità

• se un concetto è semplice e non ha proprietà rilevanti associate � attributo

• se un concetto correla due o più concetti �relazione

• se un concetto è caso particolare di un altro concetto � generalizzazione

65

Strategie di progetto

• Lo sviluppo dello schema concettuale può essere sviluppato attraverso diverse strategie:– top-down–bottom-up– inside-out

66

Strategia top-down

• Lo sviluppo dello schema concettuale viene prodotto mediante una serie di raffinamenti successivi

• A partire da uno schema iniziale, si ottengono uno o più schemi intermedi più raffinati, fino ad arrivare allo schema finale

Page 12: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

12

67

Strategia top-down

SpecificheSchema inizialeSchema intermedioSchema intermedioSchema finale

68

Trasformazionitop-down

• T1: un’entità descrive in realtà due concetti diversi legati logicamente fra di loro

• T2: un’entità è composta da sotto-entitàdistinte

• T2: una relazione descrive in realtà due relazioni distinte fra le medesime entità

• T4: una relazione descrive in realtà un concetto con esistenza autonoma

• T5: si aggiungono proprietà a entità• T6: si aggiungono proprietà a relazioni

69

Trasformazioni top-down

EsameEsameStudente CorsoPersona

Persona

Uomo Donna

Impiegato

Cognome Età

Stipendio

Impiegato

70

Strategia top-down

• Vantaggi:– inizialmente si trascura i dettagli

• Svantaggi:– si deve avere una visione globale sin dall’inizio

71

Strategia bottom-up

• Le specifiche iniziali vengono suddivise in componenti via via più piccole, finchèdescrivono un frammento elementare

• Le diverse componenti vengono rappresentare attraverso semplici schemi concettuali

• I vari schemi ottenuti vengono poi integrati ad ottenere lo schema finale

72

Strategia bottom-up

SpecificheSpecifiche 2Specifiche 1

Specifiche 1,1

Specifiche 1,2

Specifiche 2,1

Specifiche 2,2

Schema 1,1

Schema 1,2

Schema 2,1

Schema 2,2

Schema finale

Page 13: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

13

73

Trasformazioni bottom-up

• T1: si individua una classe di oggetti con proprietà comuni

• T2: si individua un legame logico fra entità• T3: si individua un legame fra diverse entitàriducibile a una generalizzazione

• T4: a partire da una serie di attributi si individua un’entità che può essere vista come aggregazione di tali attributi

• T5: si individua una relazione che che può essere vista come aggregazione di alcuni attributi

74

Trasformazioni bottom-up

Studente Corso

Persona

Uomo Donna

ImpiegatoSpecifica su

impiegatoEsameStudente Corso

Persona

Uomo Donna

75

Strategia bottom-up

• Vantaggi:– decomposizione del problema in componenti più semplici

• Svantaggi:–Richiede un’operazione di integrazione

76

Strategia bottom-up: inside-out

• Caso particolare della strategia bottom-up

• Inizia individuando solo alcuni concetti importanti e poi si procede, a partire da questi, a macchia d’olio

• Vantaggio:–non richiede la fase di integrazione

77

Telefono

Dipartimento

Direzione

Afferenza

Data

(1,1)(0,1)

(1,N)(0,1)

(0,1)

(1,N)

Progetto

Partecipazione

NomeBudget

(0,N)

(1,N)

(1,1)

CittàIndirizzo

Composizione

Sede

Nome

Via

CAP

(1,N)

Impiegato

Cognome

Codice Nome

78

Strategia mista

• In pratica si procede di solito con una strategia ibrida (mista):– si individuano i concetti principali e si realizza uno schema scheletro

– sulla base di questo si può decomporre

–poi si raffina, si espande, si integra

Page 14: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

14

79

Definizione dello schema scheletro

• Si individuano i concetti più importanti:– ad esempio perché più citati o perchéindicati esplicitamente come cruciali

• Li si organizza in un semplice schema concettuale

80

Strategia mista

• In quasi tutti i casi complessi è l’unica strategia che si può effettivamente adottare

• Vantaggi:– Flessibilità•suddivisione•raffinamento

81

Qualità di uno schema concettuale

• Proprietà importanti da garantire–Correttezza–Completezza– Leggibilità–Minimalità

82

Una metodologia• Analisi dei requisiti

– Costruire un glossario dei termini – Analizzare i requisiti ed eliminare le ambiguità– Raggruppare i requisiti in insiemi omogenei

• Passo base– Individuare i concetti più rilevanti e rappresentarli in

uno schema scheletro• Passo iterativo(da ripetere finché non si è soddisfatti)– Raffinare i concetti presenti sulla base delle loro

specifiche– Aggiungere concetti per descrivere specifiche non

descritte• Analisi di qualità (ripetuta e distribuita)

– Verificare le qualità dello schema e modificarlo

83

Una metodologia con integrazione

• Analisi dei requisiti• Passo base• Decomposizione– decomporre i requisiti con riferimento ai concetti nello schema scheletro

• Passo iterativo, per ogni sottoschema • Integrazione– integrare i vari sottoschemi in uno schema complessivo, facendo riferimento allo schema scheletro

• Analisi di qualità

84

Un'altra metodologia con integrazione

• Analisi dei requisiti• Decomposizione dei requisiti– individuazione di settoro di interesse e suddivisione dei requisiti (o addirittura acquisizione separata)

• Per ciascun settore–Passo base–Passo iterativo

• Integrazione• Analisi di qualità

Page 15: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

15

85

Un esempiodi

progettazione concettuale

• Società di formazione

86

Frasi di carattere generaleSi vuole realizzare una base di dati peruna società che eroga corsi, di cuivogliamo rappresentare i dati deipartecipanti ai corsi e dei docenti.

87

Partecipante

Corso

Docente

Partecipazione Docenza

Schema scheletro

88

Frasi relative ai partecipanti

Per i partecipanti (circa 5000), identificati daun codice, rappresentiamo il codice fiscale,il cognome, l'età, il sesso, la città di nascita,i nomi dei loro attuali datori di lavoro e diquelli precedenti (insieme alle date di inizioe fine rapporto), le edizioni dei corsi chestanno attualmente frequentando e quelliche hanno frequentato nel passato, con larelativa votazione finale in decimi.

89

Frasi relative ai datori di lavoro

Relativamente ai datori di lavoro presenti epassati dei partecipanti, rappresentiamo ilnome, l'indirizzo e il numero di telefono.

Frasi relative a tipi specifici di partecipanti

Per i partecipanti che sono liberiprofessionisti, rappresentiamo l'area diinteresse e, se lo possiedono, il titoloprofessionale. Per i partecipanti che sonodipendenti, rappresentiamo invece il lorolivello e la posizione ricoperta.

90PosizioneLivello Titolo prof. Area

Partecipante

CF

Codice

…..

Dipendente Professionista

Datore

Nome

…..

Impiegopassato

(0,N)

(0,N)

data fine

data inizioImpiegocorrente

(0,N)

(1,1)

data inizio

Page 16: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

16

91

Frasi relative ai docenti

Per i docenti (circa 300), rappresentiamo ilcognome, l'età, la città di nascita, tutti inumeri di telefono, il titolo del corso cheinsegnano, di quelli che hanno insegnatonel passato e di quelli che possonoinsegnare. I docenti possono esseredipendenti interni della società diformazione o collaboratori esterni.

92

Docente

Collaboratore Interno

CF

Cognome

Età

Telefono

Città nascita

(1,N)

93

Frasi relative ai corsi

Per i corsi (circa 200), rappresentiamo il titoloe il codice, le varie edizioni con date di inizio efine e, per ogni edizione, rappresentiamo ilnumero di partecipanti e il giorno dellasettimana, le aule e le ore dove sono tenute lelezioni.

94

(1,N)

(1,1)

ComposizioneTipologia

(1,1)

(0,N)

N.Part.Data fine

Data inizio

Edizionecorso

Orario Aula Giorno

LezioneCorso

Titolo Codice

95

Partecipante

Corso

Docente

Partecipazione Docenza

Integrazione

96

PartecipazionePartecipante Corso

partecipazionepassata

(0,N) (0,N)

partecipazionecorrente

(0,1) (0,N)

PartecipanteEdizione

corso

Page 17: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

17

97

DocenzaCorso Docente

Abilitazione(1,N)

(1,N)

Tipologia

Corso

CodiceTitolo

Datainizio

(0,N)

(1,1)

DocenzaEdizione

corsoDocente

Docenzapassata

(0,N)(0,1)

Docenzacorrente

(0,1) (0,1)

98

partecip.passata

partecip.corrente

docenzapassata

docenzacorrente

abilitazione

ComposizioneTipologia

N.Part.Data fine

Data inizio

Edizionecorso

Orario Aula Giorno

LezioneCorso

Titolo Codice

PosizioneLivello Titolo prof. Area

Impiegocorrente

data inizioPartecipante

CF

Codice

…..

Dipendente Professionista

DatoreNome

…..

Impiegopassato

data fine

data inizio

Docente

Collaboratore Interno

CF

Cognome

Età

Telefono

Città nascita

99

PROGETTAZIONELOGICA

100

PROGETTAZIONE LOGICA

• Trasformazione dello schema concettuale ottenuto dalla progettazione concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente

• Non si tratta di una pura e semplice traduzione– semplificare la traduzione: alcuni aspetti non sono direttamente rappresentabili

– ottimizzare le prestazioni considerando le prestazioni

101

Traduzione nelmodello logico

Ristrutturazione dello schema E-R

Schema E-RCarico

applicativo

Schema E-Rristrutturato

Modellologico

Schema logico

102

Ristrutturazione

• Per ottimizzare il risultato abbiamo bisogno di analizzare le prestazioni a questo livello

• Le prestazioni non sono valutabili con precisione su uno schema concettuale ma possono essere analizzate sulla base di alcuni indicatori– spazio: numero di occorrenze previste– tempo: numero di occorrenze (di entità e relazioni) visitate durante un’operazione

Page 18: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

18

103

Attività di ristrutturazione

• Analisi delle ridondanze• Eliminazione delle generalizzazioni• Partizionamento/accorpamento di entità e relazioni

• Scelta degli identificatori primari

104

Analisi delle ridondanze - 1

• Una ridondanza in uno schema concettuale corrisponde alla presenza di un dato che può essere derivato da altri dati– Attributi derivabili

• da altri attributi della stessa entità• da attributi di altre entità• da operazioni di conteggio di occorrenze

– Associazioni derivabili dalla composizione di altre associazioni in presenza di cicli

Residenza(1,N) (1,1)

Persona

CFNumero

abitanti

Città

Nome

105

Analisi delle ridondanze - 2

• Le ridondanze presentano vantaggi e svantaggi– riduzione degli accessi per calcolare il dato– maggiore occupazione di memoria

• La decisione di mantenere o eliminare o eliminare una ridondanza va presa confrontando costo di esecuzione delle operazioni che coinvolgono il dato ridondante e relativa occupazione di memoria

106

Analisi delle ridondanze - 3

• Consideriamo lo schema su persone e città visto in precedenza e supponiamo che su di esso siano definite le seguenti operazioni:– Memorizzazione di una nuova persona con la relativa cittàdi residenza � operazione interativa eseguita 500 volte al giorno

– Stampa di tutti i dati di una città � operazione interativa eseguita 2 volte al giorno

• Dobbiamo inoltre considerate una tabella dei volumi:

1.000.000RResidenza

1.000.000EPersona

200ECittà

VolumeTipoConcetto

107

Analisi delle ridondanze - 4• Con presenza della ridondanza:

– Supponendo che il numero degli abitanti di una città richieda 4 byte � 4x200=800byte<1Kbyte di memoria aggiuntiva

– Operazione 1: al giorno• 1500 accessi in scrittura • 500 accessi in lettura

– Operazione 2: • Trascurabile

– Contando doppi gli accessi in scrittura il totale è di 3500 accessi al giorno

S1EntitàCittà

L1EntitàCittà

S1RelazioneResidenza

S1EntitàPersona

TipoAccessoCostruttoConcetto

L1EntitàCittà

TipoAccessoCostruttoConcetto

108

Analisi delle ridondanze - 5• Con assenza della ridondanza:

– Operazione 1: 1000 accessi in scrittura

– Operazione 2: 10000 accessi in lettura al giorno

– Contando doppi gli accessi in scrittura il totale è di 12000 accessi al giorno

S1RelazioneResidenza

S1EntitàPersona

TipoAccessoCostruttoConcetto

CONCLUDENDO:conviene mantenere il dato ridondante

L5000RelazioneResidenza

L1EntitàCittà

TipoAccessoCostruttoConcetto

Page 19: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

19

109

Eliminazione dellegeneralizzazioni - 1

• I sistemi per la gestione di basi di dati non consentono di rappresentare direttamente il costrutto di generalizzazione

• Diversi metodi per l’eliminazione delle generalizzazioni:– accorpamento delle figlie nel padre– accorpamento del padre nelle figlie– sostituzione con associazioni

• La scelta fra le diverse alternative può essere fatta in modo analogo all’analisi delle ridondanze

110

E0 R1

A01 A02

E3

R2

E4

E2E1

A11 A21

111

A11

A21

TIPO

(0,1)

(0,1)

(0,..)

E0

A01 A02

R1 E3

R2

E4

112

E0 R1

A01 A02

E3

R2

E4

E2E1

A11 A21

113

E3

R2

E4

E2E1

A11 A21

R12

R11

A01 A02 A01 A02

114

E0 R1

A01 A02

E3

R2

E4

E2E1

A11 A21

Page 20: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

20

115

RG2RG1

(1,1)

(0,1)

(1,1)

(0,1)

E0

A01 A02

E2E1 R2

E4A11 A21

R1 E3

116

Partizionamento/accorpamento di entità e relazioni - 1

• Si ottiene maggior efficienza riducendo gli accessi– separando attributi di uno stesso concetto che vengono acceduti da operazioni diverse

– raggruppando attributi di concetti diversi che vengono acceduti dalle medesime operazioni

• Tecniche di decisione analoghe all’analisi delle ridondanze

117

Partizionamento/accorpamento di entità e relazioni - 2

Impiegato

Livello

Stipendio

Ritenute

Cognome

Indirizzo

Data

nascita

Codice

LivelloStipendio

Ritenute

Cognome

Indirizzo Datanascita

Codice

RDati

anagraficiDati

lavorativi

(1,1) (1,1)

118

Scelta degli identificatori primari - 1

• Nel modello relazionale richiede la specifica di una chiave primaria sulla quale vengono creati degli indici per il ripristino efficiente dei dati

• Nel caso in cui ci siano diversi identificatori bisogna scegliere fra di essi la chiave primaria

119

Scelta degli identificatori primari - 2

• Alcune regole:– Attributi con valori nulli non possono partecipare alla formazione di una chiave primaria

– Sono da preferirsi identificatori con pochi attributi– Sono da preferirsi identificatori interni ad identificatori esterni

– Sono da preferirsi identificatori utilizzati da molte operazioni per accedere alle occorrenze di altre entità

• Se non sono presenti identificatori che rispettano le regole precedenti si può pensare di introdurre un nuovo attributo, detto codice

120

Traduzione

• A partire dal modello ristrutturato si può effettuare una vera e propria traduzione

• Idea di base:– le entità diventano relazioni sugli stessi attributi

– le relazioni diventano relazioni sugli identificatori delle entità coinvolte (più gli attributi propri)

Page 21: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

21

121

Entità e relazioni molti a molti

Impiegato(Matricola, Cognome, Stipendio)Progetto(Codice, Nome, Budget)

Partecipazione(Matricola, Codice, DataInizio)

�con vincoli di integrità referenziale fra �Matricola in Partecipazione e (la chiave di) Impiegato

�Codice in Partecipazione e (la chiave di) Progetto

Partecipazione

(0,N) (1,N)

Data inizio

Stipendio

Cognome Matricola

Impiegato

NomeCodice

Budget

Progetto

122

Relazioni n-arie

Fornitore(PartitaIVA, Nome)Prodotto(Codice, Genere)

Dipartimento(Nome, Telefono)

Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)

Genere CodiceNome

Fornitore Prodotto

Dipartimento

Fornitura

Partita IVAQuantità

Nome

Telefono

(0,N) (1,N)

(1,N)

123

Relazioni uno a molti - 1

Giocatore(Cognome, DataNascita, Ruolo)Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)

Squadra(Nome, Città, ColoriSociali)

Soluzione corretta ma ne esiste una più compatta…

Datanascita

Cognome

Giocatore SquadraContratto

Città NomeIngaggio

(1,1) (0,N)

Ruolo Colori sociali

124

Relazioni uno a molti - 2

• Osserviamo che a ogni istanza di giocatore corrisponde una e una sola Squadra per cui…

Giocatore(Cognome,DataNasc,Ruolo,Squadra,Ingaggio)Squadra(Nome, Città, ColoriSociali)

con vincolo di integrità referenziale fra Squadra in Giocatore e la chiave di Squadra

• Se la cardinalità minima della relazione è 0, allora Squadra in Giocatore deve ammettere valore nullo

125

Entità con identificazione esterna

Studente(Matricola, Università, Cognome, AnnoDiCorso)

Università(Nome, Città, Indirizzo)

con vincolo di integrità referenziale fra Università in Studente e Nome in Università

IscrizioneStudente Università

Cognome Matricola

AnnoDiCorso

Nome

Indirizzo

(1,1) (1,N)

Città

126

Relazioni uno a uno

• Esistono varie possibilità:• fondere da una parte o dall'altra• fondere tutto?

Direttore DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(1,1) (1,1)

Stipendio Telefono

Page 22: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

22

127

Una possibilità privilegiata

Impiegato (Codice, Cognome, Stipendio)

Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)

con vincolo di integrità referenziale, senza valori nulli

Direttore DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(0,1) (1,1)

Stipendio Telefono

128

Caso di studio

129

(1,1)(0,1)

(1,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

130

Schema finale

Dipartimento(Nome, Città, Telefono, Direttore)

Impiegato(Codice, Cognome, Dipartimento*,Sede*, Data*)

Partecipazione(Impiegato, Progetto)

Progetto(Nome, Budget)

Sede(Città, Via, CAP)

131

PROGETTAZIONEFISICA

132

PROGETTAZIONE FISICA

• Lo schema ottenuto dalla progettazione logica deve essere completato con la specifica dei parametri fisici di memorizzazione dei dati–dipende dallo specifico sistema di gestione della base di dati utilizzato

– si basa sui criteri di organizzazione fisica dei dati definiti da tale sistema

Page 23: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

23

133

GLI INDICI - 1

• I dati di una base di dati sono memorizzati in file come insiemi di record

• Gli indici sono strutture di accesso ai dati utilizzate per rendere piùveloce il recupero di record in presenza di determinate condizioni di ricerca

134

GLI INDICI - 2

• La dimensione della collezione dei dati èmolto maggiore dello spazio disponibile in memoria principale

• Tempo di accesso in memoria secondaria (disco) è molto maggiore del tempo di accesso in memoria principale

• Gli oggetti sono raggruppati in pagine/blocchi, che costituiscono l’unitàdi trasferimento tra memoria principale e disco

135

GLI INDICI - 3

• Le strutture dati utilizzate per strutturare gli indici possono essere suddivise in:– strutture di indicizzazione a singolo livello

• Indice primario: specificato rispetto al campo chiave di un file di record fisicamente ordinato rispetto a tale campo

• Indice di clustering: utilizzato nel caso in cui il campo di ordinamento (fisico) non sia un campo chiave

• Indice secondario: pu`o essere specificato per ogni campo (chiave o non) non utilizzato per ordinare fisicamente il file

– strutture di indicizzazione multilivello

136

Indice primario

137

Indice di clustering

138

Indice secondariosu campo chiave

Page 24: Progettazione delle basi di dati - users.dimi.uniud.itusers.dimi.uniud.it/~donatella.gubiani/universita/corsi/bd/ifts2008/p... · Basi di Dati Donatella Gubiani Progettazione delle

24

139

Indice secondariosu campo non chiave

140

Strutture multilivello statiche