Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
SISTEMI INFORMATIVI E<br />
<strong>TELEMEDICINA</strong><br />
2. Modelli dei dati e database<br />
relazionali<br />
Prof. Mauro Giacomini
Sommario<br />
• Schemi e modelli<br />
• Modelli concettuali<br />
• Modelli logici<br />
• Modelli fisici<br />
• Il modello Entità-Relazione<br />
• Nozioni ed operazioni di algebra relazionale<br />
• Trasformazione di uno schema concettuale in uno<br />
relazionale<br />
• Forme normali<br />
• Indici<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Schemi e modelli<br />
Prima di tutto viene l’analisi della realtà di interesse <br />
obiettivo: definire la struttura del database. Processo con<br />
tre passi:<br />
realtà di interesse schema concettuale<br />
schema concettuale schema logico<br />
schema logico schema fisico<br />
Schema: rappresentazione formale della realtà. I processi<br />
per passare da uno schema all’altro sono i modelli.<br />
Modello: un insieme di regole e convenzioni che portano<br />
alla definizione di uno schema.<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modelli concettuali (semantici)<br />
• Operazione delicatissima<br />
• Influenza tutti passi successivi<br />
• Rappresenta la porzione di mondo da<br />
modellare come vieni vista dall’analista<br />
• Totalmente indipendente da qualsiasi<br />
piattaforma HD/SW e dal DBMS<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modelli logici<br />
• Consentono di trasformare uno schema<br />
concettuale in uno logico<br />
• Schema logico: collezione di strutture<br />
che rappresentano il database<br />
• Indipendente dall’HD/SW<br />
• Fortemente dipendente dal DMBS<br />
• Ogni DBMS è specializzato per un<br />
particolare modello logico<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modello relazionale<br />
• Modello logico più diffuso<br />
• Schema = collezione di tabelle e di<br />
relazioni tra tabelle<br />
• Vari DBMS relazionali: Oracle, SQL<br />
Server, Informix Sybase, DB2, MySQL,<br />
MS Access<br />
• Analizzato in seguito<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Altri modelli (1)<br />
• Modello gerarchico: schema ad albero,<br />
relazione unica quella di padre-figlio<br />
• Modello reticolare: schema a forma di reticolo<br />
dove ogni nodo può avere più padri<br />
• Modello orientato agli oggetti: schema<br />
composto da: classi, attributi, associazioni e<br />
aggregazioni con altre classi. DBMS orientati<br />
agli oggetti (Versant, ObjectStore, Poet)<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Altri modelli (2)<br />
• NoSQL Database<br />
• Memorizzazione in strutture diverse dalle<br />
tabelle<br />
• Obiettivi: semplicità nel disegno, scalabilità<br />
orizzontale, controllo fine sulla disponibilità<br />
• Strutture utilizzate: alberi, grafi, chiavevalore<br />
• Applicazioni: big data, real time<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modelli fisici<br />
• Consentono di trasformare uno schema<br />
logico in uno fisico.<br />
• Schema fisico: descrizione del modo in<br />
cui lo schema logico sarà memorizzato<br />
su una particolare piattaforma HW/SW<br />
• Trasformazione automatica da parte del<br />
DBMS che interagisce con il file system<br />
• Ridotto livello di astrazione<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modello Entità-Relazione<br />
• Definito da P.P. Chen nel 1976<br />
• Entità: oggetti estrapolati dalla realtà con<br />
caratteristiche proprie rappresentate mediante<br />
attributi<br />
• Definizione di attributi: punto delicato dell’analisi<br />
concettuale<br />
• Importanza degli attributi dipendente dal contesto<br />
• Lettura chiara e intuitiva<br />
• Trasformazione diagramma E-R / schema relazionale<br />
pressoché immediato<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Entità<br />
• Insieme di oggetti della realtà di interesse<br />
• Individuazione delle entità: prima attività della<br />
progettazione concettuale<br />
• Proprietà rappresentate come attributi<br />
• Dati di un’entità sono elementi/occorrenze della base<br />
di dati<br />
• Notazione: rettangolo con il nome della entità<br />
inscritto in esso<br />
• Gli attributi possono essere rappresentati con pallini<br />
esterni al rettangolo o in una diversa sezione del<br />
rettangolo che descrive l’entità<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Caratteristica<br />
• Tipo di entità che assume il proprio<br />
significato solo se messa in<br />
corrispondenza con altre entità.<br />
• Rappresentazione: rettangolo con bordo<br />
laterale doppio e nome inscritto<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazione – cardinalità<br />
• Legame fra entità<br />
• Caratteristica principale la cardinalità<br />
• Modello E-R fondamentale nella<br />
documentazione del SW fatto di due parti<br />
• Testo che descrive nel dettaglio le entità con i loro<br />
attributi<br />
• Diagramma (ERD) che evidenzia le relazioni fra le<br />
entità con diverse simbologie<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Esempio di E-R<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Tipi fondamentali di relazioni<br />
• 1:1 due entità E e F sono in relazione 1:1 se e solo<br />
se ad ogni elemento di E può corrispondere un solo<br />
elemento di F e viceversa<br />
• 1:N due entità E e F sono in relazione 1:N se e solo<br />
se ad ogni elemento di E possono corrispondere più<br />
elementi di F, ma ad ogni elemento di F corrisponde un<br />
solo elemento di E<br />
• N:N (molti a molti) due entità E e F sono in relazione<br />
N:N se e solo se ad ogni elemento di E possono<br />
corrispondere più elementi di F, e ad ogni elemento di F<br />
possono corrispondere più elementi di E<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Cardinalità<br />
• Numero o coppia di numeri che nei diagrammi ER<br />
sono posti vicino alla congiunzione della relazione con<br />
la entità<br />
• Possono essere più precise di quelle viste nella slide<br />
precedente indicando anche a volte il numero esatto<br />
• Con 0 si indica l’opzionalità in una relazione, 1 l’unità,<br />
N una generica molteplicità, altri numeri costanti e<br />
noti indicano un vincolo ben preciso su questa<br />
relazione. Alcune volte è usato anche il simbolo di ∞<br />
• Cardinalità ed opzionalità dipendono dal contesto<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazioni gerarchiche<br />
• Specificazioni di entità in senso<br />
gerarchico (ISA)<br />
• Meccanismi di ereditarietà<br />
• Esistono anche relazioni ricorsive<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Modello relazionale<br />
• Introdotto da Edward Codd nel 1970<br />
• Basato sul formalismo dell’algebra<br />
relazionale<br />
• Ma dotato di ottime implementazioni<br />
pratiche e di linguaggi di interrogazione<br />
standardizzati (SQL)<br />
• Ampiamente diffuso nell’ambito dei<br />
DBMS<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazione algebrica<br />
• Siano A 1 , A 2 , …., A n insiemi. Il prodotto cartesiano tra questi insiemi,<br />
indicato con A 1 x A 2 x ….x A n è definito come l’insieme delle n-ple (a 1 , a 2 ,<br />
...., a n ) dove a 1 A 1 , a 2 A 2 , …., a n A n .<br />
• Una relazione su A 1 , A 2 , …., A n è un sottoinsieme di A 1 x A 2 x ….x A n<br />
• Un insieme vuoto è una relazione<br />
• Gli elementi A 1 , A 2 , …., A n sono domini, i nomi di questi elementi sono<br />
gli attributi e n è il grado della relazione<br />
• Un insieme di occorrenze di un’entità è una relazione algebrica<br />
• Le relazioni algebriche possono essere rappresentate in forma tabellare<br />
• Attributi: colonne della tabella<br />
• Occorrenze: righe della tabella<br />
• In una tabella non ci possono essere righe uguali (le righe sono<br />
elementi di un insieme che non possono essere uguali)<br />
• L’ordine delle righe non ha importanza (l’insieme è per definizione non<br />
ordinato)<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Chiave primaria<br />
• In ogni tabella un insieme di attributi (colonne)<br />
identifica univocamente ogni riga<br />
• Si dice chiave candidata di una relazione R un<br />
insieme non vuoto di attributi K di R tali che:<br />
• È possibile individuare univocamente un’intera riga in base ai<br />
valori degli attributi di k<br />
• La proprietà di cui sopra non è più valida per qualsiasi<br />
sottoinsieme proprio di K<br />
• Dalla definizione di tabella, una candidata chiave<br />
esiste sempre (al massimo considerando tutti gli<br />
attributi)<br />
• Chiave primaria: scelta fra i candidati chiave<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Dal concettuale al logico<br />
• Facili passaggi conducono dal<br />
diagramma E-R (concettuale) allo<br />
schema relazionale<br />
• Le entità del modello E-R si traducono<br />
tutte (tranne rari casi) a tabelle<br />
• Ci sono specifici metodi per elaborare le<br />
diverse relazioni in uno schema logico<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazione 1:1<br />
• Introduzione in una delle due tabelle la<br />
chiave dell’altra, o anche in tutte e due.<br />
• Attributo chiave esterna (simbolo FK)<br />
che deriva dalla chiave primaria (PK)<br />
dell’altra tabella<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazione 1:N<br />
• Se T e S sono in relazione 1:N il legame<br />
viene creato introducendo tra gli<br />
attributi di S la chiave primaria di T<br />
• Non è possibile il contrario<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Relazione N:N<br />
• Non sono sufficienti le chiavi esterne<br />
• Necessario introdurre una nuova tabella<br />
• Questa nuova tabella I ha come<br />
attributi le chiavi primarie delle tabelle T<br />
ed S (costitutive della relazione)<br />
• Questa nuova tabella può contenere<br />
altri attributi propri della relazione e che<br />
caratterizzano la relazione<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Operazioni dell’algebra<br />
relazionale (1)<br />
• Prodotto: P = T x S, P è ottenuta<br />
concatenando ogni riga di T con tutte quelle<br />
di S<br />
• Proiezione: Data una tabella T e un insieme<br />
di attributi A, la proiezione di T mediante A<br />
restituisce una tabella S con tutte le righe di<br />
T ma con le sole colonne identificate dagli<br />
attributi presenti in A<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Operazioni dell’algebra<br />
relazionale (2)<br />
• Selezione: Data una Tabella T e una<br />
espressione logica E, definita sugli attributi di<br />
T, la selezione di T mediante E restituisce una<br />
tabella S con tutte le colonne di T, ma con le<br />
sole righe di T che soddisfano E<br />
• Ridenominazione: Data una tabella T e un<br />
insieme ordinato di attributi A, la<br />
ridenominazione di T mediante A restituisce<br />
una tabella S con gli stessi attributi di T ma<br />
ridenominati in base agli attributi presenti in<br />
A<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Operazioni dell’algebra<br />
relazionale (3)<br />
• Unione: date due tabelle T ed S, con gli<br />
stessi attributi, l’unione tra T ed S è data<br />
dalla tabella U contenente tutte le righe di T e<br />
di S<br />
• Differenza: date due tabelle T ed S, con gli<br />
stessi attributi, la differenza tra T ed S<br />
restituisce una tabella U contenente tutte e<br />
righe di T non presenti in S<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Operatori derivati (1)<br />
• Join (giunzione): Date due tabelle T ed S con<br />
un dominio comune, ed una condizione A t op<br />
A s , dove A t e A s sono due attributi sul dominio<br />
comune e op un operatore di confronto,<br />
Join(T,S) è una tabella R costruita a partire<br />
da T e S secondo il seguente procedimento<br />
• P1 = T x S<br />
• P2 = Selezione su P1 delle righe per cui (A t op A s )<br />
è vero<br />
• R = P2 con ridenominazione degli attributi comuni<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Operatori derivati (2)<br />
• Natural Join (Giunzione Naturale), se<br />
in un’operazione di Join l’operatore di<br />
confronto è ‘=‘ allora si parla di Natural<br />
Join<br />
• Intersezione: date due tabelle T ed S<br />
con gli stessi attributi, l’intersezione è<br />
una tabella R contenente tutte le righe<br />
comuni a T e a S<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Forme normali<br />
• Normalizzazione: processo matematico<br />
con lo scopo di raffinare lo schema<br />
logico e/o eliminare errori<br />
nell’organizzazione dei dati<br />
• Ci sono fino a 5 procedimenti di<br />
normalizzazione (ma ci si ferma di solito<br />
alla 3° forma normale)<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Prima forma normale<br />
Una relazione è in prima forma normale se non<br />
contiene gruppi ripetitivi, ovvero quando la struttura<br />
è come una raccolta di tuple e attributi. Ciò significa<br />
che ogni relazione non può contenere né ulteriori<br />
relazioni al suo interno, né attributi con più valori<br />
contemporanei (condizione di atomicità degli<br />
attributi). La prima forma normale non permette di<br />
avere un set di valori, una tupla di valori o loro<br />
combinazione, come valore di un attributo di una<br />
singola tupla.<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Dipendenze Funzionali<br />
Le forme normali successive alla prima sono definite a partire dal concetto<br />
di dipendenza funzionale. Data una relazione in 1FN e due sottoinsiemi A e<br />
B dei suoi attributi, si dice che B è funzionalmente dipendente da A (AB)<br />
se per un qualsiasi stato della base di dati ciascun valore di A è associato<br />
ad uno (e solo uno) valore di B. Si ha una dipendenza piena quando la<br />
dipendenza AB è tale per cui non esiste alcun sottoinsieme proprio di A<br />
per il quale valga ancora la dipendenza funzionale con B. Si ha invece<br />
dipendenza parziale, quando la dipendenza è tra un sottoinsieme di A e B.<br />
Si ha dipendenza transitiva tra due attributi (o gruppi di attributi) A e B<br />
distinti, quando esiste un attributo (o un gruppo) C, distinto da A e B, tale<br />
per cui B dipende da C e C dipende da A. Si deduce che ciascun attributo<br />
di una relazione dipende funzionalmente dai candidati chiave della<br />
relazione.<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
II e III Forma Normale<br />
Una relazione è in seconda forma normale se è in 1FN e se<br />
tutti gli attributi non primi (ossia non facenti parte di alcuna<br />
chiave della relazione) dipendono da ogni chiave. La<br />
traduzione in 2NF della relazione viene effettuata<br />
scomponendo la relazione di partenza in più relazioni.<br />
Una relazione è in Terza forma normale se è in 2NF e se ogni<br />
suo attributo dipende in modo diretto e non transitivo da<br />
ogni chiave della relazione.<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Denormalizzazione<br />
• È buona norma lavorare con strutture normalizzate (almeno fino<br />
alla terza forma normale)<br />
• Casi in cui può essere necessario denormalizzare un po’ i dati:<br />
• Quando aggiungendo un attributo ridondante nelle tabelle, è<br />
possibile limitare il numero delle tabelle da visitare per ottenere<br />
particolari risultati<br />
• Quando si aggiunge un attributo che contiene un valore calcolato e<br />
quindi si velocizza l’elaborazione di dati usati di frequente<br />
• Nel caso di attributi denormalizzati sarà l’applicazione a farsi<br />
carico della consistenza degli stessi che non può essere affidata<br />
ai meccanismi automatici del DBMS<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14
Indici<br />
• Indice = sequenza di record con almeno due campi:<br />
chiave e indirizzo<br />
• Chiave: contiene i valori della tabella su cui è stato<br />
creato l’indice<br />
• Indirizzo: puntatore all’occorrenza<br />
• Elementi efficienti nella ricerca perché:<br />
• sono più piccoli e semplici di quelli della tabella<br />
• Sono organizzati in particolari strutture che consentono di<br />
effettuare ricerche con prestazioni elevate<br />
• Velocizzano le ricerche ma rallentano gli inserimenti e<br />
le modifiche<br />
Inf. Med. - 2. Modelli dei dati -<br />
A.A. 2013-14