APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE...

11
APPUNTI INFORMATICA MEDICA DATO rappresentazione originaria di un evento o di un fenomeno effettuata attraverso simboli legati ad un supporto BASE DI DATI collezione di dati utilizzati per rappresentare le informazioni di interesse per un sistema informativo. MODELLO DI DATI insieme di concetti utilizzati per organizzare dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore. I dati vengono organizzati in sistemi di record a struttura fissa (tabella). SCHEMA parte sostanzialmente invariante nel tempo, costituita dalle caratteristiche dei dati; ISTANZA parte variabile DBMS = DATA BASE MANAGEMENT SYSTEM: consente creazione di base dati, manipolazione/condivisione dei dati. Tre livelli di astrazione per gli schemi di un DBMS: - Schema logico: costituisce una descrizione dell’intera base di dati per mezzo del modello logico adottato dal DBMS - Schema interno: rappresentaz schema logico per mezzo di strutture fisiche di memorizzazione (aspetti tecnologici) - Schema esterno: costituisce la descrizione di una porzione della base di dati di interesse, per mezzo del modello logico (ad esempio schema esterno relativo ad un utente, views, o tramite autorizzazioni di accesso) L’architettura a livelli garantisce: Indipendenza fisica: capacità di astrarre completamente dai meccanismi di gestione dei dati Indipendenza logica: capacità di offrire una visione dei dati differente ad utenti differenti (schema esterni diversi) VANTAGGI DBMS: - considerare i dati come una risorsa comune - La base di dati fornisce un modello unificato e preciso della parte del mondo reale di interesse - E’ possibile un controllo centralizzato dei dati (standardizzazione, economie di scala) - La condivisione permette di ridurre ridondanze e inconsistenze - L’indipendenza dei dati favorisce lo sviluppo di applicazioni flessibili SVANTAGGI DBMS: - prodotti costosi, complessi e diversi dai comuni strumenti informatici - forniscono una serie di servizi che sono necessariamente associati ad un costo PROGETTAZIONE DI BASI DI DATI 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il modello concettuale permette di descrivere l’organizzazione dei dati ad un livello alto di astrazione, senza tenere conto degli aspetti implementativi 2. PROGETTAZIONE LOGICA: permette di descrivere i dati secondo una rappresentazione ancora indipendente dai dettagli fisici, ma più vicina a quella che sarà la fase di implementazione 3. PROGETTAZIONE FISICA Lo schema logico viene completato con la specifica dei parametri fisici (organizzazione dei file e degli indici).

Transcript of APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE...

Page 1: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

APPUNTI INFORMATICA MEDICA DATO rappresentazione originaria di un evento o di un fenomeno effettuata attraverso simboli legati ad un supporto

BASE DI DATI collezione di dati utilizzati per rappresentare le informazioni di interesse per un sistema informativo.

MODELLO DI DATI insieme di concetti utilizzati per organizzare dati di interesse e descriverne la struttura in modo che

essa risulti comprensibile ad un elaboratore. I dati vengono organizzati in sistemi di record a struttura fissa (tabella).

SCHEMA parte sostanzialmente invariante nel tempo, costituita dalle caratteristiche dei dati; ISTANZA parte variabile

DBMS = DATA BASE MANAGEMENT SYSTEM: consente creazione di base dati, manipolazione/condivisione dei dati.

Tre livelli di astrazione per gli schemi di un DBMS:

- Schema logico: costituisce una descrizione dell’intera base di dati per mezzo del modello logico adottato dal DBMS

- Schema interno: rappresentaz schema logico per mezzo di strutture fisiche di memorizzazione (aspetti tecnologici)

- Schema esterno: costituisce la descrizione di una porzione della base di dati di interesse, per mezzo del modello

logico

(ad esempio schema esterno relativo ad un utente, views, o tramite autorizzazioni di accesso)

L’architettura a livelli garantisce:

Indipendenza fisica: capacità di astrarre completamente dai meccanismi di gestione dei dati

Indipendenza logica: capacità di offrire una visione dei dati differente ad utenti differenti (schema esterni diversi)

VANTAGGI DBMS:

