Valentina Vaccaro

Data mining – Algoritmi e programmazione

Lezione del 18-10-2011

Sorgenti di Dati

1)  DBMS

Un Database Management System consente la creazione e la manipolazione di  data base .

Se in passato i DBMS erano diffusi principalmente presso le grandi  aziende e istituzioni , oggi il loro utilizzo è diffuso praticamente in ogni contesto.

Un DBMS può essere costituito da un insieme assai complesso di programmi  software che controllano l’organizzazione, la memorizzazione e il reperimento dei dati (campi, record e archivi) in un database. Un DBMS controlla anche la sicurezza e l’integrità del database.

I  linguaggi di interrogazione del database mediante query (interrogazioni) e i generatori di report permettono agli utenti di interrogare in maniera interattiva il database e di analizzarne i dati.

Se il DBMS fornisce un modo per aggiornare ed immettere nuovi dati nel database, oltre che per interrogarlo, questa capacità permette di gestire database personali. Comunque queste funzionalità non danno la possibilità di mantenere traccia delle revisioni e non forniscono gli strumenti necessari alla gestione di una organizzazione multi-utente. Questi controlli sono disponibili solamente quando un insieme di programmi applicativi sono appositamente costruiti per gestire e coordinare ciascuna funzione di immissione o modifica dei dati.

I tre tipi più comuni sono

  • Modello gerarchico, i dati sono disposti ad albero ogni record è suddiviso in segmenti connessi tra loro;
  • Modello reticolare, i record sono connessi da relazioni logiche;
  •  Modello relazionale, i dati sono organizzati in tabelle dette relazioni.

2)  FILE TEXT

I file di testo furono una delle prime strutture dati ideate per immagazzinare informazioni piuttosto comuni, che prevedevano che i dati fossero distribuiti in un elenco ordinato di righe costituite da caratteri.

Un file di testo contiene solo caratteri di scrittura semplici, senza informazioni sul loroformato (dimensione, colore, ecc) e di solito rappresenta un testo leggibile direttamente dagli utenti senza bisogno di installare programmi appositi a differenza del file binario che è invece un file contenente dati generici non direttamente leggibili dall’utente.

Ci sono alcune limitazioni all’universalità dei file di testo:

  • la codifica non è sempre ovvia, e quando il sistema non la riconosce o non la supporta, il file può diventare illeggibile;
  • i maggiori sistemi usano notazioni diverse per il carattere di “a capo”.

L’estensione dei file di testo destinati alla lettura, quando utilizzata, è generalmente .txt.

I formati di file si dividono in due grandi categorie:

  • Stampabili, li troviamo normalmente visualizzati come  lettere, cifre numeriche, punteggiatura, ecc.

 Di controllo, utilizzati per implementare delle funzionalità “speciali”, come il fine riga, di pagina, dell’intero documento, o per controllare la trasmissione dei dati utilizzati in particolari protocolli ecc., inoltre essi non sono “visualizzabili” (alla loro posizione non corrisponde un simbolo grafico a video o in stampa). Alcuni esempi:

  1.       CSV (comma-separated values) è utilizzato per l’importazione ed esportazione di una tabella di dati. In questo formato, ogni riga della tabella (orecord della base dati) è normalmente rappresentata da una linea di testo, che a sua volta è divisa in campi (le singole colonne) separati da un apposito carattere separatore, ciascuno dei quali rappresenta un valore;
  2.  CR/LF è l’identificatore di fine riga, il primo comportava il ritorno all’inizio della riga (la prima colonna), mentre il secondo l’avanzamento alla riga successiva;
  3. TAB (Tabulazione) Disposizione di una serie di dati in forma di tabella.

 

3)  BINARY FILES

E’  un file che può contenere qualsiasi tipo di dati, codificato in codice binario. Molti formati di file binari contengono parti che possono essere interpretate come testo, ma si distinguono per definizione dai file di testo veri e propri: un file binario è un file che non contiene solo semplice testo.

I file binari sono solitamente concepiti come sequenze di  byte: le singole cifre bit che costituiscono il file sono raggruppate in gruppi di otto.

Alcuni sistemi non permettono l’uso dei file binari (come la posta elettronica). Quindi, in questi casi, si rende spesso necessario convertirli e rappresentarli come file di testo semplici.

 

Il Parsing

In informatica il parcing è un processo di assegnazione di una descrizione strutturale a una stringa di

caratteri. Il  programma che esegue questo compito è detto “parser” il quale, solitamente viene generato attravero dei “ generatori di parser”. Tipicamente il termine italiano viene utilizzato per riferirsi al riconoscimento di una grammatica e alla costruzione di un albero sintattico, che mostra le regole utilizzate durante il riconoscimento dall’ input; l’albero sintattico viene poi visitato durante l’esecuzione di un interprete.

Strategie di Parsing

  • Analisi  top -down Un parser può partire con il simbolo iniziale e cercare di trasformarlo nell’input. Il parser parte dal più grande elemento e lo divide in parti sempre più piccole.
  •  Analisi bottom-up Un parser può partire con l’input e cercare di riscriverlo sino al simbolo iniziale. Il parser cerca di trovare il più elementare simbolo, quindi elabora gli elementi che lo contengono, e così via

 Linguaggi di programmazione: genericamente i parser sono utilizzati con linguaggi di programmazione caratterizzati da grammatiche semplici e regolari. I parser di questo tipo tendono ad essere basati su grammatiche libere dal contesto poiché con queste grammatiche si possono scrivere parser veloci ed efficienti.In realtà, le grammatiche libere dal contesto non riescono a descrivere da sole la maggior parte dei linguaggi di programmazione di uso comune. Tuttavia le grammatiche dipendenti dal contesto, anche se più potenti, perdono in efficienza. Di conseguenza è una strategia comune quella di utilizzare grammatiche libere dal contesto per una versione “rilassata” (con minori vincoli) del linguaggio. Queste grammatiche accetteranno tutti i costrutti validi del linguaggio in considerazione, oltre ad altri costrutti non validi che vengono scartati durante l’analisi semantica dell’input.

Navigazione ad articolo singolo

Lascia un commento