La rappresentazione dei dati per le scienze umane Cazzaniga Paolo Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it
Outline 1 La codifica dell informazione 2 3
Outline La codifica dell informazione 1 La codifica dell informazione 2 3
Codifica dell informazione Trattare l informazione: rappresentare i dati su un supporto fisico con sequenze di simboli che codificano l informazione il supporto fisico viene sottoposto a una trasformazione che modifica i dati i dati ottenuti vengono decodificati generando nuova informazione
Codifica dell informazione Perché nei calcolatori tutte le informazioni sono codificate in binario? I calcolatori moderni: dispongono di supporti fisici bistabili: memoria centrale (RAM) memoria di massa (disco fisso) possono rappresentare le informazioni tramite bit qualsiasi tipo di informazione è codificato con sequenze di 0 e 1: numerica testuale grafica sonora
Codifica dell informazione Esiste un area di ricerca della Information and Communication Technology che ha come obiettivi principali: definire tecniche per codificare secondo il sistema binario nuovi tipi di informazione (rendendoli quindi trattabili dai calcolatori) definire tecniche di codifica efficienti minimizzare il numero di simboli utilizzati diminuire la dimensione dell informazione (maggiore quantità di dati memorizzati e maggiore velocità di trasmissione) definire tecniche di codifica efficaci rendere l informazione più semplice da trattare da parte di algoritmi (e programmi)
Le rappresentazioni non posizionali Il sistema di numerazione romano sistema additivo è composto da un insieme di simboli letterari a cui viene associato un valore numerico un numero è rappresentato da una sequenza di simboli letterari il valore di un numero è dato dalla somma dei valori corrispondenti ai simboli della sequenza Il numero romano VIII, composto dai simboli V (=5) e I (=1), rappresenta il numero decimale 8 = 5 + 1 + 1 + 1
Le rappresentazioni non posizionali Nel Medioevo è stata introdotta una notazione più compatta alfabeto: I, V, X, L, C, D, M i valori corrispondenti sono: 1, 5, 10, 50, 100, 500, 1000 i simboli I, X, C, M possono essere ripetuti fino a 3 volte consecutive (VIII) i simboli V L D non possono essere ripetuti in sequenza i simboli scritti in ordine decrescente vengono valutati sommando il loro valore se una coppia di simboli è scritta in ordine crescente, il valore del primo viene sottratto dal secondo una barra sopra un simbolo ne moltiplica il valore per mille due barre laterali e una sopra un simbolo indicano che il suo valore è moltiplicato per 100.000
Esempi di numeri romani XXVII = 10 + 10 + 5 + 1 + 1 = 27 MMVIII = 1000 + 1000 + 5 + 1 + 1 + 1 = 2008 IV = 5-1 = 4 MCMXCIX = 1000 + (1000-100) + (100-10) + (10-1) = 1999
La notazione posizionale decimale la cardinalità dell alfabeto utilizzato è 10 i simboli sono le cifre: 0,1,2,3,4,5,6,7,8,9 L aggettivo posizionale indica che ogni cifra assume un diverso ruolo a seconda della posizione in cui si trova in un numero naturale si hanno (partendo da destra): unità, decine, centinaia, migliaia,... ogni cifra è moltiplicata per una potenza di 10 (partendo da destra): 10 0, 10 1, 10 2,... 10 è la base del nostro sistema di rappresentazione numerica posizionale.
La rappresentazione posizionale decimale Il numero 7529 è definito da 7 migliaia, 5 centinaia, 2 decine, 9 unità o in maniera equivalente: 7529 = 7 10 3 + 5 10 2 + 2 10 1 + 9 10 0 Con 4 cifre si possono esprimere 10 4 numeri naturali: {0,..., 9999} ovvero {0,..., 10 4 1}...e con n cifre? 10 n numeri {0,..., 10 n 1} Utilizzando il separatore decimale (la virgola, ) si possono rappresentare i sottomultipli delle unità (decimi, centesimi, millesimi) Il numero 36,482 equivale al somma di 3 decine, 6 unità, 4 decimi, 8 centesimi, 2 millesimi
I sistemi posizionali non decimali Scegliendo un qualsiasi numero b > 1 è possibile rappresentare qualsiasi numero con notazione posizionale in base b, scegliendo b cifre da moltiplicare per le potenze di b Con n cifre in base b si possono rappresentare b n numeri naturali {0,..., b n 1} Quando si indicano numeri in una base diversa da 10 è necessario specificare la base usata: 1434 8 è ottale 1434 5 è in base 5 1434 è decimale
I sistemi posizionali non decimali E ovvio che la stessa sequenza di cifre in basi diverse indica numeri diversi 1434 8 = 1 8 3 + 4 8 2 + 3 8 1 + 4 8 0 = 796 Anche la pronuncia dei numeri cambia 1434 = millequattrocentotrentaquattro 1434 8 = ottale: uno, quattro, tre, quattro Il sistema esadecimale (base 16, noto in ambito informatico) utilizza oltre alle cifre 0,..., 9 la lettera A per il 10, B per l undici,..., F per il 15 1B6F H = 1 16 3 + 11 16 2 + 6 16 1 + 15 16 0 = 7023
La codifica binaria E la codifica usata nei calcolatori Viene usata una notazione binaria posizionale, i bit 0 e 1 vengono moltiplicati per le potenze di 2 10010101 2 = 1 2 7 + 0 2 6 + 0 2 5 + 1 2 4 + +0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 149 Con n bit si possono esprimere 2 n numeri naturali (da 0 a 2 n 1) Con 8 bit, un byte, si possono esprimere 2 8 = 256 numeri naturali Con 4 bit, un nibble, si possono esprimere 2 4 = 16 numeri naturali
La codifica binaria Sappiamo come si trasforma un numero binario in decimale Come si fa la trasformazione inversa? Da decimale a binario al primo passo il dividendo è il numero da convertire si divide sempre per due ai passi successivi il dividendo è dato dal quoziente della divisione precedente il processo termina quando il dividendo è nullo al termine, la sequenza dei resti delle divisioni, trascritti in ordine inverso rispetto a come sono stati generati, costituisce il numero binario
La codifica binaria Ad esempio 149 corrisponde a 10010101 2 : 149/2 = 74 resto 1 74/2 = 37 resto 0 37/2 = 18 resto 1 18/2 = 9 resto 0 9/2 = 4 resto 1 4/2 = 2 resto 0 2/2 = 1 resto 0 1/2 = 0 resto 1
Codifica analogica e digitale Codifica analogica richiede l individuazione di una grandezza analoga ad ogni variazione della prima deve corrispondere una variazione della seconda Codifica digitale richiede l introduzione di un alfabeto di simboli richiede regole di codifica per associare una grandezza a una sequenza di simboli
Codifica analogica e digitale Esempio: rappresentazione della quantità di caramelle analogica: numero di sassolini corrispondente (diciotto sassolini per diciotto caramelle) digitale: notazione numerica decimale posizionale (la sequenza di simboli 18)
Codifica analogica e digitale Pro e Contro l approccio digitale è più compatto 18453 è meno ingombrante di diciottomilaquattrocentocinquantatre sassolini la codifica analogica contiene meta-informazioni ordinale: relazioni d ordine tra valori metrico: quantificare le differenze tra valori analogico tre sassolini rappresentano un valore maggiore di un sassolino togliendo tre sassolini da un mucchio di cinque ne restano due digitale senza regole di codifica non posso sapere chi è il maggiore tra 13 e 31 non posso sapere che la differenza tra 5 e 3 equivale a 2
Grandezze discrete e continue Grandezze discrete: valori appartenenti all insieme dei numeri naturali Grandezze continue: valori appartenenti all insieme dei numeri reali
Quantizzazione Se un valore continuo viene rappresentato con una codifica digitale allora è necessario discretizzarlo La rappresentazione discreta (a gradini) prevede un processo di quantizzazione, caratteristica intrinseca di tutte le codifiche digitali La quantizzazione prevede l individuazione di un numero finito di intervalli e tutti i diversi valori all interno dello stesso intervallo vengono rappresentati con la stessa sequenza di simboli Nella rappresentazione della temperatura fino ai decimi di grado le temperature 37,51 e 37,54 vengono rappresentate con la stessa sequenza di simboli 37,5
Campionamento Per rappresentare l andamento nel tempo di una grandezza continua, usando una codifica digitale, è necessario effettuare un campionamento Si divide l intervallo di osservazione del fenomeno in sottointervalli Il valore viene rilevato in un istante predefinito (ad es. all inizio del sottointervallo) La frequenza di campionamento è definita come numero di campioni per unità di tempo Una frequenza di 7Hz indica che ogni secondo vengono rilevati 7 campioni
Quantizzazione e campionamento: pro e contro La quantizzazione porta ad una approssimazione dei valori 37,51 e 37,54 37,5 Anche il campionamento porta ad una approssimazione 2 1.5 Quantita' 1 0.5 0 0 1 2 3 4 5 6 7 8 Tempo
Quantizzazione e campionamento: pro e contro La quantizzazione porta ad una approssimazione dei valori 37,51 e 37,54 37,5 Anche il campionamento porta ad una approssimazione 2 1.8 1.6 1.4 Quantita' 1.2 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 Tempo
La trasmissione dell informazione digitale La codifica digitale ha avuto grande successo grazie all avvento dei calcolatori I messaggi digitali sono più facili da trasmettere rispetto a quelli analogici Se la codifica è binaria, avendo solo 2 valori ammissibili, è facile capire se ci sono stati errori di trasmissione (scostamento dai valori 0 e 1 causati dal rumore) Per individuare gli errori, trasmettitore e ricevitore possono concordare meccanismi di ridondanza
Schemi di ripetizione Ogni bit viene trasmesso più volte: il messaggio viene scomposto in blocchi di bit (byte o nibble) ogni blocco viene ripetuto più volte Il messaggio binario 011011101100 può essere scomposto nei blocchi 0110 0111 1100 Il messaggio verrà inviato come segue: 0110 0110 0111 0111 1100 1100 Se viene ricevuta la sequenza 0110 0111 0111 0111 1000 1100 Vengono individuati 2 errori MA non possono essere corretti, quindi il messaggio deve essere inviato di nuovo
Controllo di parità Viene contato il numero di bit 1 presenti nei blocchi del messaggio se il blocco contiene un numero dispari di 1, viene aggiunto un bit di parità a 1 se il blocco contiene un numero pari di 1, viene aggiunto un bit di parità a 0 Per trasmettere il messaggio 0110111011001010, dopo ogni byte viene aggiunto il bit di parità 01101110 seguito da un bit di parità a 1 (perché il numero di bit a 1 nel byte è dispari) 11001010 seguito da un bit di parità a 0 (perché il numero di bit a 1 nel byte è pari) e gli errori di trasmissione? gli errori singoli vengono identificati, MA se cambiano 2 bit nello stesso byte, il messaggio risulta corretto. In ogni caso gli errori non possono essere corretti dal ricevente
L informazione non numerica Codice : sequenza di simboli impiegati per rappresentare sinteticamente oggetti del mondo reale numero di matricola (cifre decimali - lunghezza variabile) codice fiscale (alfanumerico - 16 caratteri) codice catastale (alfanumerico - 4 caratteri) partita IVA (11 cifre) codice ISBN International Standard Book Number (11 cifre) numero di telefono codice IBAN International Bank Account Number (alfanumerico - 27 caratteri)
L informazione non numerica La comunicazione di informazioni codificate è possibile solo se mittente e destinatario concordano il tipo di codifica Nei calcolatori tutti i codici sono costituiti da sequenze di bit Quante sequenze posso esprimere con n bit? 2 n Quanti bit servono per codificare i giorni della settimana? 3 bit 2 3 = 8 sequenze (una resta inutilizzata) lunedi = 000 martedi = 001 mercoledi = 010 giovedi = 011 venerdi = 100 sabato = 101 domenica = 110
Il testo La codifica del testo viene realizzata associando un codice binario ad ogni singolo carattere ASCII - American Standard Code for Information Interchange Ogni carattere è rappresentato da una sequenza di 7 bit E stato adottato dall ISO - International Organization for Standardization ASCII esteso usa una codifica a 8 bit ISO ha rilasciato diverse versioni di ASCII esteso ISO 8859-1 (detto Latin1) che contiene i caratteri dei linguaggi dell Europa occidentale ISO 8859-2 che contiene i caratteri dei linguaggi dell Europa orientale ISO 8859-5 che contiene i caratteri cirillici Unicode usa una codifica a 21 bit - 2 milioni di caratteri comprende ASCII esteso (Latin1), caratteri di lingue vive e morte, ideogrammi, Braille; simboli matematici, chimici, cartografici
Il testo E necessario distinguere i file memorizzati nella memoria del calcolatore a seconda del tipo di codifica utilizzato File txt (SO Windows) - contengono esclusivamente caratteri File doc (Microsoft Word o OpenOffice Writer) - contengono il testo e le informazioni sulla formattazione font allineamento dimensione delle pagine intestazioni e piè di pagina sommario...
Il testo File scritti con linguaggi di marcatura (markup language) HTML - pagine ipertestuali (in Internet costituiscono il World Wide Web) ODT e DOCX - documenti di testo basati su XML SBML Systems Biology Markup Language RTF (SO Windows) - sviluppato per supportare lo scambio di testo tra sistemi e applicazioni (contiene codici di controllo) PostScript - linguaggio di programmazione che consente di descrivere l impaginazione (diffuso in editoria) PDF (Portable Document Format) - sviluppato da Adobe System Incorporated è diventato standard ISO molto comune per la diffusione di documenti su Internet
Le immagini Metodi di campionamento sono utilizzati anche per la rappresentazione di immagini I dispositivi di acquisizione delle immagini effettuano una codifica campionando l immagine in una bitmap La bitmap è una matrice di pixel (picture element) Ogni pixel assume un colore specificato nella codifica La qualità dell immagine dipende dalla dimensione dei pixel grossi immagine sgranata piccoli immagine fedele all originale
Le immagini Anche i metodi di quantizzazione sono utilizzati anche per la rappresentazione di immagini La quantizzazione viene usata per rappresentare i colori La profondità di colore (color depth) è il numero di bit usato per rappresentare il colore dei pixel In un immagine monocromatica in bianco e nero il colore dei pixel viene codificato con un bit (0 nero, 1 bianco) In un immagine in tonalità di grigio si possono usare 8 bit per rappresentare le 256 tonalità di grigio
Le immagini La codifica dell informazione Per rappresentare i colori vengono combinati alcuni colori primari su vari livelli di intensità Modelli sottrattivi - a partire dal colore bianco CMYK (Cyan, Magenta, Yellow and Key) - il nero è stato aggiunto perchè combinando ciano, magenta e giallo si ottiene il marrone Modelli additivi - a partire dal colore nero RGB (Red, Green, Blue - detto truecolor) - usato nel video del calcolatore. Non è propriamente additivo perchè ogni pixel è diviso in 3 parti, e la combinazione di rosso, verde e blu dà il colore desiderato E chiaro che codifiche diverse portano ad ottenere immagini di dimensione diverse Per un immagine di 1024 768 pixel: Monocromatica: 1024 768 = 786432 bit = 98304 byte 100 KB Tonalità di grigio: 786432 byte 800 KB RGB: 2359296 byte 2.3 MB
Formato dei file immagini Formato raster JPEG (Joint Photographic Experts Group): truecolor, compressione lossy GIF (Graphics Interchange Format): massimo 256 colori, compressione lossless BMP (Windows Bitmap): formato non compresso di Windows TIFF (Tagged Image File Format): famiglia di formati che supporta la compressione lossy e lossless PNG (Portable Network Graphics): truecolor, compressione lossless
Formato dei file immagini Formato vettoriale rappresentazione tramite primitive geometriche codificate in equazioni matematiche CGM (Computer Graphics Metafile) SVG (Scalable Vector Graphics) WMF (Windows Metafile) Per riprodurre le immagini vettoriali è necessario un processo di rasterizzazione che permette di sfruttare meglio la risoluzione della periferica usata, ottenendo migliore qualità
Formato dei file immagini Anche per la visualizzazione dei caratteri: font bitmap o raster: caratteri come matrici di pixel font outline o vettoriali: rappresentazione vettoriale dei caratteri PostScript Type 1 PostScript Type 3 TrueType OpenType
I suoni La codifica binaria di suoni viene tipicamente fatta seguendo le caratteristiche tipiche dei CD audio: stereofonia: due segnali che riproducono la distribuzione spaziale delle sorgenti sonore frequenza di campionamento: 44100 Hz quantizzazione: 65536 livelli (codifica a 16 bit) I formati audio: WAV (Waveform Audio Format) e AIFF (Audio Interchange File Format) formati non compressi MP3 (MPEG-1 Audio Layer 3) formato con compressione lossy AAC (Advance Audio Coding) formato con compressione lossy con qualità migliore di MP3 (è il formato standard di Apple e delle console Sony e Nintendo)
I filmati I filmati digitali sono composti da una serie di fotogrammi (immagini digitali) mostrati a una frequenza costante (FPS - frame per second) I formati video: QuickTime: sviluppato da Apple MPEG-2: usato per DVD e Bluray, usa compressione lossy sia per il video che per l audio FLV (flash video) sviluppato da Macromedia e supporato da Adobe per la fruizione di filmati in Internet (YouTube, Google Video,...). Usa compressione lossy AVI (Audio Video Interleave) è un contenitore di file che possono essere codificati in vari formati tramite codec
La codifica dell informazione Processo che consiste nella riformulazione del contenuto informativo con una codifica differente che permette di ridurne le dimensioni Compressione lossless (senza perdita) - WinZip per Windows e GunZip per Linux. Il processo di compressione è reversibile il rapporto di compressione e la riduzione dell occupazione di spazio dipendono dal tipo di formato dei dati Compressione lossy (con perdita) - parte delle informazioni viene persa irreversibilimente immagini: viene cambiato il colore di alcuni pixel - difficilmente rilevabile dall occhio umano audio: modelli psicoacustici - vengono tolte frequenze molto alte (basse) o suoni a basso volume video: anziché memorizzare tutti i frame, vengono memorizzate solo le differenze tra frame consecutivi
Outline 1 La codifica dell informazione 2 3
La legge sulla privacy La legge individua una serie di misure minime di sicurezza: autenticazione informatica tramite credenziali (dimostrazione di conoscenza, possesso, caratteristiche fisiche) procedure di gestione delle credenziali: lunghezza minima e durata delle password, regolamentazione dell attivazione, disattivazione, conservazione,... aggiornamento periodico dell individuazione dell ambito del trattamento consentito ai singoli incaricati e addetti protezione degli strumenti e dei dati: dispositivi HW e SW per la protezione contro software maligni procedure per la custodia di copie di sicurezza, backup e ripristino, disaster recovery stesura di un aggiornato documento programmatico sulla sicurezza
La sicurezza dei dati riservatezza (privacy): protezione da letture non autorizzate integrità: protezione da modifiche non autorizzate, per la trasmissione di dati: autenticità: garanzia dell identità della sorgente, del destinatario e del contenuto del messaggio non ripudiabilità: garanzia che la sorgente non possa negare di avere inviato un messaggio e che il destinatario non l abbia ricevuto disponibilità: protezione da interventi non autorizzati che compromettano la possibilità di accesso ai dati da parte degli utenti autorizzati
La crittografia La crittografia è una tecnica usata per garantire la riservatezza dei dati durante la trasmissione. E quindi molto importante in ambito ICT e Internet Algoritmi crittografici a chiave segreta (crittografia simmetrica) tramite un algoritmo di cifratura, il mittente trasforma un messaggio in chiaro in un messaggio cifrato il destinatario è in grado di rigenerare il messaggio originale tramite un algoritmo di decifratura se il messaggio viene intercettato, anche conoscendo l algoritmo di decifratura, senza la chiave segreta risulta essere illeggibile La trasmissione della chiave segreta è critica, se questa viene intercettata, la riservatezza è compromessa!
La crittografia Algoritmi crittografici a chiave pubblica (crittografia asimmetrica) prevedono una coppia di chiavi, la conoscenza della prima non consente di calcolare la seconda l algoritmo di cifratura usa una delle chiavi e quello di decifratura l altra ogni persona in possesso della chiave pubblica può cifrare i messaggi e inviarli solo la persona in possesso della chiave privata può decifrare i messaggi Gli stessi algoritmi possono essere usati per la firma elettronica garantendo: riservatezza, autenticità, integrità e non ripudiabilità
Outline 1 La codifica dell informazione 2 3
Basi di dati (DB, data base) sono grandi collezioni strutturate di dati con le seguenti caratteristiche: rappresentazione efficace in un singolo contenitore logico, conservazione affidabile, fruizione efficiente di tutte le informazioni evitare frammentazione, ridondanza e inconsistenza dei dati evitare accessi non autorizzati La gestione viene fatta tramite sistemi di gestione di DB (DataBase Management System, es. Oracle, SQL Server): DDL (Data Definition Language): definire strutture dati e relazioni DML (Data Manipulation Language): modifica e interrogazione dei dati SQL (Structured Query Language): DDL + DML
La rappresentazione concettuale dei DB viene fatta usando Modelli Entità-Relazioni entità: classi di oggetti (persone, cose) che hanno proprietà comuni ed esistenza autonoma relazioni: legami logici tra entità attributi: proprietà di entità o relazioni