70
LA PROGETTAZIONE LA PROGETTAZIONE DELLE DELLE BASI DI DATI BASI DI DATI Metodologie e modelli per Metodologie e modelli per il progetto il progetto __ __ Progettazione concettuale Progettazione concettuale 1^ parte 1^ parte Realizzato da Roberto Savino Realizzato da Roberto Savino

LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Embed Size (px)

Citation preview

Page 1: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

LA PROGETTAZIONELA PROGETTAZIONEDELLE DELLE

BASI DI DATIBASI DI DATI

Metodologie e modelli per il Metodologie e modelli per il progettoprogetto

____

Progettazione concettuale 1^ Progettazione concettuale 1^ parteparte

Realizzato da Roberto SavinoRealizzato da Roberto Savino

Page 2: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Progetto della base di Progetto della base di dati dati

Si inserisce nel:Si inserisce nel: Ciclo di vita del sistema Ciclo di vita del sistema

informativo informativo Consiste nella:Consiste nella:

Raccolta ed analisi dei requisitiRaccolta ed analisi dei requisiti ProgettazioneProgettazione ImplementazioneImplementazione Validazione e collaudoValidazione e collaudo Funzionamento e manutenzioneFunzionamento e manutenzione

Page 3: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

ProgettazioneProgettazione

la progettazione dei dati: individua l’organizzazione e la struttura

della base di dati la progettazione delle

applicazioni: schematizza le operazioni sui dati e

progetta il software applicativo Si concentra su come si comporta il

sistema

Page 4: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Metodologie di Metodologie di progettazioneprogettazione

Distinguiamo:Distinguiamo: la progettazione la progettazione concettuale;concettuale; la progettazione la progettazione logicalogica;; la progettazione la progettazione fisica.fisica.

Page 5: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

La progettazione La progettazione concettualeconcettuale

Scopo della progettazione concettuale è Scopo della progettazione concettuale è tradurre la descrizionetradurre la descrizione informale informale della realtà, della realtà, risultato dell’analisi dei requisiti del DB risultato dell’analisi dei requisiti del DB (tipicamente sottoforma di documenti e moduli (tipicamente sottoforma di documenti e moduli di vario genere), in uno schema di vario genere), in uno schema formale e formale e completo completo che dovrà essere indipendente dai che dovrà essere indipendente dai criteri di rappresentazione del DBMS usato.criteri di rappresentazione del DBMS usato.

La descrizione formale fa riferimento ad un La descrizione formale fa riferimento ad un modello concettualemodello concettuale, cioè un insieme di , cioè un insieme di concetti e notazioni standard adatti alla concetti e notazioni standard adatti alla rappresentazione del dominio applicativo.rappresentazione del dominio applicativo.

Page 6: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Progettazione LogicaProgettazione Logica

Consiste nella traduzione dello schema Consiste nella traduzione dello schema concettuale in termini di un determinato concettuale in termini di un determinato modello logicomodello logico (ad esempio il modello (ad esempio il modello relazionale) di dati usato dal DBMS che relazionale) di dati usato dal DBMS che si intende utilizzare. Il risultato e’ lo si intende utilizzare. Il risultato e’ lo schema logico. schema logico.

Include anche l’Include anche l’ottimizzazioneottimizzazione della della rappresentazione in funzione delle rappresentazione in funzione delle operazioni eseguite (es. operazioni eseguite (es. normalizzazionenormalizzazione))..

Page 7: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Progettazione FisicaProgettazione Fisica

Si completa lo schema logico con la Si completa lo schema logico con la specifica dei parametri fisicispecifica dei parametri fisici di di memorizzazione dei dati. Si produce memorizzazione dei dati. Si produce lo lo schema fisico schema fisico che fa riferimento che fa riferimento ad un certo ad un certo modello fisico modello fisico dei dati dei dati che dipende dal DBMS scelto.che dipende dal DBMS scelto.

Page 8: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Metodologie di Metodologie di progettazioneprogettazione

la progettazione la progettazione concettualeconcettuale la progettazione la progettazione logicalogica la progettazione la progettazione fisicafisica

Page 9: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

L’analisi dei requisitiL’analisi dei requisiti

Deve:Deve: individuare le individuare le proprietàproprietà e le e le

funzionalitàfunzionalità del sistema; del sistema; produrre una descrizione dei produrre una descrizione dei datidati

coinvolti e delle coinvolti e delle operazionioperazioni su di essi; su di essi; individuare (in linea di massima) i individuare (in linea di massima) i