- considerare i dati come una risorsa comune

- La base di dati fornisce un modello unificato e preciso della parte del mondo reale di interesse

- E’ possibile un controllo centralizzato dei dati (standardizzazione, economie di scala)

- La condivisione permette di ridurre ridondanze e inconsistenze

- L’indipendenza dei dati favorisce lo sviluppo di applicazioni flessibili

SVANTAGGI DBMS:

- prodotti costosi, complessi e diversi dai comuni strumenti informatici

- forniscono una serie di servizi che sono necessariamente associati ad un costo

PROGETTAZIONE DI BASI DI DATI

1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il modello

concettuale permette di descrivere l’organizzazione dei dati ad un livello alto di astrazione, senza tenere conto degli

aspetti implementativi

2. PROGETTAZIONE LOGICA: permette di descrivere i dati secondo una rappresentazione ancora indipendente dai

dettagli fisici, ma più vicina a quella che sarà la fase di implementazione

3. PROGETTAZIONE FISICA Lo schema logico viene completato con la specifica dei parametri fisici (organizzazione dei

file e degli indici).

Page 2: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

PROGETTAZIONE CONCETTUALE IL MODELLO ENTITÀ-RELAZIONE (P. CHEN, 1977) utilizzato per la progettazione concettuale di basi dati

- descrivere i dati coinvolti in una organizzazione del mondo reale in termini di oggetti e delle loro relazioni. Ha una

rappresentazione grafica (Diagrammi E/R)

SCOPO: schematizza la realtà in termini di Entità e di Relazioni fra di esse. Esso è poi tradotto in uno schema logico di

un modello logico dei dati, ad esempio quello relazionale, che al momento è il più diffuso.

ENTITA’ (rettangolo); Rappresenta

classi di oggetti che hanno proprietà

comuni ed esistenza autonoma ai fini

dell’applicazione di interesse (classi di

oggetti fisici o astratti)

ATTRIBUTO: proprietà che caratterizza

l’entità. Semplice o composto.

OCCORRENZA/ISTANZA di un’entità è

un oggetto della classe (m1, m2, m3)

CARDINALITA’ DELL’ATTRIBUTO

(min,max): da aggiungere in ogni relaz

IDENTIFICATORE DI UN’ENTITÀ (O CHIAVE) Attributo o insieme di

attributi che ci permette di distinguere un elemento dall’altro (NON ci

deve essere ambiguità!). Se non si riesce a trovare una combinazione ->

aggiungo campo (ex. CF).

Un’entità può/deve avere da 1 a più identificatori (pallino pieno)

ENTITA’ DEBOLI: L’identificatore è formato

dall’identificatore dell’entità a cui è collegata e da

eventuali attributi dell’entità debole. La

partecipazione dell’entità debole all’associazione che

la lega all’entità che la identifica deve essere(1,1)

RELAZIONE (O ASSOCIAZIONE) (rombo): mette in relazione

due o più entità (è un legame tra entità). Una relazione

non può avere due elementi uguali

- RELAZIONI RICORSIVE: Coinvolgono un’unica entità (si

ricollega allo stesso rettangolo)

GENERALIZZAZIONI legami logici tra un’entità E, detta genitore, ed uno o più entità E1, E2,…En dette entità figlie.

E è una generalizzazione di E1, E2,…En

E1, E2,…En sono le specializzazioni di E

PROPRIETA’: 1.Ogni occorrenza di un’entità figlia è anche un’occorrenza dell’entità genitore

2.Ogni proprietà dell’entità genitore (attributi, identificatori, relazioni ed altre generalizzazioni) è

anche una proprietà delle entità figlie (proprietà di ereditarietà)

TOTALE se ogni occorrenza dell’entità genitore è un’occorrenza di almeno una delle entità delle foglie (es. PERSONA),

altrimenti è parziale(es. ARTISTA)

ESCLUSIVA se ogni occorrenza dell’entità genitore è al più un’occorrenza di una delle entità figlie (es. PERSONA),

altrimenti è sovrapposta(es. ARTISTA)

Page 3: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

