Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
Medicina, Tecnologia e dati
Informazioni e dati:
E‘ necessario interpretare i dati, ottenere delle
informazioni per poter pilotare strumenti
tecnologici
2
Sistema informativo: motivazioni
Ogni attività (individuale o organizzazioni di grandi dimensioni) ha bisogno della disponibilità di informazioni
In una prima fase si individuano le informazioni utili, che vongono catalogate, classificate ed eventualmente accorpate (e.g. pazienti, patologie, reparti…)
3
Sistema informativo
Componente (sottosistema) di una organizzazione (es. L‘ospedale) che gestisce (acquisisce, elabora, conserva, produce) le informazioni di interesse (per esempio le cartelle dei pazienti)
4
Sistema informativo, commenti
• Ogni Sistema informativo è di supporto ad altri sottosistemi, e va quindi studiato nel contesto in cui è inserito
• Esempi di sistemi informativi di supporto a:• Gestione dei pazienti (nome, cognome,
degenza…)• Gestione delle risorse (camere, posti letto..)• Gestione del personale (medici, infermieri…• (new) Gestione delle cartelle cliniche
5
Sistemi informativi e automazione
• Il concetto di “sistema informativo” è indipendente da qualsiasi automatizzazione: • esistono organizzazioni la cui ragion
d’essere è la gestione di informazioni (e.g. servizi anagrafici e banche) e che operano da secoli
6
Sistema informativo vs Informatico
• I sistemi informativi possono essere automatizzati oppure no• E.g. archivi cartacei o archivi elettronici
• Noi siamo prinicipalmente interessati alla loro automazione
7
Sistema Informatico
• Porzione automatizzata del sistema informativo:
la parte del sistema informativo che gestisce informazioni con tecnologia informatica
8
Gestione delle informazioni
• Raccolta, acquisizione
• Archiviazione, conservazione
• Elaborazione, trasformazione, produzione
• Distribuzione, comunicazione, scambio
9
Informazioni e dati
• Nei sistemi informatici (e non solo), le informazioni vengono rappresentate in modo essenziale attraverso i dati
10
Informazioni e dati
(def. dal Vocabolario della lingua italiana)
informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.
dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbono essere elaborati
11
Dati e informazioni
• Un esempio: Dr Rossi 328275456 due dati senza molto significato
• Se viene fornito in risposta alla domanda “A chi mi devo rivolgere per un RX? Qual è il suo numero di telefono?”, allora i dati forniscono informazione
12
Base di dati
• (definizione generica) collezione di dati utilizzati per rappresentare le informazioni di interesse per un sistema informativo
• (definizione più tecnica) collezione di dati gestita da un Sistema di gestione di basi di dati (SGBD)
13
Sistema di gestione di basi di dati (SGBD)DataBase Management System (DBMS)
• Sistema che gestisce collezioni di dati: • grandi (large)• persistenti (persistent)• condivise (shared)
garantendo • privatezza • affidabilità • Efficienza (la gestione dei dati ottimale al costo minimo) • Efficacia (rendere produttivo l‘uso delle informazioni)
Base di Dati: collezione di dati gestita da un
Sistema di gestione di basi di dati (SGBD)
14
Le basi di dati sono ... grandi
• dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati
• il limite deve essere solo quello fisico dei dispositivi
15
Le basi di dati sono ... persistenti
• hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano. Sono archivi permanenti
•Se non correttamente gestiti e memorizzati, vanno perduti
16
Le basi di dati sono ... condivise
• Esempio: • Ogni reparto può essere diviso in sottoreparti con
diverse attività • Ciascun reparto ha un (sotto) sistema informativo
(un database) che gestisce informazioni proprie del reparto ed informazioni comuni ad altri reparti (esempio: recapiti telefonici)
• Porzioni di informazioni possono essere condivise e usate da diversi reparti (risultati da esami clinici)
17
DBMS
• Prodotti software (complessi) disponibili sul mercato; esempi:• Access• DB2• Oracle• Informix• Sybase• SQLServer
18
DBMS dedicati
• Prodotti in cui una interfaccia grafica user-friendly per la classe medica, è installata su un database per la gestione di dati medici e clinici.
• Esempio:HealthWare software per la gestione di
cartelle
19
Un esempio di gestione automatica delle informazioni paziente
• Un esempio commerciale: HealthWare (http://www.healthware.com)
• Database per la gestione delle cartellle cliniche per reparto e gestione delle
• Patologie• Diagnosi• Analisi (biochimiche e radiologiche)
20
21
22
23
24
25
Le basi di dati sono condivise
• Una base di dati e' una risorsa integrata, condivisa fra applicazioni
• conseguenze• Attivita' diverse su dati condivisi:
• meccanismi di autorizzazione
• Accessi di più utenti ai dati condivisi:• controllo della concorrenza
26
I DBMS garantiscono ... privacy• Si possono definire meccanismi di autorizzazione
• Il Dr Rossi è autorizzato a leggere tutti i dati e a modificare la cartella clinica
(ma non i dati personali) • L‘infermiere Bianchi è autorizzato a leggere i dati
della cartella clinica ma non può effettuare modifiche
Riservatezza dei dati di un paziente: solo il personale medico può accedere alla cartella (il caso francese: nemmeno i pazienti possono accedervi)
27
I DBMS garantiscono... affidabilità
• Affidabilità (per le basi di dati):• resistenza a malfunzionamenti
hardware e software
• Una base di dati è una risorsa pregiata e quindi deve essere conservata a lungo termine
• Tecnica fondamentale: • gestione delle transazioni
28
Archivi e basi di dati
Gestione
Pazienti lab.Archivio 2:laboratorio
Gestione pazienti RX
Archivio 1:radiologia
29
Problemi:
• Ridondanza: • informazioni ripetute
• Rischio di incoerenza: • I dati ripetuti possono essere inesatti in uno dei
due archivi (non coincidere)
30
Archivi e basi di dati
Base di dati
Gestione
Pazienti lab.
Gestione pazienti RX
31
Base di dati
• Come sono gestite le informazioni nella base dati?
• Come raggruppa o cataloga le informazioni un database?
• È necessario uno standard (un modello) per organizzare i dati, indipendentemente da come sono memorizzati in memoria
32
Due tipi (principali) di modelli
• modelli logici • Per la rappresentazione dei dati
(relazionale)
• modelli concettuali• Per il disegno della base di dati
(entity relation, entità associazione)
33
Modello dei dati
• Insieme di costrutti utilizzati per organizzare i dati, e descriverne la struttura in modo non ambiguo
• Esempio: il modello relazionale prevede il costrutto relazione, che permette di definire insiemi di record omogenei
• I dati sono organizzati in tabelle (relazioni)
34
Il modello relazionale
• Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati
• Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con efficienza e affidabilità!)
• Si basa sul concetto matematico di relazione (con una variante)
• Le relazioni hanno naturale rappresentazione per mezzo di tabelle.
35
Cod Cogn. Nome
A102 Necchi Luca
B372 Rossini Piero
B543 Missoni Nadia
B444 Missoni Luigi
S55 Rossetti Gino
Pazienti
Organizzazione dei dati in relazione (tabella)
36
Organizzazione dei dati in relazione
Orario
Insegnamento Docente Aula Ora
Analisi matem. I Luigi Neri N1 8:00
Basi di dati Piero Rossi N2 9:45
Chimica Nicola Mori N1 9:45
Fisica I Mario Bruni N1 11:45
Fisica II Mario Bruni N3 9:45
Sistemi inform. Piero Rossi N3 8:00
37
Esempio di una BD: Relazioni (Tabelle)
Cod Cogn. Nome
A102 Necchi Luca
B372 Rossini Piero
B543 Missoni Nadia
B444 Missoni Luigi
S55 Rossetti Gino
Paziente Inizio Fine Reparto
A102 2/05/94 9/05/94 A
A102 2/12/94 2/01/95 A
S555 5/10/94 3/12/94 B
B444 1/12/94 2/0195 B
S555 5/10/94 1/11/94 A
Matr Cogn Nome Reparto
203 Neri Piero A
574 Bisi Mario B
Pazienti Ricoveri
MediciCod Nome Primario
A Chirurgia 203
B Pediatria 574
C Medicina 530
Reparti
38
Tabelle: rappresentazione di relazioni
DOCENZA Corso Docente Aula Databases Smith DS3 Systems Black N3 Networks Brown N3 Theory Brown G
AULE Codice Stabile Piano DS1 Ex-OMI Ground N3 Ex-OMI Ground G Science Third
39
Schema e istanza
• In ogni base di dati esistono:• lo schema, che ne descrive la struttura
(aspetto intensionale). Es..: le intestazioni delle tabelle
• l’istanza, i valori attuali, che possono cambiare (aspetto estensionale) E.s.: il “corpo” di ciascuna tabella
40
Schema di una relazione
Nome della relazione + lista dei suoi attributi
Es. Docenza (Corso, Docente, Aula)Aule (Codice, Stabile, Piano)
Gli attributi sono le intestazioni delle colonne e danno un significato semantico ai dati
Es. Pazienti(Cod. Cognome, Nome) Ricoveri(…)
41
Istanza di relazione
La tabella con un insieme di ennuple (tuple)
Cod Cogn. Nome
A102 Necchi Luca
B372 Rossini Piero
B543 Missoni Nadia
B444 Missoni Luigi
S55 Rossetti Gino
Pazienti
42
Una sua instanza
Lo schema di una relazioneOrario
Insegnamento Docente Aula Ora
Analisi matem. I Luigi Neri N1 8:00
Basi di dati Piero Rossi N2 9:45
Chimica Nicola Mori N1 9:45
Fisica I Mario Bruni N1 11:45
Fisica II Mario Bruni N3 9:45
Sistemi inform. Piero Rossi N3 8:00
Basi di dati: schema e istanza esempio
43
Relazione: tre accezioni
• relazione matematica: come nella teoria degli insiemi
• relazione (dall’inglese relationship) che rappresenta una classe di fatti, nel modello Entity-Relationship; tradotto anche con associazione o correlazione
• relazione secondo il modello relazionale dei dati
44
Relazioni nel modello di dati relazionale
• Vogliamo delle strutture non posizionali• Associamo un nome (attributo) a ciascuna colonna:
descrive il ruolo del dominio.• Nella rappresentazione Tabellare, i nomi di attributi
sono usati come intestazione di colonne
La struttura è non posizionale!
Matr Cogn Nome Reparto
203 Neri Piero A
574 Bisi Mario B
45
Tabelle e relazioni
• Una tabella rappresenta una relazione se• le intestazioni delle colonne sono diverse tra
loro • i valori di ogni colonna sono fra loro omogenei • le righe sono diverse fra loro
• In una tabella che rappresenta una relazione• l’ordinamento tra le righe è irrilevante• l’ordinamento tra le colonne è irrilevante
46
Struttura non posizionale
3200
1021
JuveLazioJuve
Roma
LazioMilanRomaMilan
RetiCasa RetiFuoriSquadraDiCasa SquadraOspite
La stessa informazione con una relazione a struttura differente(righe e colonne invertite)
120…
302…
LazioRomaMilan
…
JuveJuveLazio
…
RetiFuori RetiCasaSquadraOspitata SquadraDiCase
47
Definizione: tupla
• Una tupla (ennupla) su un insieme di attributi A è una funzione t che associa a ciascun attributo Ai in A un valore del
dominio di Di
• t[Ai] denota il valore della tupla t sull'attributo Ai
e.g.: A = {SquadraDiCasa, SquadraOspite, RetiCasa, RetiOspite}
t = (Juventus, Lazio, 3, 1)
t[RetiCasa] = 3
• La stessa notazione è usata su nsiemi di attributi:
t[SquadraDiCasa, SquadraOspite]
tupla su due attributi
48
Esempio
Schema di base di dati dell‘Università:
BD: (Studenti, Esami, Corsi)
Studenti (Matricola, Cognome, Nome, DataDiNascita)
Esami ( Studente, Voto, Corso)
Corsi ( Codice, Titolo, Docente )
49
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Esempio: istanza
50
Esempio
Schema di base di dati di un azienda:
S: (IndirizziPers, Impiegati, Dipartimenti, Direzioni)
IndirizziPers (CodF, Ind, Cap, Citta)
Impiegati (CodF, Nome, Dipartimento, Stipendio )
Dipartimenti ( Num, NomeDip, Indirizzo, Citta)
Direzioni (CodF_Direttore, NumDipartimento)
51
Esempio: istanza IndirizziPers CodF Ind Cap Citta
vgnrtp via roma 32 87100 Cosenza
prnstd via pio X 250 88100 Catanzaro
vgtmmh 5 rue stYves 75014 Parigi
… .. … …
Impiegati CodF Nome Dipartimento Stipendio
vgnrtp Rossi P. 763IT 1000
vgtmmh De Marco 763FR 500
… .. … …
Dipartimenti Num NomeDip Indirizzo Citta
763IT Info T. Campanella Catanzaro
…. …. …. …
Direzioni CodFDirettore NumDipartimento
vgtmnh 763IT …. ….
52
Informazione incompleta: motivazioni
Franklin RooseveltDelano
Nome CognomeSecondoNome
Winston Churchill
Charles De Gaulle
Josip Stalin
53
Nome Cogn HIV test ….
Pippo Pluto Neg
Toto Tutu
Titi Tata
Pazienti
54
Informazione incompleta: soluzioni?
• non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...):
• potrebbero non esistere valori “non utilizzati” • valori “non utilizzati” potrebbero diventare
significativi • in fase di utilizzo (nei programmi) sarebbe
necessario ogni volta tener conto del “significato” di questi valori
55
Informazione incompleta nel modello relazionale
• Tecnica rudimentale ma efficace:• valore nullo: denota l’assenza di un valore del dominio
(e non è un valore del dominio)
• t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore nullo NULL
• Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli
56
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/1978
NULL Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 NULL NULL04 Chimica Verdi
corsi
Studente Voto CorsoNULL 30 NULLNULL 24 029283 28 01
esami
Troppi valori nulli
57
Tipi di valore nullo
• (almeno) tre casi differenti• valore sconosciuto • valore inesistente • valore senza informazione
• I DBMS non distinguono i tipi di valore nullo
58
Vincoli di integrità
• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse
59
Una base di dati "scorretta"
Studente Voto Lode Corso32 01276545
276545 30 e lode 02787643 27 e lode 03739430 24 04
Esami
Matricola276545787643787643
CognomeRossiNeri
Bianchi
NomeMarioPieroLuca
Studenti
787643787643
32
27 e lode739430
60
Vincolo di integrità
• Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione
• Un vincolo è una funzione booleana (un predicato):associa ad ogni istanza il valore vero o falso
61
• descrizione più accurata della realtà • contributo alla “qualità dei dati” • utili nella progettazione (vedremo)• usati dai DBMS nella esecuzione delle
interrogazioni
Vincoli di integrità, perché?
62
Vincoli sulle tuple
• Esprime una condizione sul valore in una tupla indipendentemente dalle altre
Esprimibile con espressioni booleane:
(NOT(Lode = "e lode")) OR (Voto= 30)
• Vincolo di dominio: un vincolo di tupla che involve un singolo attributo
Voto ≥ 18 AND Voto ≤ 30
• Vincolo di tupla con espressione
Netto = Lordo - Ritenute
63
Identificazione delle tuple
• non ci sono due tuple con lo stesso valore sull’attributo Matricola
• non ci sono due tuple uguali su tutti e tre gli attributi Cognome, Nome e Nascita
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoIng Inf
Ing MeccIng Inf
Ing Inf
Ing Mecc
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
Studenti
64
Chiave (Key) di una relazione
• insieme di attributi che identificano le tuple di una relazione
Formalmente:
• un insieme K di attributi è superchiave (superkey) per r se r non contiene due tuple distinte t1 e t2 con t1[K] = t2[K]
• K è chiave per r se è una superchiave minimale per r (cioè non contiene un’altra superchiave)
65
Una chiave
• Matricola è una chiave:• è superchiave• contiene un solo attributo e quindi è minimale
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoIng Inf
Ing MeccIng Inf
Ing Civile
Ing Mecc
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
Studenti
66
• Cognome, Nome, Nascita è un’altra chiave:• è superchiave
Matricola276557876365432
Nome
PieroMario87654
67653
Cognome
NeriNeri
MarioMario
RossiRossi
Rossi Piero
CorsoIng Inf
Ing MeccIng Inf
Ing Civile
Ing Mecc
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
Un'altra chiaveStudenti
• Non ci sono tuple uguali su Cognome e Corso: • Cognome e Corso formano una chiave per questa
relazione. Sono chiavi per lo schema? NO!
67
Vincoli, schemi e istanze
• i vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati
• interessano a livello di schema (con riferimento cioè a tutte le istanze)
• ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli
• un'istanza può soddisfare altri vincoli (“per caso”)
68
• È corretta: soddisfa i vincoli
• Ne soddisfa anche altri ("per caso"):• Cognome, Corso è chiave
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoIng Inf
Ing MeccIng Inf
Ing Civile
Ing Mecc
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
Studenti
69
Esistenza delle chiavi
• Le relazioni sono insiemi; ogni relazione è composta di tuple distinte. Per cui: una relazione ha almeno una superchiave:
• l’insieme degli attributi su cui è definita
70
Importanza delle chiavi
• l’esistenza delle chiavi garantisce che ogni parte della base dati è accessibile.
• le chiavi permettono di correlare i dati in relazioni diverse.
71
Chiavi e valori nulli
• Se le chiavi ammettono valori nulli:• Non garantiscono unicità alle tuple• Non permettono di realizzare corrispondenze
tra tuple in relazioni diverse
Matricola Cognome Nome Corso NascitaNull Null Mario IngInf 5/12/78
7863 Rossi Piero IngInf 30/4/75
Null Rossi Paolo IngCiv Null
Come accediamo a prima e terza tupla?
Prima e terza tupla sono distinte?
72
Chiave Primaria (Primary key)
• La presenza di valori nulli nelle chiavi deve essere limitata
• Soluzione: una chiave primaria (primary key) non ammette valori nulli
• Notazione: la chiave primaria è sottolineata
• Referenze tra le relazioni sono realizzate usando le primary keys
73
Chiave primaria
• Chiave su cui non sono ammessi nulli
• Notazione: sottolineatura
Matricola
78763
65432
Nome
Piero
Mario87654
43289
Mario
Cognome
Neri
Neri
Rossi
Neri Mario
Corso
Ing Mecc
Ing Inf
Ing Civile
NULL
Nascita
86765 MarioNULL Ing Inf 5/12/78
10/7/79
NULL
3/11/76
5/12/78
74
Chiavi primarie: ci sono sempre?
• Nella maggior parte dei casi, si: codice fiscale, numero di previdenza sociale, …
• In altri casi non sono presenti• Introduciamo attributi (unici) nelle tabelle
• La maggior parte dei codici (chiavi) presenti nella gestione delle informazioni (codice fiscale, matricola…) furono introdotti con lo stesso scopo: identificare univocamente gli oggetti.
75
• informazioni in relazioni diverse sono correlate attraverso valori comuni
• in particolare, valori delle chiavi (primarie)
• le correlazioni debbono essere "coerenti"
Il modello è basato su valori (integrità referenziale)
76
Esempio di una BD: Relazioni (Tabelle)
Cod Cogn. Nome
A102 Necchi Luca
B372 Rossini Piero
B543 Missoni Nadia
B444 Missoni Luigi
S55 Rossetti Gino
Paziente Inizio Fine Reparto
A102 2/05/94 9/05/94 A
A102 2/12/94 2/01/95 A
S555 5/10/94 3/12/94 B
B444 1/12/94 2/0195 B
S555 5/10/94 1/11/94 A
Matr Cogn Nome Reparto
203 Neri Piero A
574 Bisi Mario B
Pazienti Ricoveri
MediciCod Nome Primario
A Chirurgia 203
B Pediatria 574
C Medicina 530
Reparti
77
Matricola
3987
3295
9345
Vigili Cognome
Rossi
Neri
Neri
Nome
Luca
Piero
Mario
Mori Gino7543
InfrazioniCodice
34321
73321
64521
53524
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
TO
PR
PR
39548K
E39548
839548
839548
3295
3295
3987
3987
9345
3987
9345
9345
3295
3295
3295
78
Auto Prov Numero
MI
TO
PR
39548K
E39548
839548
Cognome
Rossi
Rossi
Neri
Nome
Mario
Mario
Luca
InfrazioniCodice
34321
73321
64521
53524
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
TO
PR
PR
39548K
E39548
839548
839548
MI
TO
PR
PR
39548K
E39548
839548
839548
MI
TO
PR
39548K
E39548
839548
79
Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di comparire come valori della chiave primaria di R2
e.g.: vincoli di integrità referenziale fra: • l’attributo Vigile della relazione INFRAZIONI e la relazione
VIGILI • gli attributi Prov e Numero di INFRAZIONI e la relazione
AUTO
Vincolo di integrità referenziale
80
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
Auto Prov NumeroMITOPR
E39548F34268839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
TO E39548
TOE39548
Violazione di vincolo di integrità referenziale
81
Eliminazione in cascata
Impiegati Matricola34321
6452153524
CognomeRossiNeriVerdi
ProgettoIDEAXYZNULL
73032 Bianchi IDEA
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120
53524 Neri XYZ
82
Linguaggi per basi di dati
data definition language (DDL)
per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali
data manipulation language (DML)
per l’interrogazione e l’aggiornamento di (istanze di) basi di dati
83
SQL, un linguaggio interattivo
• "Trovare i corsi tenuti in aule a piano terra"
Nome PianoEdificio
OMIDS1 Terra
PincherleG Primo
OMIN3 Terra
Aule
RossiBasi di dati DS3
BruniReti N3
NeriSistemi N3
BruniControlli G
Corsi
AulaDocenteCorso
84
SQL, un linguaggio interattivo
SELECT Corso, Aula, PianoFROM Aule, CorsiWHERE Nome = AulaAND Piano = "Terra"
Corso Aula
Reti N3
Sistemi N3
Piano
Terra
Terra
85
Interazione non testuale (Access)
86
Corso AulaDocente
VeltriBasi di dati DS3
MuracaAutomatica N3
FuduliAnalisi Prob N3
BruniEconomia G
Corsi
Nome PianoEdificio
OMIDS1 Terra
PincherleG Primo
OMIN3 Terra
Aule
CorsiSedi Corso Aula
Reti N3
Automatica N3
Controlli G
PianoEdificio
OMI Terra
Pincherle Primo
OMI Terra
Base di dati relazionale: un esempio
87
Progettazione concettuale
E’ di supporto per l’organizzazione delle informazioni, utile per la progettazione di un database (i.e., la definizione dell’insieme di relazioni per la base dati)
88
Una base dati presentata in modo differente
89
Analisi dei requisiti
• Raccolta delle informazioni che dovranno essere poi gestite dal database.
Es. Gestione dei posti letto di un reparto.
Pazienti con nome cognome e dati anagrafici. Ogni paziente occupa un letto in una stanza. Ogni stanza ha un numero, è ubicata ad un piano ed è sotto la responsabilità di uno o più persone (medico o paramedico). ….
90
Progetto ER
• Dall’analisi dei requisiti si individuano le entità (es. Paziente, Stanza..) e le relazioni (associazioni) tra entità, con le loro cardinalità.
Ogni entità ha degli attributi, alcuni di queste sono chiavi.
Dallo schema entità relazione si passa al disegno delle relazioni e delle tabelle.
91
Pazienti
Un esempio di schema E-A
Stanze
Personale_Reparto
ospita
È_responsabile
1:1 0:N
1:N
0:N
Ospita: un paziente ospita minimo 1 max 1 stanza (1:1)una stanza è ospitata minimo da 0 max da N (piu’ di uno)
pazienti (0:N)E’_responsabile: una stanza è controllata minimo da 1 max N medici(o param.). Un medico(param) è responsabile di min 0 max N stanze
nome Cogn. …
idPaz.
capienza
numero.piano
dal
92
Dallo Schema E-A alla BD
• Ogni entità diventa una relazione
• Gli attributi di una entità diventano attributi della relazione
• Per le associazioni: si prende il max da entrambe le parti. Esempio 1:N; 1:N la relazione è N:N
se è 1:N si passa la chiave della relazione dalla parte max come chiave esterna della parte min.
Esempio: Paziente(…., numeroStanza, PianoStanza)
93
Dallo Schema E-A alla BD (cont.)
se l’associazione è N:M (per esempio: è responsabile)
allora l’associazione diventa una nuova relazione con attributi le chiavi delle due relazioni che vi incidono, ed eventuali attributi dell’associazione.
Se l’associazione è 1:1, allora in modo indifferente, le chiavi della relazione di una parte diventano chiavi esterna dall’altra (oppure il contrario).
94
Dallo Schema E-A alla BD (cont.)
IdPaz Nome Cognome ospiteDa numeroSt pianoSt …
A22 Paolo Rossi 12/12/02 2 3 ..
numeroSt Piano Capienza …
… …. … …
NumeroSt Piano IdResponsab
Pazienti
Stanze
E’_responsab.
IdRespo Nome Cognome Grado Num_Tel
… … …. … ..
Personale_Reparto