EER
Vogliamo aumentare
l’espressività degli Entity
Model
EER: Entity Model Esteso
Basi di dati
2002
Concetti fondamentali
• Specializzazione/generalizzazione
• Categorie
• Associazioni ternarie
Basi di dati
2002
Specializzazione/generalizzazione
• Specializzazione/generalizzazione
• Categorie
• Associazioni ternarie
Basi di dati
2002
Specializzazione/generalizzazione:
gerarchia is-a
Matricola impiegato
SUPERCLASSE
Impiegato
Pilota
Meccanico
Nome
Data assunzione
Amministrativo
Sottoclassi
N. Licenza
N. Ore in pista
Basi di dati
2002
Specializzazione/generalizzazione:
Matricola impiegato
Impiegato
d
Segretario
Data assunzione
d
Ingegnere
Stipendiato
Tecnico
Specializzazione
di un ruolo
Nome
Direttore
Dirige
Progetto
Pagato ad
ore
appartiene
Sindacato
Basi di dati
2002
Specializzazione/generalizzazione:
La notazione d
significa:
sottoclassi
disgiunte
Matricola impiegato
Impiegato
d
Segretario
Nome
Data assunzione
d
Ingegnere
Stipendiato
Tecnico
Direttore
Dirige
Progetto
Pagato ad
ore
appartiene
Sindacato
Basi di dati
2002
Specializzazione/generalizzazione:
Matricola impiegato
La specializzazione può
essere totale o
Impiegato
parziale
d
Segretario
Nome
Data assunzione
d
Ingegnere
Stipendiato
Tecnico
Direttore
Dirige
Progetto
Pagato ad
ore
appartiene
Sindacato
Basi di dati
2002
Definizione delle specializzazioni
Matricola impiegato
Impiegato
Matricola impiegato
Pilota
N. Licenza
N. Ore in pista
Nome
Data assunzione
Matricola impiegato
Meccanico
Matricola impiegato
Amministrativo
• Ciascuna delle tabelle delle
specializzazioni ha la stessa
chiave primaria della
generalizzazione più il proprio
set di attributi specifici
Basi di dati
2002
Definizione delle specializzazioni
Matricola impiegato
Impiegato
Matricola impiegato
Pilota
N. Licenza
N. Ore in pista
Nome
Data assunzione
Matricola impiegato
Meccanico
Matricola impiegato
Amministrativo
• Questa soluzione va
bene qualunque siano i
vincoli della
specializzazione
Basi di dati
2002
Definizione delle specializzazioni
• Oppure la specializzazione si può definire
tramite un attributo
• Questa soluzione va
bene se esistono pochi
attributi specifici e se la
specializzazione è
disgiunta
• (avere una sola tabella
migliora le prestazioni)
Matricola impiegato
Impiegato
Nome
Data assunzione
Tipo lavoro
Velocità battitura
livello
Specializzazione
Basi di dati
2002
Definizione delle specializzazioni
• Se la specializzazione non è disgiunta si
possono usare più campi di tipo booleano
Matricola impiegato
Impiegato
Nome
Data assunzione
Ingegnere (si/no)
Specializzazione
Consulente (si/no)
Tariffa giornaliera
Basi di dati
2002
Reticoli di Specializzazione
Matricola impiegato
Direttore_ingegnere
è una sottoclasse
Impiegato
condivisa
d
Segretario
Nome
Data assunzione
d
Ingegnere
Tecnico
Direttore
Stipendiato
Pagato ad
ore
Direttore ingegnere
Basi di dati
2002
Categorie
Azienda
Persona
U
Titolare
conto
L’esigenza nasce quando in
una singola associazione
superclasse sottoclasse
nella superclasse
intervengono più entità
distinte
Ha conto
BAnca
Basi di dati
2002
Categorie
Edificio
Lotto
Se la categoria è totale, è
equivalente usare una
rappresentazione in termini
di specializzazione
Ciò è opportuno se le due
entità condividono molti
attributi
U
Proprietà
Proprietà
d
Edificio
Lotto
Basi di dati
2002
Associazioni ternarie
1
N
Fornitore
fornitura
Progetto
quantità
Id fornitore
Parte
codparte
idprogetto
Basi di dati
2002
Associazioni ternarie
• L’associazione ternaria è dalla
situazione mostrata in figura:
• Le varie istanze possono
esistere indipendentemente
M
N
Fornitore
fornitura
Progetto
quantità
Id fornitore
può fornire
Parte
idprogetto
usa
codparte
Basi di dati
2002
Associazioni ternarie
• In genere si specificano
anche le associazioni
binarie aggiuntive
M
N
fornitura
Fornitore
N
quantità
Id fornitore
può fornire
Progetto
Parte
M
M
codparte
N
idprogetto
usa
Basi di dati
2002
Vincoli sui tipi di associazione
• I vincoli di una associazione consentono di
esprimere efficacemente alcune regole
dell’organizzazione che stiamo analizzando
• Tuttavia alcune regole non possono essere
espresse:
• ES: lo studente deve svolgere 60 ore di
laboratorio prima di potersi iscrivere al corso X
• E’ compito del software applicativo tenere
conto di queste regole (in genere questa
funzionalità non è supportata direttamente nei
DBMS)
Basi di dati
2002
Esercizio: base di dati per un
piccolo aeroporto
• Ogni aeroplano ha n matr, è di un certo tipo, e
di un certo modello, ha una capacità ed è
posto in un determinato hangar
• hangar ha numero, capacità e ubicazione
• Occorre tenere traccia dei proprietari e degli
impiegati che effettuano il servizio di
manutenzione, che comprende data, tipo di
lavoro, n ore impiegate
• Un proprietario può essere una persona o una
azienda, le aziende hanno nome, ind. tel
• I piloti e impiegati hanno cf, nome, ind, tel.
Piloti hanno n. licenza, limitazion, sono
autorizzati a fare volare solo certi tipi di
aeroplani. Gli impiegati hanno stipendio e
turno, e sono abilitati a lavorare su certi tipi di
aeroplani.
Basi di dati
2002
Esercizio:AGENZIA IMMOBILIARE
Tali informazioni riguardano:
- gli immobili oggetto degli affitti. Di tali immobili interessa ricordare: l'indirizzo, il
prezzo richiesto dal proprietario per la vendita o per l'affitto annuo, i metri
quadri. Gli immobili possono essere di due tipi: abitazioni ed uffici. Per le
abitazioni si vuole anche memorizzare il numero di vani.
- Coloro che prendono in affitto gli immobili, che possono essere persone
fisiche o società/enti. Di questi si vogliono memorizzare informazioni sul
codice fiscale, la partita iva (se applicabile), il nome e cognome, se persone
fisiche, o la denominazione societaria (se società/enti).
- Coloro che danno in affitto gli immobili. Anche questi possono essere
persone fisiche o società/enti, e si vogliono memorizzare informazioni sul
codice fiscale, la partita iva (seapplicabile), il nome e cognome, se persone
fisiche, o la denominazione societaria (se società/enti).
- I contratti di affitto. Di questi interessa sapere: data, numero di registrazione,
nome ecognome del notaio che ha stipulato, prezzo di vendita dell'immobile
(se venduto) o di affitto (seaffittato). Ovviamente, per ogni contratto deve
essere possibile sapere quale immobile riguarda e tra chi è stato stipulato.
Basi di dati
2002
Esercizio: agenzia immobiliare
soluzione 1
cliente
affitta
stipula
immobile
riguarda
contratto
Basi di dati
2002
Esercizio: agenzia immobiliare
soluzione 1
cliente
affitta
immobile
Relazione ternaria
O
proprietario
Contratto
affitto
affittuario
Basi di dati
2002
Esercizio: agenzia immobiliare
soluzione 1
Specifichiamo meglio
immobile
cliente
N
N
O
affitta
M
Contratto
affitto
proprietario
affittuario
1
mette in affitto
Basi di dati
2002
Esercizio: agenzia immobiliare
soluzione 1
Affitta e contratto di
affitto potrebbero
immobile
cliente essere conglobate
in un’unica tabella
N
O
affitta
N
M
Contratto
affitto
proprietario
affittuario
1
mette in affitto
Basi di dati
2002
Esercizio: agenzia immobiliare
ufficio
casa
cliente
D
D
società
immobile
persona
N
N
O
affitta
M
Contratto
affitto
proprietario
affittuario
1
mette in affitto
Basi di dati
2002
Esercizio: agenzia immobiliare
ufficio
casa
cliente
D
D
società
immobile
persona
N
N
O
affitta
M
Contratto
affitto
proprietario
affittuario
1
mette in affitto
Basi di dati
2002
Scelte progettuali
Ruolo proprietario /affittuario
• Creare due tabelle: una
per proprietari e una per
affittuari
• Hanno struttura identica
• Alcuni clienti possono
trovarsi in entrambe le
tabelle
• Può essere immediato fare
alcuni tipi di query: es:
genera la lista dei
proprietari degli immobili.
• Oppure: Creare un’unica
tabella per i clienti
• Si può aggiungere un campo
che indica se quel cliente è
anche un proprietario.
• E’ ridondante però facilita le
query (altrimenti si dovrebbe
fare una join con la tabella
degli immobili sul campo Id
proprietario)
Basi di dati
2002
Scelte progettuali
Ruolo ente /persona
• I due ruoli si differenziano solo
per un attributo (PIVA)
• Conviene quindi lasciare la
superclasse aggiungendo un
campo sul tipo di cliente e un
campo per l’eventuale partita
IVA.
• Considerazioni analoghe valgono
per la specializzazione IMMOBILE
 casa ufficio
Basi di dati
2002
Scelte progettuali
associazione affitto e contratto
• Dall’associazione ternaria nasce la
tabella dei contratti:
• Contratto id affittuario, id immobile, data
inizio locazione, id proprietario ,data fine,
canone, notaio, data firma contratto)
• In realtà id immobile determina id proprietario,
ma conviene metterlo se voglio generare più
efficientemente informazioni complete sui
contratti.
Basi di dati
2002
Scelte progettuali
associazione affitto e contratto
• L’associazione mette in affitto
determina una chiave esterna
nella tabella immobile
• Immobile (id immobile, id proprietario, ufficio
si/no, mq, nvani, canone mensile, disponibile
si/no)
Basi di dati
2002
Scelte progettuali
associazione affitto e contratto
• L’associazione affitta, di tipo N a
M da luogo ad una tabella con i
dettagli dell’affitto.
• Affitti (id immobile, id locatario, data inizio
locazione, data fine, canone mensile)
• Notare che a meno di due attributi è la stessa
struttura di contratti. Le due tabelle si
potrebbero unificare
Basi di dati
2002
Scarica

Esercizio sull`agenzia immobiliare visto a lezione