MODELLO RELAZIONALE M.R. SI BASA SU: Relazione: concetto matematico dalla teoria degli insiemi (Potenza del modello) Tabella: concetto semplice

ed intuitivo (Semplicità)

RELAZIONE:

ESEMPIO DI PRODOTTO CARTESIANO

A={1,2,4}

B={a,b}

-> AxB={(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}

Sottoinsieme se ne seleziono una/più coppie

- RELAZIONE può essere vista come sottoinsieme del prodotto Cartesiano su diversi tipi di dato:

Stringa (tipo visita) x Stringa (nome) x data (data)

- E’ necessario assegnare un attributo (UNICO) che descrive il ruolo giocato dall’insieme stesso

Una Relazione su X è un insieme di n-uple(Vettori di relazione) su X. Esempio:

n1[Tipo di esame, Nome, Data] = ECG, Mario Rossi, 03/06/2017

n2[Tipo di esame, Nome, Data] = Ecografia, Anna Verdi, 10/06/2017

n3[Tipo di esame, Nome, Data] = Holter, Matteo Bianchi, 08/06/2017

SCHEMA DI RELAZIONE R(X): costituito da un simbolo detto nome della

relazione R e da un insieme di attributi X={A1,..., An}; a ogni attributo è

associato un dominio. Esempio:

ESAMI (Paziente, Data esame, Codice prestazione)

PRESTAZIONI AMBULATORIALI (Codice, Nome Prestazione, Medico)

Cardiologia = {PAZIENTI(Tessera sanitaria, Cognome, Nome, Data di nascita), ESAMI(Paziente, Data esame,

Codice prestazione),PRESTAZIONI AMBULATORIALI(Codice, Nome Prestazione, Medico) }

ISTANZA DI RELAZIONE (o relazione) su uno schema R(X) è il suo “contenuto”, cioè l’insieme r di n-uple su X.

Ex. istanza di relazione ESAMI {(6351234, 2/12/2016, 01),(7542347, 05/12/2016, 01), (8543257, 07/01/2017, 05)}

- Posso selezionare un contenuto: t[paziente]=6351234; t[codice prestazione]=01

- Se campo non lo conosco/è nullo inserisco NULL

VINCOLI DI INTEGRITÀ

Sono delle proprietà che devono essere soddisfatte dalle istanze. Si classificano in

VINCOLI INTRA-RELAZIONALI: il loro soddisfacimento è definito all’interno di una singola relazione

Esempio: il voto dell’esame non può essere maggiore di 30

VINCOLI INTER-RELAZIONALI: coinvolgono più relazioni

Esempio: nella tabella ESAMI non posso avere un num matricola che non compare nella tabella STUDENTI

>VINCOLI DI CHIAVE insieme di attributi che identificano univocamentele tuple di una relazione.

Si noti che esiste sempre almeno una chiave, al più è costituita da TUTTI gli attributi

NB. Una chiave deve essere tale per tutte le possibili istanze della relazione

CHIAVE PRIMARIA (si indica con la sottolineatura, ad esempio Codice Fiscale); sono vietati valori NULL

>VINCOLO DI INTEGRITÀ REFERENZIALE fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 è

soddisfatto se i valori su X di ciascuna tupla dell’istanza R1 compaiono come valori della chiave primaria dell’istanza R2

- -Se la chiave di R2 è composta da un unico attributo B: il vincolo di integrità referenziale tra l’attributo A di R1

e la relazione R2è soddisfatto se per ogni tuplat1 in R1 esiste una tuplat2 in R2 tale che t1[A] = t2[B]

Se la chiave R2 è composta da più attributi: X = A1, A2, ..An e K = B1, B2, ..Bn, il vincolo è soddisfatto se per

ognituplat1 in r1 esiste una tuplat2 in r2 tale che t1[Ai] = t2[Bi], con i compreso tra 1 e n

Page 4: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

PROGETTAZIONE LOGICA Due fasi principali:

1 RISTRUTTURAZIONE dello schema ER: ottimizzazione dello schema.

2 TRADUZIONE verso lo schema logico: è dipendente dal modello logico scelto (per noi il mod relazionale M.R)

1.1 ANALISI RINDONDANZE: presenza di un dato che può essere ottenuto tramite una serie di operazioni su altri dati.

Esempi:

- attributi derivabili da altri attributi della stessa/altre entità

- attributi derivabili da operazioni di conteggio di occorrenze

- relazioni derivabili dalla composizione di altre relazioni in presenza di cicli

1.2 ELIMINAZIONE DELLE GENERALIZZAZIONI: MR non permette di rappresentare

direttamente la generalizzazione ma solo entità e associazioni. 3 strategie

- Accorpamento entità figlie nella

generalizzazione del genitore

Le entità figlie sono eliminate e gli attributi delle figlie sono aggiunte al padre

Si aggiunge un attributo per distinguere il tipo (quale figlia è, o nessuna)

Gli attributi che provengono da una figlia possono essere nulli

Le relazioni (es. R1) che provengono da una sola figlia hanno cardinalità

minima pari a 0

- Accorpamento del genitore della generalizzazione nelle figlie

L’entità padre è eliminata e gli attributi, le relazioni e l’id del padre sono

aggiunti alle figlie

Ogni relazione definita sul padre genera una relazione distinta per ogni

figlia

- Sostituzione della generalizzazione con associazioni

Si introduce una relazione uno-a-uno fra l’entità padre e ciascuna entità

figlia

Occorre inserire il vincolo che ogni istanza dell’entità padre può

partecipare solo ad una relazione di legame con le entità figlie

Se la generalizzazione è totale ogni istanza dell’entità padre partecipa

necessariamente ad una (sola) delle relazioni di legame con le figlie

1.3 PARTIZIONAMENTO/ACCORPAMENTO DI CONCETTI

(PRIMO CASO) l’entità MEDICO può venire sostituita da due entità, collegate da un’associazione uno a uno che

descrivono rispettivamente i dati anagrafici e quelli relativi alla loro retribuzione

(SECONDO CASO) Eliminazione degli attributi multivalore(es. diversi numeri di telefono)

1.4 SCELTA DEGLI IDENTIFICATORI PRINCIPALI:ogni entità deve avere un identificatore (mai nullo)

Page 5: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

TRADUZIONE VERSO IL MODELLO RELAZIONALE

Per ogni entità, si crea una relazione con

lo stesso nome avente per attributi i

medesimi attributi dell’entità e per

chiave il suo identificatore.

Per gli attributi composti due modi <-

Per ogni associazione, si crea una relazione con lo stesso nome avente per attributi i medesimi attributi dell’associaz e

gli identificatori delle entità coinvolte; tali identificatori formano la chiave della relazione

ASSOCIAZIONE MOLTI A MOLTI Esistono due vincoli di integrità referenzialetra gli

attributi CF_pazientee CF_medicodi PERCORSO

CURA e gli attributi CF di PAZIENTE e MEDICI

ASSOCIAZIONE UNO A MOLTI Nella relazione CONTRATTO, la chiave è costituita solodall’identificatore di MEDICO, perché le cardinalità dell’associazione dicono che ogni

medico ha un contratto con un unico ospedale. Inoltre CONTRATTO e MEDICI hanno la stessa chiave -> posso fonderle in un’unica relazione

->

ASSOCIAZIONE UNO A UNO: le si può fondere in un’unica relazione

- Associazioni uno a uno con entrambe le partecipazioni opzionali (0,1) e (0,1) : Meglio NON avere valori nulli come

attributi -> Piuttosto considerò più entità ma senza valori nulli come attributi

Page 6: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

TABELLE RIASSUNTIVE PER SCHEMATIZZARE LE RELAZIONI

Page 7: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

INTERROGAZIONE DI BASI DI DATI Due operazioni principali:

AGGIORNAMENTO: data un’istanza di base di dati, produce un’altra istanza di base di dati sullo stesso schema.

INTERROGAZIONE: data un’istanza di base di dati, produce una relazione su un dato schema. Due tipi:

DICHIARATIVI specificano le proprietà del risultato ("che cosa")

PROCEDURALI specificano le modalità di generazione del risultato ("come") (es. ALGEBRA RELAZIONALE)

ALGEBRA RELAZIONALE:

linguaggio procedurale basato su concetti di tipo algebrico; E’ costit da un insieme di operatori definiti su relazioni che

producono ancora relazioni come risultati). Tre categorie di operatori:

