Informazione e dati

Cosa sono i dati

Oggi si utilizza il termine dati (in inglese data, parola plurale) per indicare tutto ciò che viene elaborato dai sistemi informatici, tali dati vengono elaborati per aiutare persone e/o società a prendere decisioni. Ad esempio dati sulla temperatura atmosferica permettono di produrre previsioni atmosferiche, aggiustare la temperatura di casa, decidere se irrigare un campo. Indipendentemente dal suo utilizzo, il dato (in inglese il singolare di data è datum che però non viene mai utilizzato) rimane lo stesso, ad esempio 26°C (o 299,15 K).

Definizione

Un dato è un “fatto”, ovvero una misurazione di una quantità che può essere fisica (come temperatura, distanza, peso, …) o non fisica (commento, una nota musicale, un pixel, …).

Esempio

Vediamo alcuni esempi di dati, indicando quali quantità descrivono.

  • Temperatura atmosferica in una data località, la quantità (fisica) misurata è proprio la temperatura ad esempio attraverso termometri intelligenti oppure sensori collegati a dispositivi (esempio Arduino, Raspberry). Esempio JSON temperatura Venezia

  • Valore di mercato del bitcoin, la quantità (non fisica) misurata è il prezzo (in dollari) di un bitcoin. Esempio JSON valore bitcoin

  • Commenti ad un post su Instagram, la quantità (non fisica) misurata è il testo che uno specifico utente ha voluto associare ad un post.

  • Reazione ad un posto du Facebook, la quantità (non fisica) misurata è il tipo di “emozione” che un dato post suscita in un dato utente.

  • Battito cardiaco, la quantità (fisica) misurata è la frequenza con cui il cuore compie il proprio ciclo. Può essere misurato mediante sensori montati su smartwatch o mediante appositi elettrodi collegati al corpo.Documentazione API Fitbit

Esercizio: I dati della quotidianità

Nelle prossime 24 ore registra i dati che incontri nelle attività di tutti i giorni, puoi usare una App oppure un taccuino. Oltre al dato (il numero, il fatto, la frase, …) registra anche il luogo dove l’hai rilevato (ad esempio quale app) e se si tratta o meno di un dato personale. Per dato personale si intende un dato che ti riguarda direttamente, esempio di dati personali sono: la tua email, la tua data di nascita, la tua canzone preferita, …

Vediamo un esempio

App Instagram:  Storia del mio viaggio in Spagna,     Dato personale
App Instagram:  Storia del mio compagno in palestra,  Dato personale altrui
App Amazon:     Recensione Scarpe,                    Dato personale altrui
Fermata tram:   orario del T1,                        Dato non personale.

Informazione

L’informatica è la scienza dell’elaborazione automatica dell’informazione (come il termine stesso indica), quindi ha senso chiedersi cosa è l’informazione. A questa domanda ha fornito una risposta il matematico e ingegnere statunitense Claude Shannon (fot a destra, Fonte Wikipedia) quando nel 1949 ha pubblicato The mathematical theory of communication, un trattato in cui egli fornisce una definizione matematica del concetto di informazione.

L’idea di Shannon è abbastanza semplice, ma ha rivoluzionato lo studio dell’ingegneria dell’informazione in quanto si poteva trattare matematicamente tale concetto. In pratica l’informazione è qualcosa che ci elimina incertezza, ad esempio non sappiamo la temperatura esterna quindi siamo incerti sul suo valore (saranno 21 °C o 21,3 °C). Una volta che abbiamo il dato “Temperatura Esterna”, allora l’informazione che questo ci porta elimina l’incertezza. Sappiamo che di tutti i valori possibili, quello che ci è stato fornito dal sensore è quello misurato gli altri non sono più possibili valori. L’aspetto geniale della teoria di Shannon è che si può misurare la quantità di informazione che un dato fornisce, in pratica se eravamo incerti su tanti valori, allora l’informazione fornita dal valore specifico è alta, se invece eravamo incerti su pochi valori, allora l’informazione fornita è poca.

ClaudeShannon MFO3807

