Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Definiamo una base di dati relazionale un insieme di relazioni R, ognuna delle quali descrive una classe di oggetti della

realtà di riferimento.

Per dominio intendiamo un insieme di valori, come ad esempio l’insieme delle stringhe di testo, l’insieme dei numeri

interi, l’insieme delle date,…

Il prodotto cartesiano è invece un’operazione su insiemi.

Per rendere più semplice l’interpretazione e l’accesso ai dati si può aggiungere ad ogni colonna un nome e l’indicazione

del dominio, in tal modo si definiscono gli attributi.

Valori nulli

Nella realtà può accadere che il dato corrispondente a qualche attributo di una relazione non sia disponibile. Per non

generare confusione e per indicare chiaramente l’assenza del dato viene attribuito un valore nullo (NULL).

Es.:“Full Metal Jachet” oscar vinti = 0 – “La Piovra” oscar vinti = NULL (è un film per la TV, non concorre agli oscar).

Relazioni fra tabelle

Nelle basi di dati relazionali, ogni classe di oggetti ha una rappresentazione in una corrispondente tabella; fra i dati di

tabelle diverse intercorre spesso una relazione.

Tutte le caratteristiche di una realtà di interesse, compresi i legami logici fra gli oggetti che la caratterizzano, sono

rappresentate esclusivamente per mezzo dei valori che descrivono i singoli oggetti (orientamento ai valori).

Es.: per rappresentare la relazioni fra i film e le rispettive case di produzione basta aggiungere un attributo “produzione”

alla tabella “film” nel quale inserire il codice della casa di produzione.

Coerenza dei dati

Requisito fondamentale delle basi di dati è che l’insieme delle informazioni relative alla realtà di interesse sia coerente sia

rispetto allo schema della base di dati sia internamente. Per evitare che i dati inseriti nella base di dati generino incoerenze,

lo schema è arricchito con un insieme di vincoli che si possono distinguere in tre principali categorie:

- vincoli di dominio: riguardano i valori che si possono inserire in corrispondenza di un certo attributo di una

relazione (es.: nella tabella “film” sull’attributo “anno” il vincolo può ammettere solo valori superiori a 1895);

- vincoli di chiave: hanno l’obiettivo di garantire che gli oggetti rappresentati nella base di dati sottoforma di righe

nelle tabelle siano sempre distinguibili l’uno dall’altro e univocamente identificabili; tale identificazione viene

effettuata per mezzo di:

superchiave: combinazione di attributi che identificano univocamente una riga; una superchiave

o minimale (con il numero minimo di attributi necessari ad identificare univocamente una riga) è detta

chiave della relazione

chiave primaria: è una chiave che non ammette valori nulli e che è diversa per ogni riga e che permette

o di identificare in modo univoco una riga.

- vincoli di integrità referenziale: garantiscono che i legami logici fra righe di tabelle diverse siano coerenti e che

quindi sia sempre possibile, partendo da un dato, risalire ai dati di altre tabelle a esso legati. Questo avviene

attraverso una chiave esterna cioè un riferimento all’interno di una tabella alla chiave primaria di un’altra

tabella.

FARE TABELLA ESEMPIO

Algebra relazionale

Il linguaggio per l’interrogazione dei dati secondo il modello relazionale prende il nome di algebra relazionale: insieme

di operazioni che, applicate a una o più relazioni (tabelle), producono come risultato un’altra relazione (tabella) frutto

dell’elaborazione dei dati delle relazioni d’ingresso.

Es.: la relazione “cast” mette in relazione i valori di chiave primaria della relazione “film” (l’attributo codice) con la

chiave primaria della relazione “persona” (l’attributo nome).

Proiezione e selezione

Sono operazioni algebriche che hanno lo scopo di estrarre una porzione di dati di una relazione operandone una

scomposizione eliminando nella relazione risultato alcune colonne (proiezione) o alcune righe (selezione).

e

La proiezione si indica con il simbolo consiste nel “selezionare” verticalmente una tabella.

e

La selezione si indica con il simbolo restituisce una relazione composta dalle sole righe della relazione in ingresso che

rispettino una condizione di selezione.

La condizione di selezione è espressa da operazioni di confronto sui singoli attributi combinate fra loro per mezzo dei

connettivi logici AND, OR e NOT; è valutata per ogni riga della relazione in ingresso: se essa risulta vera per la riga

esaminata questa viene inclusa nel risultato della selezione, altrimenti viene omessa.

Proiezione e selezione sono spesso combinate insieme per isolare porzioni arbitrarie dei dati contenuti in una relazione. 5

Operazioni insiemistiche

Le operazioni insiemistiche si basano sull’idea che le relazioni sono a tutti gli effetti insieme di righe e che, pertanto, vi si

può operare con le operazioni di intersezione, unione e differenza tra insiemi.

L’intersezione (simbolo ∩) consiste nel creare una nuova relazione che contiene le sole righe che compaiono in entrambe

le relazioni in ingresso.

L’unione (simbolo U) opera su due relazioni introducendo nella relazione risultante tutte le righe che compaiono in