requisiti requisiti softwaresoftware ed ed hardwarehardware del del sistema.sistema.

Page 10: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Output dell’analisi Output dell’analisi

Studio di fattibilitàStudio di fattibilità che stimi: che stimi: i costi in termini di budget, di impegno del i costi in termini di budget, di impegno del

personale; personale; le inefficienze temporanee dovute al cambio le inefficienze temporanee dovute al cambio

di sistema e di modalità di lavoro;di sistema e di modalità di lavoro; i benefici in termini di riduzione dei tempi i benefici in termini di riduzione dei tempi

di lavoro o migliore efficienza dei processi di lavoro o migliore efficienza dei processi aziendali;aziendali;

piano di sviluppopiano di sviluppo del sistema con del sistema con priorità e tempi di realizzazione.priorità e tempi di realizzazione.

Page 11: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Procedure per l’analisiProcedure per l’analisi

Per ogni settore aziendale in esame Per ogni settore aziendale in esame si procede con i seguenti passi:si procede con i seguenti passi: si analizza il sistema informativo si analizza il sistema informativo

esistente, si intervistano i responsabili esistente, si intervistano i responsabili del settore;del settore;

si produce una prima versione dei si produce una prima versione dei requisiti in linguaggio naturale, requisiti in linguaggio naturale, raggruppando raggruppando frasi descrittivefrasi descrittive relative relative a categorie diverse di a categorie diverse di datidati e di e di operazioni.operazioni.

Page 12: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Procedure per l’analisiProcedure per l’analisi

si analizzano le descrizioni per eliminare si analizzano le descrizioni per eliminare ambiguità provocate da:ambiguità provocate da: pluralismo di percezione pluralismo di percezione incompletezze di descrizioneincompletezze di descrizione

ambiguità del tipo:ambiguità del tipo: OmonimieOmonimie SinonimieSinonimie conflitti di descrizioneconflitti di descrizione similitudinisimilitudini

Page 13: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Procedure per l’analisiProcedure per l’analisi si ricontrollano insieme ai responsabili di settore si ricontrollano insieme ai responsabili di settore le le

frasifrasi relative alle varie categorie di dati e alle relative alle varie categorie di dati e alle operazioni che li coinvolgonooperazioni che li coinvolgono

si costruisce a partire dalle frasi verificate un si costruisce a partire dalle frasi verificate un glossario di termini;glossario di termini; Il glossario tipicamente per ogni termine contiene: la Il glossario tipicamente per ogni termine contiene: la

descrizione, l’elenco dei sinonimi e l’elenco dei termini descrizione, l’elenco dei sinonimi e l’elenco dei termini collegati.collegati.

si verifica la si verifica la completezzacompletezza tutti gli aspetti importanti sono stati consideratitutti gli aspetti importanti sono stati considerati

si verifica la si verifica la consistenzaconsistenza delle specifiche vedendo se: delle specifiche vedendo se: tutti i termini sono stati definiti;tutti i termini sono stati definiti; tutti i termini compaiono in delle operazioni;tutti i termini compaiono in delle operazioni; le operazioni fanno riferimento a termini definiti.le operazioni fanno riferimento a termini definiti.

Page 14: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Esempio: “frasi descrittive di un magazzino”

il magazzino è composto da scaffali

i fornitori forniscono prodotti i clienti ordinano prodotti gli scaffali contengono prodotti gli operai sono addetti agli

scaffali

Page 15: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

TERMINE DESCRIZIONE SINONIMI LEGAME

fornitore p. iva, denom., prodottoindirizzo, num. tel.

cliente p. iva, denom., acquirente prodottoindirizzo, num. tel.

prodotto codice, nome, articolo fornitoregenere.... voce scaffale

cliente

scaffale supporto numerato ripiano operaio(incertezza) prodotto

operaio dati anagrafici, addetto scaffalematricola, qualifica magazziniere

Glossario corrispondenteGlossario corrispondente

Page 16: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Il modello Entità-Il modello Entità-Relazione Relazione

Il modello Il modello Entità-RelazioneEntità-Relazione (E-R) è un (E-R) è un modello modello concettuale di dati concettuale di dati che contiene alcuni costrutti che contiene alcuni costrutti atti a descrivere la realtà in maniera semplice, atti a descrivere la realtà in maniera semplice, indipendente dalla organizzazione dei dati nel indipendente dalla organizzazione dei dati nel computer.computer.

