Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012 Programma incontri 1) Martedì 10 aprile, dalle 9:30 alle 11:00 Introduzione alle potenzialità di R 2) Giovedì 12 aprile, dalle 9:30 alle 11:00 Cenni sui dbms, sql e odbc. Utilizzo di database centralizzati con applicazioni office e applicazioni web. 3) Martedì 17 aprile, dalle 9:30 alle 11:00 Elementi di statistica descrittiva con R, distribuzioni di frequenza, import dei dati da fogli csv/excel, stampa di grafici. 4) Giovedì 19 aprile, dalle 9:30 alle 11:00 Estrazione dei dati archiviati su database, elaborazione e salvataggio risultati su db. Cenni sulla programmazione R. Il flusso dei dati Produzione dati (misurazione, campionamento, etc.) Archiviazione dati grezzi Validazione dei dati Elaborazione Archiviazione dati elaborati Reportistica Archiviazione dei dati • L'archiviazione dei dati può essere effettuata in varie modalità: – Trascrizione cartacea – File testuali (.dat, .txt, etc.) – Spreadsheet – Database non relazionali – RDBMS • Il metodo più efficace per l'archiviazione dei dati sono i RDMBS (prossima lezione) Dati grezzi • I dati grezzi sono tutti quelli generati dal processo di produzione dati. • Dati non filtrati e spesso non aggregati che possono contenere: – – – – Errori di misurazione Dati duplicati Dati rappresentati in modo differente (es. “AN”, “an”, “An”) Dati fuori sincronizzazione (con base tempo o geografica) • È importante conservare i dati grezzi Validazione dei dati • I dati grezzi vengono analizzati o elaborati per – Filtrare o evidenziare errori di campionatura (es. Teoria degli errori) – Aggregare e normalizzare i dati – Verificare esistenza duplicati • La validazione dei dati può essere effettuata con R • L'archiviazione dei dati validati avviene su database relazionale I (r)DBMS • • • • • • Data Base Management System Modello client/server Relazionali Commerciali vs gratuiti Centralizzati o distribuiti Replicati in modo asincrono o sincrono I database • Rappresentato i dbms come un insieme di scatole cinesi, i database sono i contenitori di dati di più alto livello. • Ciascun database può avere associato un distinto gruppo di utenti abilitato alle operazioni Tabelle • Le tabelle sono i contenitori di dati, e a loro volta sono contenute in un database. • Le tabelle sono strutturate in record (righe) e campi (colonne). • I campi contengono gli attributi di un record e possono essere dati di diversi tipi (testo, intero, reale, data, binario, etc.) • Le tabelle possono avere indici e vincoli (chiave primaria, campi non vuoti, etc.) • Più tabelle possono essere messe in relazione tra loro. Tabelle Tabelle Relazioni tra tabelle SQL: Structured Query Language • Linguaggio (semi) standardizzato per operare su DBMS • Linguaggio di alto livello • Ogni operazione sui database (dalla creazione di una tabella ad una interrogazione) è effettuata (o tradotta) in sql Applicazione pratica • Accesso al server rDBMS postgres • http://dev.an.ismar.cnr.it/phppgadmin/ (funziona solo da dentro l'istituto) • Username: corsoR • Password: 1234 Phppgadmin Creazione tabelle con sql CREATE TABLE table_name CREATE TABLE Persons ( ( column_name1 data_type, P_Id int, column_name2 data_type, LastName varchar(255), column_name3 data_type, FirstName varchar(255), .... Address varchar(255), ) City varchar(255) ) Esempi con phppgadmin • Creazione tabella • Inserimento dati • Modifica e cancellazione dati Cenni di SQL • Inserimento – insert into TABELLA values (n,m.n,'testo') • Interrogazione – select from TABELLA where condizione order by campo • Cancellazione – delete from TABELLA where condizione • Modifica – update TABELLA set campo=valore where condizione Niente panico! ODBC • Object DataBase Connectivity • Il gioco della staffetta: – Un programma (R, Excel, etc.) ha bisogno di un dato. Passa il testimone (la richiesta di dati) all'ODBC – ODBC, in base al tipo di database, utilizza un dizionario (driver) per colloquiare con il dbms e passa il testimone – Il dbms (che può essere fisicamente su altro computer) esegue la richiesta e inizia una staffetta (con i risultati) a marcia indietro ODBC: Modello E allora? • Abbiamo i dati su un dbms (diciamo server) • Ci servono dentro il programma cha gira sul nostro computer • Il nostro computer (purtroppo) usa windows HAI BISOGNO DI ODBC! (normalmente presente nell'installazione base di windows) Configurazione ODBC • Installiamo il driver postgres: ftp://ftp.postgresql.org/pub/odbc/versions/msi/ • Pannello di controllo → Strumenti di amministrazione → Origine dati http://support.microsoft.com/kb/305599 • DSN utente → Aggiungi – Postgresql driver Unicode (errore...) – Datasource: test, database: corsoR, server: dev.an.ismar.cnr.it, username: corsoR, password: 1234 – test! Utilizzo con Access • • • • • Crea nuovo db Tabelle → collega Tipo di file → origine dati odbc → orgine dati computer → test È possibile creare maschere, query e report partendo dai dati presenti sul server dbms! The end