UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME



Documenti analoghi
ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE

Corso di Basi di Dati A.A. 2014/2015

Basi di Dati Corso di Laura in Informatica Umanistica

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

ESAME di INFORMATICA e ARCHIVIAZIONE

Esercitazione di Basi di Dati

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Prova scritta. Giovedì 02 Ottobre Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

Volumi di riferimento

Prova scritta. Mercoledì 23 Luglio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Esame di Basi di Dati, SOLUZIONE APPELLO 12/01/2010

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

Prova scritta. Mercoledì 11 Febbraio Appello di Informatica II - Corso di Laurea in Ottica e Optometria A.A. 2007/2008

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Prova Scritta di Basi di Dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Prova scritta del corso di Basi di dati attive 17 Dicembre Agenzia

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Esercitazione su SQL

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Progettazione concettuale

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

11 - Progettazione Logica

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Le Basi di Dati. Le Basi di Dati

Un DataBase SQL per la Henry Books

Progetto Logos - Documentazione -

CAPITOLO 4 ESERCIZI SU SQL

Data management a.a Il linguaggio SQL

Basi di dati I. Esercitazione proposta

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

CORSO di INFORMATICA e ARCHIVIAZIONE

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

I Sistemi Informativi

Sistemi per la gestione di database: MySQL ( )

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

SQL: definizione schema

MAX, SUM, AVG, COUNT)

Informatica (Basi di Dati)

BASI DI DATI - : I modelli di database

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

Basi di dati 30 settembre 2010 Compito A

Basi di dati. Esercitazione ER. Paolo Papotti. Esercizio giugno 2005

IL DAT A B A S E DI ALGE B R A N D O

marca (1,n) (1,1) nome prezzou prodotto nome responsabile quantità nome datai dataf (0,n) vendite (0,n) (0,n) (0,n) tempo acquisti quantità (0,n)

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

Esercizio sui data base "Gestione conti correnti"

RISOLUZIONE APPELLI DI SISTEMI INFORMATIVI

Definizione di domini

Corso di Laboratorio di Basi di Dati

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

MEZZI CodM Tipo Targa AnnoI Assicurato

Introduzione ai database relazionali

PROGRAMMA DI CLASSE 5AI

Progetto di basi di dati Laboratorio di diagnosi mediche

Appello di BD del Corso di laurea in Informatica del 9/1/2007 Compito e soluzioni

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

DATABASE RELAZIONALI

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Il linguaggio SQL: query innestate

Database 3 affitto veicoli. Testo del quesito

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Esercizi di progettazione E-RE

Introduzione al corso

1 Database universitario 1.1 Elenco tabelle PERSONA (ID, is_studente, is_docente, nome, cognome) STUDENTE (matricola, persona references persona(id))

A.S. 2010/2011 M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Capitolo 13. Interrogare una base di dati

disponibili nel pacchetto software.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Esame dell 8 settembre 2012

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Vincoli di Integrità

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

DATABASE. A cura di Massimiliano Buschi

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Corso sul linguaggio SQL

Basi di dati 9 febbraio 2010 Compito A

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

DATABASE.

VIDES. Mariagrazia Rossi

Esercitazione ER e Algebra Relazionale

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Transcript:

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME 14 maggio 2009 1 Progettazione di basi di dati Si vuole progettare il sistema informativo per la gestione del magazzino di un laboratorio medico che effettua esami. Ogni esame è identificato da un codice numerico, è effettuato in una specifica data e ora, su un particolare paziente e da uno specifico medico. Per i medici e i pazienti si vuole memorizzare il codice fiscale, il nome, il cognome e almeno un riferimento telefonico. Inoltre, per i pazienti si vuole tener traccia anche della data di nascita, del gruppo sanguigno e del fattore Rh, mentre per i medici anche della relativa specializzazione. Si vuole mantener traccia dei diversi materiali e delle relative disponibilità. Ogni materiale ha un codice, che lo identifica univocamente, una descrizione ed è acquistato attraverso un ordine con una data quantità e prezzo. Ogni ordine ha un numero di registrazione interno univoco, una data, un fornitore e può presentare uno o più materiali al suo interno. Per ogni fornitore si vuole memorizzare la partita IVA, la denominazione, l indirizzo, uno o più numeri di telefono e il nome della persona di riferimento. Per poter mantenere aggiornata la disponibilità dei materiali si vuole mantener traccia anche del loro utilizzo. Per ogni esame, si vogliono quindi memorizzare i materiali utilizzati e i relativi quantitativi. Progettazione concettuale Definire uno schema Entità-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte. Lo schema dovrà essere completato con attributi ragionevoli per ciascuna entità (identificando le possibili chiavi) e relazione. Vanno specificati accuratamente i vincoli di cardinalità e partecipazione di ciascuna relazione. 1