OPERATORI INSIEMISTICI: UNIONE, INTERSEZIONE E DIFFERENZA

- Relazioni = insiemi di tuple omogenee (= definite sugli stessi attributi); risultato deve essere ancora una relazione

- Operatori applicabili SOLO a coppie di relazioni definite sugli stessi attributi

Unione di due relazioni r1 e r2 (r1 ∪ r2) definito sullo stesso insieme di attributi X è una relazione su X contenente

le tuple che appartengono a r1, a r2 o a entrambe

Intersezione di due relazioni r1 e r2 (r1∩r2) definito sullo stesso insieme di attributi X è una relazione su X

contenente le tuple che appartengono sia a r1 a r2

Differenza di r1(X) e r2(X) indicata con r1-r2 è una relazione su X contenente le tuple che appartengono sia a r1 ma

non a r2

OPERATORI SPECIFICI Pongono dei limiti (es. dovuti al nome degli attributi)

Operatore ρ ridenominazione: Cambia nome degli attributi senza alternarne contenuto relazione (modifico lo schema,

lasciando inalterate le istanze ). SCOPO: adeguare nomi attributi al fine di facilitare Operaz Insiemistiche

SINTASSI RIDENOMINAZIONE:

ρ Sede,Retribuzione <- Ufficio,Stipendio(IMPIEGATI)

