• Non ci sono risultati.

ESAME di INFORMATICA e ARCHIVIAZIONE

N/A
N/A
Protected

Academic year: 2022

Condividi "ESAME di INFORMATICA e ARCHIVIAZIONE"

Copied!
6
0
0

Testo completo

(1)

UNIVERSIT `A DEGLI STUDI DI UDINE Facolt`a di Medicina e Chirurgia

CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA

ESAME di

INFORMATICA e ARCHIVIAZIONE

28 settembre 2011

1 Progettazione di basi di dati

Si vuole progettare il sistema informativo per la gestione delle informazioni relative alle malattie studiate presso un centro di ricerca.

In particolare, si vuole mantener traccia delle informazioni relative alle malattie studiate: il nome, la descrizione ed eventuali sintomi (anche pi`u di uno).

Per ogni malattia si vuole memorizzare le informazioni relative ai pazienti studiati, con la data della prima manifestazione e l’eventuale terminazione.

Per ognuno si vuole memorizzare il nome, il cognome, il codice fiscale, il numero della tessera sanitaria, la data di nascita, l’indirizzo di residenza (citt`a, via, numero) e uno o pi`u numeri di telefono. Tenere presente che lo stesso paziente potrebbe essere oggetto di studio rispetto a diverse malattie.

Infine, nel centro vengono eseguiti diversi tipi di esami. Per ogni paziente si vuole mantener traccia degli esami effettuati o in programma. Per ciascun esame deve essere memorizzato il tipo di esame, la data e l’ora di esecuzione, la relativa rilevazione (che a seconda del tipo di esame pu`o essere uno valore numerico o una descrizione testuale) e un esito.

Progettazione concettuale Definire uno schema Entit`a-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte. Lo schema dovr`a essere completato con attribu- ti ragionevoli per ciascuna entit`a (indicando i possibili identificatori) e re-

(2)

Figura 1: Schema ER

Progettazione logica Apportare le necessarie modifiche di ristrutturazione allo schema Entit`a-Relazioni prodotto e tradurlo nello schema logico re- lazionale.

Ristrutturazione:

1. attributo composto: l’attributo indirizzo dell’entit`a PAZIENTE ven- gono scomposti nei diversi attributi semplici che li compongono;

2. attributi multivalore: l’attributo telefono dell’entit`a PAZIENTE `e sos- tituito dall’entit`a TELEFONO e dalla relativa relazione che lo lega all’entit`a PAZIENTE e l’attributo sintomo dell’entit`a MALATTIA `e sostituito dall’entit`a SINTOMO e dalla relativa relazione che lo lega all’entit`a MALATTIA;

3. specializzazione dell’entit`a MALATTIA: supponendo che l’accesso ai dati dei risultati degli esami sia fatta indipendentemente dal tipo di esame si `e deciso di mantenere solo il padre della specializzazione, eliminando le figlie.

Lo schema ER ristrutturato `e rappresentato in Figura 2.

(3)

Figura 2: Schema ER ristrutturato

Traduzione:

1. entit`a:

P AZIEN T E(codiceF iscale, nome, cognome, citta, via, numero, tesseraSanitaria, dataN ascita)

nome, cognome, citta, via, numero, tesseraSanitaria, dataNascita NOT NULL

tesseraSanitaria UNIQUE (chiave alternativa a codiceFiscale)

T ELEF ON O(numero)

M ALAT T IA(nome, descrizione) desrizione NOT NULL

SIN T OM O(descrizione)

ESAM E(data, ora, tipoEsame, esito, valore, descrizione) tipoEsame NOT NULL

(4)

fk (paziente) references PAZIENTE(codiceFiscale)

3. relazioni MOLTI-A-MOLTI (nuove tabelle):

relazione ha:

HA(paziente, telef ono)

fk (paziente) references PAZIENTE(codiceFiscale) fk (telefono) references TELEFONO(numero)

relazione presenta:

P RESEN T A(paziente, malattia, primaM anif estazione, terminazione) primaManifestazione NOT NULL

fk (paziente) references PAZIENTE(codiceFiscale) fk (malattia) references MALATTIA(nome)

relazione evidenza:

P RESEN T A(malattia, sintomo)

fk (malattia) references MALATTIA(nome) fk (sintomo) references SINTOMO(descrizione)

(5)

2 Modello relazionale e linguaggio SQL

Si consideri il seguente schema logico relazionale:

OSP EDALE(codice, nome, comune, via, annoF ondazione)

REP ART O(ospedale, nome, nomeP rimario, cognomeP rimario, dataApertura) ST AN ZA(ospadale, reparto, numeroStanza, numeroLetti, televisore)1

Definire preliminarmente le chiavi primarie e i vincoli di chiave esterna sulle relazioni date.

OSP EDALE(codice, nome, comune, via, annoF ondazione)

REP ART O(ospedale, nome, nomeP rimario, cognomeP rimario, dataApertura) fk (ospedale) references OSPEDALE(codice)

ST AN ZA(ospadale, reparto, numeroStanza, numeroLetti, televisore) fk (ospedale, reparto) references REPARTO(ospedale, reparto) Successivamente, supponendo di aver gi`a creato le tabelle OSPEDALE e REPARTO, formulare l’istruzione SQL per la creazione della tabella STAN- ZA con tutti i vincoli necessari.