Entropia

Alla base della teoria sull’informazione di Shannon c’è il concetto matematico di entropia, questo concetto viene applicato ad una distribuzione di probabilità, per semplicità parleremo qui di distribuzioni discrete, ma la teoria di Shannon si applica anche alle variabili aleatori continue.

Come è noto la distribuzione discreta più semplice è quella che comprende due esiti possibili, solitamente si fa riferimento ad una moneta a due facce, una faccia marcata con il simbolo Testa, l’altra marcata con il simbolo Croce. Il caso che viene subito in mente è quello di una moneta non truccata (unbiased) in cui la probabilità che esca Testa è uguale alla probabilità che esca Croce, \(p_{Testa} = p_{Croce} = 1/2\) (queste due probabilità, ovviamente, sono entrambe \(1/2\))

Quando gli eventi sono più di due, anziché indicare dei nomi si possono numerare, perciò se abbiamo 5 eventi possiamo indicare con \(p_1,p_2,\ldots p_5 \) le loro rispettive probabilità. Ad esempio un dado a sei facce che non sia truccato avremo 6 probabilità (una per faccia) \(p_1, \ldots p_6\) e tutte avranno lo stesso valore \(p_i=1/6\).

Prima di osservare un evento aleatorio (es. prima di scoprire la faccia che è uscita dopo il lancio della moneta), abbiamo incertezza su quello che potrebbe essere l’esito, quando ci viene comunicato tale esito, allora acquisiamo dell’informazione, quanta? Shannon sostiene che se osserviamo l’esito \(i\) che ha probabilità \(p_i\), allora l’informazione che abbiamo da questa osservazione è

$$ \textrm{Informazione} = - \log_2{p_i} $$

Come tutte le grandezze, anche l’informazione deve avere un’unità di misura, con la formula che abbiamo appena visto, l’unità di misura dell’informazione è il bit.

Una volta definito questo concetto di informazione, ci si può chiedere quale è l’informazione media che ottengo da un esperimento aleatorio, questa quantità si chiama entropia (entropy) ed ha un ruolo fondamentale nell’ingegneria dell’informazione. L’entropia, generalmente indicata con \(H\) per una variabile aleatoria con \(n\) possibili esiti e con probabilità \(p_1,p_2,\ldots,p_n\) si ottiene nel seguente modo

$$ H = -(p_1\log_2{p_1} + p_2\log_2{p_2} \ldots + p_n \log_2{p_n})= - \sum_{i=1}^{n}{p_i \log_2{p_i}} $$

Si vede proprio che l’entropia \(H\) è il valore atteso dell’informazione rispetto alla distribuzione di probabilità \(p_1,p_2,\ldots,p_n\).

Attenzione

Quando si deve calcolare l’entropia secondo la formula sopra, si deve stare attenti ai casi in cui \(p_i=1\) in quanto il logaritmo di zero non è definito. Unicamente per il calcolo di tale quantità, si stabilisce che $$ 0\log_2{0} = 0 $$

Esempio

Vediamo alcuni esempi di calcolo dell’entropia per variabili aleatorie semplici.

  • Moneta non truccata: \(n=2\) (Testa e Croce), \(p_1=p_2=1/2\) $$ H = -\left(\frac{1}{2}\log_2{\frac{1}{2}} +\frac{1}{2}\log_2{\frac{1}{2}} \right) = -\left(-\frac{1}{2}-\frac{1}{2}\right) = 1 \ bit$$
  • Dado con 6 facce non truccato: \(n=6\), \(p_i=1/6\) (nella moneta avevamo due termini uguali qui ne avremo 6) $$ H = -6\left(\frac{1}{6}\log_2{\frac{1}{6}}\right) = -\log_2{\frac{1}{6}} = 2,585 \ bit$$
  • Moneta truccata con probabilità di testa pari a \(p_1=2/3\) e probabilità di croce pari a \(p_2=1/3\) $$ H = -\left(\frac{2}{3}\log_2{\frac{2}{3}} +\frac{1}{3}\log_2{\frac{1}{3}} \right) = 0,918 \ bit$$

