Progettazione di basi di dati M - PoliTO
Transcript of Progettazione di basi di dati M - PoliTO
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 1
DBMG
Progettazione di basi di dati
DBMG 2
Esempio di progettazione logica relazionale
Introduzione
Ristrutturazione dello schema ER
Traduzione delle entità senza identificatore esterno
Traduzione delle entità con identificatore esterno
Traduzione delle relazioni
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 2
DBMG
Esempio di progettazione logica relazionale
DBMG 4
Modello concettuale di partenza
NTes Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
Età
(p,e) (1,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
Esame specialistico
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 3
DBMG
Esempio di progettazione logica relazionale
DBMG 6
Analisi degli attributi derivati
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
Età
(p,e) (1,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
Esame specialistico
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 4
DBMG 7
Attributo derivato Età
Nome Cognome
Indirizzo
LuogoN
DataN
Età
Paziente
NTes
L’attributo Età può essere eliminato perché
può essere facilmente calcolato partendo dalla data di nascita (DataN)
È tipicamente presente in poche interrogazioni
DBMG 8
Eliminazione dell’attributo Età
Nome Cognome
Indirizzo
LuogoN
DataN
Età
Paziente
NTes
Nome Cognome
Indirizzo
LuogoN
DataNPaziente
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 5
DBMG 9
Schema semplificato (n. 1)
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(p,e) (1,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
Esame specialistico
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
NTes
DBMG 10
Eliminazione delle gerarchie
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(p,e) (1,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
Esame specialistico
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 6
DBMG 11
Gerarchia degli esami
(0,N)
(1,1)
DescrizioneCodE
(p,e) (1,1)
(0,N)
Effettuato da
Per
Prenotazione
Esame
Medico
Esame specialistico
Descrizione della dieta(0,1)
DBMG 12
Accorpamento nel padre
(0,N)
(1,1)
DescrizioneCodE
(0,1)
(0,N)
Effettuato da
Per
Prenotazione
Esame
Medico
Tipo
Descrizione della dieta(0,1)
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 7
DBMG 13
Schema semplificato (n. 2)
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
Tipo
NTes
DBMG 14
Eliminazione delle gerarchie
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(p,e)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(1,N)
Descrizione della dieta(0,1)
Tipo
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 8
DBMG 15
Gerarchia del personale
CodFisc
Cognome
Nome
Domicilio
Associazione(0,1)
(1,1)
(1,N)
(p,e)
Lavora in
(0,N) (0,N)
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Laboratorio
(1,N)
Tempo
Esame
Reparto
Personale
MedicoVolontario
(1,1)
Ruolo delmedico
Assume
(1,N)
DBMG 16
Accorpamento nel padre
CodFisc
Cognome
Nome
Domicilio
(1,1)
(1,N)
Lavora in
(0,N) (0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Laboratorio
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Assume
(0,N)
Tipo
Specializzazione(0,N)
Associazione(0,1)
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 9
DBMG 17
Schema semplificato (n. 3)
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Associazione(0,1)
NTes
DBMG 18
Eliminazione degli attributi multivalore
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Specializzazione(0,N)
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Associazione(0,1)
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 10
DBMG 19
Attributo multivalore Specializzazione
Specializzazione(0,N)
Personale
DBMG 20
Introduzione dell’entità Specializzazione
Specializzazione(0,N)
Personale
(0,N)
Personale
Specializzazione
Specializzazione
Ha
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 11
DBMG 21
Cardinalità della relazione Ha
Specializzazione(0,N)
Personale
(0,N)
Personale
Specializzazione
(1,N)
Specializzazione
Ha
DBMG 22
Schema ER ristrutturato finale
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 12
DBMG
Esempio di progettazione logica relazionale
DBMG 24
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
Traduzione dell’entità Paziente
NTes
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 13
DBMG 25
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Traduzione dell’entità Paziente
DBMG 26
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Ospedale
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 14
DBMG 27
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Traduzione dell’entità Ospedale
DBMG 28
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Esame
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 15
DBMG 29
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Traduzione dell’entità Esame
DBMG 30
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Personale
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 16
DBMG 31
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Traduzione dell’entità Personale
DBMG 32
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Tempo
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 17
DBMG 33
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Traduzione dell’entità Tempo
DBMG 34
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Specializzazione
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 18
DBMG 35
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Traduzione dell’entità Specializzazione
DBMG
Esempio di progettazione logica relazionale
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 19
DBMG 37
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Laboratorio
DBMG 38
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO,
Traduzione dell’entità Laboratorio
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 20
DBMG 39
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Traduzione dell’entità Laboratorio
DBMG 40
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Reparto
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 21
DBMG 41
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO,
Traduzione dell’entità Reparto
DBMG 42
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Traduzione dell’entità Reparto
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 22
DBMG 43
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Prenotazione
DBMG 44
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(NTes, CodE, Data,
Traduzione dell’entità Prenotazione
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 23
DBMG 45
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(NTes, CodE, Data, Ora, Costo, Urgente)
Traduzione dell’entità Prenotazione
DBMG 46
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Traduzione dell’entità Ruolo del medico
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 24
DBMG 47
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(NTes, CodE, Data, Ora, Costo, Urgente)
RuolodelMedico(CodFisc, DataInizio,
Traduzione dell’entità Ruolo del medico
DBMG 48
Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(NTes, CodE, Data, Ora, Costo, Urgente)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
Traduzione dell’entità Ruolo del medico
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 25
DBMG
Esempio di progettazione logica relazionale
DBMG 50
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Relazione binaria uno a molti Effettuato da
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 26
DBMG 51
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
Traduzione della relazione Effettuato da
DBMG 52
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Relazione binaria uno a molti Lavora in
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 27
DBMG 53
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
Traduzione della relazione Lavora in
DBMG 54
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Relazione binaria uno a molti Eseguita
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 28
DBMG 55
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data)
Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente, CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
Traduzione della relazione Eseguita
DBMG 56
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Relazione binaria molti a molti Ha
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 29
DBMG 57
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data) Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
Traduzione della relazione Ha
DBMG 58
Nome Cognome
Indirizzo
LuogoN
DataN
Data
Ora
Costo
Urgente (1,1)
(0,N)
Eseguita
CodFisc
Cognome
Nome
Domicilio
CodLab
NomeLab
Stanza
Piano
(1,N)
(1,1)
(0,N)
(1,1)
(1,1)
(1,N)
(1,1)
CodR
(1,N) CodONome
Indirizzo
Lavora inDispone di
Ha
Descrizione
(0,N) (0,N)
CodE
Di servizio in
DurataOra inizio
(0,1)
(0,N)
Effettuato da
Nome
Telefono
EffettuaPer
Prenotazione
Paziente
Laboratorio
(1,1)
(0,N)
Ospedale
Data
(1,N)
Tempo
Esame
Reparto
Personale
(1,1)
Ruolo delmedico
Data Inizio
Data Fine (0,1)
Ruolo
Assume
(0,N)
Descrizione della dieta(0,1)
Tipo
Tipo
Specializzazione
Specializzazione
(1,N)
(0,N)
HaAssociazione(0,1)
NTes
Relazione ternaria molti a molti Di servizio in
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 30
DBMG 59
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data) Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
DiServizioIn(CodFisc, CodLab, CodO, Data,
Traduzione della relazione Di servizio in
DBMG 60
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data) Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
DiServizioIn(CodFisc, CodLab, CodO, Data, OraInizio, Durata)
Traduzione della relazione Di servizio in
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 31
DBMG 61
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data) Specializzazione(Specializzazione)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
DiServizioIn(CodFisc, CodLab, CodO, Data, OraInizio, Durata)
Eliminazione delle tabelle ridondanti
DBMG 62
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Tempo(Data)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
DiServizioIn(CodFisc, CodLab, CodO, Data, OraInizio, Durata)
Eliminazione delle tabelle ridondanti
Basi di dati Esempio di progettazione logica relazionale
Elena Baralis
©2007 Politecnico di Torino 32
DBMG 63
Paziente(CodTes, Nome, Cognome, Indirizzo, LuogoN, DataN)
Ospedale(CodO, Nome, Indirizzo)
Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*)
Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,CodR, CodO)
Laboratorio(CodLab, CodO, NomeLab, Piano, Stanza)
Reparto(CodR, CodO, Nome, Telefono)
Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente,CodLab, CodO)
RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo)
HaSpecializzazione(CodFisc, Specializzazione)
DiServizioIn(CodFisc, CodLab, CodO, Data, OraInizio, Durata)
Schema relazionale finale