Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si...

40
Progettazione di Database Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale Dallo schema concettuale si ricava lo schema del database relazionale Modello concettuale: Entità/Relazione

Transcript of Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si...

Page 1: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Progettazione di Database

Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale

Dallo schema concettuale si ricava lo schema del database relazionale

Modello concettuale: Entità/Relazione

Page 2: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

DB Prenotazioni ad Alberghi Il database deve rappresentare le prenotazioni fatte da clienti ad

un albergo. Si vogliono mantenere informazioni sui clienti, sugli alberghi e

sulle prenotazioni. Dei clienti si vogliono mantenere dati identificativi. Gli alberghi possono essere Hotel o Agriturismi. In entrambe i

casi si vogliono mantenere dati identificativi degli alberghi, il numero di camere (divise in singole, doppie, triple), e in quali periodi dell'anno e' aperto l'albergo.

Nel caso degli alberghi si vuole memorizzare la categoria. Nel caso degli agriturismi si vogliono memorizzare i servizi offerti (come gli sport praticabili).

Delle prenotazioni si vogliono mantenere le informazioni riguardo a chi l'ha fatta e per quale albergo, la data di arrivo e quella presunta di partenza (o il numero presunto dei giorni prenotati), quale tipo di stanza un cliente ha prenotato. Ogni cliente puo' prenotare piu' stanze nello stesso periodo.

Page 3: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Database di un Museo

Il museo contiene tre tipi di oggetti: reperti archeologici, materiale etnografico e opere d’arte (quadri, sculture)

Conseguentemente, il museo ha tre sezioni: Archeologica, Etnografica, Collezione (di opere) d’arte

Di tutti i pezzi del museo si vogliono mantenere le informazioni: numero di inventario, provenienza datazione, descrizione, misure, se ha subito restauri o no, sala ed eventualmente collocazione (scaffale, etc…)

Se un oggetto ha subito restauri, si vuole mantenere l’informazione riguardo presso quale centro è stato restaurato e quando

Page 4: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Le opere d’arte hanno associata l’informazione sugli autori

Per i reperti archeologici si vuole mantenere l’informazione sulla data del ritrovamento

Gli oggetti della sezione etnografica sono divisi in tre tipologie: costumi, mobili, suppellettili

Ogni sezione comprende alcune sale. Le sale possono essere condivise da sezioni diverse e l’attribuzione di una sala ad una sezione puo’ cambiare nel tempo. Alle sale è associata altra informazione (che non verrà condiderata nell’esempio)

Le sezioni hanno un impiegato responsabile

Page 5: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Il modello entità/relazione

Consiste in una descrizione a diagrammi i cui concetti base sono:

entità

Relazioni(Associazioni)

attributi

Classi di oggetti omogenei

Classi di fatti omogenei che correlano entità

Proprietà di entità o associazioni

Page 6: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

autore

libro

scrittura

utente

libro

prestito

Esempi di modello entità-relazione

Page 7: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

studente esame corso

Nome

Cognome

Matricola

codice

Docente

titoloVoto

Data

Page 8: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Relazioni uno-a-moltiUna relazione si dice uno-a-molti se ad ogni istanza della prima entità corrisponde al più una della seconda, ma esiste un’istanza della seconda cui corrisponde più di un’istanza della prima. Anche indicata con (1:n)

0,n1,1persona Nato a luogo

minimo

massimo

• Il minimo = 1 indica a sinistra che l' associazione è totale: ad ogni valore della prima entità ne corrisponde uno della seconda.

•Il minimo 1 a destra indica che l'associazione è suriettiva (per ogni valore della seconda entità ne esiste uno della prima).

Page 9: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Relazioni uno-a-uno

0,1 0,1uomo sposati donna

Una relazione è uno-a-uno se ad ogni istanza della prima entità corrisponde al più un’ istanza della seconda entità e viceversa. Anche indicata con (1:1)

Nota. Il minimo = 0 indica a sinistra che la relazione non è necessariamente totale, ed a destra che non è necessariamente suriettiva.

Page 10: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Relazioni molti-a-molti

Una relazione si dice molti-a-molti se esiste un’istanza della prima entità in relazione con più di un’istanza della seconda, e viceversa. Indicata con (m:n)

0,m 0,nstudente esame corso

Page 11: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Altri esempi

Relazione uno-a-uno

impiegato bibliotecadirige

0,1 1,1

Page 12: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

libro Casa_editriceedizione

1,1

Relazioni uno a molti

0,n

utente prestito libro

Relazioni molti a molti

0,m 0,n

Page 13: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Relazioni a più argomenti

mittente Spedizione merce

destinatarioData

Page 14: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Attributi delle entità

Qualificazione degli attributi (proprietà delle entità):

Tipo (dei valori) degli attributi attributi semplici/composti cardinalità (mono/multi-valore) attributo identificatore (chiave) attributi ereditati nelle gerarchie

Page 15: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Tipi di attributi

Entità

Identificatori

Attr. multivalore

Attr. monovalore

Attr. composti

Attr. 1. Attr. N.

Page 16: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Esempio

LIBRO