almeno una delle relazioni in ingresso.

La differenza (simbolo -) tra due relazioni R1 e R2 (R1-R2) invece produce come risultato una relazione contenente le

sole righe di R1 che non compaiono in R2.

TABELLE PAG. 36/37

________________________________________________________________________________________________

CAP. 5 – LA PROGETTAZIONE LOGICA

Come si opera un passaggio dal modello ER a modello relazionale.

Eliminazione delle gerarchie di generalizzazione

E’ necessaria la loro eliminazione in quanto non esiste un costrutto analogo nel modello relazionale. Ci sono 3 modi:

- eliminare le entità figlie accorpando le informazioni nella sola entità padre (modello utilizzato);

- eliminare l’entità padre mantenendo nello schema le sole entità figlie;

- mantenerle entrambe ma introdurre fra di esse relazioni generiche in sostituzione di quella di specializzazione.

Es.: tra le entità “società” abbiamo le entità figlie “distributore” e “produttore”, eliminiamo le figlie e lasciamo solo

“società”. Per mantenere la qualità della distinzione possiamo aggiungere un attributo “tipo” che ha lo scopo di

specificare.

Traduzione delle entità e degli attributi

Le entità del modello ER (rettangoli) diventano relazioni (tabelle) nel modello relazionale.

Gli attributo del modello ER (pallini) diventano attributi (colonne della tabella) nel modello relazionale.

Le righe sono gli oggetti/elementi contenuti in ogni entità.

Traduzione delle relazioni

Le relazioni del modello ER (rombi) si rappresentano nel modello relazionale mettendo in corrispondenza tra loro le righe

di due o più tabelle. Per farlo si ricorre all’uso di una chiave esterna. La chiave esterna può essere inserita solo nella

tabella in cui la cardinalità massima della relazione sia uguale 1. La chiave esterna rimanda alla chiave primaria di un’altra

tabella e quindi una mette in relazione due righe.

Se la cardinalità minima del lato interessato è 0 la relazione è opzionale (nella colonna della chiave estera possiamo anche

non trovare nessun valore). Se invece è pari a 1 è obbligatoria (nella colonna della chiave esterna possiamo trovare un

valore).

Si pone il problema di una cardinalità massima pari a n. Non possiamo utilizzare una chiave esterna ma dobbiamo per

forza costruire una terza tabella in cui metteremo in luce le relazioni tra le due tabelle precedenti.

________________________________________________________________________________________________

CAP. 6 – CREAZIONE E INTEGRAZIONE

DI UNA BASE DI DATI:IL LINGUAGGIO SQL

Il linguaggio SQL (Strucrured Query Language) è lo standard di riferimento per le basi di dati relazionali. 6

SQL è un linguaggio dichiarativo in quanto i suoi comandi consentono all’utente di dichiarare le proprietà del risultato o

la sequenza di operazioni necessarie per ottenerlo. Abbiamo due categorie di comandi:

- SQL DDL (Data Definition Language): definiscono la struttura e i vincoli dello schema di una base di dati

(comando CREATE TABLE) ;

- SQL DML (Data Manipulation Language): consentono la manipolazione e l’interrogazione dei dati contenuti

nella base di dati (comando SELECT).

Il linguaggio SQL è spesso “invisibile” agli utenti. Il DBMS utilizza sempre SQL per tradurre internamente i comandi

utente formulati tramite l’interfaccia grafica in comandi effettivi per la base di dati.

Nel testo faremo riferimento a SQL99 che è la versione corrente dello standard e verrà utilizzato il software Microsoft

Access, anche se non può essere considerato un vero e proprio DBMS.

Creazione di una base di dati

Per definire le tabelle FILM, PERSONA e CAST della base di dati cinematografica, la prima operazione è la creazione

dello schema db_cinema e quindi la definizione delle tabelle in esso contenute.

Una volta creata la prima tabella FILM, la finestra successiva permette di specificare gli attributi.

Access richiede di specificare il dominio e gli eventuali vincoli associati a ogni attributo; per quanto riguarda la scelta del

dominio di un attributo Access permette di scegliere quello appropriato tra una lista di tipi di dato predefinita (SQL + altri

tipi di dato come Valuta, Contatore).

A seconda del tipo di dato scelto, Access consente di impostare la dimensione di ogni attributo. Ad esempio:

attributo: CODICE tipo di dato: NUMERICO dimensione campo: INTERO LUNGO

attributo: TITOLO tipo di dato: TESTO dimensione campo: VALORE 50 (max 50 caratteri alfan.)

(dominio) (dimensione attributo)

Oltre al dominio degli attributi è necessario specificare la chiave primaria della tabella FILM, selezionando l’attributo/i

che ne fanno parte, e gli eventuali vincoli specifici di ciascun attributo. Ad esempio:

attributo: TITOLO no ai valori nulli – Consenti lunghezza zero = No

attributo: NAZIONE “Italia” come valore predefinito – Valore predefinito = Italia

TIPO DI DATO SQL VARCHAR SMALLINT INTEGER DATE