ρ Sede,Retribuzione <-Stabilimento,Salario(OPERAI)

SELEZIONE E PROIEZIONE: svolgono op tra loro complementari; definite su un operando e produc una porzione di esso

SELEZIONE(σ): produce un sotto insieme (taglia) delle tuple di una relazione, su tutti gli attributi

σ condizione(relazione) -> produce relazione che soddisfano condizione

PROIEZIONE (π): produce un sottoinsieme che contiene tutte le tuple, ma su un sottoinsieme (taglia) degli attributi

πsottoinsieme = {t[sottoinsieme] | t Єrelazione}

Con i due operatori, non possiamo però collegare informazioni presenti in relazioni diverse, né informazioni in ennuple

diverse di una stessa relazione

Page 8: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

OPERATORE JOIN: collega dati in relazioni diverse, sulla base di valori uguali in attributi con lo stesso nome. Utilizza la

caratteristica fondamentale del modello relazionale cioè quella di essere basato sui valori

JOIN NATURALE Il grado della relazione ottenuta come risultato di un join è uguale o minore della somma dei gradi dei

due operandi (se ci sono attributi omonimi nei due operandi, questi attributi compaiono una volta sola nel risultato)

NB. È molto frequente eseguire join sulla base di valori della chiave di una delle relazioni coinvolte; in molti casi, è

definito, tra gli attributi coinvolti, un vincolo di integrità referenziale

JOIN COMPLETO: ciascuna tupla di ciascuno degli operandi contribuisce ad almeno una tupla del risultato

per ogni tupla t1 di r1 esiste una tupla t in r1 ⋈ r2tale che t[X1] = t1 (analogamente per r2) (es. caso sopra)

Caso limite: ciascuna delle tuple degli operandi è compatibile con tutte le tuple dell’altro -> il risultato contiene

un numero di tuplepari al prodotto delle cardinalità degli operandi

JOIN INCOMPLETO: alcune delle tuple degli operandi non contribuiscono al risultato, perché l’altra relazione

non contiene tuplecon gli stessi valori sull’attributo comune

Caso limite: nessuna delle tupledegli operandi è combinabile ->il risultato del join è una relazione vuota

JOIN ESTERNO per non omettere

informazioni rilevanti

•sx/dx: mantiene tutte le ennuple del

primo/secondo operando,

estendendole con valori nulli, se

necessario

•completo: mantiene tutte le ennuple

di entrambi gli operandi,

estendendole con NULL, se necessario

THETA-JOIN è prodotto cartesiano seguito da una selezione, che è come operare un Join soggetto ad una condizione

Page 9: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

