Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ Corso di Laurea Magistrale in Scienze Infermieristiche e Ostetriche Sistemi di Elaborazione delle Informazioni - Metodologia della Ricerca applicata A.A. 2016/17 Docente: Gianni Pantaleo Dipartimento di Ingegneria dell’Informazione – DINFO DISIT Lab – Distributed Systems and Internet Technology Lab Facoltà di Ingegneria Università degli Studi di Firenze Via S. Marta 3, 50139 [email protected] DISIT Lab http://www.disit.org Sistemi di Elaborazione delle Informazioni A.A. 2016/17 1 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ Sistemi di Elaborazione delle Informazioni – A.A. 2016/17 Sistemi di Elaborazione delle Informazioni 1. Introduzione • • 2. Sistemi di Elaborazione dell’Informazione • • 3. Definizioni e Rappresentazioni Modelli e Linguaggi Sistemi ICT in Ambito Medico Sanitario • • • 5. Informatica e Architettura dei Calcolatori Reti di Calcolatori e Tecnologie ICT Basi di Dati • • 4. Definizione di «Informazione» Segnali e Codifica dell’Informazione Sistemi Informativi Sanitari Health Techgnology Assessment Direttive IVD - Sistemi Diagnostici in Vitro Esercitazioni Pratiche • Utilizzo di Sistemi di Gestione Dati e Database Sistemi di Elaborazione delle Informazioni A.A. 2016/17 2 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ Sistemi di Elaborazione delle Informazioni – A.A. 2016/17 3. Basi di Dati Sistemi di Elaborazione delle Informazioni A.A. 2016/17 3 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni La Piramide della Conoscenza - Informazione Informazione Sistemi di Elaborazione delle Informazioni A.A. 2016/17 4 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Basi di Dati e DMBS: Definizioni Una Base di Dati (Database), nella sua accezione più generica, è una collezione omogenea di dati strutturati. Una base di dati è una insieme di dati che può essere gestito da un sistema DBMS (Data Base Management System). Un DBMS è un sistema software composto da sequenze di dati strutturati ed interconnessi tra di loro, e da una serie di programmi applicativi che consentono di effettuare su tali dati operazioni di accesso, modifica e interrogazione (query di ricerca). Un DBMS supporta diversi livelli di astrazione sui dati, a differenza di altri sistemi informativi analoghi non informatizzati (elenco telefonico, registro anagrafico cartaceo ecc.). • Livello Fisico • Livello Logico/Concettuale • Livello Esterno Un DBMS deve essere in grado di gestire basi di dati di grandi dimensioni (Big Data), persistenti (cioè con un ciclo di vita indipendente dal programma che le utilizza) e condivise da più utenti/sistemi/applicazioni. Un DBMS deve inoltre prevedere modalità di controllo differenziato di accesso ai dati, per garantire la privacy e la sicurezza di eventuali dati sensibili, riservati e/o personali. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 5 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Problematiche di Completezza e Correttezza dei Dati Ogni SI è suddiviso generalmente in settori o sotto-sistemi, ognuno dei quali svolge varie funzionalità ed esegue vari processi su una base di dati spesso condivisa. Possono essere molteplici le applicazioni che utilizzano gli stessi dati o stesse porzioni della base di dati condivisa dal SI. Gestione Esami Immatricolazioni Servizi Prenotazioni […] Altre Applicazioni DBMS (Database Anagrafico di Ateneo) Dati (Dati anagrafici degli studenti) Se la base di dati non è ben progettata, possono verificarsi problemi di integrità, ridondanza o incoerenza, a cui è necessario provvedere attraverso appositi metodi di riconciliazione dei dati: • Integrità: di solito dovuti ad errore umano o incompletezza nell’immissione di dati (referenziati tra di essi) all’interno del database. • Ridondanza: informazioni ripetute all’interno del database. • Ambiguità: incoerenza; differenti descrizioni di uno stesso dato o informazione non coincidono. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 6 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni DBMS: Vantaggi e Limiti I vantaggi nell’uso di un DBMS sono molteplici: • Accesso ai dati indipendente dalla loro rappresentazione e memorizzazione. • Tecniche di accesso ai dati ottimizzate (anche attraverso l’uso di strutture aggiuntive, come gli indici), per migliorare le performance delle interrogazioni. • Possibilità di controllo dell’integrità e della completezza dei dati. • Possibilità di controllo dell’accesso ai dati e modalità di accesso multi-utente. Alcuni limiti: • Non permettono visualizzazioni grafiche dei dati o delle strutture dati. • Implementano funzionalità matematiche e statistiche elementari di base. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 7 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni DBMS: Livelli di Astrazione e Rappresentazione Livello Fisico: rappresentazione del DBMS per mezzo di strutture fisiche di memorizzazione, ovvero specifici files. Descrive come i dati sono memorizzati e organizzati su uno o più supporti di memoria secondaria. Livello Logico: rappresenta come vengono organizzati i dati secondo il modello logico adottato dal DBMS (relazionale, gerarchico, ad oggetti ecc.). Livello Concettuale: a volte distinto dal Livello Logico, descrive le tipologie di dati da rappresentare, in termini di oggetti, attributi e relazioni. Livello Esterno: descrive come vengono presentate porzioni della base di dati agli utenti, attraverso «viste» differenti, parziali o derivate da esigenze particolari degli utenti (regole di accesso, combinazioni di query ecc.). Sistemi di Elaborazione delle Informazioni A.A. 2016/17 8 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Tipologie di Utenti DBA - Database Administrator. Utente amministratore che ha il controllo completo del sistema. Tra i suoi compiti principali: • Definizione e modifica degli schemi. • Gestione dei metodi di accesso e dei permessi per i vari utenti. • Specifica dei vincoli di integrità. Le altre tipologie di utenti possono essere classificate in base alla loro esperienza nell’uso delle varie funzionalità del sistema. Utente Inesperto. Utente finale, non ha conoscenza della struttura dei modelli e/o dei linguaggi del sistema, quindi vi accede ed interagisce solo mediante opportune interfacce (maschere) di alto livello fornite dalle applicazioni che dialogano con il DBMS. Programmatore Applicativo. Progettano applicativi in linguaggi di alto livello, al cui interno viene integrato un DBMS per la gestione dei dati. Utente Sofisticato. Interviene direttamente, formulando query oppure agendo sui dati. Utente Specializzato. E’ un utente sofisticato che utilizza il sistema con metodi di accesso non convenzionali per scopi di test (prestazioni del DBMS, debug di applicazioni ecc.). Sistemi di Elaborazione delle Informazioni A.A. 2016/17 9 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Architettura di un DBMS Utente Amministratore Utente Specializzato Programmatore Applicativo Applicativo Utente Sofisticato Query Processor Utente Inesperto Interfaccia Grafica Livello Esterno Processore DML Processore DDL Processore DCL Livello Logico Processore DQL Livello Concettuale DB MANAGER Processore DSL DBMS Livello Fisico FILE MANAGER Supporto di Memorizzazione Dizionario DATI DATI Indice Sistemi di Elaborazione delle Informazioni A.A. 2016/17 10 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Linguaggi Utilizzati nei DBMS Per descrivere i vari livelli funzionali si ricorre all’uso di specifici linguaggi: DQL - Data Query Language. Utilizzato per interrogare il database, formulando query o combinazioni di query ed estrarne così l’informazione desiderata (Esempi: SQL, XQuery). DDL - Data Definition Language. Utilizzato per la gestione, a livello logico, delle strutture e dei modelli dei dati. Consente di definire la strutture (Schema, memorizzati nel Dizionario dei Dati) del database Comprende le operazioni di creazione, modifica ed eliminazione di oggetti del database, ma non dei valori assunti dai dati al loro interno (Esempi: SQL). DML - Data Manipulation Language. Utilizzato per la gestione dei dati all’interno degli oggetti del database, senza coinvolgere le strutture o gli schemi a livello logico. Comprende operazioni di inserimento, aggiornamento o eliminazione di singoli dati (Esempi: SQL). DCL - Data Control Language. Utilizzato per definire e gestire le modalità di accesso degli utenti. Comprende i comandi per garantire o revocare l’accesso agli oggetti, ai dati, e all’utilizzo dei vari linguaggi di gestione (Esempi: SQL). DSL - Data Storage and Definition Language. Utilizzato per specificare le strutture e le modalità di memorizzazione a livello fisico. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 11 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modelli di Dati Un modello di dati è un insieme di costrutti utilizzati per organizzare i dati e descriverne la struttura. Vengono usati anche per descrivere i livelli di astrazione forniti da un DBMS. Una DBMS, per trasformare i dati in informazione, deve necessariamente avere un modello di organizzazione dei dati. I più comunemente utilizzati sono i seguenti: • Modello Reticolare - Livello Logico - • Modello Gerarchico - Livello Logico - • Modello a Oggetti (object-oriented) - Livello Logico - • Modello Relazionale - Livello Logico - • Modello Entità-Relazione E/R - Livello Concettuale - Come ogni modello può essere espresso attraverso diagrammi funzionali. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 12 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modello Relazionale Nel Modello Relazionale, una base di dati è rappresentata per mezzo di un insieme di relazioni. Viene usata generalmente la forma tabellare. Le colonne della tabella sono anche dette campi, o attributi della tabella. I campi e il formato di dati da essi rappresentati sono predefiniti nello Schema della tabella. Le righe rappresentano i valori degli attributi, denominati record. Una tabella deve avere almeno un campo che permetta di identificare ogni record in modo univoco: tale campo è definito in fase di progettazione dello Schema come Chiave Primaria. Studenti_Schema Studenti Cognome Nome Data di Nascita Matricola Nome Campo Tipo Codifica NULL Primary Rossi Mario 01/01/91 5876410 Cognome String(16) UTF-8 No No Bianchi Anna 02/02/92 6029347 Nome String(16) UTF-8 No No Verdi Luigi 03/03/93 6459382 Data di Nascita gg-mmaa ASCII Yes No INT(7) ASCII No No Matricola Sistemi di Elaborazione delle Informazioni A.A. 2016/17 14 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Relazioni tra Tabelle Studenti Cognome Esami Nome Data di Nascita Matricola Matricola Studente Voto Lode Codice Modulo Rossi Mario 01/01/91 5876410 6459382 28 NULL B019874 Bianchi Anna 02/02/92 6029347 5876410 30 Yes B019874 Verdi Luigi 03/03/93 6459382 6029347 26 NULL B019872 Docenti Moduli Codice B019874 Titolo Sistemi di Elaborazione delle Informazioni Docente Insegnamento Gianni Pantaleo B019867 […] […] […] […] B019872 Igiene Generale Applicata NULL B019867 Cognome Nome Codice Fiscale Cineca ID Pantaleo Gianni XXXXXX 113774 Rasero Laura YYYYYY 89727 Nesi Paolo ZZZZZZ 83324 Insegnamenti Codice Titolo Docente B019867 Metodologia della Ricerca Applicata Laura Rasero B003734 Sistemi Distribuiti […] […] Paolo Nesi […] Le informazioni contenute in tabelle diverse dello stesso database sono spesso correlate. Le chiavi esterne esprimono un vincolo di integrità referenziale tra due o più tabelle. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 15 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Il Linguaggio SQL SQL (Structured Query Language) è un linguaggio standard per la definizione e la manipolazione dei dati di DBMS relazionali. Originariamente sviluppato presso il laboratorio IBM a San Jose (California) nel 1974, è diventato standard ufficiale nel 1986. L’ultimo standard è SQL:1999 (noto anche come SQL3). Tra i più diffusi DBMS relazionali che utilizzano il linguaggio SQL: • • • • • MySQL Oracle Informix PostgreSQL Microsoft SQLServer Permette di creare, eliminare e modificare tabelle; inserire, modificare, eliminare e cercare dati; può essere inoltre utilizzato anche da programmi esterni al DBMS. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 16 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Cenni di Sintassi SQL SQL contiene i linguaggi che descrivono tutti i livelli di astrazione di un DBMS. Le principali funzionalità (essenzialmente la definizione e la manipolazione delle tabelle di record) sono espletate dai moduli di Data Definition Language (DDL) e Data Manipulation Language (DML). Con il termine «query» non si intende soltanto una generica interrogazione a un database, ma un’istruzione SQL, anche complessa, con cui si possono produrre diverse azioni, tra cui: • • • • recuperare informazioni dal database; modificare record esistenti; aggiungere record a una tabella esistente; creare tabelle nuove o modificarne di esistenti. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Creazione, Uso ed Eliminazione di Un Database La creazione di un database si esegue con il comando CREATE DATABASE: CREATE DATABASE [db_name]; Esempio: CREATE DATABASE AnagraficaStudenti; La prima volta dopo la creazione, ed ogni volta che si vogliono eseguire operazioni sul database appena creato, si deve specificare l’intenzione di utilizzo di quest’ultimo con la direttiva USE [db_name]; USE AnangraficaStudenti; L’eliminazione di un database si esegue con il comando DROP DATABASE: DROP DATABASE [db_name]; Sistemi di Elaborazione delle Informazioni A.A. 2016/17 18 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Creazione, Eliminazione e Svuotamento di Una Tabella La creazione di una tabella si esegue con il comando CREATE TABLE: CREATE TABLE Studente CREATE TABLE [table_name] ( ( NumMatricola int(11), [column_name1] [data_type(size)], Cognome varchar(255), [column_name2] [data_type(size)], Nome varchar(255), [column_name3] [data_type(size)], DataNascita date, .... ); ); Il tipo varchar(255) identifica una stringa di 256 caratteri. CREATE TABLE Studente ( NumMatricola NOT NULL PRIMARY KEY int(11), Cognome NOT NULL varchar(255), Nome NOT NULL varchar(255), DataNascita DEFAULT NULL varchar(255), ); Per eliminare completamente la tabella (dati e schema): DROP Per svuotare la tabella senza eliminare lo schema: TRUNCATE Sistemi di Elaborazione delle Informazioni A.A. 2016/17 TABLE Studenti; TABLE Studenti; 19 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modifica dello Schema di Una Tabella Comando base per modificare la schema di una tabella: ALTER TABLE: Per aggiungere una colonna aggiungere la direttiva ADD COLUMN [column_name]: ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type(size)]; ALTER TABLE Studenti ADD COLUMN Indirizzo varchar(255); Per eliminare una colonna aggiungere la direttiva DROP COLUMN [column_name]: ALTER TABLE Studenti DROP COLUMN Indirizzo; Per modificare tipo di dati una colonna: ALTER TABLE [table_name] MODIFY COLUMN [column_name] [data_type]; ALTER TABLE Studenti MODIFY COLUMN Cognome varchar(31); Sistemi di Elaborazione delle Informazioni A.A. 2016/17 20 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modifica dei Record di Una Tabella (1 di 3) Per inserire un record si usa il comando INSERT INTO TABLE: INSERT INTO [table_name] ([column_name1], [column_name2], ...) VALUES ([value1 ], [value2], ...); Ogni formato di dato da inserire va racchiuso tra apici ' … ' INSERT INTO Studenti (NumMatricola, Cognome, Nome) VALUES ('5876410 ', ' Rossi ', ' Mario '); NumMatricola 5876410 Cognome Rossi Nome Mario DataNascita NULL Nella definizione dello schema della Tabella Studente, era stato definito l’attributo DEFAULT NULL per il campo DataNascita Sistemi di Elaborazione delle Informazioni A.A. 2016/17 21 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modifica dei Record di Una Tabella (2 di 3) Per modificare/aggiornare un record si usa il comando UPDATE: UPDATE [table_name] SET [column_name1] = [value1], [column_name2] = [value2],... WHERE [una_certa_Colonna] = [un_certo_valore] AND|OR [una_altra_certa_Colonna] = [un_altro_certo_valore]; Espressione condizionale per la presenza del costrutto WHERE e degli operatori logici AND e OR UPDATE Studenti SET DataNascita = '1991-01-01' WHERE Cognome= ' Rossi ' AND Nome=' Mario '; NumMatricola Cognome 5876410 Rossi Nome Mario DataNascita 1991-01-01 Attenzione! Se si omette la clausola WHERE verranno modificati tutti i record! UPDATE Studenti SET DataNascita = '1991-01-01' WHERE NumMatricola = ' 5876410'; Questa direttiva alternativa produce lo stesso risultato, ma elimina i rischi di ambiguità, usando nella espressione condizionale una PRIMARY KEY ! Sistemi di Elaborazione delle Informazioni A.A. 2016/17 22 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Modifica dei Record di Una Tabella (3 di 3) Per eliminare uno o più record si usa il comando DELETE: DELETE FROM [table_name] WHERE [una_certa_Colonna] = [un_certo_valore] AND|OR [una_altra_certa_Colonna] = [un_altro_certo_valore]; DELETE FROM Studenti WHERE DataNascita IS NULL; Per eliminare tutte le righe da una tabella (ovvero tutti i record, il che equivale allo svuotamento della tabella), in alternativa al comando TRUNCATE TABLE, si può eseguire il comando DELETE con la seguente sintassi: DELETE FROM [table_name]; Sistemi di Elaborazione delle Informazioni A.A. 2016/17 23 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Definizioni e Rappresentazioni Ricerche all’Interno di Una Tabella Per eseguire ricerche all’interno di una tabella si usa il comando SELECT: SELECT [column_name1], [column_name2], ... FROM [table_name] WHERE [una_certa_Colonna] = [un_certo_valore] AND|OR ... ORDER BY [column_name1] ASC|DESC; Esami NumMatricola Voto Lode CodModulo 6459382 28 NULL B019874 5876410 30 Yes B019874 6029347 26 NULL B019872 Q:> SELECT NumMatricola FROM Esami WHERE Voto > 28 AND CodModulo = 'B019874'; A:> 5876410 Per selezionare TUTTI i campi di un record, si usa il comando SELECT e il carattere speciale * per specificare la selezione di TUTTE le colonne: Q:>SELECT * FROM Studenti WHERE CodModulo = 'B019874' ORDER BY Voto DESC; A:> 5876410 6459382 30 28 Yes NULL B019874 B019874 Sistemi di Elaborazione delle Informazioni A.A. 2016/17 24 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ Sistemi di Elaborazione delle Informazioni – A.A. 2013/14 Sistemi di Elaborazione delle Informazioni 1. Introduzione • • 2. Sistemi di Elaborazione dell’Informazione • • 3. Definizioni e Rappresentazioni Modelli di Rappresentazione della Conoscenza Sistemi ICT in Ambito Medico Sanitario • • • 5. Informatica e Architettura dei Calcolatori Reti di Calcolatori e Tecnologie ICT Basi di Dati • • 4. Definizione di «Informazione» Segnali e Codifica dell’Informazione Sistemi Informativi Sanitari Health Techgnology Assessment Direttive IVD - Sistemi Diagnostici in Vitro Esercitazioni Pratiche • Utilizzo di Sistemi di Gestione Dati e Database Sistemi di Elaborazione delle Informazioni A.A. 2016/17 25 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza La Piramide della Conoscenza - Conoscenza Conoscenza Sistemi di Elaborazione delle Informazioni A.A. 2016/17 26 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Il Modello Entità-Relazione E/R Il modello Entità-Relazione è un modello concettuale. I modelli concettuali permettono di rappresentare i dati in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale. I modelli concettuali sono utilizzati nelle fasi di progettazione di un DBMS. Il modello Entità-Relazione si basa su tre elementi: • Le Entità • Le Relazioni (o Associazioni) • Gli Attributi Sistemi di Elaborazione delle Informazioni A.A. 2016/17 27 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Le Entità Un‘Entità rappresenta una classe di oggetti concreti del mondo reale (e.g., persone, oggetti, luoghi ecc., o anche astratti, che abbiano proprietà comuni, ed esistenza autonoma. Un tipo di Entità viene di solito definito attraverso un nome e lo si rappresenta graficamente con un rettangolo. Un oggetto specifico appartenente ad una Entità viene definito Istanza di quell’Entità. • Mario Rossi Studente • Anna Bianchi • Luigi Verdi • Xxxx Yyyy o Mario Rossi o Luigi o o Verdi o o Anna Studenti Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Bianchi 28 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Gli Attributi Gli Attributi descrivono le proprietà delle Entità. Gli Attributi sono caratterizzati da i seguenti parametri: • • • Formato: indica il formato dell’attributo (numero, stringa, formati data gg-mm-aaaa ecc.). Dimensione: specifica il range entro cui varia l’attributo (a seconda del formato), e di conseguenza il numero di caratteri o cifre per rappresentarlo. Opzionalità: indica se la sua presenza è necessaria oppure facoltativa. Studente - Cognome - Nome - N° Matricola Attributo Formato Dimensione Opzionalità Cognome Stringa String(16) Opzionale Nome Stringa String(16) Opzionale Matricola Numero INT(7) Necessario Sistemi di Elaborazione delle Informazioni A.A. 2016/17 29 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Le Relazioni (1 di 3) Una Relazione è il legame che definisce un’interazione tra due Entità. Studente (1,n) Frequenta (0,k) Modulo Ogni Relazione può avere uno o due versi di percorrenza, a seconda che esista e sia definita o meno la sua Relazione Inversa. Per ogni verso di percorrenza si ha un’Entità di partenza e un’Entità di arrivo. Ogni Relazione è anche identificata da una cardinalità minima e massima. Le Relazioni permettono di esplicitare i collegamenti logici esistenti fra le varie Entità. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 30 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Le Relazioni (2 di 3) – Cardinalità Cardinalità Uno-A-Uno: Studente (1,1) Ha (1,1) Matricola Cardinalità Uno-A-Molti o Molti-A-Uno: Studente (1,1) Afferisce (1,n) Corso di Laurea Relazione Molti-A-Molti : Studente (1,n) Frequenta (0,k) Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Modulo 31 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Le Relazioni (3 di 3) Se un’entità rappresenta una classe di oggetti del mondo reale, è possibile che essa debba essere «specializzata» o «generalizzata» in diversi contesti. Insegnamento (1,n) (1,1) Contiene Modulo Le Relazioni di generalizzazione e specificazione tra Entità richiama un parallelo con la proprietà insiemistica dell’Inclusione, e anche con il concetto di Ereditarietà nella programmazione ad oggetti (Superclass e Subclass). Insegnamento B019867 Modulo 19872 Modulo 19874 Modulo 19873 Modulo 19880 Sistemi di Elaborazione delle Informazioni A.A. 2016/17 32 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Un Esempio Studente (1,n) Frequenta (0,k) - Cognome - Nome - N° Matricola Modulo - Titolo - ID - Durata Sistemi di Elaborazione delle Informazioni A.A. 2016/17 33 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Un Esempio Studente - Cognome: ROSSI (1,n) Frequenta (0,k) Modulo - Nome: MARIO - Titolo: SISTEMI DI ELABORAZIONE DELL INFORMAZIONI - N° Matricola: 5876410 - ID: B019874 - Durata: 24 ore Sistemi di Elaborazione delle Informazioni A.A. 2016/17 34 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Linguaggi per Rappresentare la Conoscenza: XML XML (eXtensible Markup Language) è un meta-linguaggio che consente la creazione di linguaggi di mark-up (come HTML). XML consente la rappresentazione di documenti e dati strutturati su supporto digitale. XML è uno dei più potenti e versatili sistemi per la creazione, archiviazione, preservazione e disseminazione di documenti digitali. XML è indipendente dal tipo di piattaforma hardware e software su cui viene utilizzato. XML è indipendente dai dispositivi di archiviazione e visualizzazione: • un documento XML può essere archiviato su qualsiasi tipo di supporto digitale; • un documento XML può essere visualizzato su qualsiasi dispositivo di output; Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo, secondo regole sintattiche ben definite. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 35 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Esempio di Documento XML <?xml version="1.0" ?> <articolo titolo="Titolo dell'articolo"> <paragrafo titolo="Titolo del primo paragrafo"> <testo> Blocco di testo del primo paragrafo </testo> <immagine file="immagine1.jpg"></immagine> </paragrafo> Articolo titolo titolo <paragrafo titolo="Titolo del secondo paragrafo"> <testo> Blocco di testo del secondo paragrafo Paragrafo </testo> <codice> [Esempio di codice del Programma] </codice> <testo> Testo Altro blocco di testo </testo> </paragrafo> <paragrafo tipo="bibliografia"> <testo> Riferimento ad un articolo </testo> </paragrafo> titolo Immagine Paragrafo Testo titolo Programma applicativo Paragrafo Testo file </articolo> Sistemi di Elaborazione delle Informazioni A.A. 2016/17 36 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Applicazioni di XML: il Web Semantico «Semantic Web» è un termine coniato da Tim Berners-Lee: “Ho un sogno per il Web [in cui i computer] diventeranno capaci di analizzare tutti i dati sul Web - il contenuto, i link e le interazioni tra persone e macchine. Un Web Semantico, che dovrebbe rendere questo possibile, deve ancora emergere, ma quando succederà, i quotidiani meccanismi del commercio, della burocrazia e la nostra vita quotidiana saranno affidati a macchine che comunicano con altre macchine. Gli "agenti intelligenti" che sono stati per anni propagandati, finalmente si materializzeranno.” Tim Berners Lee, 1999 Estende l’attuale World Wide Web da machine-rapresentable a machine-understandable. Non lo sostituisce… ma lo migliora associando informazioni di carattere semantico alle risorse della rete. Il Semantic Web è una ragnatela di informazioni connesse tramite relazioni semantiche. Logiche di connessione più elaborate rispetto ai collegamenti ipertestuali di HTML. L’idea è di generare dei documenti che possano essere letti al tempo stesso da esseri umani e da agenti automatici. Massiccio utilizzo di linguaggi e grammatiche XML per rendere il formato machine-readable. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 37 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Limiti del linguaggio XML Nell’ambito del Web Semantico, le applicazioni devono essere in grado di interagire ed essere interoperabili tra di loro. Questo richiede uniformità di linguaggio e/o di regole. Le tecnologie basate su XML sono necessarie ma non sufficienti: infatti XML codifica e standardizza la sintassi dei dati ma non la loro semantica. Ad esempio, due documenti XML possono contenere le seguenti stringhe: "<spesa>85</spesa>" "<costo>85</costo>" Una applicazione informatica non può sapere che si tratta di due diverse codifiche della stessa informazione, a meno che non sia disponibile la conoscenza del fatto che “prezzo” e “costo” sono sinonimi (conoscenza terminologica), almeno nel contesto dell’applicazione in esame. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 38 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Il Linguaggio RDF Il linguaggio RDF (Resource Description Language), basato su XML, è stato introdotto per permettere l’interoperabilità tra applicazioni. RDF permette infatti di associare ai dati informazione di vario genere. Questo modello si basa su tre tipi di oggetto: Risorsa: indica ciò che viene descritto (pagina web, HTML, documento XML, oggetti reali); Proprietà: indica un attributo o una relazione utilizzata per descrivere una risorsa; Asserzione: espressione completa che descrive una risorsa; formata da una tripla: <soggetto> <predicato> <oggetto> Il soggetto è una risorsa, il predicato una proprietà della risorsa, e l’oggetto un valore relativo alla proprietà (può essere a sua volta una risorsa o un altro tipo di dato definito in XML. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 39 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Esempio di Ontologia Web: L’Ontologia di OSIM OSIM (Open Space Innovative Mind) è un sistema di produzione e gestione della conoscenza dell’Ateneo Fiorentino, implementata dal DISIT Lab nell’ambito di un progetto di sviluppo di una piattaforma di connessione tra Università di Firenze e piccole e medie imprese della Regione Toscana. Il progetto OSIM ha come obiettivo la realizzazione di un portale in cui le industrie, ma anche altri soggetti come ricercatori e studenti, possono ricercare (attraverso query full-text o assistite con l’ausilio di un Query Wizard dedicato) risorse e competenze in termini di: personale ricercatore e docente, dipartimenti e gruppi di ricerca, pubblicazioni e corsi appartenenti alla vasta base di conoscenza dell’Università di Firenze. In particolare: • Le competenze possedute dai gruppi di ricerca, dai laboratori e dal personale universitario. • Le competenze offerte da corsi specifici nell’ambito dei vari corsi di laurea. • Le relazioni esistenti tra competenze diverse. • Le pubblicazioni scientifiche. • Le relazioni di conoscenza tra docenti. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 43 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Architettura di OSIM Data store web pages documents Crawler Keywords Ingestion Manager Multilanguage Engine Semantic Knowledge Knowledge Base Manager Competences Semantic Relations Keyword Manager SKOS Manager Access manager Query Wizard Publications Browser Sistemi di Elaborazione delle Informazioni A.A. 2016/17 44 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Architettura di OSIM Pagina Personale del Docente Curriculum Vitae, Biografia ecc… Didattica, Insegnamenti, Corsi Pubblicazioni Sistemi di Elaborazione delle Informazioni A.A. 2016/17 45 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Architettura di OSIM Sistemi di Elaborazione delle Informazioni A.A. 2016/17 46 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Architettura di OSIM Sistemi di Elaborazione delle Informazioni A.A. 2013/2014 47 OSIM – Frammento Ontologia di dominio Disributed Systems and uni:PhDStudent uni:ResearchFellowShip Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ Frammento di unifi ontology Relazioni gerarchiche Relazioni semantiche uni:hasCompetence uni:Researcher Frammento di FOAF 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza uni:AssociatedProfessor Esempio di Ontologia Web: L’Ontologia di OSIM uni:FullResearcher uni:Teacher uni:Professor foaf:Person foaf:Organization uni:affiliatedFaculty uni:Coordinator uni:hasSchoolingCourse uni:haAffineLivello1 uni:haAffineLivello2 uni:schoolingActivity uni:InterDepartmentArea uni:belongsToArea uni:schoolingHasCourse uni:Schooling uni:hasDepartment uni:Course uni:activeInYear uni:PhDGradutationCourse uni:Laboratory uni:Department uni:Master uni:hasLaboratory uni:Center uni:GraduationCourse uni:inSchoolingHasCourseAtTime uni:areaCunDi uni:Base uni:haAreaCun uni:SSD uni:CareerAtTime uni:toBeBasedTo uni:hasSchoolingCourseInstant uni:Faculty uni:AreaCUN uni:takeCourseAtTime uni:hasSchoolingCourseAtTime time:DurationDescription time:Instant Frammento di SKOS uni:inSchoolingHasCourseInstant uni:instantPerson Year, Week, Second, Month, Minute, Hour, Day, dayOfWeek, DayOfYear, timeZone time:inXSDDateTime time:inDateTime Frammento di Time Ontology skos:Occ Years, Months, Days, Weeks, Hours, Minutes, Seconds time:TemporalEntity xsd:dateTime skos:narrower skos:broader time:Interval time:TemporalUnity skos:Concept time:unitType time:DateTimeDescription blankNode skos:type uni:takeCourseInstant time:ProperInterval time:hasDateTimeInterval Sistemi di Elaborazione delle Informazioni time:DateTimeInterval A.A. 2013/2014 48 skos:ConceptSchema Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (1 di 7) Ricerca Full Text Ricerca Assistita Sistemi di Elaborazione delle Informazioni A.A. 2013/2014 49 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (2 di 7) “navighiamo” la conoscenza relativa al corso Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (3 di 7) Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (4 di 7) Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (5 di 7) Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM (6 di 7) Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Funzionalità di OSIM Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Mobile Emergency (1 di 3) Mobile Emergency è una soluzione, sviluppata dal DISIT Lab dell’Università di Firenze, per la gestione di interventi di manutenzione e gestione delle emergenze all’interno di ospedali e/o grandi aree tramite sistemi mobili. Permette di gestire le mappe di una struttura ospedaliera offrendo la possibilità di indicare e memorizzare la posizione dei Punti Di Interesse (PDI): estintori, kit medici, scale, uscite di sicurezza, strumenti, attrezzature. Grazie a questa mappatura, Mobile Emergency è in grado di aiutare il personale a raggiungere tali elementi navigando in modo efficiente all’interno della struttura. In particolare il sistema permette di identificare la posizione tramite barcode e GPS e di individuare la posizione di: uscite di sicurezza, aree di raccolta e i PDI presenti, con la possibilità di raggiungerli tramite la guida del sistema innovativo di navigazione indoor/outdoor. Mobile Emergency Pro consente agli utenti di: • segnalare tramite smartphone la presenza di un guasto/emergenza di un problema all’interno dell’edificio • richiedere supporto immediato • essere informati di eventuali cambiamenti ed eventi • essere guidati verso il luogo dell’intervento/emergenza. Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Mobile Emergency (2 di 3) Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Modelli di Rappresentazione della Conoscenza Mobile Emergency (3 di 3) Sistemi di Elaborazione delle Informazioni A.A. 2016/17 Disributed Systems and Internet Disributed Systems and Internet Technology Technology Lab - http://www.disit.org/ 3. Basi di Dati – Riferimenti e Link Utili Riferimenti e Link Utili P. Vittorini, «L’Informatica per la medicina e la sanità pubblica», Ed. L’Una, 2009 Slide delle lezioni di P. Vittorini (UnivAQ): http://www.med.univaq.it/vittorini/insegnamento.php?id=1 Documentazione W3C su XML: http://www.w3.org/XML Documentazione W3C su RDF: http://www.w3.org/RDF Documentazione W3C su OWL: http://www.w3.org/OWL OSIM – Open Space Innovative Mind (Disit Lab – UniFI): http://openmind.disit.org Mobile Emergency (Disit Lab – UniFI): http://www.disit.org/disitmn/mobemergency-flyer-v05-ok.pdf https://itunes.apple.com/app/mobile-emergency/id409326454?mt=8 Sistemi di Elaborazione delle Informazioni A.A. 2016/17