Figura 1: Schema ER Progettazione logica Apportare le necessarie modifiche di ristrutturazione allo schema Entità-Relazioni prodotto e tradurlo nello schema logico relazionale. Ristrutturazione: 1. specializzazione: entità PERSONA (dato che si suppone accedere in modo separato ai dati relativi ai pazienti e ai medici si decide eliminare l entità padre e portare tutte le proprietà dell entità padre alle entità figlie, Figura 2) Figura 2: Ristrutturazione di specializzazione dell entità PERSONA 2

2. attributi composti: attributo indirizzo dell entità FORNITORE (Figura 3) 3. attributi multivalore: attributo telefono dell entità FORNITORE (Figura 3) ed attributo telefono dell entità PERSONA (analogo al precedente) Figura 3: Ristrutturazione di attributi composti e multivalore dell entità FORNITORE Traduzione: 1. entità: F ORN IT ORE(partitaIV A, ragionesociale, personarif erimento, via, numero, citta) ragionesociale, personariferimento, via, numero, citta NOT NULL P AZIEN T E(codiceF iscale, nome, cognome, datan ascita, grupposanguigno, Rh) nome, cognome, datanascita, grupposanguigno, Rh NOT NULL M EDICO(codiceF iscale, nome, cognome, specializzazione) nome, cognome, specializzazione NOT NULL ORDIN E(numeroRegistrazione, data) data NOT NULL ESAM E(id, dataora) dataora NOT NULL M AT ERIALE(codice, descrizione) descrizione NOT NULL 3

T ELEF ONO(numero) 1 2. relazioni UNO-A-MOLTI (estensione delle tabelle precedenti): relazione effettuatosu: ESAM E(id, dataora, paziente) fk (paziente) references PAZIENTE(codiceFiscale) paziente NOT NULL relazione effettuatoda: ESAM E(id, dataora, paziente, medico) fk (medico) references MEDICO(codiceFiscale) 3. relazioni MOLTI-A-MOLTI (aggiunta di nuove tabelle): relazione intesta: INT EST A(fornitore, ordine) fk (fornitore) references FORNITORE(codiceFiscale) fk (ordine) references ORDINE(numeroRegistrazione) relazione contiene: CON T IEN E(ordine, materiale, quantita, prezzo) fk (ordine) references ORDINE(numeroRegistrazione) fk (materiale) references MATERIALE(codice) quantita, prezzo NOT NULL relazione utilizza: U T ILIZZA(esame, materiale, quantita) fk (esame) references ESAME(codice) fk (materiale) references MATERIALE(codice) quantita NOT NULL relazioni ha (una per il telefono del fornitore, una del medico, una del paziente): HA F ORNIT ORE(telefono, fornitore) fk (fornitore) references FORNITORE(partitaIVA) fk (telefono) references TELEFONO(numero) 2 Modello relazionale e linguaggio SQL Si consideri il seguente schema logico relazionale: 1 Suppongo di usare la stessa tabella per raccogliere tutti i numeri di telefono 4