Dati e computer

Il concetto di informazione descritto sopra è un concetto astratto nel senso che non descrive nulla di “fisico”. Di fatto l’informazione non è una cosa fisica, tuttavia viene mantenuta (scritta e letta) in supporti fisici. Per esempio i giornali cartacei sono dei supporti fisici per le notizie del giorno, mentre altri supporti quali i vinili contengono informazione sonora.

In un computer moderno, il supporto fisico può essere di vario tipo (ad esempio transistor o supporti magnetizzati). Quello che permette l’utilizzo di supporti diversi è il fatto che questi devono “solamente” memorizzate bit (valori binari 0 o 1, Alto o Basso, Positivo o Negativo, …). D’altra parte un’informazione che si voglia memorizzare in un computer, deve poter essere tradotta in una sequenza di bit altrimenti non si possono usare i supporti di memorizzazione presenti in un computer. La digitalizzazione è l’operazione che porta in formato digitale (cioè in numeri, digit, che poi possiamo tradurre in binary digit) l’informazione.

Riassumendo:

  • I computer sono in grado di elaborare bit utilizzando diversi supporti fisici;
  • L’informazione deve essere digitalizzata affinché sia possibile elaborarla con un PC;

Esempi di digitalizzazione

Vediamo alcuni esempi di digitalizzazione di informazione.

Testo Il testo in una lingua naturale (es. italiano, inglese, giapponese, …) può essere visto come una sequenza di carattere uno dopo l’altro. Ad esempio, la parola casa è composta dai caratteri c, a, s, a; la parola home dai caratteri h, o, m, e e la parola (casa in giapponese, secondo Google traduttore) dall’unico ideogramma .

Anche all’interno di un computer un testo è rappresentato con una sequenza di caratteri solo che ogni carattere è a sua volta rappresentato da una sequenza di bit secondo una specifica codifica. Le due codifiche più utilizzate oggi sono ASCII (7 o 8 bit se si usa extended ASCII) e Unicode (che contiene ASCII). Ad esempio il carattere c (minuscolo) in ASCII è rappresentato dagli 8 bit 01100011, allo stesso modo altri caratteri hanno una codifica in bit e la parola casa è codificata dai seguenti 32 bit (8 bit per ognuno dei caratteri)

01100011 01100001 01110011 01100001

La codifica Unicode, che contiene la codifica ASCII, rappresenta i caratteri con un numero di bit variabile (a differenza di ASCII che usa sempre 8 bit) è può rappresentare milioni di caratteri (ASCII invece ne rappresenta solo 256) permettendo di avere tutti gli alfabeti del mondo (latino, arabo, cinese, giapponese, …) e molto altro. Il codice Unicode per l’ideogramma giapponese è 5BB6 esadecimale che corrisponde ai seguenti bit

0101 1011 1011 0110

Attenzione