TIPO DI DATO ACCESS TESTO NUMERO NUMERICO (INTERO) DATA/ORA

NUMERICO(BYTE) NUMERICO (INTERO LUNGO)

Le tabelle FILM e PERSONA corrispondono al seguente codice SQL DDL:

CREATE TABEL film ( CREATE TABEL persona (

Codice integer PRIMARY KAY, Nome varchar(50) PRIMARY KAY,

Titolo varchar(50) NOT NULL, Nazione varchar(50);

Anno varchar(4), Data_Nascita date

Durata integer, );

Nazione varchar(50) DEFAULT ‘Italia’

);

Descrizione di associazioni di tabelle

Considerando il caso della tabella CAST, la chiave primaria della tabella è costituita dalla coppia di attributi persona e

film. Gli attributi persona e film fungono da chiavi esterne sulle corrispondenti omonime tabelle. Ciò significa che i valori

dell’attributo persona di CAST compaiono come valori di chiave primaria dell’attributo nome nella tuple della tabella

PERSONA. Lo stesso avviene per i valori dell’attributo film di CAST rispetto alla tabella FILM e alla sua chiave primaria

codice.

Applicare il vincolo di integrità referenziale (vincolo di chiave esterna) significa richiedere che per ogni tupla presente

nella tabella CAST, il valore dell’attributo persona deve essere un nome presente nella tabella PERSONA (ogni tupla di

CAST deve referenziare una tupla di PERSONA).

Un vincolo di chiave esterna fra due attributi può avvenire a condizione che vi sia compatibilità fra i domini:

CAST.persona e PERSONA.nome – dominio TESTO; CAST.film e FILM.codice – dominio NUMERICO (INTERO

LUNGO).

La tabella CAST, con le associazioni e i vincoli di chiave esterna, può essere rappresentata come segue dal linguaggio

SQL:

CREATE TABLE cast (

Persona varchar(50) REFERENCES persona(nome),

Film integer REFERENCES film(codice),

Personaggio varchar(50),

PRIMARY KEY (persona, film)

); 7

Popolamento di una base di dati

La base di dati può essere popolata inserendo i dati veri e propri ovvero le tuple, chiamate anche record.

La riga e la colonna rappresentano rispettivamente una tupla e un attributo.

Nel caso di attributi con valore predefinito (DEFAULT) le tuple sono compilate in modo automatico.

L’inserimento di una tuple avviene con il comando INSERT di SQL DML come di seguito indicato ovvero specificando il

nome della tabella e i valori degli attributi della nuova tupla nel rispetto della sequenza con la quale tali attributi sono stati

specificati nel comando CREATE TABLE (i valori alfanumerici devo essere inseriti tra apici singoli):

INSERT INTO film VALUES (5, ‘Il sesto senso’, 1999, 107,’USA’);

Per inserire un valore nullo, il comando INSERT viene modificato non menzionando esplicitamente gli attributi a cui si

vuole impostare un valore nullo, ovvero:

INSERT INTO film(codice,titolo,anno) VALUES (4,’La vita è bella’, 1997);

Per modificare una tupla si agisce con il linguaggio SQL DML mediante il comando UPDATE. Nel seguente caso viene

sostituita solo una tupla della tabella FILM quella il cui titolo corrisponde al valore specificato da WHERE:

UPDATE film SET durata = 130 WHERE titolo = ‘Il sesto senso’;

Nella tabella PERSONA, per cancellare tutte le persone di nazionalità italiana, il comando DELETE sarà il seguente:

DELETE FROM persona WHERE nazione = ‘Italia’;

Violazione dei vincoli di integrità referenziale

Se modifichiamo o cancelliamo dati da una tabella possiamo creare delle situazioni di incoerenza nel momento in cui c’è

una relazione con un’altra tabella. A questo punto possiamo impostare il sistema in due modi:

ci restituisce un messaggio di errore e ci impedisce di fare questa modifica (politica NO ACTION);

 aggiorna automaticamente tutte le tuple correlate tramite vincoli di chiave esterna (politica CASCADE).

Access è impostato come NO ACTION e mentre CASCADE va impostato manualmente.

In SQL nella creazione della tabella, dopo aver definito anche le chiavi esterne attraverso il comando REFERENCES, si

attiva il comando CASCADE.

Modifica ed eliminazione di tabelle

Per modificare le tabelle in Access agiamo dalla Visualizzazione struttura e possiamo modificare le caratteristiche degli

attributi solo se non entrano in conflitto con i dati già inseriti.

In SQL usiamo il comando ALTER. Esempio:

ALTER TABLE persona

ALTER COLUMN nazione SET NOT NULL;

Per cancellare le tabelle in Access selezioniamo elimina dal menù mentre in SQL usiamo il comando DROP. Esempio:

DROP TABLE film CASCADE;

Interrogazione di una base di dati

Formulare interrogazioni o query significa accedere alla base di dati per reperire le informazioni di interesse in essa

memorizzati.

In Access si ricorre al pannello query in cui è possibile selezionare la voce crea una query.

Access offe uno strumento che si chiama QBE (Query By Example) che permette di creare query in modo facilitato che