I costrutti sono: I costrutti sono: EntitàEntità Associazioni (Relazioni)Associazioni (Relazioni) Proprietà (Attributi)Proprietà (Attributi) CardinalitàCardinalità IdentificatoriIdentificatori Generalizzazioni Generalizzazioni SottoinsiemiSottoinsiemi

Page 17: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Costrutti fondamentaliCostrutti fondamentali

CONOSCENZA ASTRATTA CONOSCENZA ASTRATTA entitàentità associazioneassociazione ProprietàProprietà

CONOSCENZA CONCRETACONOSCENZA CONCRETA istanza di entitàistanza di entità istanza di associazioneistanza di associazione proprietà delle istanzeproprietà delle istanze

Page 18: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Entità – Istanza di EntitàEntità – Istanza di Entità Entità Entità sono classi di oggetti (cose, sono classi di oggetti (cose,

persone) che hanno proprietà comuni ai persone) che hanno proprietà comuni ai fini dell’applicazione di interesse che si fini dell’applicazione di interesse che si intende modellare.intende modellare.

Istanza di Entità: Istanza di Entità: cosa (oggetto, cosa (oggetto, persona) che esiste di per sé nel dominio persona) che esiste di per sé nel dominio applicativo, della quale si vogliono applicativo, della quale si vogliono registrare fatti specifici e che può essere registrare fatti specifici e che può essere chiaramente identificata in modo da chiaramente identificata in modo da poterla distinguere dalle altrepoterla distinguere dalle altre

Page 19: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

EsempiEsempi

Istanza di Entità:Istanza di Entità: il docente Ferroil docente Ferro il corso Basi di il corso Basi di

DatiDati l’auto AB111XYl’auto AB111XY lo studente lo studente

567345567345 il volo AZ3313il volo AZ3313 il percorso CT-PAil percorso CT-PA

Entità:Entità: DocenteDocente CorsoCorso AutomobileAutomobile StudenteStudente VoloVolo PercorsoPercorso

Page 20: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Associazione - istanza di Associazione - istanza di associazioneassociazione

Le Le Associazioni Associazioni (o(o Relazioni Relazioni) ) rappresentano legami logici fra due o più rappresentano legami logici fra due o più entità dell’applicazione.entità dell’applicazione. Possono esserci più relazioni fra le stesse Possono esserci più relazioni fra le stesse

entità (associazioni ricorsive).entità (associazioni ricorsive).

Istanza di AssociazioneIstanza di Associazione: fatto che : fatto che descrive un’azione o una situazione e che descrive un’azione o una situazione e che stabilisce legami tra istanze di entità stabilisce legami tra istanze di entità (associa, mette in relazione)(associa, mette in relazione)

Page 21: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

EsempiEsempi

Istanza di associazione:Istanza di associazione: Ferro insegna Basi di dati Ferro insegna Basi di dati

22 Sicilia appartiene all’ItaliaSicilia appartiene all’Italia La ditta Rossi ordina PCLa ditta Rossi ordina PC Bianchi lavora al Bianchi lavora al

magazzino 4magazzino 4 il TIR 542 viaggia sulla il TIR 542 viaggia sulla

tratta CT-PAtratta CT-PA

Associazione:Associazione: InsegnaInsegna AppartieneAppartiene OrdinaOrdina LavoraLavora Viaggia sulla Viaggia sulla

trattatratta

Page 22: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Proprietà delle istanzeProprietà delle istanze

Dette anche attributi delle istanze: Dette anche attributi delle istanze: sono fatti che descrivono le sono fatti che descrivono le caratteristiche delle istanze di entità caratteristiche delle istanze di entità e le caratteristiche delle istanze di e le caratteristiche delle istanze di associazioneassociazione

Le proprietà delle istanze assumono Le proprietà delle istanze assumono VALORIVALORI

Page 23: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Esempi di proprietà Esempi di proprietà delle istanzedelle istanze

Proprietà di istanze di entità:Proprietà di istanze di entità:

Ferro ha nome AlfredoFerro ha nome Alfredo Il recapito della ditta Rossi è via Il recapito della ditta Rossi è via

Etnea 22Etnea 22 Formazione Analitica 1 si tiene al Formazione Analitica 1 si tiene al

primo anno primo anno

Page 24: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Esempi di proprietà delle Esempi di proprietà delle istanzeistanze

Proprietà di istanze di associazioneProprietà di istanze di associazione

Ferro insegna basi di dati dall’anno Ferro insegna basi di dati dall’anno 19951995

Bianchi ha lavorato 3 ore al magazzino Bianchi ha lavorato 3 ore al magazzino 44

