• Non ci sono risultati.

Progettazione di basi di dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Progettazione di basi di dati"

Copied!
32
0
0

Testo completo

(1)

DB M G

Progettazione di basi di dati

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

(2)

DB M G

Esempio di progettazione logica relazionale

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Di servizio in

Durata Ora inizio Età

(p,e) (1,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

Medico Volontario

Esame specialistico

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

(3)

DB M G

Esempio di progettazione logica relazionale

Analisi degli attributi derivati

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Associazione

(0,1)

Stanza Piano

(1,N) (1,1)

(0,N)

(1,1)

(p,e) Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Durata Ora inizio Età

(p,e) (1,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale Medico Volontario

Esame specialistico

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

NTes

(4)

DB M G

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

DB M G

8

Eliminazione dell’attributo Età

Nome Cognome Indirizzo

LuogoN DataN Età

Paziente

NTes

Nome Cognome Indirizzo

LuogoN DataN

Paziente

NTes

(5)

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Di servizio in

Durata Ora inizio

(p,e) (1,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

Medico Volontario

Esame specialistico

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

NTes

Eliminazione delle gerarchie

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Associazione

(0,1)

Stanza Piano

(1,N) (1,1)

(0,N)

(1,1)

(p,e) Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Durata Ora inizio

(p,e) (1,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale Medico Volontario

Esame specialistico

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

NTes

(6)

DB M G

11

Gerarchia degli esami

(0,N)

(1,1) Descrizione CodE

(p,e) (1,1)

(0,N)

Effettuato da

Per Prenotazione

Esame

Medico Esame specialistico

Descrizione della dieta (0,1)

DB M G

12

Accorpamento nel padre

(0,N)

(1,1) Descrizione CodE

(0,1)

(0,N)

Effettuato da

Per Prenotazione

Esame

Medico

Tipo

Descrizione della dieta (0,1)

(7)

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

Medico Volontario

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

Tipo NTes

Eliminazione delle gerarchie

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Associazione

(0,1)

Stanza Piano

(1,N) (1,1)

(0,N)

(1,1)

(p,e) Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale Medico Volontario

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(1,N)

Descrizione della dieta (0,1)

Tipo NTes

(8)

DB M G

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

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Laboratorio

(1,N)

Tempo Esame

Reparto Personale

Medico Volontario

(1,1)

Ruolo del

medico

Assume

(1,N)

DB M G

16

Accorpamento nel padre

CodFisc Cognome Nome Domicilio

(1,1) (1,N)

Lavora in

(0,N) (0,N)

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Laboratorio

(1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Assume

(0,N)

Tipo Specializzazione

(0,N) Associazione

(0,1)

(9)

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo Tipo

Associazione (0,1) NTes

Eliminazione degli attributi multivalore

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Specializzazione (0,N)

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Associazione (0,1) NTes

(10)

DB M G

19

Attributo multivalore Specializzazione

Specializzazione (0,N)

Personale

DB M G

20

Introduzione dell’entità Specializzazione

Specializzazione (0,N)

Personale

(0,N)

Personale Specializzazione

Specializzazione

Ha

(11)

DB M G

21

Cardinalità della relazione Ha

Specializzazione (0,N)

Personale

(0,N)

Personale Specializzazione

(1,N)

Specializzazione

Ha

Schema ER ristrutturato finale

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

(12)

DB M G

Esempio di progettazione logica relazionale

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1)

Traduzione dell’entità Paziente

NTes

(13)

DB M G

25

Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN)

Traduzione dell’entità Paziente

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Ospedale

(14)

DB M G

27

Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN) Ospedale(CodO, Nome, Indirizzo)

Traduzione dell’entità Ospedale

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Esame

(15)

DB M G

29

Paziente(NTes, Nome, Cognome, Indirizzo, LuogoN, DataN) Ospedale(CodO, Nome, Indirizzo)

Esame(CodE, Descrizione, DescrizioneDieta*, Tipo)

Traduzione dell’entità Esame

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Personale

(16)

DB M G

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

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Tempo

(17)

DB M G

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

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Specializzazione

(18)

DB M G

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

DB M G

Esempio di progettazione logica relazionale

(19)

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Laboratorio

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

(20)

DB M G

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

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Reparto

(21)

DB M G

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

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

(22)

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Prenotazione

DB M G

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

(23)

DB M G

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

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Traduzione dell’entità Ruolo del medico

(24)

DB M G

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

DB M G

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

(25)

DB M G

Esempio di progettazione logica relazionale

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Relazione binaria uno a molti Effettuato da

(26)

DB M G

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

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Relazione binaria uno a molti Lavora in

(27)

DB M G

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

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Relazione binaria uno a molti Eseguita

(28)

DB M G

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

DB M G

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)

NomeCodO Indirizzo

Lavora in Dispone di

Ha

Descrizione

(0,N) (0,N)

CodE

Di servizio in

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Nome Telefono

Effettua

Per Prenotazione

Paziente

Laboratorio

(1,1)

(0,N)

Ospedale

Data (1,N)

Tempo Esame

Reparto Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Relazione binaria molti a molti Ha

(29)

DB M G

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

Nome Cognome Indirizzo

LuogoN DataN

Data Ora

Costo

Urgente (1,1)

(0,N)

Eseguita

Nome Domicilio Stanza

Piano (1,N) (1,1)

(0,N)

(1,1) Descrizione

(0,N) (0,N)

CodE

Durata Ora inizio

(0,1)

(0,N)

Effettuato da

Effettua

Per Prenotazione

Paziente Esame

Personale

(1,1)

Ruolo del

medico

Data Inizio Data Fine

(0,1) Ruolo

Assume

(0,N)

Descrizione della dieta (0,1)

Tipo

Specializzazione

Specializzazione

(1,N)

(0,N)

Ha

Associazione

(0,1) NTes

Relazione ternaria molti a molti Di servizio in

(30)

DB M G

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

DB M G

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

(31)

DB M G

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

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,

Eliminazione delle tabelle ridondanti

(32)

DB M G

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

Riferimenti

Documenti correlati

Scrivere in algebra relazionale una query che restituisce i cognomi dei soci che hanno piu’ di 10 euro di credito, che non hanno preso in prestito un dvd in data

Scrivere in algebra relazionale una query che restituisce l’elenco degli im- piegati con codImpiegato, nome e cognome, che a tutti i progetti cui collaborano, vi collaborano per piu’

Esame(CodE, Descrizione, DescrizioneDieta*, Tipo, CodFisc*) Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo)

Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente) RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo). Traduzione della relazione

DiServizioIn( CodFisc , CodLab, CodO, Data, OraInizio, Durata) Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,.

DiServizioIn( CodFisc , CodLab, CodO, Data, OraInizio, Durata) Personale(CodFisc, Nome, Cognome, Domicilio, Associazione*,Tipo,.

Ridondanza e Anomalie In tutte le righe in cui compare uno studente è ripetuta la sua

Una decomposizione conserva le dipendenze se ciascuna delle dipendenze funzionali dello. schema originario è presente in una delle