consiste nella selezione delle tabelle coinvolte e in una griglia in cui specificare le caratteristiche della query.

Le funzionalità di base del QBE permettono operazioni di proiezione (restituzione di colonne) oppure di selezione.

Per visualizzare il risultato si va su Visualizzazione foglio dati: si visualizza così una nuova tabella temporanea che mostra

i risultati ottenuti.

Attraverso il comando Visualizzazione SQL vediamo anche in Access la sintassi del linguaggio SQL.

In SQL si usa il comando SELECT per impostare la query. Esempio:

SELECT titolo, durata attributi da mostrare nel risultato della query

FROM film tabella da cui prelevare i dati

WHERE titolo = ‘Shining’; condizioni e clausole di selezione delle tuple

Condizioni di selezione 8

L’interrogazione dei dati può richiedere l’uso di operatori di confronto, anche in modo combinato. Ad esempio, se

volessimo ricercare la durata dei film degli anni ’60 italiani, dovremmo impostare la ricerca tra i film compresi negli anni

1960-1969 E in la nazione è = ‘Italia’.

L’operatore logico, affinché si realizzino tutte le condizioni, è AND. Esempio:

nazione = ‘Italia’ AND data > 1959 AND data < 1970

Accanto a AND possiamo avere OR (o l’una o l’altra o entrambe) oppure NOT (per escludere qualcosa).

Accanto a =, <, >, >=, <=, abbiamo anche <> che vuol dire diverso.

Join di tabelle

Alcune query richiedono il confronto tra tabelle diverse. L’operazione di collegamento tra tabelle diverse è chiamata Join.

In Access col QBE è sufficiente selezione più tabelle all’inizio quando viene richiesto su quale tabelle vuole essere

eseguita la query.

In SQL si usa il comando INNER JOIN.

Criteri di ordinamento

E’ possibile stabilire dei criteri per visualizzare i risultati di una query ordinati in modo crescente, numerico o alfabetico.

In Access vengono ordinati a partire dal primo attributo di sinistra.

In SQL si usa il comando ORDER BY.

Se si vuole ordinare in ordine decrescente si aggiunge la formula DESC al comando ORDER BY. Esempio:

ORDER BY titolo DESC

Ulteriori esempi di interrogazione

Per evitare doppioni nella visualizzazione dei risultati della query in SQL, si aggiunge al comando SELECT la parola

DISTINCT.

Se volessimo dare un nome diverso all’intestazione delle colonne nella visualizzazione dei risultati della query possiamo

usare il comando AS.

SELECT nome AS [nome attore] , data_nascita AS [data di nascita] , …

AS ci fa visualizzare i risultati di una query con l’intestazione delle colonne con un nuovo nome al fine di migliorarne la

comprensione.

In Access nella Visualizzazione struttura della query dove si mette il campo si indica:

nome attore : nome

data di nascita: data_nascita

Queste stringhe sono chiamate alias di attributo.

________________________________________________________________________________________________

CAP. 7 – ANALISI E CLASSIFICAZIONE AUTOMATICA DEI TESTI

La rapida evoluzione di internet e del web ha portato alla disponibilità di grandi quantità do documenti e informazioni. Ma

il web non impone rigide forme di organizzazione dei contenuti e nemmeno il rispetto di vincoli di integrità tra i vari

documenti. Ne deriva che le tecniche e i linguaggi di interrogazione sulle basi di dati sono inadeguate. Sono però

necessarie tecniche di indicizzazione e interrogazione capaci di reperire le informazioni sul web: sono le teniche di

information retrieval.

Information Retrieval

Letteralmente significa recupero di informazione. Nascono prima del web; rispondono alla necessità di interrogare

un’insieme di risorse informative (archivi elettronici, librerie, biblioteche); hanno l’obiettivo di mediare tra l’utente e il

corpus di documenti che vuole interrogare. Generalmente l’utente usa chiavi di ricerca (keyword) che indicano il suo

bisogno di informazione e il sistema restituisce i documenti valutati come pertinenti alla richiesta.

I sistemi di I.R. devono conciliare efficacia ed efficienza: risposte accurate con bassi tempi di attesa. Per questo motivo i

sistemi di I.R. manipolano il corpus per estrarre rappresentazioni sintetiche del contenuto di ciascun documento e per

memorizzare tali rappresentazioni.

L’insieme dei documenti è detto archivio dei documenti o corpus e va ben distinto dall’indice. 9

Il sistema è articolato in 4 componenti:

analisi: avviene quando si aggiungono nuovi documenti; il sistema elabora il documento originale e ne produce

 una rappresentazione di sintesi;

indicizzazione: la rappresentazione ottenuta attraverso l’analisi viene utilizzata per costruire un’indice ossia una

 struttura di accesso efficiente ai documenti;

interrogazione: l’utente interagisce col sistema;

 matching: il sistema confronta le richieste dell’utente con l’indice e individua i documenti rilevanti che

 costituscono il risultato dell’interrogazione.

Un esempio dei sistemi di I.R. sono i motori di ricerca.

