Medicina, Tecnologia e datistaff.icar.cnr.it/cannataro/didattica/2009-2010/MaxiCorsoII... ·...

Preview:

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

Recommended