Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2)...

81
Progettazione di basi di dati: Progettazione di basi di dati: Metodologie e modelli Metodologie e modelli

Transcript of Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2)...

Page 1: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

Progettazione di basi di dati:Progettazione di basi di dati:Metodologie e modelliMetodologie e modelli

Page 2: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 2

Progettazione di basi di dati

Fino a questo punto si sono analizzate le modalità(modelli) di descrizione e di manipolazione di una basedi dati supponendo l’esistenza della base di dati con laquale interagire.

Il problema preliminare è: progettare una base di datia partire dai suoi requisiti e quindi definire struttura,caratteristiche e contenuto

Le fasi della metodologia di riferimento:progettazione concettuale, progettazione logica eprogettazione fisica

Page 3: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 3

Base di dati bibliograficaSi vogliono organizzare i dati di interesseper automatizzare la gestione deiriferimenti bibliografici

EsempioEsempio

Page 4: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 4

Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni dariportarsi in una bibliografia.Per ogni pubblicazione deve esistere uncodice identificante costituito da settecaratteri, indicanti le iniziali degli autori, l'annodi pubblicazione e un carattere aggiuntivo perla discriminazione delle collisioni.

Page 5: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 5

Base di dati bibliograficaSi vogliono organizzare i dati di interesse perautomatizzare la gestione dei riferimentibibliografici, con tutte le informazioni da riportarsiin una bibliografia. Le pubblicazioni sono di duetipi, monografie (per le quali interessano editore,data e luogo di pubblicazione) e articoli su rivista(con nome della rivista, volume, numero, pagine eanno di pubblicazione); per entrambi i tipi sidebbono ovviamente riportare i nomi degli autori.Per ogni pubblicazione deve esistere un codiceidentificante .....

Page 6: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 6

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 piUn esempio piùù articolatoarticolato

Page 7: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 7

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.

Page 8: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 8

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.

Page 9: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 9

Progettazione di basi di datiProgettazione di basi di dati

• È una delle attività del processo di sviluppodei sistemi informativi

• va quindi inquadrata in un contesto piùgenerale:

• il ciclo di vita dei sistemi informativi:• Insieme e sequenzializzazione delle attività

svolte da analisti, progettisti, utenti, nellosviluppo e nell’uso dei sistemi informativi

• attività iterativa, quindi ciclo

Page 10: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 10

Fasi (tecniche) del ciclo di vitaFasi (tecniche) del ciclo di vita

• Studio di fattibilità: definizione costi e priorità• Raccolta e analisi dei requisiti: studio delle

proprietà del sistema• Progettazione: di dati e funzioni• Realizzazione• Validazione e collaudo: sperimentazione• Funzionamento: il sistema diventa operativo

Page 11: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 11

Studio di fattibilità

Raccolta e analisidei requisiti

Progettazione

Realizzazione

Validazione ecollaudo

Funzionamento

Page 12: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 12

Studio di fattibilità

Raccolta e analisidei requisiti

Progettazionedei dati

Realizzazione

Validazione ecollaudo

Funzionamento

Page 13: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 13

Studio di fattibilità

Raccolta e analisidei requisiti

Progettazionedei dati

Realizzazione

Validazione ecollaudo

Funzionamento

Page 14: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 14

Progettazionefisica

Schema concettuale

Requisiti della base di dati

Progettazioneconcettuale

Progettazionelogica

Schema logico

Schema fisico

“CHE COSA”:analisi

“COME”:progettazione

Page 15: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 15

• Schema concettuale

• Schema logico

• Schema fisico

I prodotti della varie fasi sonoschemi di alcuni modelli di dati:

Page 16: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 16

DueDue tipitipi ((principaliprincipali) di) di modellimodelli

• modelli logici: utilizzati nei DBMS esistenti perl’organizzazione dei dati• utilizzati dai programmi• indipendenti dalle strutture fisiche

esempi: relazionale, reticolare, gerarchico, a oggetti• modelli concettuali: permettono di rappresentare i