La ditta Rossi ordina 15 PCLa ditta Rossi ordina 15 PC Pappalardo supera Formazione Pappalardo supera Formazione

Analitica 1 con 27Analitica 1 con 27

Page 25: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Modello E-RModello E-R

Il modello E-R usa simboli grafici per Il modello E-R usa simboli grafici per favorire l’immediatezza della favorire l’immediatezza della comprensione;comprensione;

Gli schemi E-R sono schemi grafici; Gli schemi E-R sono schemi grafici; Si possono aggiungere frasi di Si possono aggiungere frasi di

commento per rappresentare le commento per rappresentare le caratteristiche non modellabili (ad caratteristiche non modellabili (ad esempio, vincoli complessi).esempio, vincoli complessi).

Page 26: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Notazioni E-R: entitàNotazioni E-R: entità

nome dell’entità

studenti

esempiesempi:

materie

Page 27: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Notazioni E-R: Notazioni E-R: associazioniassociazioni

nome della associazione

esempio:

supera

esame

studente

Page 28: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

NotazioniNotazioni E-R: proprietàE-R: proprietà

codice

cognome

voto

Page 29: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Notazioni E-R: schemi Notazioni E-R: schemi scheletroscheletro

Gli Gli schemi scheletroschemi scheletro descrivono descrivono una prima struttura di massima dello una prima struttura di massima dello schema senza indicazioni sul TIPO schema senza indicazioni sul TIPO delle entità e delle associazionidelle entità e delle associazioni

Descrivono in generale i Descrivono in generale i collegamenti tra le entità di collegamenti tra le entità di interesse e le associazioni che le interesse e le associazioni che le leganolegano

Page 30: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Schemi scheletro Schemi scheletro (esempi)(esempi)

uffici impiegati

ingegneriprogetti

appartenenza

sviluppo

Page 31: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

guidatori autobus

percorsi

guida

percorrenza

Page 32: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

magazzino scaffale

oggettooperaio

composizione

posizioneassegnamento

Page 33: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

fattura articolo

impiegato

cliente

responsabilità

ricezione

riferimento

ufficio

appartenenza

Page 34: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

dipartimenti docenti

corsicorsidi studio

afferenza

insegnamento

appartenenza

Page 35: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Associazioni ridondantiAssociazioni ridondanti

dipartimenti docenti

corsi

afferenza

insegnamento

appartenenza

Page 36: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Associazioni ridondanti?Associazioni ridondanti?

docenti

corsistudenti

Ins.

seguono

tesitutoraggio

Page 37: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

i Guidatori guidano TIR,

G g T a P

i TIR sono assegnati a Percorsi

i Guidatori guidano TIR su Percorsi

G

T

Pag

Risoluzione delle Risoluzione delle ambiguità di ambiguità di modellazionemodellazione

Page 38: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Le proprietàLe proprietà

Gli schemi scheletro descrivono in Gli schemi scheletro descrivono in generale i collegamenti tra le entità generale i collegamenti tra le entità e le associazioni;e le associazioni;

Le entità e le associazioni devono Le entità e le associazioni devono essere descritte attraverso essere descritte attraverso l’aggregazione di proprietà;l’aggregazione di proprietà;

Page 39: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Identificazione delle Identificazione delle proprietàproprietà

matricola

studente

cognomenomedata_nascitaanno_di_corso

Page 40: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

ProprietàProprietàscalare scalare (semplice, ad un sol valore)(semplice, ad un sol valore)

es.: matricola, cognome, voto

multipla (sono ammessi n valori)

es.: titolo di studi, targa auto(1,n)

Il simbolo (n,m) esprime la cardinalità minima e massima della proprietà

composta es.: data (gg,mm,aaaa), indirizzo, (denominazione, civico, cap)(1,1)

multipla composta(1,n) es.: telefono (stato,

città, numero)

Page 41: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Opzionalità delle Opzionalità delle proprietàproprietà

Proprietà opzionale (è ammessa la “non esistenza del valore”)

(0,n)es.: tel., qualifica, targa

(0,1)

Page 42: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Esempio di specifica Esempio di specifica delle proprietàdelle proprietà

matricola

studente

cognome

n_telservizio_m/c

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

(1,1)

(1,1)

sesso(1,1)

lire

data

tasse(1,n)

Page 43: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Proprietà calcolateProprietà calcolate

Proprietà calcolata (derivata): il valore è calcolato con un algoritmo, in alternativa la proprietà è esplicita.

stipendio

c.f.

dipendentecognome