N.invent

Anno_ed.

titoloautoriCasa_ed.

Collocaz.

scaffale

ripiano

Page 17: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Gerarchie

Speciale tipo di relazione (Sottoclasse di/ sopraclasse

di) che consente una rappresentazione più compatta e più naturale dei dati

Ereditarietà

pubblicazioni

libri riviste

collocaz

prezzo

periodicitàautori

Casa edit.

Titolo.

Page 18: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Schema ER -> DB relazionale (1)

Modello concettuale -> Insieme di tabelle

Entità -> Relazione Attributi -> Attributi della relazione Identificatore -> Chiave primaria

• attributi composti -> “appiattiti”• attributi multi-valore -> Altra relazione • attributi ereditati -> dipende da come

vengono tradotte le gerarchie

Page 19: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Entità

LIBRO(N_Inv,Titolo, casa_ed, anno_ed, collocazione)

Attributo composto: viene ricondottoad un attributo di tipo testuale che congloba secondo un certo formato i due attributi scaffale e ripiano

LIBRO

N.invent

Anno_ed.

titoloautoriCasa_ed.

Collocaz.

ripiano

scaffale

Page 20: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Attributo multivalore

LIBRO (N_Inv,Titolo, casa_ed, anno_ed, collocazione) SCRITTURA (Nome, N_Inv) AUTORE(Nome,ALtreINfo)

LIBRO

N.invent

Anno_ed.

titoloautoriCasa_ed.

Collocaz.ripiano

scaffale Esempio: Autori

nome autore scritturra LIBRO

(n:m)

N.invent

gli altri attr

Page 21: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Eliminazione delle gerarchie

(1) Le entità figlie vengono accorpate all’entità padre che ne raccoglie tutti gli attributi, viene introdotto un attributo (flag) per mantenere la distinzione delle entità figlie

(2) Le entità figlie accorpano l’entità padre e ne raccolgono gli attributi.

(3) La generalizzazione viene sostituita con associazioni con vincoli referenziali (Le entita’ sono identificate esternamente)

Vediamo solo le prime due

Page 22: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Gerarchie (1)

tipo_pub: attributo a valori {libri, riviste}

pubblicazioni

libri riviste

collocaz

prezzo

periodicitàautore

Casa edit.

Titolo.

N_Invent

pubblicazionicollocaz

prezzo

periodicità

autore

Casa edit.

Titolo.

Tipo_pub

N_Invent

Page 23: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Traduzione Relazionale

Pubblicazioni (N_Inv, casa_ed, titolo, coll, prezzo, autore*, periodicità*,tipo_pub)

L’asterisco indica che l’attributo può assumere valori NULL (nel caso in cui non sia applicabile).

Page 24: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Gerarchie (2)

pubblicazioni

libri riviste

collocaz

prezzo

periodicitàautore

Casa edit.

Titolo.

N_Invent

libricollocaz

prezzo

autore

Casa edit.

Titolo.

N_Invent

rivistecollocaz

prezzoperiodicità

Casa edit.

Titolo.

N_Invent

Page 25: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Traduzione relazionale

Libri (N_Inv, casa_ed, titolo, coll, prezzo,autore)

Riviste (N_Inv, casa_ed, titolo, coll, prezzo, periodicità)

