Progettazione di basi di dati M - PoliTO

32
Basi di dati Esempio di progettazione logica relazionale Elena Baralis ©2007 Politecnico di Torino 1 D B M G Progettazione di basi di dati D B M G 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

Transcript of Progettazione di basi di dati M - PoliTO

Page 1: 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

Page 2: Progettazione di basi di dati M - PoliTO

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)

Page 3: Progettazione di basi di dati M - PoliTO

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

Page 4: Progettazione di basi di dati M - PoliTO

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

Page 5: Progettazione di basi di dati M - PoliTO

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

Page 6: Progettazione di basi di dati M - PoliTO

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)

Page 7: Progettazione di basi di dati M - PoliTO

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

Page 8: Progettazione di basi di dati M - PoliTO

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)

Page 9: Progettazione di basi di dati M - PoliTO

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

Page 10: Progettazione di basi di dati M - PoliTO

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

Page 11: Progettazione di basi di dati M - PoliTO

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

Page 12: Progettazione di basi di dati M - PoliTO

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

Page 13: Progettazione di basi di dati M - PoliTO

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

Page 14: Progettazione di basi di dati M - PoliTO

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

Page 15: Progettazione di basi di dati M - PoliTO

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

Page 16: Progettazione di basi di dati M - PoliTO

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

Page 17: Progettazione di basi di dati M - PoliTO

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

Page 18: Progettazione di basi di dati M - PoliTO

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

Page 19: Progettazione di basi di dati M - PoliTO

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

Page 20: Progettazione di basi di dati M - PoliTO

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

Page 21: Progettazione di basi di dati M - PoliTO

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

Page 22: Progettazione di basi di dati M - PoliTO

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

Page 23: Progettazione di basi di dati M - PoliTO

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

Page 24: Progettazione di basi di dati M - PoliTO

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

Page 25: Progettazione di basi di dati M - PoliTO

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

Page 26: Progettazione di basi di dati M - PoliTO

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

Page 27: Progettazione di basi di dati M - PoliTO

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

Page 28: Progettazione di basi di dati M - PoliTO

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

Page 29: Progettazione di basi di dati M - PoliTO

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

Page 30: Progettazione di basi di dati M - PoliTO

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

Page 31: Progettazione di basi di dati M - PoliTO

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

Page 32: Progettazione di basi di dati M - PoliTO

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