informatica cl fisioterapisti informatica medica sistemi per la...
TRANSCRIPT
![Page 1: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/1.jpg)
Prof. Mauro [email protected]
InformaticaCL Fisioterapisti
Informatica MedicaSistemi per la gestione
di basi di Dati
1
![Page 2: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/2.jpg)
2
Informatica Medica
La scienza che si occupa della gestione dell’informazione e dei programmi basati su calcolatore in sanità
L’informatica medica è la logica della sanità. Studio razionale del modo in cui:
i pazienti vengono pensati i trattamenti sono definiti, selezionati ed ottimizzati la conoscenza medica viene creata, formata, condivisa ed applicata la sanità è organizzata per fornire i suoi servizi
![Page 3: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/3.jpg)
3
Alcuni Obiettivi
Garantire costoefficacia dei servizi sanitari aumentandone la qualità.
Favorire la collaborazione tra i membri di un team di specialisti coinvolti nella gestione di un paziente.
Usare in modo efficiente ed efficace le soluzioni tecnologiche.
Il fine è l’innovazione e l’ottimizzazione del processo di cura dei pazienti.
![Page 4: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/4.jpg)
4
Alcune applicazioni
Studio dei sistemi biologici (Fisiologia Fisiopatologia) Prevenzione dello stato di malattia (Epidemiologia Statistica) Cura della malattia (Gestione delle terapie – Dispositivi medici
terapeutici) Valutazione della disabilita (EDSS nella Sclerosi Multipla) Riabilitazione: apparati di supporto alla riabilitazione (stimolatori,
sistemi per isocinetica) Riabilitazione cognitiva.
![Page 5: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/5.jpg)
5
Come?
Gestione e comunicazione di dati ed informazione. Reti di personal computer. Sistemi informativi in campo medico. Programmi applicativi specifici:
Sistemi per la classificazione e codifica Sistemi di comunicazioni ed information retrieval Sistemi per la definizione di linee guida e protocolli Sistemi per l’analisi dei dati Sistemi di supporto alle decisioni
![Page 6: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/6.jpg)
6
Cosa tratteremo
Organizzazione delle informazioni – sistemi informativi. Sistemi per la Gestione di Basi di Dati. Il linguaggio SQL (Structured Query Language). Elaborazione statistica dei dati sanitari.
![Page 7: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/7.jpg)
7
Sistema Informativo
Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali
• è essenziale per il funzionamento dell'azienda
• è fortemente integrato con il sistema organizzativo
• comprende risorse umane
Insieme dei sistemi hardware e software presenti in una azienda
• permette la generazione, l'elaborazione, la circolazione e la memorizzazione delle informazioni su supporti informatici
![Page 8: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/8.jpg)
8
Esempi di Sistemi Informativi
applicazioni gestionali classiche
• gestione ordini, personale, magazzino
applicazioni finanziarie
• banche, borsa, carte di credito
sistemi di prenotazione
• treni, aerei, alberghi, autonoleggi
nuove applicazioni
• gestione dei progetti, del territorio
• commercio elettronico
![Page 9: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/9.jpg)
9
Sistemi Informativi nella Sanità
Gestione delle informazioni utili alla misura ed alla valutazione dei processi gestionali e clinici al fine di ottimizzare le risorse impegnate nel conseguimento degli obiettivi istituzionali ed ottimizzare le modalità di comunicazione.
Esempi: Cartella clinica elettronica. Gestione di linee guida cliniche
![Page 10: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/10.jpg)
10
Dati vs Informazione
Dato: unita' elementare (grezza) di informazione
Informazione: elaborazione dei dati per rispondere a esigenze specifiche
dell'impresa Conoscenza?
![Page 11: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/11.jpg)
11
Dati vs Processi
PROCESSO :
procedura
aziendale che
risponde ad un
particolare compito
applicativo
Database
Processi
Utenti
![Page 12: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/12.jpg)
![Page 13: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/13.jpg)
13
Architettura Sistema Informativo
Database
Processi
Data BaseManagement System
![Page 14: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/14.jpg)
Sistemi per la Gestione di Basi di Dati
Modello concettuale dei Dati (Modello dei dati) Meccanismi per garantire l'integrità Un linguaggio di interrogazione Supporto per programmi applicativi
Esistono sul mercato alcune centinaia di prodotti diversi
• per uso personale
• per server in una rete
• per mainframe
![Page 15: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/15.jpg)
Principali Caratteristiche
Condivisione dei dati
• assenza di replicazione nei file
• possibilità di accesso concorrente
Qualità dei dati
• vincoli di integrità
Efficienza
• caricamento, query ottimizzate, ordinamenti automatici
Controllo dell'accesso
• Sicurezza
• Possibilità dati privati
Robustezza (si evita la perdita di dati)
![Page 16: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/16.jpg)
16
Il modello dei dati relazionale Una base di dati e' organizzata in relazioni dette anche tabelle. Si tratta del modello attualmente più utilizzato. Buoni meccanismi di ottimizzazione (forme normali). Interrogazioni espresse tramite un algebra relazionale. Linguaggio di interrogazione SQL (Structured Query Language)
Supporto per transazioni: sequenze di operazioni sui dati che devono essere eseguite completamente per avere effetto, se una transazione non viene eseguita completamente l'effetto delle operazioni eseguite viene annullato.
![Page 17: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/17.jpg)
DB-Persone
Persone Maternita
Paternita
![Page 18: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/18.jpg)
Interrogazione semplice
Nome e Reddito delle persone con meno di 30 anni
![Page 19: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/19.jpg)
Elementi dell’interrogazione
Nome e Reddito delle persone con meno di30 anni.
Tabella/e da utilizzare
![Page 20: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/20.jpg)
Elementi dell’interrogazione
Nome e Reddito delle persone con meno di30 anni.
Tabella/e da utilizzare
Condizione
![Page 21: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/21.jpg)
Elementi dell’interrogazione
Nome e Reddito delle persone con meno di30 anni.
Tabella/e da utilizzare
Condizione
Attributi su cui proiettareil risultato
![Page 22: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/22.jpg)
Interrogazione semplice in SQL
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
Target listClausola FromClausola Where
![Page 23: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/23.jpg)
Semantica di una query SELECT/FROM/WHERE
• Si esegue il prodotto cartesiano delle tabelle coinvolte (in questo caso, essendoci una sola tabella, il prodotto cartesiano non viene effettuato)
• Si selezionano le righe (tuple) sulla base del predicato della clausola Where
• Si proietta sugli attributi della target list
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
Target listClausola FromClausola Where
![Page 24: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/24.jpg)
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
(1) Prodotto cartesiano (1 tabella)
![Page 25: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/25.jpg)
(1b) Prodotto cartesiano (2 tabelle)
![Page 26: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/26.jpg)
(2) Selezione
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
![Page 27: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/27.jpg)
(3) Proiezione
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
![Page 28: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/28.jpg)
Risultato
SELECT Nome, RedditoFROM PersoneWHERE Eta < 30
![Page 29: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/29.jpg)
DB-Impiegati
Impiegato
Dipartimento
![Page 30: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/30.jpg)
Target list: selezione senza proiezione
SELECT *FROM ImpiegatoWHERE Cognome = ‘Rossi’
![Page 31: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/31.jpg)
Target list: selezione con proiezione
SELECT Nome, Cognome, StipendioFROM ImpiegatoWHERE Cognome = ‘Rossi’
![Page 32: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/32.jpg)
Target list: proiezione senza selezione
SELECT Nome, CognomeFROM Impiegato
![Page 33: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/33.jpg)
Target list: proiezione con/senza duplicati
SELECT CognomeFROM Impiegato
SELECT DISTINCT CognomeFROM Impiegato
![Page 34: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/34.jpg)
Target list: espressioni
SELECT Stipendio/12 As StipendioMensileFROM ImpiegatoWHERE Cognome = ‘Bianchi’
StipendioMensile
3.00
![Page 35: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/35.jpg)
Clausola WHERE: disgiunzione
SELECT Nome, CognomeFROM ImpiegatoWHERE Dipart = ‘Amministrazione’ ORWHERE Dipart = ‘Produzione’
![Page 36: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/36.jpg)
Clausola WHERE: condizione complessa
SELECT NomeFROM ImpiegatoWHERE Cognome = ‘Rossi’ ANDWHERE (Dipart = ‘Amministrazione’ ORWHERE Dipart = ‘Produzione’)
Nome
Mario
![Page 37: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/37.jpg)
Clausola WHERE: operatore IN
SELECT NomeFROM ImpiegatoWHERE Cognome = ‘Rossi’ ANDWHERE Dipart IN (‘Amministrazione’,WHERE ‘Produzione’)
Nome
Mario
![Page 38: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/38.jpg)
Clausola WHERE: operatore LIKE
SELECT *FROM ImpiegatoWHERE Cognome LIKE ‘_o%i’
_ Un carattere qualsiasi
% Un stringa qualsiasi
![Page 39: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/39.jpg)
Clausola WHERE: operatore BETWEEN
SELECT *FROM ImpiegatoWHERE Stipendio BETWEEN 40 AND 45
![Page 40: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/40.jpg)
Clausola WHERE: valori nulli“Impiegati che hanno o potrebbero avere uno stipendio minore
di 50”
•N.B.: Vogliamo anche gli stipendi “nulli”
![Page 41: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/41.jpg)
Clausola WHERE: valori nulli
SELECT *FROM Impiegati_con_nulliWHERE Stipendio < 50 or Stipendio IS NULL
![Page 42: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/42.jpg)
Ordinamento del risultato
• A differenza del modello relazionale, in cui le tuple non sono ordinate, le righe di una tabella possono esserlo anche se solo al momento della presentazione all’utente.
• Talvolta la possibilità di ordinare il risultato di un’interrogazione è importante. Ad esempio, se si voglio gli stipendi in ordine dal minore al maggiore.
• SQL mette a disposizione la clausola ORDER BY
![Page 43: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/43.jpg)
Ordinamento del risultato: esempio
SELECT Cognome, Nome, StipendioFROM ImpiegatoWHERE Dipartimento LIKE ‘Amm%’ORDER BY Stipendio DESC, Cognome ASC
discendente ascendente (default)
![Page 44: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/44.jpg)
JOIN Implicito
• Il JOIN è un operatore fondamentale, in quanto permette di utilizzare congiuntamente le informazioni contenute in più tabelle
• Un JOIN corrisponde a un prodotto cartesiano seguito da una selezione
• E’ quindi possibile realizzare un JOIN tramite gli statement SQL visti finora, cioè FROM e WHERE, che permettono di compiere prodotti cartesiani e selezioni
• Esistono anche operatori specifici, ma non li vedremo
![Page 45: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/45.jpg)
Prodotto cartesiano
• Il prodotto cartesiano di due o più tabelle si ottiene riportando le tabelle nella clausola From, senza clausola Where
![Page 46: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/46.jpg)
DB-Persone
Persone Maternita
Paternita
![Page 47: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/47.jpg)
JOIN Implicito
• Query: “Padre e madre di ogni persona”
SELECT Padre, Paternita.Figlio, MadreFROM Paternita, MaternitaWHERE Paternita.Figlio = Maternita.Figlio
![Page 48: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/48.jpg)
Esempio: Selezione, Proiezione e JOIN
• Query: “I padri di persone che guadagnano più di venti milioni”
SELECT distinct Paternita.PadreFROM Paternita, PersoneWHERE Paternita.Figlio = Persone.Nome AND Reddito > 20
![Page 49: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/49.jpg)
Self-JOIN
• Nel JOIN tra una tabella e se stessa occorre necessariamente utilizzare dei sinonimi (alias) per distinguere le diverse occorrenze della tabella
• Query: “Le persone che guadagnano più dei rispettivi padri. Mostrare nome, reddito e reddito del padre”
SELECT F.Nome, F.Reddito, P.RedditoFROM Paternita, Persone F, Persone PWHERE Figlio = F.Nome AND P.Nome = Padre AND F.Reddito > P.Reddito
![Page 50: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/50.jpg)
Stessa cosa, con ridenominazione del risultato
• Query: “Le persone che guadagnano più dei rispettivi padri. Mostrare nome, reddito e reddito del padre”
SELECT Figlio, F.Reddito AS Reddito, P.Reddito AS RedditoPadre,FROM Paternita, Persone P, Persone FWHERE Figlio = F.Nome AND P.Nome = Padre AND F.Reddito > P.Reddito
![Page 51: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/51.jpg)
DB-Impiegati
Impiegato
Dipartimento
![Page 52: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/52.jpg)
Necessità di operatori su tuple
• Nelle interrogazioni viste finora le condizioni di selezione (clausola Where) venivano valutate su ciascuna riga indipendentemente da tutte le altre
• Si può ad esempio verificare quali dipartimenti hanno sede a Milano
• Ma non si può contarne il numero, perchè occorrerebbe valutare un insieme di righe
![Page 53: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/53.jpg)
Esempio di operatore aggregato: count
SELECT count(*) AS DipMilanesi FROM DipartimentoWHERE Citta = ‘Milano’
DipMilanesi
3
![Page 54: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/54.jpg)
Valutazione di un operatore aggregato
• Vediamo come viene valutata la seguente interrogazione con operatore aggregato COUNT, che conta il numero di impiegati che lavorano in Produzione
SELECT count(*) AS numeroImpiegati FROM ImpiegatoWHERE Dipart = ‘Produzione’
![Page 55: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/55.jpg)
Valutazione di un operatore aggregato (1)
• Prima si valuta la query senza operatore aggregato
SELECT *FROM ImpiegatoWHERE Dipart = ‘Produzione’
![Page 56: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/56.jpg)
• Poi si considerano le tuple come un insieme
Valutazione di un operatore aggregato (2)
SELECT count(*) AS numeroImpiegati FROM ImpiegatoWHERE Dipart = ‘Produzione’
•N.B.: Count conta il numero di righe
![Page 57: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/57.jpg)
L’operatore COUNT
• COUNT può anche riferirsi a singole colonne
SELECT count(*) AS numeroImpiegati FROM Impiegato
SELECT count(Stipendio) AS numeroStipendi FROM Impiegato
numeroStipendi
8
numeroImpiegati
8
![Page 58: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/58.jpg)
L’operatore COUNT
• La valutazione si effettua esattamente allo stesso modo: prima la query senza COUNT...
SELECT StipendioFROM Impiegato
![Page 59: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/59.jpg)
• ... quindi il conteggio dell’insieme di righe
L’operatore COUNT
SELECT count(Stipendio) AS numeroStipendi FROM Impiegato
numeroStipendi
8
![Page 60: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/60.jpg)
COUNT e valori nulli
• Quando si specificano le colonne su cui contare, il risultato può variare per via dei valori nulli
• Consideriamo la seguente tabella:
![Page 61: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/61.jpg)
COUNT e valori nulli
SELECT count(*) AS numeroImpiegati FROM ImpiegatoConNulli
numeroImpiegati
6
SELECT count(Stipendio) AS numeroStipendi FROM ImpiegatoConNulli
numeroStipendi
5
![Page 62: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/62.jpg)
Conteggio delle righe diverse tra loro
• Se si vogliono considerare solo righe diverse l’una dall’altra, si può utilizzare l’opzione distinct
SELECT count(Stipendio) AS numeroStipendiFROM Impiegato
numeroStipendi
8
SELECT count(distinct Stipendio) AS stipendiDiversiFROM Impiegato
stipendiDiversi
6
![Page 63: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/63.jpg)
Conteggio delle righe diverse tra loro
• Questo equivale (come al solito) alla valutazione della query senza operatore aggregato...
SELECT distinct StipendioFROM Impiegato
•... e al successivo conteggio delle righe
SELECT count (distinct Stipendio)FROM Impiegato
![Page 64: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/64.jpg)
Altri operatori
• Quanto detto per COUNT vale anche per gli operatori: SUM, MAX, MIN, AVG
• Questi operatori escludono opportunamente i valori nulli
• L’opzione distinct può ancora essere utilizzata
• Esistono altri operatori (varianza, mediano ...), ma non sono standard. Controllare il manuale del sistema che si vuole utilizzare
![Page 65: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/65.jpg)
Esempi di altri operatori
SELECT max(Stipendio) AS stipendioMaxFROM Impiegato
stipendioMax
80
SELECT min(Stipendio) AS stipendioMinFROM Impiegato
stipendioMin
36
![Page 66: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/66.jpg)
Altri operatori
SELECT sum(Stipendio) AS sommaStipendiFROM Impiegato
sommaStipendi
405
SELECT avg(Stipendio) AS mediaStipendiFROM Impiegato
mediaStipendi
50.625
![Page 67: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/67.jpg)
Operatori aggregati e JOIN
• Gli operatori aggregati si possono utilizzare anche in concomitanza con i JOIN
SELECT max(Stipendio) AS stipendioMassimoFROM Impiegato, Dipartimento Dwhere Dipart = D.Nome AND Citta = ‘Milano’
stipendioMassimo
80
![Page 68: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/68.jpg)
Operatori aggregati e ridenominazione
• Se non utilizziamo la AS, il risultato non ha nome
SELECT max(Stipendio) FROM Impiegato, Dipartimento Dwhere Dipart = D.Nome AND Citta = ‘Milano’
max(Stipendio)
80
![Page 69: Informatica CL Fisioterapisti Informatica Medica Sistemi per la …gaspari/www/teaching/newfisio9.pdf · 2015-10-28 · Cartella clinica elettronica. ... dell'impresa Conoscenza?](https://reader033.vdocuments.pub/reader033/viewer/2022060305/5f0945897e708231d42606eb/html5/thumbnails/69.jpg)
• Non è lecita la presenza contemporanea nella target list di nomi di campi e operatori aggregati
• Ad esempio, la seguente interrogazione non è corretta:
Operatori aggregati e target list
SELECT Cognome, Nome, min(Stipendio) FROM Impiegatowhere Dipart = ‘Amministrazione’