E` preferibile quando la maggior parte delle ricerche avviene separatamente o sui libri o sulle riviste, o quando vi sono molti attributi diversi tra le due sotto-entità.

Page 26: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Schema ER -> DB relazionale (2)

Associazione -> Tabella – chiavi delle entità partecipanti (chiavi

esterne)– attributi dell’associazione

Casi particolari (si può evitare la tabella aggiuntiva) includendo la chiave dell’altra entità nel caso di– associazioni uno-a-uno – associazioni binarie uno-a-molti

Page 27: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

PRODOTTO (CODICE_PRODOTTO, NOME_PEZZO)

VENDITORE (NOME, TELEFONO)

VENDITA (CODICE_PRODOTTO, NOME_VENDITORE, SCONTO,DATA)

Esempio: Associazione molti a molti

VENDITORE

PRODOTTO

VENDITA

telefono

codice_prodotto

(n:m)sconto

nome

data

nome_prodotto

Page 28: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

UOMO(NOME, INRIDIZZO)DONNA(NOME,INDIRIZZO)SPOSATI(NOMEUOMO,NOMEDONNA,DATA,LUOGO)

oppureSPOSATI(NOMEUOMO,NOMEDONNA,DATA,LUOGO)

Esempio: Relazione 1:1

UOMO DONNASPOSATI

NOME INDIRIZZO NOME INDIRIZZO

(1:1)

DATA LUOGO

Page 29: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Si può eliminare la relazione SPOSATI

UOMO(NOME, INRIDIZZO, CONIUGE, DATA_NOZZE, LUOGO_NOZZE)

oppure DONNA(NOME, INRIDIZZO, CONIUGE, DATA_NOZZE,

LUOGO_NOZZE)

NOTA: può essere utile mantenere la relazione SPOSATI nel caso in cui molti uomini (o molte donne) risultino non sposati: se la si eliminasse la relazione UOMO (o DONNA) estesa come indicato sopra conterrebbe troppi valori NULL

Page 30: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

REPERTO

MUSEO

APPARTIENE_ (1:n)

CODICEPROVENIENZA

NOMESEZIONE

INDIRIZZO

REPERTO(CODICE, PROVENIENZA, DATA_RITR)APPARTIENE(CODICE, NOME_MUSEO,SEZIONE)MUSEO (NOME, INDIRIZZO)

OPPURE (MEGLIO):

Esempio: relazione 1 a molti

1

n

DATA_RITROV.

REPERTO(CODICE, PROVENIENZA, DATA_RITR, NOME_MUSEO,SEZIONE)MUSEO (NOME, INDIRIZZO)

Page 31: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Database di un Museo

Il museo contiene tre tipi di oggetti: reperti archeologici, materiale etnografico e opere d’arte (quadri, sculture)

Conseguentemente, il museo ha tre sezioni: Archeologica, Etnografica, Collezione (di opere) d’arte

Di tutti i pezzi del museo si vogliono mantenere le informazioni: numero di inventario, provenienza datazione, descrizione, misure, se ha subito restauri o no, sala ed eventualmente collocazione (scaffale, etc…)

Se un oggetto ha subito restauri, si vuole mantenere l’informazione riguardo presso quale centro è stato restaurato e quando

Page 32: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Le opere d’arte hanno associata l’informazione sugli autori

Per i reperti archeologici si vuole mantenere l’informazione sulla data del ritrovamento

Gli oggetti della sezione etnografica sono divisi in tre tipologie: costumi, mobili, suppellettili

Ogni sezione comprende alcune sale. Le sale possono essere condivise da sezioni diverse e l’attribuzione di una sala ad una sezione puo’ cambiare nel tempo. Alle sale è associata altra informazione (che non verrà condiderata nell’esempio)

Le sezioni hanno un impiegato responsabile

Page 33: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

originale restaurato Centro di restauro

Restaurato da

Sta inOggetto

Etnografico Reperto Opera

N.invprovenienza

datadescrizione

misure

Tipologia data_rit

data

nome indirizzo

1,n 0,n

1,1

data n/m

Eseguito da

Autore

nome

nato a

1,1

0,n

Collocazione

Sezione

nome

responsabile

1,n

sala

identificatore

1,n

comprende

1,n

AltreI

Page 34: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Eliminazione delle gerarchie

Originale/restaurato --> soluzione (1) Reperto/etnografico/opera --> soluzione (1)

Page 35: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Centro di restauro

Restaurato da

Sta inOggetto

N.invprovenienza

datadescrizione

misure

M.E.Tipologia

data_rit

data

nome indirizzo

data n/m

0,n 0,n

1,1

Autore

nome

nato a

0,1

0,n

tipo Stato restauro

Collocazione

Eseguito da

Sezione

nome

responsabile

1,n

sala

identificatore

1,n

comprende

1,n

AltreI

Page 36: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Entità

Oggetto(N_inv, Provenienza, Data, Misure, Tipo, Descrizione, StatoRestauro, ME_Tipologia*, Data_rit*)

CentroRestauro(Nome,Indirizzo) Sezione(Nome, Responsabile) Autore(Nome,DataN/M, Luogo) Sala(Identificatore, AltreI)

Page 37: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Relazioni

Restaurato_da(Oggetto,Centro,Data) Eseguito_da(Opera, Nome) Sta_in(Oggetto, Sala, Collocazione*) Comprende(NomeSezione,NomeSala)

Page 38: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Eliminazione della relazione (1:n) Sta_in:

si aggiungono gli attributi:, Sala,Collocazione* ad Oggetto, che diventa

Oggetto(N_inv, Provenienza, Data, Misure, Tipo, Descrizione, StatoRestauro, ME_Tipologia*, Data_rit*, Sala, Collocazione*)

Page 39: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Schema finale DBCentroRestauro(Nome,Indirizzo)Sezione(Nome, Responsabile)Autore(Nome, DataN/M, Luogo)Sala(Identificatore, AltreI)Oggetto(N_inv, Provenienza, Data, Misure, Tipo, Descrizione, StatoRestauro, ME_Tipologia*, Data_rit*, Sala, Collocazione*)Restaurato_da(Oggetto,Centro,Data)Eseguito_da(Opera, Nome)Comprende(NomeSezione, NomeSala)

Vincoli di integrità referenziale: attributi delle stesso colore

Page 40: Progettazione di Database l Progettazione Concettuale: strutturazione della “realtà” che si vuole rappresentare secondo uno schema concettuale l Dallo.

Domini e vincoli

Vincoli di Dominio: – Tipo: {Reperto,Etnografico,Opera}– ME_tipologia: {Costumi,Mobili,Suppellettili}

Vincoli di tupla: – Data_rit=NULL OR Tipo=Reperto– ME_tipologia=NULL OR Tipo=Etnografico

Altri vincoli: se la chiave di un oggetto compare nella relazione Restaurato StatoRestauro deve essere YES