In fase di analisi di matching il sistema può utilizzare un calendario controllato (thesaurus) per migliorare l’efficacia del

reperimento.

Tecniche di analisi

Solitamente la rappresentazione di sintesi di un documento consiste in una lista di termini estratti dal documento stesso

mediante tecniche di elaborazione del linguaggio naturale Le principali tecniche sono le seguenti:

tecniche per l’eliminazione delle stop word: eliminazione di particelle linguistiche come congiunzioni, articoli,

 preposizioni per ridurre la lunghezza di un testo (si può arrivare a dimezzare la lunghezza)

tecniche per l’estrazione di stem: lo stem è la parte di un termine (il tema) che rimane inalterata quando rimuovi

 la desinenza; il processo di stemming sostituisce tutte le forme derivate con il corrispondente stem e si favorendo

così l’estrazione di termini con elevata rappresentatività

tecniche per scelta di termini con elevato potere discriminante: si basano sulle statistiche e sulla frequenza di

 occorrenza dei termini

Dopo aver individuato i termini rappresentativi alcuni sistemi ricorrono a thesaurus: raccolte di termini correlati tra loro

come, per esempio, sinonimi, iperonomi, iponomi. Questo strumento è molto utile quando il corpus dei documenti

considerati proviene da un dominio specifico (linguaggi specialistici).

Generalmente le tecniche di analisi sono automatizzate.

Tecniche di indicizzazione

L’indicizzazione ha il compito di costruire l’indice ossia una struttura in grado di garantire il reperimento efficiente dei

documenti di un corpus in base ad una interrogazione.

Ogni indice è costituito da una lista di coppie (t,r) dove t è un termine e r sono i riferimenti ai documenti del corpus

collegati a t. (ad esempio il termine “cane” – t – è presente 100 volte nel documento1 e 2 volte nel documento2 r).

Alcune tecniche memorizzano in r non solo il riferimento al documento ma anche la frequenza di occorrenza del termine t

al suo interno.

Altre tecniche più sofisticate possono associare informazioni relative alla parte del documento dove t compare oppure la

vicinanza ad altri elementi.

Tecniche di interrogazione

La componente di interrogazione permette all’utente di formulare le proprie richieste.

Generalmente le condizioni sono congiuntive cioè deve esistere una corrispondenza per ciascuna chiave specificata

(esempio: se cerco “cane corso” deve esserci una corrispondenza sia per “cane” che per “corso” nella pagina).

Sistemi più sofisticati permettono anche condizioni disgiuntive.

Le chiavi di ricerca inserite passano alla fase di normalizzazione: viene definita una lista di termini si cui verrà eseguita la

ricerca. Vengono eseguite operazioni come la rimozioni di spazi o di punteggiatura, l’eliminazione di stop word o

l’estrazione di stem.

Si passa quindi alla fase di matching. Concettualmente il procedimento è basato sul confronto di ogni chiave di ricerca k

con tutti i termini t che compongo l’indice dei documenti. Il matching esatto stabilisce che il confronto tra t e k è positivo

solo se t = k. Questa è una tecnica semplice ma non molto efficace.

Per questo si prediligono le tecniche di matching per similarità: il risultato del confronto non è un valore booleano

(si/no) bensì è un valore numerico che indica la similarità tra t e k. Le tecniche per similarità possono essere classificare

come segue:

tecniche sintattiche: si basano sul confronto tra le stringhe di testo che compongono i termini; ad esempio si

 valuta la distanza di editing ossia il numero di caratteri che è necessario modificare per trasformare t in k;

minore è la distanza maggiore è la similarità (cittadina e cittadella hanno distanza 3 e sono simili: cercando un

termine si possono trovare documenti comprendenti anche l’altro)

tecniche linguistiche: sono quelle che fanno uso di thesauri e misurano la similarità tra i termini considerando

 la loro eventuale relazione (tengono in considerazione i sinonimi, iperonimi, ecc…)

Il sistema migliore è quello di combinare le diverse tecniche. Maggiore è la similarità tra i termini e più elevata è la

rilevanza di un documento.

In casi più sofisticati si possono considerare anche altre informazioni presenti nell’indice come l’occorrenza del termine o

la sua posizione in determinati punti del documento. 10

Valutazione del risultato di una ricerca

Sono state definite delle tecniche che permettono di valutare i risultati prodotti da una ricerca.

Data un’interrogazione i distinguiamo documenti rilevanti e documenti non rilevanti.

All’interno di questi sottoinsiemi distinguiamo quelli reperiti da quelli non reperiti; avremo così:

l’insieme A di documenti reperiti e rilevanti

 l’insieme B di documenti reperiti e non rilevanti (falsi positivi)

 l’insieme C di documenti non reperiti e rilevanti (falsi negativi)

 l’insieme D di documenti non reperiti e non rilevanti.

Sono state elaborate formule per valutare i risultati.

Precision (P) misura la precisione della ricerca cioè il rapporto tra il numero dei documenti reperiti e rilevanti (A) e il

totale dei documenti reperiti (A+B): P = A / (A+B)