È importante sapere quale codifica si stia utilizzando, infatti i 16 bit che indicano l’ideogramma secondo la codifica Unicode diventerebbero i due caratteri [ e se interpretati secondo la codifica ASCII (consulta questa pagina per vedere la traduzione).

Immagine Per rappresentare un’immagine si usano i cosiddetti pixel, piccoli punti (in realtà quadrati microscopici) colorati. Ad esempio un’immagine con 50 Megapixel, è composta di circa 50 milioni di puntini colorati. Organizzando questi punti in righe e colonne si ottiene un’immagine digitale.

Per rappresentare sotto forma di bit un’immagine basta rappresentare “uno dopo l’altro” i pixel. Ad esempio partendo dalla prima riga, poi la seconda e così via, si “elencano” i pixel (primo pixel della prima riga, secondo pixel della seconda riga, …). Rimane quindi il problema di rappresentare con dei bit il colore di un pixel. Lo standard di rappresentazione dei colori è tramite la terna RGB (sigla che indica Red, Green, Blue) dando un’intensità per ognuno di dei tre colori fondamentali: rosso, verde e blu. Tale intensità viene rappresentata tramite numeri da 0 (assenza completa del color) a 255 (saturazione massima del colore). Dal momento che per rappresentare numeri da 0 a 255 servono 8 bit, ogni terna RGB viene rappresentato da 3 gruppi di 8 bit per un totale di 24 bit.

Esempio

Il rosso più luminoso è rappresentato da i valori (255,0,0) in decimale che diventano

11111111 00000000 00000000

in binario. Il bianco è rappresentato dalla massima presenza di tutti i colori

11111111 11111111 11111111

mentre il nero dall’assenza di qualsiasi colore

00000000 00000000 00000000

Un’immagine quindi è composta da tanti gruppi di 24 bit quanti sono i pixel dell’immagine stessa (ad esempio 24 milioni di bit per immagini ad 1 Megapixel). Questa rappresentazione viene chiamata raster perché descrive esattamente i pixel dell’immagine (ad esempio i formati bmp e tiff sono formati raster). Spesso, per evitare eccessivo utilizzo di spazio e/o banda, le immagini vengono memorizzate e scambiate in formato lossy (cioè con perdita di informazione). Ad esempio il formato jpeg è un formato lossy molto diffuso che comprime le informazione a scapito della qualità.

Sistema informativo

Il sistema informativo aziendale è l’insieme di tutti gli elementi informatici e non che permettono di gestire l’informazione (i dati) all’interno di un’azienda.

Parte del sistema informativo è il sistema informatico che comprende.

  • I server in cui risiedono i dati e i software necessari alla lora gestione.
  • I software necessari alla gestione dei dati.
  • L’infrastruttura di rete che permette di accedere ai dati.
  • Sistemi hardware e/o software per la messa in sicurezza e la preservazione dei dati.

Server

Il sistema informativo comprende diversi server cioè macchine con adeguati hardware e software per ospitare i dati aziendali. Tali server devono essere opportunamente montati in modo da garantire:

  • affidabilità in termini di velocità di accesso all’informazione e in termini di memorizzazione (i dati non devono essere persi).
  • sicurezza in modo che i dati non possano essere visti da chi non è autorizzato oppure che non possano essere soggetti di attacchi (ad esempio ransomware).

Software per gestione e DBMS

Per gestire dati, anche di piccole dimensioni, è opportuno utilizzare software adeguati e progettati proprio per tale scopo. Nella pressoché totalità delle situazioni, la gestione dei dati prevede l’utilizzo di uno o più database (base di dati). La gestione dei database è un campo estremamente importante dell’informatica e i software progettati per tale scopo sono chiamati Database Management Systems (DBMS).

Rete e sicurezza

Oggi tutti i dati sono in linea (online) cioè sono accessibili da postazioni diverse da quelle in cui essi sono “fisicamente” memorizzati. Inoltre, è normale che diversi utenti accedano contemporaneamente ai dati (sia per leggere sia per scrivere). Di conseguenza un software (esempio DBMS) di gestione dei dati è in esecuzione su server che sono connessi alla rete aziendale o addirittura alla rete pubblica Internet. Per garantire che i dati rimangano accessibili solo da utenti autorizzati, l’intera infrastruttura di rete e tutto il software utilizzato devono essere opportunamente gestiti.

Domande e Esercizi

Domande

  • Osserva una “pagina” del tuo social media preferito. Quali sono, secondo te, i dati che devono essere mantenuti da chi gestisce il social media? (Esempi: foto profilo, post, …) Per ognuno di questi indica il dominio più appropriato.

Esercizi

  • Utilizzando un linguaggio di programmazione a scelta, scrivi un programma che memorizza dati relativi ad un profilo social (utilizza le risposte alla domanda precedente). Predisponi un programma di test che crei diversi profili (ad esempio 5 profili distinti) e che mostri i dati a video.

  • Con i dati memorizzati al punto precedente, scrivi un programma che legge e scrive su file una sequenza di tali dati.

  • Michele Schimd © 2024
  • Ultimo aggiornamento: 17/02/2024
  • Materiale di studio e di esercizio per gli alunni dello Zuccante.

Creative Commons License