dati in modo indipendente da ogni sistema• cercano di descrivere i concetti del mondo reale• sono utilizzati nelle fasi preliminari di

progettazioneil più noto è il modello Entity-Relationship

Page 17: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 17

Modelli concettuali, perchModelli concettuali, perchéé??

• Proviamo a modellare una applicazionedefinendo direttamente lo schema logico dellabase di dati:• da dove cominciamo?• rischiamo di perderci subito nei dettagli• dobbiamo pensare subito a come

correlare le varie tabelle (chiavi etc.)• i modelli logici sono rigidi

Page 18: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 18

Società di formazione (1)Si vuole realizzare una base di dati per una società che eroga corsi, di cuivogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per glistudenti (circa 5000), identificati da un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato inprecedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi chehanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale.

Società di formazione (2)Rappresentiamo anche i seminari che stanno attualmente frequentando e,per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno uncodice, un titolo e possono avere varie edizioni con date di inizio e fine enumero di partecipanti. Se gli studenti sono liberi professionisti, vogliamoconoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli chelavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello ela posizione ricoperta.

Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il postodove sono nati, il nome del corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possono insegnare. Rappresentiamoanche tutti i loro recapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratori esterni.

Page 19: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 19

Modelli concettuali, perchModelli concettuali, perchéé??

• servono per ragionare sulla realtà diinteresse, indipendentemente dagli aspettirealizzativi

• permettono di rappresentare le classi di datidi interesse e le loro correlazioni

• prevedono efficaci rappresentazioni grafiche(utili anche per documentazione ecomunicazione)

Page 20: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 20

(1,1)(0,1)

(0,N)(0,1)