Recal (R) misura l’accuratezza della ricerca cioè il rapporto tra il numero dei documenti reperiti e rilevanti (A) e il totale

dei documenti rilevanti (A+C) R = A / (A+C)

Il valore massimo di P e di R è 1. Se P < 1 significa che sono stati trovati anche documenti non rilevanti mentre R < 1

significa che alcuni documenti rilevanti non sono stati reperiti.

Queste tecniche sono utili per confrontare i diversi sistemi di I.R.

Considerazioni

Confrontando le query dei database e i sistemi di Information Retrieval (I.R.):

le query garantiscono una precisione massimi di restituzione dei risultati ma si interfaccio con dati strutturati ed

 omogenei;

i sistemi di I.R. si occupano di dati non strutturati o semi strutturati;

 per l’utente l’interfaccia che permette l’utilizzo di query è molto limitata e si otterrebbero risultati migliori

 utilizzando il linguaggio SQL che però è riservato agli esperti;

i sistemi di I.R. sono semplici ed intuitivi, adatti a tutti gli utenti;

 le query forniscono anche porzioni di documenti (alcune tuple) mentre gli I.R. documenti interi (intere pagine di

 internet).

________________________________________________________________________________________________

CAP. 8 – ARCHITETTURA E STANDARD PER IL WEB

Web viene usato come sinonimo di internet. In realtà indicano due cose diverse. Internet indica l’insieme dei calcolatori

dei computer presenti nel pianeta e connessi tra di loro. Il web, o meglio il word wide web (www), fa riferimento a un

servizio della rete internet che consente la pubblicazione e la condivisione di contenuti.

Il successo del web è dovuto alla semplicità degli strumenti con cui è costruito: il protocollo http e il linguaggio html.

Breve storia di internet e del word wide web

Nel 1969 il progetto Arpanet del dipartimento della difesa statunitense aveva progettato la connessione tra 4 elaboratori

collocati in 4 diverse università americane, il tutto stimolato dalla guerra fredda e dalla necessità di comunicare in segreto

anche in caso di disastro nucleare.

Il progetto ebbe successo e nel 1973 si uniscono Gran Bretagna e Norvegia. Nel 1986 arriva anche in Italia con un

elaboratore del CNR.

Il web nasce nel 1991 quando, presso il CERN di Ginevra, il ricercatore Tim Berners – Lee pubblicò la prima pagina

web. Il CERN propose il protocollo http e il linguaggio html.

Nel 1993 nasce Mosaic, il primo bowser grafico per la navigazione sul web che gestiva la comunicazione attraverso l’http

e visualizzava pagine scritte in html.

Strutture e funzionamento della rete internet

Internet si presenta come una rete geografica (wan, wide area network) estesa a livello planetario che consente

l’interconnessione di host o di sistemi di host appartenenti a organizzazioni diverse.

Può essere considerato una rete di reti.

In alcuni tipi di rete (sistemi terminali) un unico host funge da porta di accesso di tutti gli altri e viene chiamato gateway.

11

Il compito degli host è quello di instradare i messaggi e scegliere il percorso finché raggiungano gli host di destinazione;

per questo vengono chiamati router.

Indirizzamento degli elaboratori

Ogni host collegato alla rete internet possiede un indirizzo univoco che si chiama indirizzo IP.

Si tratta di indirizzi composti da 32 bit, suddivisi in 4 ottetti di bit. Generalmente gli indirizzi IP vengono espressi in cifre

decimali separate da un punto.

10011111 10010101 10011110 00110001 indirizzo IP in notazione binaria

159 . 149 . 158 . 49 indirizzo IP in notazione decimale

Il numero di indirizzi IP è finito. Per ovviare al problema si usa il meccanismo NAT per cui in una sottorete si assegna un

IP solo al gateway e tutti gli host utilizzano lo stesso IP.

Si sta pensando di utilizzare 128 bit invece di 32 bit per ampliare il numero di IP anche se questo richiederebbe notevoli

costi.

DNS e struttura dei domini

Un host può associare un indirizzo simbolico al proprio IP come il nome del sito. In realtà gli elaboratori utilizzano solo il

sistema binario per comunicare. Attraverso il DNS (Domain Name System) sono memorizzare le corrisponde tra gli

indirizzi simbolici e quelli numerici.

Il contenuto dei dati è ripartito su un insieme di host detti server DNS organizzati in modo gerarchico in base al nome di

dominio.

Il nome di dominio è un descrittore simbolico che identifica un gruppo di host appartenente ad una rete di elaboratori e un

dominio può contenere uno o più sottodomini. Ad esempio unimi è il nome di dominio degli host appartenenti

all’università di Milano; dico è il sottodominio appartenente al dipartimento di informatica. Quindi nel caso di

islab.dico.unimi.it il dominio è unimi, il sottodominio è dico mentre islab è il nome proprio dell’host.

Nell’esempio fatto notiamo che esiste anche il dominio .it. I domini di questo tipo sono definiti di primo livello e si

distinguono in due tipi:

dominio nazionale di primo livello è associato ad un preciso paese ed è costituito da due caratteri;

 dominio generico di primo livello è costituito da tre o più caratteri e è associato ad una specifica tipologia ed

 organizzazione (.com commerciale, .gov enti governativi, .mil strutture militari USA, .org organizzazioni che non

rientrano in nessun altra categoria).

Protocolli di comunicazione

La comunicazione in internet è di tipo gerarchico ed è basata sul modello client/server.

Il client richiede un servizio mentre il server lo eroga.

E’ necessario quindi stabilire una connessione tra client e server.

I due nodi della rete possono appartenere a sottoreti molto lontane in termini di host da attraversare.

Tutti gli aspetti legati alla connessione sono regolati da protocolli di comunicazione.

L’organizzazione internazionale per la standardizzazione ha definito una pila di protocollo standard chiamata OSI con

funzionalità rigidamente distinte. Ogni nodo della rete internet utilizza quattro livelli:

livello applicazione: è il livello più alto della pila ed è l’unico utilizzato e concretamente visibile direttamente

 dagli utenti, contiene protocolli che determinano il funzionamento dei servizi applicativi (esempi: www, posta

elettronica, chat);

livello trasporto: è il livello dove opera il protocollo TCP, ha il compito di trasmettere messaggi tra host

 sorgente e host destinazione segmentandoli;

livello rete: è il livello dove opera il protocollo IP, si occupa degli aspetti legato a indirizzamento e

 instradamento dei messaggi, definisce il percorso del messaggio;

livello collegamento: è il livello più basso e si occupa del trasferimento fisico dei dati sul mezzo trasmissivo.

Il servizio World Wide Web

E’ il servizio più popolare di internet. E’ costituito da un insieme di contenuti organizzati in siti definiti a loro volta come

collezioni di pagine web collegate tra loro attraverso collegamenti ipertestuali o link.

Il web è un enorme ipertesto.

Il web si regge su due strumenti principali:

il linguaggio html: serve a costruire le pagine;

 il protocollo http: stabilisce le regole di comunicazione tra gli host per scambio di pagine web.

La navigazione sul web segue il modello client/server: i siti web con i corrispondenti contenuti sono memorizzati presso

particolari host chiamati server web o server http. Un server web possiede sul proprio disco una cartella chiamata root

dentro la quale sono memorizzate le risorse web. Quando un utente (client) desidera consultare una pagina web, utilizza il

protocollo http per contattare il server web su cui la pagina è memorizzata. Il server, a questo punto, preleva dalla propria

cartella root la pagina richiesta e tramite http la invia al client. 12

Per navigare il web esistono programmi chiamati browser che si occupa di comporre le richieste http destinate al server e

di ricevere la risorsa restituita. Inoltre interpreta il linguaggio html e ne fa visualizzare il contenuto all’utente (esempi di

bowser: chrome, explorer).

Lo standard URI

L’URI rappresenta uno standard che serve a identificare univocamente una risorsa web.

L’URR è un tipo particolare di URI e si articola così:

protocollo: //server/percorso?parametri

Richiesta di una pagina web

Lo schema di una richiesta di una pagina web si articola in 4 fasi:

formulazione della richiesta http: tramite il browser l’utente specifica l’URI della pagina web che desidera

 visualizzare;

connessione con il server web: tramite i protocolli di trasporto, rete, collegamento viene aperta una connessione

 con il server web;

formulazione della risposta http: il server web riceve e analizza la richiesta http, ne verifica la correttezza e

 compone il messaggio di risposta http;

visualizzazione della pagina richiesta.

Pagine statiche e pagine dinamiche

Le pagine statiche sono pagine in cui il contenuto è invariato per qualunque utente ne faccia richiesta.

Le pagine dinamiche invece variano a seconda dell’istante in cui la richiesta è ricevuta dal server e in relazione all’utente

che ne faccia richiesta, ad esempio i siti di posta elettronica.

Sono utilizzati linguaggi di programmazione diversi come php o asp.

La posta elettronica

Una e-mail è caratterizzata da una busta (informazioni su mittente e destinatario), un’intestazione e un corpo con altre

informazioni e contenuto del messaggio. Un utente deve possedere una casella di posta elettronica spesso fornite da un

provider. Ogni provider dispone di un server di posta sono ospitate le caselle degli utenti. Ogni casella è identificata da un

indirizzo univoco espresso nella forma nome utente@dominio.

L’invio di un messaggio di posta elettronica è realizzato mediante il protocollo SMTP. In rete un host su cui è installato

questo protocollo è chiamato server SMTP e ha il compito di gestire la trasmissione e l’inoltro di e-mail verso la casella

di posta del destinatario. Per ricevere e acquisire il messaggio il destinatario si rivolge al server attraverso il protocollo

POP3/IMAP.

________________________________________________________________________________________________

CAP. 9 – CONTENUTI SUL WEB: I LINGUAGGI DI MARCATURA

Insieme al contenuto della pagina (testo + eventuali contenuti multimediali) il browser riceve altre informazioni che si