CREATE TABLE STANZA(

o s p e d a l e CHAR( 5 ) , r e p a r t o VARCHAR( 2 0 ) , numeroStanza INTEGER,

n u m e r o L e t t i INTEGER NOT NULL, t e l e v i s o r e BOOLEAN NOT NULL,

PRIMARY KEY ( o s p e d a l e , r e p a r t o , numeroStanza ) ,

FOREIGN KEY ( o s p e d a l e , r e p a r t o ) REFERENCES REPARTO( o s p e d a l e , r e p a r t o )

)

Infine, formulare opportune interrogazioni nel linguaggio SQL che permet- tano di determinare:

1. il numero totale dei letti dell’ospedale con codice OSP05

SELECT SUM( n u m e r o L e t t i )

FROM REPARTO

WHERE o s p e d a l e= ’ OSP05 ’

2. il nome e il comune degli ospedali in cui c’`e almeno un primario con cognome Rossi

(6)

SELECT OSPEDALE. nome , comune

FROM OSPEDALE JOIN REPARTO ON OSPEDALE. c o d i c e=REPARTO.

o s p e d a l e

WHERE cognomePrimario= ’ R o s s i ’

3. il codice degli ospedali che hanno almeno due reparti aperti dopo il 31/12/2009 (possibilmente senza usare funzioni aggregate)

SELECT DISTINCT R1 . o s p e d a l e FROM REPARTO AS R1

, REPARTO AS R2

WHERE R1 . o s p e d a l e = R2 . o s p e d a l e AND R1 . nome > R2 . nome

AND R1 . d a t a A p e r t u r a > ’ 3 1 / 1 2 / 2 0 0 9 ’ AND R2 . d a t a A p e r t u r a > ’ 3 1 / 1 2 / 2 0 0 9 ’ SELECT o s p e d a l e

FROM REPARTO

WHERE d a t a A p e r t u r a > ’ 3 1 / 1 2 / 2 0 0 9 ’ GROUP BY o s p e d a l e

HAVING COUNT( ∗ ) >1

4. il nome e il cognome dei primari dei reparti che non hanno nessuna stanza con il televisore e il cui ospedale di appartenenza `e stato fondato prima del 1980 (si assuma che non esistano due primari omonimi per nome e cognome)

SELECT nomePrimario , cognomePrimario

FROM OSPEDALE JOIN REPARTO ON c o d i c e=o s p e d a l e WHERE a n n o F o n d a z i o n e < 1980

EXCEPT

SELECT nomePrimario , cognomePrimario

FROM REPARTO JOIN STANZA ON REPARTO. o s p e d a l e=STANZA.

r e p a r t o AND REPARTO. nome=STANZA. r e p a r t o WHERE t e l e v i s i o n e

SELECT nomePrimario , cognomePrimario

FROM OSPEDALE JOIN REPARTO ON c o d i c e=o s p e d a l e WHERE a n n o F o n d a z i o n e < 1980

AND ( o s p e d a l e ,REPARTO. nome ) NOT IN ( SELECT o s p e d a l e , r e p a r t o

FROM STANZA

WHERE t e l e v i s i o n e ) SELECT nomePrimario , cognomePrimario

FROM OSPEDALE JOIN REPARTO ON c o d i c e=o s p e d a l e WHERE a n n o F o n d a z i o n e < 1980

AND NOT EXISTS ( SELECT ∗

FROM STANZA

WHERE o s p e d a l e=REPARTO. o s p e d a l e AND r e p a r t o=REPARTO. nome AND t e l e v i s i o n e )

Riferimenti

Documenti correlati

Fornitura di energia elettrica sul mercato libero per un periodo di 24 mesi, dal 1.4.2020 al 31.3.2022 con opzione fino al 31.3.2023 presso i punti di prelievo alimentati in media

malattia epatica può essere diagno- sticata in seguito al riscontro di altera- zioni delle transaminasi e/o di un de- ficit degli indici di sintesi epatica, ma talvolta

Si vuole anche sapere, indipendentemente dalle prenotazioni, quali attrezzature siano al momento effettivamente presenti in quali sale.. Progettare il diagramma E/R che modelli

In alcuni ECM è preminente il coinvolgimento della sostanza grigia (ceroidolipofuscinosi, sialidosi, sfingolipidosi) con un arresto dello sviluppo intellettivo, deterioramento

[r]

[r]

Per ogni esercizio dare adeguate

[r]