SQL Structured Query Language (SQL) Si tratta di un linguaggio di interrogazione, creazione, gestione e amministrazione del database

DOMINI ELEMENTARI: SQL mette a disposizione alcune famiglie di domini elementari:

1. CARATTERI: il dominio character permette di rappresentare singoli caratteri oppure stringhe. La lunghezza

può essere fissa o variabile (se variabile è necessario indicare la lunghezza massima)

character(20) stringa di 20 caratteri

character varying(20) stringa di lunghezza variabile, al massimo 20 caratteri

varchar(20) stringa di lunghezza variabile, al massimo 20 caratteri

2.TIPI NUMERICI ESATTI: permettono rappresentaz valori esatti, interi o con parte decimale di lungh prefissata

Precisione = numero di cifre significative; Scala = quante cifre dopo la virgola

numeric(Precisione, Scala)

decimal(Precisione, Scala)

integer

smallint

decimal(4) -> numeri compresi tra -9.999 e +9.999

decimal(6,2) -> numeri compresi tra -9999.99 e +9999.99

3.TIPI NUMERICI APPROSSIMATI: valori reali approssimati (rappresentazione in virgola mobile)

float (Precisione) Precisione = numero di cifre per la mantissa

real Precisione fissa

double precision Precisione fissa (doppia rispetto a real)

4.ISTANTI TEMPORALI: domini che permettono di rappresentare gli istanti di tempo

date (ammette i campi yearmonthday)

time(ammette i campi hour, minute, second)

timestamp(ammette tutti i campi dayearasecond)

5.INTERVALLI TEMPORALI

Interval (prima unità di tempo) to(seconda unità di tempo)

6.BOOLEAN: permette di rappresentare singoli valori booleani (True e false)

DEFINIZIONE DI SCHEMA schema di base di dati come collezione di oggetti (tabelle, domini, ..)

create schema NOME_SCHEMA {DefElementoSchema};

DEFINIZIONE DI TABELLE

create tableNomeTabella (NomeAttributoDominio[ValorediDefault][Vincoli],Altri vincoli);