(1,1)

(1,1)

(1,1)

NB: la regola di calcolo va espressa a parte, usando un qualche linguaggio di specifica:stipendio = salario_giornaliero*presenze

Page 44: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Proprietà di sintesiProprietà di sintesi valori medi , max e min ecc.valori medi , max e min ecc.

campionato

giocatore squadra

età età_media

giocatore squadra

età età_media

età_media

Page 45: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Unicità dei valoriUnicità dei valori

Proprietà unica: tutte le istanze della classe hanno valore diverso, in alternativa la proprietà è non unica:

cognome

c.f.

consulente

p.iva

(1,1)

(0,1)

(1,1)

Page 46: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Proprietà chiaveProprietà chiave

Una proprietà (attributo) chiave identifica in modounivoco la singola istanza di entità (o di associazione):

- obbligatoria, unica, esplicita- può essere composta - in generale non è modificabile

Simbolo = c.f.

dipendente veicolo

targa

libro

colloc.

Page 47: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

EsempioEsempio

DIPENDENTE

c.f.

nome

cognome

data_nascita

data_assunzionelivello

stipendio indirizzo

n_tel.

qualifica

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(1,2)(1,n)

(1,1)

recapito

Page 48: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

EsempioEsempio

VEICOLO

targa

modello

n. telaio

colore

data_immatr.cilindrata

km intervento

km

peso

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

(0,n)(1,1)

(1,1)

revisionedata

Page 49: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Chiave compostaChiave composta

La chiave di un’entità può essere composta

nome

loc_id

località

hotel_idalbergo

nome

provincia

stabilimento

nome

località

stab_id

località

società

Page 50: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Chiavi alternativeChiavi alternative

Chiavi alternative per una stessa entità

albergolocalità

hotel_id

nome

codice_h

nome

loc_id

provincialocalità

c_istat

Page 51: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Criteri di scelta della Criteri di scelta della chiavechiave

Scelta condizionata da fattori esterni Scelta condizionata da fattori esterni es.:per gli studenti: codice fiscale o es.:per gli studenti: codice fiscale o

matricola?matricola? velocità di digitazione (matricola)velocità di digitazione (matricola) controllo validità (codice fiscale) controllo validità (codice fiscale)

Spesso si fa uso di valori progressivi Spesso si fa uso di valori progressivi assegnati automaticamente dal assegnati automaticamente dal sistema garantendo l’unicità sistema garantendo l’unicità (CONTATORE) (CONTATORE)

Page 52: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

La chiave delle La chiave delle associazioniassociazioni

La chiave è sempre composta ed è definita come l’insieme delle chiavi delle entità partecipanti, es.:

uffici impiegati

appartenenza : (c_uff, matr)

c_uff matr

Page 53: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

EsempioEsempio

Es.:

dipartimento docente

Afferenza : (dip, cognome)

dip cognome

Page 54: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Cardinalità delle Cardinalità delle associazioniassociazioni

per per cardinalitàcardinalità si intende il numero si intende il numero di volte che una data istanza di di volte che una data istanza di entità deve o può partecipare alla entità deve o può partecipare alla associazioneassociazione (1,1) : obbligatoria, una sola volta(1,1) : obbligatoria, una sola volta (1,n) : obbligatoria, almeno una volta(1,n) : obbligatoria, almeno una volta (0,1) : opzionale, una sola volta(0,1) : opzionale, una sola volta (0,n) : opzionale, n volte(0,n) : opzionale, n volte

Page 55: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Associazioni N:MAssociazioni N:M

ingegneriprogetti

sviluppoprj matr

(0,n) (1,m)

• Con vincolo: un ingegnere deve partecipare ad almeno un progetto (1,m)• Senza vincolo: ad un progetto possono partecipare ingegneri, ma può esistere anche un progetto senza ingegneri (0,n)

Chiamata anche: associazione molti a molti

Page 56: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

AssociazioniAssociazioni 1:11:1

direttorereparto

direzionen_rep matr

(1,1) (1,1)

• Con doppio vincolo: • un reparto deve avere un direttore ed il direttore

è uno solo (1,1)• un direttore deve dirigere uno ed un solo

reparto (1,1)• Il vincolo diventerebbe (0,1) se avessimo la generica

entità “impiegato” al posto dell’entità “direttore” (alcuni impiegati non dirigono reparti)

Page 57: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Associazioni N:1Associazioni N:1

oggettoripiano

posizionen_rip cod_o

(0,n) (0,1)