traducono in istruzioni di visualizzazione (meta-informazioni); trattasi dei cosiddetti linguaggi di marcatura. I linguaggi

più diffusi sono HTML e CSS.

HyperText Markup Language

HTML ho lo scopo di arricchire il testo con informazioni relative a strutturazione e formattazione del contenuto. Il

browser ha il compito di interpretare il documento HTML, separare meta-informazioni da informazioni e visualizzare le

informazioni coerentemente alle istruzioni specificate dalle meta-informazioni.

I marcatori sono distinti dal testo per mezzo di parentesi angolari < > e rispettano la seguente sintassi:

La maggior parte dei marcatori ha una apertura, cioè un marcatore che identifica l’inizio della porzione di testo marcato, e

una chiusura ovvero un marcatore che identifica la fine della porzione di testo marcata.

Ad esempio vogliamo scrivere la frase “Pagina personale di Mario Rossi”; la sintassi sarà la seguente:

Pagina personale diMario Rossi 13

Alcuni marcatori non hanno chiusura perché non hanno contenuto come il marcatore
che vuol dire interruzione di

riga. I marcatori possono avere uno o più attributi secondo la seguente sintassi:

Distinguiamo i marcatori HTML in due categorie:

marcatori che determinano la struttura generale della pagina web

 marcatori che si riferiscono alla formattazione del contenuto

Per quanto attiene alla struttura della pagina l’intero documento deve essere contenuto entro il marcatore

La pagina viene divisa in due sezioni:

intestazione (head): è la sezione che contiene informazioni che non vengono visualizzate nella pagina e servono

 a fornire informazioni come parole chiave o titolo o ad associare altri documenti o informazioni di formattazione;

il marcatore sarà …

corpo (body): è la sezione che contiene le informazioni da pubblicare effettivamente; il marcatore sarà

 …

Ricordiamo altri elementi di strutturazione della pagina:

crea un blocco di testo arbitrario spesso associato a informazioni di formattazione e stile; il blocco non può

 avere altri elementi affiancati

ha la stessa funzione di

ma il contenuto non costituisce un blocco e quindi vi possono essere altri

 contenuti affiancati ad esso

tabelle usate spesso per strutturare le pagine: le righe sono denotate da e le celle da
( per

 l’intestazione).

Il testo può essere strutturato. HTML distingue 6 tipologie di titolo denotate dai marcatori

e i paragrafi vengono denotati dal marcatore

. Questi marcatori non richiedono interruzioni di righe.

Oltre a rappresentare il contenuto testuale HTML garantisce agli utenti la possibilità di interagire con il testo attraverso, ad

esempio, i link (detti ancor con marcatore ) oppure con campi di inserimento (

e )

Definire stile e formattazione dei documenti con CSS

Lo standard CSS (Cascading Style Sheets) ha lo scopo di attribuire uno stile di formattazione agli elementi HTML senza

ricorrere agli attributi degli elementi stessi.

Se, ad esempio, nella pagina web ci sono diversi titoli e vogliamo che tutti siano centrati nella pagina usando un HTML

senza CSS ogni vote che abbiamo un titolo dobbiamo specificare questa caratteristica.

Usando invece il CSS possiamo applicare questo stile ad ogni titolo una sola volta e la formattazione verrà seguita per tutti

i titoli.

I CSS possono essere memorizzati su un file separato e richiamati in ogni pagina del sito diventando così un unico punto

sul quale intervenire per le modifiche.

In particolare lo stile di un documento può essere specificato in tre modi diversi:

definendo lo stile a livello di ogni singolo elemento HTML attraverso l’attributo style

definendo lo stile a livello della singola pagina HTML attraverso l’elemento style

definendo lo stile in un file separato

I CSS si applica a cascata a tutti gli elementi in esso contenuti. Se all’interno di una porzione di testo già formattata

attraverso i CSS attraverso un comando specifico diamo una formattazione diversa, si stabilisce che la priorità viene data

al comando più vicino al testo.

La sintassi generale delle istruzioni CSS è: selettore {proprietà:valore;}.

________________________________________________________________________________________________

CAP. 10 - I MOTORI DI RICERCA

I motori di ricerca, data una chiave di ricerca, producono come risultato una lista di siti e di pagine web con le

corrispondenti url che possono essere di interesse per l’utente.

Funzionamento di un motore di ricerca 14



DETTAGLI
Corso di laurea: Corso di laurea magistrale in comunicazione ed editoria multimediale
SSD:
Università: Bergamo - Unibg
A.A.: 2015-2016

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher pietrolicini di informazioni apprese con la frequenza delle lezioni di Media digitali e società delle reti e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Bergamo - Unibg o del prof Dondi Riccardo.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Media digitali e società delle reti

Riassunto esame Media Digitali, prof. Dondi, libro consigliato Networked, il nuovo sistema operativo sociale, Rainie Lee, Wellman Barry
Appunto
Riassunto esame Media digitali, docente Dondi, libro consigliato Stati di Connessione, Boccia Artieri
Appunto
Studio di usabilità in portali di Event Management - Tesi di laurea di II livello
Tesi