(0,1)(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Page 21: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 21

Progettazioneconcettuale

Progettazionelogica

Progettazionefisica

Page 22: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 22

Società di formazione (1)Si vuole realizzare una base di dati per una società che eroga corsi, di cuivogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per glistudenti (circa 5000), identificati da un codice, si vuole memorizzare il codicefiscale, il cognome, l'età, il sesso, il luogo dinascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato inprecedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi chehanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale.

Società di formazione (2)Rappresentiamo anche i seminari che stanno attualmente frequentando e,per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno uncodice, un titolo e possono avere varie edizioni con date di inizio e fine enumero di partecipanti. Se gli studenti sono liberi professionisti, vogliamoconoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli chelavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello ela posizione ricoperta.

Società di formazione (3)Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il postodove sono nati, il nome del corso che insegnano, quelli che hannoinsegnato nel passato e quelli che possono insegnare. Rappresentiamoanche tutti i loro recapiti telefonici. I docenti possono esseredipendenti interni della società o collaboratori esterni.

Page 23: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 23

Page 24: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 24

Schema Relazionale

Abilitazione(CodCorso, CFDocente)Corso(Codice, Nome)DipendenzaP(CodPartecipante, NomeSocietà, DataInizio, DataFine)DipPubblici(CodPartecipante, Livello, Posizione)Docente(CF, Cognome, Età, CittàNascita, Telefono, Tipo)Docenza(CodEdCorso, CFDocente)Edizione(Codice, DataInizio, DataFine, CodCorso)Lezione(Ora, Aula, Giorno, CodEdCorso)Partecipante(Codice, CF, Cognome, Età, Sesso, CittàNascita,

Società, DataInizio)Partecipazione(CodEdCorso, CodPartecipante, Votazione)Professionisti(CodPartecipante, Area, Titolo)

Page 25: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 25

ModelloModello EntityEntity--RelationshipRelationship(Entit(Entitàà--Relazione)Relazione)

• Il più diffuso modello concettuale

• Ne esistono molte versioni,• (più o meno) diverse l’una dall’altra

Page 26: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 26

I costrutti del modello EI costrutti del modello E--RR

• Entità• Relationship• Attributo• Identificatore• Generalizzazione• ….

Page 27: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 27

EntitEntitàà

• Classe di oggetti (fatti, persone, cose) dellaapplicazione di interesse con proprietàcomuni e con esistenza “autonoma”

• Esempi:• studente, città, corso, conto corrente,

ordine, fatturaGraficamente

Studente Corso

Page 28: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 28

RelationshipRelationship

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

• Esempi:• Residenza (fra persona e città)• Esame (fra studente e corso)

Graficamente:

EsameStudente Corso

Page 29: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 29

Uno schema EUno schema E--R, graficamenteR, graficamente

AssociazioneEntità 1 Entità 2

Page 30: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 30

EntitEntitàà: schema e istanza: schema e istanza

• Entità:• classe di oggetti, persone, … "omogenei"

• Occorrenza (o istanza) di entità:• elemento della classe (l'oggetto, la

persona, …, non i dati)

• nello schema concettuale rappresentiamo leentità, non le singole istanze (“astrazione”)

Page 31: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 31

Rappresentazione grafica di entitRappresentazione grafica di entitàà

Impiegato Dipartimento

Città Vendita

Page 32: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 32

EntitEntitàà, commenti, commenti

• Ogni entità ha un nome che la identificaunivocamente nello schema:• nomi espressivi• opportune convenzioni

• singolare

Page 33: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 33

RelationshipRelationship

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

• Esempi:• Residenza (fra persona e città)• Esame (fra studente e corso)

• Chiamata anche:• relazione, correlazione, associazione

Page 34: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 34

Rappresentazione graficaRappresentazione graficadidi relationshiprelationship

EsameStudente Corso

ResidenzaImpiegato Città

Page 35: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 35

RelationshipRelationship, commenti, commenti

• Ogni relationship ha un nome che la identificaunivocamente nello schema:• nomi espressivi• opportune convenzioni

• singolare• sostantivi invece che verbi (se

possibile)

Page 36: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 36

Esempi di occorrenzeEsempi di occorrenze

S1

S2

S4

S3

Studente

C1

C2

C3

Corso

E1

E2

E3

E4

Page 37: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 37

RelationshipRelationship, occorrenze, occorrenze

• Una occorrenza di una relationship binaria ècoppia di occorrenze di entità, una perciascuna entità coinvolta

• Una occorrenza di una relationship n-aria èuna n-upla di occorrenze di entità, una perciascuna entità coinvolta

• Nell'ambito di una relationship non cipossono essere occorrenze (coppie, ennuple)ripetute

Page 38: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 38

DueDue relationshiprelationship sulle stesse entitsulle stesse entitàà

ResidenzaImpiegato Città

Sede dilavoro

Page 39: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 39

RelationshipRelationship nn--ariaaria

Fornitore Prodotto

Dipartimento

Fornitura

Page 40: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 40

RelationshipRelationship ricorsivaricorsiva::coinvolgecoinvolge ““due voltedue volte”” la stessa entitla stessa entitàà

Persona

Conoscenza

Page 41: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 41

RelationshipRelationship ricorsivaricorsiva concon ““ruoliruoli””

Successione

SovranoSuccessore Predecessore

Page 42: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 42

Confronto

Tennista

Superficie

RelationshipRelationship ternariaternaria ricorsivaricorsiva

Migliore Peggiore

Page 43: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 43

AttributoAttributo

• Proprietà elementare di un’entità o di unarelationship, di interesse ai finidell’applicazione

• Associa ad ogni occorrenza di entità orelationship un valore appartenente a uninsieme detto dominio dell’attributo

Page 44: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 44

Attributi, rappresentazione graficaAttributi, rappresentazione grafica

EsameStudente Corso

Cognome Nome

Matricola

Data Titolo

Codice

Voto

Page 45: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 45

Attributi compostiAttributi composti

• Raggruppano attributi di una medesima entitào relationship che presentano affinità nel lorosignificato o uso

• Esempio:• Via, Numero civico e CAP formano un

Indirizzo

Page 46: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 46

Rappresentazione graficaRappresentazione grafica

Impiegato

Cognome

Età Via

Indirizzo Numero

CAP

Page 47: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 47

ComposizionePartecipazione

Progetto

NomeBudget

Impiegato

Codice

Cognome Telefono

Dipartimento

NomeAfferenza

Data

Direzione

CittàIndirizzo

SedeVia

CAP

Page 48: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 48

Altri costrutti del modello EAltri costrutti del modello E--RR

• Cardinalità• di relationship• di attributo

• Identificatore• interno• esterno

• Generalizzazione

Page 49: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 49

CardinalitCardinalitàà didi relationshiprelationship

• Coppia di valori associati a ogni entità chepartecipa a una relationship

• specificano il numero minimo e massimo dioccorrenze delle relationship cui ciascunaoccorrenza di una entità può partecipare

AssegnamentoImpiegato Incarico

(1,5) (0,50)

Page 50: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 50

• per semplicità usiamo solo tre simboli:• 0 e 1 per la cardinalità minima:

• 0 = “partecipazione opzionale”• 1 = “partecipazione obbligatoria”

• 1 e “N” per la massima:• “N” non pone alcun limite

Page 51: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 51

Occorrenze di ResidenzaOccorrenze di Residenza

S1

S2

S4

S3

Studente

C1

C2

C3

Città

R3

R4

R2

R1

C4

Page 52: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 52

CardinalitCardinalitàà di Residenzadi Residenza

ResidenzaStudente Città

(1,1) (0,N)

Page 53: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 53

Tipi diTipi di relationshiprelationship

• Con riferimento alle cardinalità massime,abbiamo relationship:• uno a uno• uno a molti• molti a molti

Page 54: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 54

RelationshipRelationship ““molti a moltimolti a molti””

EsameStudente Corso(0,N) (0,N)

ScalataMontagna Alpinista(0,N) (1,N)

AbilitazioneMacchinista Locomotore(1,N) (1,N)

Page 55: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 55

Due avvertenzeDue avvertenze

• Attenzione al "verso" nelle relationship uno amolti

• le relationship obbligatorie-obbligatorie sonomolto rare

Page 56: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 56

RelationshipRelationship ““uno a moltiuno a molti””

ImpiegoPersona Azienda(0,1) (0,N)

UbicazioneCinema Località(1,1) (0,N)

UbicazioneComune Provincia(1,1) (1,N)

Page 57: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 57

RelationshipRelationship ““uno a unouno a uno””

TitolaritàProfessore Cattedra(0,1) (0,1)

TitolaritàProfessore

di ruolo Cattedra(1,1) (0,1)

TitolaritàProfessore

di ruoloCattedracoperta

(1,1) (1,1)

Page 58: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 58

CardinalitCardinalitàà di attributidi attributi

• E’ possibile associare delle cardinalità ancheagli attributi, con due scopi:

• indicare opzionalità ("informazioneincompleta")

• indicare attributi multivalore

Page 59: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 59

Rappresentazione graficaRappresentazione grafica

Impiegato

Telefono

Nome

Numero patente

(0,N)

(0,1)

Page 60: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 60

Identificatore di una entitIdentificatore di una entitàà

• “strumento” per l’identificazione univocadelle occorrenze di un’entità

• costituito da:• attributi dell’entità

• identificatore interno• (attributi +) entità esterne attraverso

relationship• identificatore esterno

Page 61: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 61

Identificatori interniIdentificatori interni

Persona

Data Nascita

Cognome

Nome

Automobile

Targa

Modello

Indirizzo

Page 62: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 62

Identificatore esternoIdentificatore esterno

IscrizioneStudente Università

Cognome Matricola

Anno di corso

Nome

Indirizzo

(1,1) (0,N)

Page 63: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 63

Alcune osservazioniAlcune osservazioni

• ogni entità deve possedere almeno unidentificatore, ma può averne in generale piùdi uno

• una identificazione esterna è possibile soloattraverso una relationship a cui l’entità daidentificare partecipa con cardinalità (1,1)

Page 64: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 64

(1,1)(0,1)

(0,N)(0,1)

(0,1)(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Page 65: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 65

GeneralizzazioneGeneralizzazione

• mette in relazione una o più entità E1, E2, ...,En con una entità E, che le comprende comecasi particolari

• E è generalizzazione di E1, E2, ..., En• E1, E2, ..., En sono specializzazioni (o

sottotipi) di E

Page 66: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 66

Rappresentazione graficaRappresentazione grafica

Dipendente

Impiegato Funzionario Dirigente

Page 67: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 67

ProprietProprietàà delle generalizzazionidelle generalizzazioni

Se E (genitore) è generalizzazione di E1, E2,..., En (figlie):

• ogni proprietà di E è significativa per E1,E2, ..., En

• ogni occorrenza di E1, E2, ..., En èoccorrenza anche di E

Page 68: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 68

Persona

Codicefiscale

Nome

Età

Città

Nascita(0,N)

(1,1)

Lavoratore Studente

Stipendio

Page 69: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 69

EreditarietEreditarietàà

• tutte le proprietà (attributi, relationship, altregeneralizzazioni) dell’entità genitore vengonoereditate dalle entità figlie e nonrappresentate esplicitamente

Page 70: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 70

Tipi di generalizzazioniTipi di generalizzazioni

• 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

• consideriamo (senza perdita di generalità)solo generalizzazioni esclusive edistinguiamo fra totali e parziali

Page 71: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 71

Persona

Uomo DonnaUomo Donna

Page 72: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 72

Motocicletta Automobile

Veicolo

Page 73: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 73

Studente Lavoratore

Persona

Page 74: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 74

Altre proprietAltre proprietàà

• possono esistere gerarchie a più livelli emultiple 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 sottoinsieme

• alcune configurazioni non hanno senso• il genitore di una generalizzazione totale può

non avere identificatore, purché …

Page 75: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 75

EsercizioEsercizio

• Le persone hanno CF, cognome ed età; gliuomini anche la posizione militare; gliimpiegati hanno lo stipendio e possonoessere segretari, direttori o progettisti (unprogettista può essere anche responsabiledi progetto); gli studenti (che non possonoessere impiegati) un numero di matricola;esistono persone che non sono néimpiegati né studenti (ma i dettagli non ciinteressano)

Page 76: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 76

Segretario Direttore Progettista

Responsabile

PersonaCF

Cognome

Età

Uomo Donna

Militare

Impiegato Studente

Stipendio Matr.

Page 77: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 77

Documentazione associata agli schemiDocumentazione associata agli schemiconcettualiconcettuali

• dizionario dei dati• entità• relationship

• vincoli non esprimibili

Page 78: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 78

(1,1)(0,1)

(0,N)(0,1)

(0,1)(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Page 79: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 79

Dizionario dei dati (entitDizionario dei dati (entitàà))

Entità Descrizione Attributi IdentificatoreImpiegato Dipendente

dell'aziendaCodice,Cognome,Stipendio

Codice

Progetto Progettiaziendali

Nome,Budget

Nome

Dipartimento Strutturaaziendale

Nome,Telefono

Nome,Sede

Sede Sededell'azienda

Città,Indirizzo

Città

Page 80: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 80

Relazioni Descrizione Componenti AttributiDirezione Direzione di un

dipartimentoImpiegato,Dipartimento

Afferenza Afferenza a undipartimento

Impiegato,Dipartimento

Data

Partecipazione Partecipazionea un progetto

Impiegato,Progetto

Composizione Composizionedell'azienda

Dipartimento,Sede

Dizionario dei dati (Dizionario dei dati (relationshiprelationship))

Page 81: Progettazione di basi di dati: Metodologie e modelli file24/05/2006 7 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno,

24/05/2006 81

Vincoli non esprimibiliVincoli non esprimibili

Vincoli di integrità sui dati(1) Il direttore di un dipartimento deve a afferire a tale

dipartimento(2) Un impiegato non deve avere uno stipendio

maggiore del direttore del dipartimento al qualeafferisce

(3) Un dipartimento con sede a Roma deve esserediretto da un impiegato con più di dieci anni dianzianità

(4) Un impiegato che non afferisce a nessundipartimento non deve partecipare a nessun unprogetto