vuoi
o PayPal
tutte le volte che vuoi
Esame di Stato Istituto Tecnico Commerciale
Soluzione della Seconda Prova
Indirizzo: MERCURIO
Tema di: INFORMATICA GESTIONALE
Anno Scolastico: 2006-2007
Definizione dello schema concettuale del database
Partendo dalle specifiche contenute nel testo del problema, i vincoli di base del sistema in fase di
sviluppo sono i seguenti:
a. un medico può avere più visite, ma una visita è effettuata da un solo medico
b. un paziente può avere effettuato visite con più medici
c. le prestazioni richieste altro non siano altro che le visite stesse.
d. una prestazione ha lo stesso costo a prescindere dallo specialista che la effettua.
e. un medico esercita, nello studio, una sola specializzazione
Il modello concettuale prevede le seguenti entità:
- MEDICO
- PAZIENTE
- PRESTAZIONI
- VISITE
Le entità sono individuate dagli attributi dettagliati nella figura seguente:
SISTEMA INFORMATIVO
Gestione Studio Medico
MEDICO: PAZIENTE: PRESTAZIONE: VISITA:
IdMedico; IdPaziente; IdPrestazione; IdMedico;
Cognome; Cognome; Descrizione; IdPaziente;
Nome; Nome; DurataMedia; IdPrestazione;
Specializzazione; NTessera; Costo; DataVisita;
Via; Via; Ora;
NumCivico; NumCivico; Effettuata;
Cap; Cap; DataPrenotazione;
Comune; Comune;
Telefono; NumTel;
Email; Email
DataNascita;
Le relazioni tra le diverse entità sono individuate dal seguente diagramma entità-relazioni
1 N N 1
MEDICO PAZIENTE
PRENOTAZIONE N 1 VISITA
La relazione tra l’entità MEDICO e l’entità PRENOTAZIONE è di tipo 1:N
La relazione tra l’entità PAZIENTE e l’entità PRENOTAZIONE è di tipo 1:N
La relazione tra PRESTAZIONE e PRENOTAZIONE è anch’essa di tipo 1:N
Per la creazione dello schema logico della base di dati è necessario svolgere le seguenti due fasi:
a. traduzione del modello concettuale in modello relazionale preliminare
b. applicazione delle tre forme normali per verificare se lo schema preliminare può essere
ulteriormente ottimizzato
Di seguito abbiamo lo schema logico relazionale:
Di seguito riportiamo il codice SQL interpretato da un RDBMS per la creazione del modello sopra
descritto:
CREATE TABLE Medico
(IdMedico integer,
Cognome char(30) not null,
Nome char(30) not null,
Specializzazione char(20),
Via char(20),
NumCivico smallint,
Cap integer,
Comune char(20),
Telefono char(15),
Email char(30),
Primary Key (IdMedico));
CREATE TABLE Paziente
(IdPaziente integer,
Cognome char(30) not null,
Nome char(30) not null,
Ntessera char(20),
Via char(20),
NumCivico smallint,
Cap integer,
Comune char(20),
Telefono char(15),
Email char(30),
Primary Key (IdPaziente));
CREATE TABLE Prestazione
(IdPrestazione integer,
Descrizione char(30) not null,
DurataMedia char(30) not null,
Costo decimal(4,2) not null,
Primary Key (IdPrestazione));
CREATE TABLE Visita
(IdVisita integer,
IdMedico integre not null,
IdPaziente integre not null,
IdPrestazione integre not null,
DataVisita date not null,
Ora time not null,
Effettuata boolean,
Primary Key (IdVisita),
Foreign key (IdMedico) references Medico(IdMedico),
Foreign key (IdPaziente) references Paziente(IdPaziente),
Foreign key (IdPrestazione) references Prestazione(IdPrestazione));