DEFINIZIONE DI NUOVI DOMINI (Analogo a #define)

create domain NomeDominio as TipoDatoElementare [valore di default] [vincolo]

SPECIFICA VALORE DI DEFAULT (per metterlo diverso da NULL) default valoreDefault

VINCOLI INTRARELAZIONALI: Nella definizione si possono specificare vincoli da rispettare per ogni istanza:

notnull: indica che il valore NULL non è ammesso come valore per quell‘attributo

unique: si applica a un attributo o a un insieme di attributi di una tabella e impone che i valori dell‘attributo (o le

ennuple di valori sull‘attributo) siano una (super)chiave.

primarykey: è il più importante tra gli indicatori di una relazione, è usato una sola volta all’interno della relazione. Può

essere definito su un singolo attributo o un insieme di attributi. Non possono assumere valore nullo. [Di fatto è come

unique ma in più impone che non possano assumere valori nulli]

Page 10: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

VINCOLI INTERRELAZIONALI:

sono i vincoli di integrità referenziale. In SQL si definiscono con il vincolo foreign key e/o con il vincolo references

- Questo vincolo crea un legame tra la tabella su cui è definito, detta interna, e un’altra tabella, detta esterna; impone

che per ogni riga della tabella interna il valore dell’attributo specificato nella foreign key, eccetto il caso in cui sia

NULL, sia presente anche nella tabella esterna (spesso l’attributo nella tab esterna è la chiave primaria della tabella)

l’attributo a cui si fa riferimento nella tabella esterna deve essere soggetto ad un vincolo unique

due sintassi differenti:

references quando c’è un solo attributo coinvolto

foreign key+ references quando c’è più di un attributo coinvolto

Nell’esempio se fosse stato solo

Provincia l’attributo, avrei

scritto solo references AUTO

(provincia)

Se non viene rispettato il vincolo di integrità referenziale??? La priorità è sempre sulla tab est (= tabella «master»)

- Se operiamo una modifica ad es. cancellazione/aggiunta di una riga dalla tabella interna -> operaz viene rifiutata

- Se operiamo invece una modifica sulla tabella esterna -> comandi che trattino le violazioni:

Cascade: nuovo valore dell’attributo della tab esviene riportato su tutte le corrispondenti righe della tab interna

set null o set default: all’attributo referente viene assegnato NULL / default al posto del valore modificato sulla tab est

no action: nessuna azione richiesta

Interrogazioni in SQL: SQL esprime le interrogazioni in modo dichiarativo (specifica l’obiettivo e non il modo in cui si ottiene a differenza

dell’algebra relazionale). Diverse strade per esprimere stessa interrogazione

Select Cognome, Nome from PAZIENTI where Reparto=‘A’;

-> risultato una tabella con due colonne contenenti tutti i cognomi e nomi che soddisfano condizione. Se

scrivessi Select * -> seleziona tutti gli attributi dei PAZIENTI

Select P.Cognome, P.Nome from PAZIENTI as P where P.Reparto= ‘A’;

Select TesseraSanitaria as Tessera from PAZIENTI where Reparto=‘A’;

-> Con as posso creare degli alias degli attributi, cioè ridenominar el’attributo nello schema in uscita

-> come risultato ho una tabella con una colonna ridenominataTessera,

Select Cognome, Nome from PAZIENTI where Cognome like ‘A%’

per selezionare i pazienti il cui cognome inizia per “A”; % indica una stringa arbitraria. A_eri% per selezionare

stringhe contenenti A e nel nome eri

esempio:

Page 11: APPUNTI INFORMATICA MEDICA - Andreadd.it · APPUNTI INFORMATICA MEDICA ... 1. PROGETTAZIONE CONCETTUALE: Consiste nel costruire diagrammi nei quali esprimiamo categorie/sezioni. Il

Esempio 2: Dati i due schemi con diversi attributi R1(A,B) e R2(C,D)

Select distinct R1.A, R2.D from R1, R2 where R1.A = R2.C

equivale all’operazione πA,D(R1 ⋈A=CR2)

Esempio 3: vogliamo conoscere tutti i codici dei farmaci che hanno stesso principio attivo ma != produttore

Ridenominandola stessa tabella due volte è come se facessimo un prodotto cartesiano con se stessa in cui

vengono imposte delle condizioni nella clausola where

JOIN ESTERNO definito in SQL come left outer join , right outer join , full outer join

OPERATORI UTILI:

Selectcount * conta il numero di righe

Selectcount (distinctProduttore) conta il numero di farmaci con produttore differente

Sum: somma dei valori dell’espressione

Max/min: valore massimo/minimo

avg: media

Esempio 4: voglio valutare il numero di farmaci che hanno come principio attivo «sul famidico»

HINT: PROGETTAZIONE CONCETTUALE

- Se un concetto ha proprietà significative e/o descrive classi di oggetti con esistenza autonoma, è opportuno

rappresentarlo come un’ entità

- Se un concetto ha struttura semplice e non possiede proprietà rilevanti associate, è opportuno rappresentarlo come

un attributo di un altro concetto a cui si riferisce

- Se sono state individuate due o più entità e nei requisiti compare un concetto che le associa, questo concetto può

essere rappresentato da una relazione

NB. Questo vale solo nel caso in cui il concetto in questione non abbia le caratteristiche delle entità

Ad esempio, il concetto di visita: se venisse rappresentato come relazione tra paziente e medico, non potrei tenere

conto del fatto che verosimilmente il paziente può effettuare diverse visite con lo stesso medico, in date diverse.

- Se uno o più concetti risultano essere casi particolari di un altro, è opportuno rappresentarli per mezzo di una

generalizzazione

HINT PROF :

- All’inizio è meglio scrivere tutti i blocchi possibili, poi scremarli cercando di averne il meno possibile

- Se all’esame chiede entrambi (modello concettuale e modello relazionale):

Se ci sono tante generalizzazioni: scrivere anche funzione senza generalizzazioni e poi farle sparire nel mod.

relazionale, in modo tale che essi siano identici

- Essere il più sintetico possibile

- Tempo per modello relazionale è 30min -> Bisogna essere in grado di risolvere in questo tempo