• Con vincolo: un oggetto può stare su un ripiano, ma su un solo ripiano (0,1)• Senza vincolo: su un ripiano possono stare n

oggetti • È possibile vincolare la partecipazione, per esempio

ponendo n = 5, non più di 5 oggetti per ripiano (0,5)• Chiamata anche: associazione molti a uno

Page 58: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Gestione magazzinoGestione magazzino

magazzino scaffale

ripianooperaio

composizione

suddivisionelavoro

(1,1)

(1,m)

(1,1)(1,n)

(0,1)

(1,n)

Page 59: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Base dati Base dati universitariauniversitaria

dipartimento docente

corsoc. di studio

afferenza

insegnamento

appartenenza (0,1)

(1,1)(n,m)

(1,n)(n,m)

(0,n)

Page 60: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

ContabilitàContabilità

fattura articolo

impiegato

cliente

gestisce

riceve

contiene

ufficio

appartiene

(1,n)

(0,n)

(1,1)(0,n)

(1,1)

(0,n)(1,1)

(1,n)

Page 61: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

FornituraFornitura

prodotti fornitori

fornitura

prezzo

(0,n)(0,n)

cod_fcod_p

NOTA: questo modello non consente a un fornitore di fornire più volte lo stesso prodotto a seguito di ordini diversi perché si avrebbe una violazione dell’unicità delle chiave

Page 62: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Fornitura / 2Fornitura / 2

fornitore

cod_f

prodotto

cod_p

prezzo(0,n)(0,n)

fornitura

numero data

(1,1)(1,n)rif_p rif_f

Page 63: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

TrasportiTrasporti

•Attenzione all’interpretazione: questo è il programma giornaliero, in cui ogni guidatore è assegnato a un solo bus e fa un solo turnonon rappresenta l’archivio dei turni svolti da un guidatore!

guidatore autobus

Incarico_giornaliero

turno

(0,n)(0,1)

n_autmatr

Page 64: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Trasporti / 2Trasporti / 2

guidatore

fare

(0,n)

matr

(1,1)

autobus

n_aut

(0,n)

usare

turno(1,1)

numerodata

id_tufascia

Archivio assegnamenti:ci possono essere più turni nella stessa data e fascia oraria, svolti da guidatori diversi su bus diversi

Page 65: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Trasporti bis / 1Trasporti bis / 1

NOTA: descrive la situazione di un solo giorno, perché un guidatore non può condurre lo stesso TIR sullo stesso percorso più di una volta

guidatori(0,1)

matr

(0,n)

TIR

n_tir

(0,1)

percorsi

codice_passociazione ternariala chiave è una tripla(matr, n_tir, codice_p)

guida

Page 66: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Trasporti bis / 2Trasporti bis / 2

matrpercorsi

guidatori(0,n)

(0,n)

TIR

n_tir

(0,n)

datadata

Codice_p(0,n)

•un guidatore può condurre lo stesso TIR sullo stesso percorso più di una volta, ma in date diverse•questa rappresentazione nasconde la presenza di un’entità

guida

Page 67: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Trasporti bis / 3Trasporti bis / 3

•Potremmo anche mettere (1,n) al posto di (1,1), per esempio per rappresentare viaggi con più di un guidatore

matr

percorsi

guidatori

(0,n)

TIRn_viaggio

(1,1)

data

Codice_p

(0,n)

viaggi

num

d_arrivo

(1,1)

(1,1)

(0,n)

gv

vp

vt

Page 68: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Le auto-associazioniLe auto-associazioni

Associazioni aventi come Associazioni aventi come partecipanti istanze partecipanti istanze provenienti dalla stessa provenienti dalla stessa entità (chiamate anche entità (chiamate anche unarie o ad anello):unarie o ad anello):

Page 69: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Auto-associazioni 1:1Auto-associazioni 1:1

impiegato

(0,1)

marito

Sul ogni ramo può essere riportato il “ruolo” del partecipante all’associazione

matrimonio

(0,1)

moglie

matr

bnc, nrevrd, gllrss, vli

Page 70: LA PROGETTAZIONE DELLE BASI DI DATI Metodologie e modelli per il progetto __ Progettazione concettuale 1^ parte Realizzato da Roberto Savino

Realizzato da Roberto Savino

Auto-associazioni n:mAuto-associazioni n:m

ricambio

sostituito_da

sostituisce

NB: può essere interpretata come bi- o mono-direzionale

equivalenza

(0,n)

(0,n)

cod_r

p22 m89k45 s56

p22 m89k45 s56m89 p22s56 k45