P AZIEN T E(codiceF iscale, nome, cognome, datan ascita, grupposanguigno, Rh) AN ALISI(id, paziente, data, dataritiro, responsabile) ESAM I(analisi, esame, valore) T IP O ESAM E(denominazione, valorem inimo, valorem assimo) Tenendo presente che un analisi può prevedere diversi esami, definire preliminarmente le chiavi primarie e le eventuali chiavi esterne delle relazioni date. P AZIEN T E(codiceF iscale, nome, cognome, datan ascita, grupposanguigno, Rh) AN ALISI(id, paziente, data, dataritiro, responsabile) fk (paziente) references PAZIENTE(codiceFiscale) ESAM I(analisi, esame, valore) fk (analisi) references ANALISI(id) fk (esame) references TIPO ESAME(denominazione) T IP O ESAM E(denominazione, valorem inimo, valorem assimo) Successivamente, supponendo di aver già creato la tabella PAZIENTE, formulare l istruzione SQL per la creazione della tabella ANALISI (con tutti i vincoli necessari). CREATE TABLE ANALISI( id NUMERIC( 5, 0 ) PRIMARY KEY, p a z i e n t e CHAR(16) NOT NULL, data DATE NOT NULL, d a t a R i t i r o DATE, r e s p o n s a b i l e CHAR(16), FOREIGN KEY ( p a z i e n t e ) REFERENCES PAZIENTE( c o d i c e F i s c a l e ) ) Formulare opportune interrogazioni nel linguaggio SQL che permettano di determianre: 1. i tipi di esame (denominazione) per cui è indicato un valore minimo e non un valore massimo SELECT FROM TIPO ESAME WHERE TIPO ESAME. valoreminimo IS NOT NULL AND TIPO ESAME. valoremassimo IS NULL 2. l identificativo e la data delle analisi effettuati da Mario Rossi ordinandoli in ordine crescente per data 5

SELECT ANALISI. id, ANALISI. data FROM ANALISI JOIN MEDICO ON ANALISI. p a z i e n t e=paziente. c o d i c e F i s c a l e WHERE PAZIENTE. nome= Mario AND PAZIENTE. cognome= Rossi ORDER BY ANALISI. data 3. il codice fiscale dei pazienti a cui è stato rilevato un valore eccessivo relativo all esame emoglobina SELECT ANALISI. p a z i e n t e FROM ANALISI JOIN ESAMI ON ANALISI. id=esami. a n a l i s i JOIN TIPO ESAME ON ESAMI. esame= WHERE = emoglobina AND TIPO ESAME. valoremassimo<esame. v a l o r e 4. i medici che sono stati responsabili di almeno due analisi relativi ad uno stesso paziente SELECT DISTINCT E1. r e s p o n s a b i l e FROM ANALISI E1, ANALISI E2 WHERE E1. r e s p o n s a b i l e=e1. r e s p o n s a b i l e AND E1. p a z i e n t e=e2. p a z i e n t e AND E1. id<>e2. id 5. il numero di esami che presentano valori errati (minori o maggiori dei valori limite) per ogni analisi SELECT ESAMI. a n a l i s i, COUNT( ) FROM ESAMI JOIN TIPO ESAME ON ESAMI. esame=tipo ESAME. denominazione WHERE TIPO ESAME. valoremassimo<esame. v a l o r e OR TIPO ESAME. valoreminimo>esame. v a l o r e GROUP BY ESAMI. a n a l i s i 6. i pazienti (codice fiscale, nome e cognome) a cui non sono mai stati rilevati valori errati (minori o maggiori dei valori limite) SELECT c o d i c e F i s c a l e, nome, cognome FROM PAZIENTE WHERE c o d i c e F i s c a l e NOT IN ( SELECT DISTINCT ESAMI. p a z i e n t e FROM ESAMI JOIN TIPO ESAME ON ESAMI. esame= WHERE TIPO ESAME. valoremassimo<esame. v a l o r e OR TIPO ESAME. valoreminimo>esame. v a l o r e ) 6

SELECT c o d i c e F i s c a l e, nome, cognome FROM PAZIENTE WHERE NOT EXISTS ( SELECT FROM ESAMI JOIN TIPO ESAME ON ESAMI. esame= WHERE (TIPO ESAME. valoremassimo<esame. v a l o r e OR TIPO ESAME. valoreminimo>esame. v a l o r e ) AND ESAMI. p a z i e n t e=paziente. c o d i c e F i s c a l e ) SELECT c o d i c e F i s c a l e, nome, cognome FROM PAZIENTE EXCEPT SELECT PAZIENTE. c o d i c e F i s c a l e, PAZIENTE. nome, PAZIENTE. cognome FROM PAZIENTE JOIN ANALISI ON PAZIENTE. c o d i c e F i s c a l e =ANALISI. p a z i e n t e JOIN ESAMI ON ANALISI. id=esami. a n a l i s i JOIN TIPO ESAME ON ESAMI. esame= WHERE TIPO ESAME. valoremassimo<esame. v a l o r e OR TIPO ESAME. valoreminimo>esame. v a l o r e 7