[eBook Ita] Corso Di Fondamenti Di Informatica

763
FONDAMENTI DI INFORMATICA Marco Bertini Università degli Studi di Firenze Facoltà di Architettura Corso di Laurea in Disegno Industriale

description

manuale completo e esaustivo di informatica .

Transcript of [eBook Ita] Corso Di Fondamenti Di Informatica

Page 1: [eBook Ita] Corso Di Fondamenti Di Informatica

FONDAMENTI DI INFORMATICA

Marco BertiniUniversità degli Studi di Firenze

Facoltà di ArchitetturaCorso di Laurea in Disegno Industriale

Page 2: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte I: Calcolatori e Sistemi operativi

- architettura di un calcolatore- funzionalità di un sistema operativo- caratteristiche generali di Windows e Linux- elementi di amministrazione in ambiente Windows - programmazione

Page 3: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte II: Reti di calcolatori

- architettura di internet - reti locali (Ethernet) e connettività remota (adsl) - Internetworking- Hubs, Routers e Switches- configurazione di una connessione locale e remota

Page 4: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte III: Strumenti di produttività

- Editor (Word)- fogli elettronici (Excel)- clienti di posta elettronica (Eudora)- browsers (Explorer, Mozilla, Opera)- FTP (Ws_ftp)- freeware e open source

Page 5: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte IV: Database

- funzionalità e organizzazione relazionale di un database- elementi di progetto- Access - Cenni su server SQL

Page 6: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte V: Web technologies

- Html- fogli di stile- Caratteristiche generali di uno strumento di authoring- prodotti commerciali e freeware- laboratorio su dreamweaver- concetti XML- cenni su integrazione con basi di dati (PhP e MySQL)

Page 7: [eBook Ita] Corso Di Fondamenti Di Informatica

Programma ANNO ACCADEMICO 2002-2003

Parte VI: Graphic tools

- formati immagine- grafica raster e vettoriale- photoshop e illustrator- cenni su tecniche di elaborazione di immagini- cenni su webdesign e usabilità di siti web

Page 8: [eBook Ita] Corso Di Fondamenti Di Informatica

PARTE I Calcolatori e Sistemi operativi

Page 9: [eBook Ita] Corso Di Fondamenti Di Informatica

Architettura di un calcolatore

Page 10: [eBook Ita] Corso Di Fondamenti Di Informatica

Il funzionamento dei calcolatori

Trasformano i dati in informazioni Utilizzano hardware e softwareEseguono le seguenti operazioni:

- Input- Elaborazione- Memorizzazione- Comunicazione- Output

Page 11: [eBook Ita] Corso Di Fondamenti Di Informatica

Operazioni svolte da un calcolatore

Page 12: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di input

Tastiera

- Converte le lettere, i numeri e i caratteri in segnali elettrici

Mouse

- manipola gli oggetti

Page 13: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di elaborazione della memoria

Unità di sistema o caseMicroprocessore (chip)Chip di memoriaScheda madre

Page 14: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda madre

Page 15: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di memorizzazione

Capacità di memorizzazione- Byte – un carattere- Kilobyte (KB) – mille caratteri- Megabyte (MB) – un milione di caratteri- Gigabyte (GB) – un miliardo di caratteri- Terabyte (TB) – mille miliardi di caratteri

Page 16: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di memorizzazione

Unità a disco floppyUnità a disco fissoUnità CD-ROM

Page 17: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di output

Dispositivi che traducono le informazioni elaborate dal computer in una forma comprensibile

Dispositivi periferici – espandono le capacità di input, di memorizzazione e di output di un computer.

- Monitor

- Stampante- Scheda audio

- Casse acustiche- Scheda video

Page 18: [eBook Ita] Corso Di Fondamenti Di Informatica

Hardware di comunicazione

Modem

- Invia e riceve dati tramite le linee telefoniche- Installato su una scheda di espansione - Deve essere collegato a una presa telefonica

Page 19: [eBook Ita] Corso Di Fondamenti Di Informatica

Software

Software di sistema- Esegue operazioni fondamentali- Consente l’esecuzione del software

applicativo

Software applicativo- Consente di svolgere operazioni

specifiche- Richiede la presenza del software di

sistema

Page 20: [eBook Ita] Corso Di Fondamenti Di Informatica

Componenti hardware di base

- unità di controllo e elaborazione: CPU;

- memorie (RAM, ROM, cache);

- dispositivi di ingresso/uscita;

- un bus interno di collegamento per dati e indirizzi.

Page 21: [eBook Ita] Corso Di Fondamenti Di Informatica

Unità di controllo ed elaborazione

La CPU è il componente comunemente indicato come microprocessore:

- pentium della Intel, K6 della AMD, PowerPCdella Motorola, Sparc della Sun sono alcuni di questi dispositivi;

- seppur diversi costruttivamente si comportano in modo molto simile dal punto di vista funzionale.

Page 22: [eBook Ita] Corso Di Fondamenti Di Informatica

Evoluzione dei processori INTEL

- Incremento delle prestazioni dovuto a maggiore integrazione

- misurato dal numero di operazioni nell’unità di tempo (MIPS-milioni di istruzioni eseguite al secondo)

Page 23: [eBook Ita] Corso Di Fondamenti Di Informatica

Unità di controllo ed elaborazione

E’ composta da due componenti base:- unità di controllo (CU);- unità aritmetico logica (ALU)

La CU genera i segnali di controllo necessari all’esecuzione di un insieme di istruzioni in linguaggio macchina che specificano le operazioni da compiere:- trasferisce dati e istruzioni da e verso la memoria- esegue istruzioni di controllo e di salto.

La ALU può eseguire operazioni aritmetiche come addizione e moltiplicazione, o logiche

Page 24: [eBook Ita] Corso Di Fondamenti Di Informatica

Memorie

Comprendono dispositivi con caratteristiche diverse per modalità costruttiva, permanenza dei dati, tipo e velocità di accesso

La distinzione più comune considera:- hard-disk- RAM- ROM- Cache I e II livello- Flash

Page 25: [eBook Ita] Corso Di Fondamenti Di Informatica

Memorie volatili e non volatili

Le memorie possono essere distinte in due categorie secondo la permanenza dei dati in esse memorizzati:

- volatili - perdono i dati allo spegnimento della alimentazione (RAM, cache);

- non-volatili - non perdono i dati allo spegnimento della alimentazione (ROM, flash, hard-disk).

E’ possibile distinguere anche tra:- memoria lettura/scrittura (RAM, cache, hard-disk);- sola lettura (ROM).

Page 26: [eBook Ita] Corso Di Fondamenti Di Informatica

Velocità dei dispositivi

- Dalla base verso il vertice della piramide cresce la velocità del dispositivo.

- Per le memorie si parla di tempo di accesso: tempo necessario a reperire un qualunque dato al suo interno.

Page 27: [eBook Ita] Corso Di Fondamenti Di Informatica

Perché tanti dispositivi di memoria?

Un normale PC ha:-cache di I e II livello;-RAM di sistema;-ROM di sistema;- hard disk;- (memoria virtuale).

Il motivo principale è legato a tre diversi fattori:- velocità di accesso;- capacità di memorizzazione;- costo.

Page 28: [eBook Ita] Corso Di Fondamenti Di Informatica

Perché tanti dispositivi di memoria?

La CPU richiede l’accesso ad una grande quantità di dati:

- veloce al fine di massimizzare le prestazioni;- se i dati non sono accessibili deve aspettare.

La quantità di memoria ad alta velocità in grado di mantenere interamente i dati gestiti dall’unità centrale avrebbe un costo eccessivo

Una memoria RAM non è in grado di supportare questa velocità.

- è il motivo che porta all’introduzione della cache.

Page 29: [eBook Ita] Corso Di Fondamenti Di Informatica

Perché tanti dispositivi di memoria?

Problema risolto mantenendo:

- solo una parte di dati su memorie veloci ma costose e di piccola dimensione;

- la maggior parte dei dati in memorie di grandi capacità e basso costo, ma più lente.

Page 30: [eBook Ita] Corso Di Fondamenti Di Informatica

Hard-disk

Rappresenta la forma di memoria lettura/scrittura di maggior diffusione e minor costo:- relativamente lenta rispetto a RAM, ROM e cache.

Sull’hard-disk sono installati i software applicativi ed i dati utente.

Sull’hard-disk è realizzata anche la memoria virtuale:- rappresenta lo stadio finale della gerarchia di memorie utilizzate dalla CPU.

Page 31: [eBook Ita] Corso Di Fondamenti Di Informatica

Hard-disk

Costituito da un supporto rigido ricoperto da un materiale magnetizzabile che può essere cancellato e riscritto.

I dati sulla superficie sono organizzati in settori e tracce circolari (rispettivamente rappresentati in blu e giallo in figura)

un settore contiene una quantità fissa di bytes.

Hanno capacità di decine/centinaia di Gbyte.

Page 32: [eBook Ita] Corso Di Fondamenti Di Informatica

Hard-disk

Il disco ruota ad alta velocità (3600-7200 g/m).

Un braccio meccanico supporta la testina di lettura/scrittura:si muove radialmentedall’interno al bordo del disco e viceversa per reperire i dati.

Page 33: [eBook Ita] Corso Di Fondamenti Di Informatica

Memoria RAM

RAM - Random Access Memory: è necessario lo stesso tempo per accedere a qualunque dato della memoria; il singolo dato può essere acceduto conoscendo il suo indirizzo di memoria.

E’ la memoria centrale dell’elaboratore in cui risiedono il sistema operativo ed i programmi durante la loro esecuzione.

Page 34: [eBook Ita] Corso Di Fondamenti Di Informatica

Memoria Cache di I e II livello

Progettata per superare le differenti velocità tra il processore e la memoria RAM:- rende i dati richiesti con maggior frequenza dalla CPU immediatamente disponibili.

Si distingue tra:- cache di I livello;- cache di II livello.

Page 35: [eBook Ita] Corso Di Fondamenti Di Informatica

Memoria Cache di I e II livello

La cache di I livello realizza una piccola quantità di memoria direttamente all’interno del chip della CPU, e può lavorare alla stessa frequenza:- dimensione tra 2K e 64K.

La cache di II livello è localizzata su una scheda con connessione diretta alla CPU, o integrata direttamente:- dimensioni da 256k a 2M.

Page 36: [eBook Ita] Corso Di Fondamenti Di Informatica

Memorie ROM

ROM - Read Only Memory:è un circuito integrato di memoria a sola lettura, programmato dal costruttore con certi dati al momento della creazione:- dispositivo non volatile.Tipi di ROM:- ROM- PROM- EPROM- EEPROM- Memoria Flash.

Page 37: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda madre

Esempio di scheda madre :- ad essa sono collegati i diversi componenti hardware del sistema;

il collegamento è eseguito su slots appositi.

Page 38: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda madre

Sulla scheda madre si trovano tipicamente:- uno o più processori;- un chip per il BIOS;- slots di memoria;- slots PCI;- adattatori ISA;- video card slots AGP;- porte USB.

Page 39: [eBook Ita] Corso Di Fondamenti Di Informatica

USB

Lo scopo è eliminare porte seriali, parallele e schede speciali ad alta velocità.

Attaccare più dispositivi in modo semplice (fino a 127).

Page 40: [eBook Ita] Corso Di Fondamenti Di Informatica

USB

Caratteristiche principali:- Trasf. dati abbastanza veloce (fino 12 Mbps);- Più device sullo stesso bus ;- Facile da usare- Hot pluggable- Alimentazione fornita tramite lo stesso cavo- Plug-and-play

Page 41: [eBook Ita] Corso Di Fondamenti Di Informatica

USB

- Fino a 127 dispositivi contemporaneamente

- Dist. Max cavo 5 metri-Dist max. percorribile 75 metri (tramite hub)

Page 42: [eBook Ita] Corso Di Fondamenti Di Informatica

USB

Due tipi di connettori

Page 43: [eBook Ita] Corso Di Fondamenti Di Informatica

USB

Il computer è l’hostvel. max. 12 Mbpsogni dispositivo può richiedere un max di 6 MbpsUSB 2.0 dovrebbe andare da 10 a 20 volte più veloce

Page 44: [eBook Ita] Corso Di Fondamenti Di Informatica

FireWire

Bus seriale creato da Apple e standardizzato da IEEE

- noto anche come IEEE 1394 o i.Link (Sony)

Page 45: [eBook Ita] Corso Di Fondamenti Di Informatica

FireWire

Caratteristiche principali- Trasf. dati veloce (fino 400 Mbps)

- Più device sullo stesso bus

- Facile da usare

- Hot pluggable

- Alimentazione fornita tramite lo stesso cavo

- Plug-and-play

Page 46: [eBook Ita] Corso Di Fondamenti Di Informatica

FireWire

- Fino a 63 dispositivi contemporaneamente- Dist. Max cavo 4.5 metri- Dist max. percorribile 75 metri (in daisy chain)

Page 47: [eBook Ita] Corso Di Fondamenti Di Informatica

FireWire

FireWire è molto più veloce di USB: adatto per i video:

Page 48: [eBook Ita] Corso Di Fondamenti Di Informatica

USB vs. Firewire

Page 49: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

La scheda grafica converte l’informazione digitale interna al calcolatore in qualcosa che può essere visto dall’uomo sullo schermo.

Lo schermo è composto da punti (pixels) ad ognuno dei quali è associato un colore:- attualmente la maggior parte dei monitor

supporta 16.8 milioni di colori.

Page 50: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

Il compito di una scheda grafica è quello di generare un insieme di segnali per la visualizzazione dei pixels.Le schede grafiche attuali hanno capacità di elaborazione e memoria dedicata:- sono progettate

appositamente persupportare applicazioni grafiche avanzate.

Page 51: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

Una scheda grafica è composta da:- memoria, utilizzata per mantenere il valore di

colore per ogni pixel del monitor;

- un’interfaccia verso la CPU,per consentire la scrittura nella memoria interna della scheda;

- un’interfaccia video, per consentire la generazione dei segnali verso i pixels del monitor.

Page 52: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

Le moderne schede grafiche hanno una CPU interna:- consente elaborazioni complesse come quelle

necessarie per la visualizzazione di oggetti 3D composti da migliaia di poligoni.

La CPU del calcolatore è svincolata da queste operazioni.

Page 53: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

AGP (Accelerated Graphic Port) è uno dei possibili modi con cui una scheda grafica può essere connessa ad un PC:- la scheda è collegata ad uno slot dedicato;- è un bus a 32bit e 66MHz.

Altre soluzioni prevedono l’utilizzo del bus PCI o la costruzione diretta sulla scheda madre.

Page 54: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

AGP rispetto a PCI fornisce due vantaggi principali:- migliori prestazioni;- accesso diretto alla memoria del sistema.

Attualmente tre specifiche:- 1x, 66MHz, 266 MBps- 2x, 133MHz 533MBps- 4x(Pro), 266MHz, 1066MBps

Page 55: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

Esempio di scheda grafica AGP

Page 56: [eBook Ita] Corso Di Fondamenti Di Informatica

Scheda Grafica

Connessione della scheda sullo slot AGP della scheda madre.

Page 57: [eBook Ita] Corso Di Fondamenti Di Informatica

Scanner e OCR

OCR: Optical Character Recognition

scansione di documenti, estrazione e riconoscimento del testo

⌧L’OCR di testo scritto a mano è particolarmente complesso. I software commerciali non lo consentono.

Page 58: [eBook Ita] Corso Di Fondamenti Di Informatica

Il funzionamento degli scanner

Esistono diversi tipi di scanner

Flatbed: i più comuni, sono quelli da tavolo, generalmente scandiscono fino all’A4Sheet-fed: simili a stampanti portatili, si muove il foglio mentre la testa di scansione rimane ferma

Hand held: portatili, bassa qualità di scansione

Page 59: [eBook Ita] Corso Di Fondamenti Di Informatica

Drum scanner: qualità industriale, il documento viene avvolto attorno ad un cilindro di vetro, la luce riflessa viene scomposta da un sensore all’interno del tubo ed inviata a tre sensori dove viene amplificata e convertita in segnale elettrico

Page 60: [eBook Ita] Corso Di Fondamenti Di Informatica

Scanner flatbed

Page 61: [eBook Ita] Corso Di Fondamenti Di Informatica

Il cuore di uno scanner flatbed è il CCD: Charge-coupled deviceConverte il segnale luminoso in elettrico usando dei fotodiodi, maggiore è la luce incidente maggiore la carica elettrica che si accumula sul fotodiodo

Page 62: [eBook Ita] Corso Di Fondamenti Di Informatica

L’immagine raggiunge il CCD tramite un complesso di specchi, lenti e filtri tipicamente montati sulla testa mobile dello scanner

I fogli sono illuminati da una lampada: fluorescente (vecchi), Cold CathodeFluorescent Lamp (CCFL) o allo Xenon

CCFL non riscalda ed è molto piccola

Page 63: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 64: [eBook Ita] Corso Di Fondamenti Di Informatica

La qualità delle immagini che si ottengono, in particolare la risoluzione, deriva dalla capacità di muovere con precisione e senza scosse la testa

servono buoni motori elettrici passo-passo

Page 65: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 66: [eBook Ita] Corso Di Fondamenti Di Informatica

2 o 3 specchi sono usati per focalizzare l’immagine sulla lente che a sua volta focalizza sul CCD

Page 67: [eBook Ita] Corso Di Fondamenti Di Informatica

3 filtri colorati vengono interposti alternativamente tra lente e CCD per campionare i 3 colori.

Alcuni scanner usano 3 passi di scansione diversi, uno per filtroNormalmente viene usato un solo passo: la lente divide l’immagine in tre, ed ogni immagine passa attraverso un filtro

Page 68: [eBook Ita] Corso Di Fondamenti Di Informatica

Gli scanner meno cari usano una tecnologia diversa: contact image sensor(CIS).

Al posto del CCD hanno LED R,G,B per illuminare il documento di luce bianca e sensori attaccati lungo tutto il vetro per catturare l’immagine

Page 69: [eBook Ita] Corso Di Fondamenti Di Informatica

Gli scanner variano in risoluzione e nitidezza

Una tipica risoluzione hardware è 300x300 dots per inch (dpi). Il numero di dpi è dato dal numero di sensori di ogni riga (x-direction sampling rate) del CCD o CIS per la precisione del motore passo-passo (y-direction sampling rate)

Page 70: [eBook Ita] Corso Di Fondamenti Di Informatica

Particolare della cinghia del motore passo-passo

Page 71: [eBook Ita] Corso Di Fondamenti Di Informatica

La nitidezza dipende dalla qualità dell’ottica e dalla luminosità della lampada: le classiche lampade fluorescenti sono peggiori delle lampade allo Xenon o CCFL

Page 72: [eBook Ita] Corso Di Fondamenti Di Informatica

Molti scanner proclamano risoluzioni 4,800x4,800 o anche 9,600x9,600

Basta fare i conti sul numero di sensori per vedere che dovrebbero essercene moltissimi !Si tratta di risoluzioni dovute ad interpolazione

Page 73: [eBook Ita] Corso Di Fondamenti Di Informatica

L’interpolazione

L’interpolazione è un’elaborazione effettuata dal software dello scanner per aumentare la risoluzione percepita di un’immagine

Vengono creati dei pixel partendo dai dati dei pixel ottenuti dal CCD

Page 74: [eBook Ita] Corso Di Fondamenti Di Informatica

Il colore

Altro elemento importante degli scanner è la profondità di colore: bit depth

indica il numero di colori riproducibili dallo scannerIl true color richiede 24 bit, molti scanner sono in grado di elaborare 30/36 bit di colore tra cui però scelgono i colori più adatti

Page 75: [eBook Ita] Corso Di Fondamenti Di Informatica

Cosa è un PC ?

È uno strumento general-purpose per processare informazione:

1. Prende dati da una persona (tramite tastiera, mouse, tavoletta, etc.), o da un dispositivo (HD, floppy, scheda di rete, etc.)

2. Processa i dati secondo le istruzioni di un programma

3. Una volta processata l’informazione questa può essere:

Mostrata ad un utente (monitor)Memorizzata (disco o RAM)Inviata ad altri PC (scheda di rete, modem, etc.)

Page 76: [eBook Ita] Corso Di Fondamenti Di Informatica

Altri calcolatori

Esistono molti altri calcolatori che NON sono general-purpose, ma hanno funzioni specifiche:

GPS: elaborano i dati dei satelliti GPS e mostrano posizione, percorso, etc.Lettori MP3: trasferisono file MP3 da PC e li suonanoPS/2: carica giochi da CD, mostra filmati da DVD

Page 77: [eBook Ita] Corso Di Fondamenti Di Informatica

Avvio (Boot) – passo 1

Vediamo quando le varie componenti del PC vengono usate dal momento dell’accensione al momento in cui possiamo iniziare ad usare il PC:

1. Accendiamo il PC !

Page 78: [eBook Ita] Corso Di Fondamenti Di Informatica

Avvio (Boot) – passo 2

2. Da una ROM (ROM, PROM, EPROM, EEPROM, Flash) viene caricato il BIOS (un programma) che esegue il POST (Power On Self Test)

Page 79: [eBook Ita] Corso Di Fondamenti Di Informatica

BIOS: Basic Input/Output System

È il primo programma ad essere eseguito:

L’hardware è inutile senza il software…

Fornisce funzioni per gestire a basso livello periferiche: fondamentali all’avvio del PC

Page 80: [eBook Ita] Corso Di Fondamenti Di Informatica

Quando il computer viene avviato il microprocessore deve prendere le prime istruzioni da eseguire da qualche parte

Non può essere il S.O.: è memorizzato su di un qualche disco ma la CPU non sa neanche come accedere al disco ed ai fileIl BIOS fornisce le istruzioni necessarie ad accedere il disco e caricare il S.O.

Page 81: [eBook Ita] Corso Di Fondamenti Di Informatica

BIOS e POST

Su molte macchine il BIOS scrive sullo schermo del testo che descrive diverse caratteristiche del PC, come la quantità di memoria ed il tipo di dischi presenti. Inoltre svolge anche le seguenti operazioni:

1. Controlla se la scheda video è presente (alcuni PC non ne hanno bisogno, es. server di calcolo). Le schede più potenti (es. per 3D) hanno spesso un loro processore e loro BIOS. Eventualmente, in alternativa, il BIOS del PC carica informazioni da un’altra ROM presente sulla scheda madre

2. Il BIOS controlla che si tratti di un avvio da macchina spenta (cold boot) o di un riavvio (es. Riavvio della funzione di chiusura di Windows). Se è un cold boot il BIOS evita il POST

3. Se non è un cold boot il BIOS allora verifica la RAM, con operazioni di scrittura/lettura. Controlla la presenza di mouse e tastiera. Controlla la presenza di un bus PCI, e nel caso controlla la presenza di schede PCI. Se viene identificato un errore questo viene notificato con suoni o scritte:⌧ Se deve controllare il manuale del PC per interpretarli, non c’è uno standard⌧ Un errore in questa fase è quasi sicuramente un errore hardware

• Prima di disperarsi si può: aprire il computer, controllare che tutte le schede e cavi siano fissati correttamente

4. Il BIOS mostra alcuni dettagli sul sistema:⌧ Processore⌧ Floppy e hard disk⌧ Memoria ⌧ Versione BIOS e data ⌧ schermo

5. Se esistono dispositivi con driver speciali, es. dischi SCSI, questi sono caricati da una ROM presente sul dispositivo, ed il BIOS ne mostra le informazioni

Page 82: [eBook Ita] Corso Di Fondamenti Di Informatica

BIOS e POST: approfondimento

Alcune macchine non hanno bisogno di schede video

Si tratta tipicamente di macchine dedicate al calcolo, es SGI Origin

Le schede video più recenti hanno un loro processore, ed anche un loro BIOS

Page 83: [eBook Ita] Corso Di Fondamenti Di Informatica

Lo spengimentorichiederà un cold boot, il riavvio no

Queste funzioni sono disponibili anche in altri S.O. come Linux!

Page 84: [eBook Ita] Corso Di Fondamenti Di Informatica

Aggiornamento del BIOS

Il BIOS è un programma……ogni tanto ci sono versioni nuove: è possibile prenderle dai siti internet dei produttori per:

⌧Correggere errori⌧Aggiungere nuove funzioni, es. supportare nuove

periferiche o S.O.L’aggiornamento è possibile se il BIOS è memorizzato su una ROM su cui è possibile riscrivere, es. Flash

Page 85: [eBook Ita] Corso Di Fondamenti Di Informatica

Impostazioni del BIOS

E’ possibile all’atto dell’avviamento del PC entrare in una fase di configurazione del BIOS (premendo una sequenza di tasti che dipende dal PC).Entrati nella fase di set-up è possibile modificare e salvare alcune impostazioni di sistema:

data e ora di sistema;sequenza di boot;plug and play;impostazioni per tastiera e mouse;sicurezza (password per l’accesso al sistema);power management.

Page 86: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 87: [eBook Ita] Corso Di Fondamenti Di Informatica

Impostazioni del BIOS: approfondimento

Data e ora di sistema: sono aggiornate automaticamente anche quando il PC è spento (l’orologio interno ha una batteria)

Quando si creano o modificano i dati su disco il S.O. registra data e oraSi può modificare data e ora anche dal S.O.L’orologio si sincronizza anche via Internet con l’Istituto Galileo Ferraris (o altri orologi atomici)

Page 88: [eBook Ita] Corso Di Fondamenti Di Informatica

Sicurezza: si può impostare una password che blocca l’accesso alla configurazione del BIOS ed eventualmente anche al PC

Power management:

Risparmio energetico: si può decidere se e quando spengere alcune componenti della macchina, es. dischi, monitor e PC

Wake-up on Lan: si può accendere una macchina inviando un apposito comando tramite la scheda di rete

Page 89: [eBook Ita] Corso Di Fondamenti Di Informatica

Bus PCI

Al punto 3 delle operazioni del BIOS si è detto che viene esaminato il bus PCI… vediamolo meglio

Il bus è un canale di trasmissione tra le varie componenti di un PC

PCI (Peripheral Component Interconnect) è un tipo di bus

ISA è un tipo di bus precedente il PCI

Page 90: [eBook Ita] Corso Di Fondamenti Di Informatica

Il local bus (system bus) collega processore e memoria

PCI collega processore/memoria con altre periferiche tramite un bridge

shared bus

Page 91: [eBook Ita] Corso Di Fondamenti Di Informatica

Periferiche collegabili sullo shared busmodemhard-drivesound-cardgraphic-card (più vecchie)controller-cardscanner

Page 92: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 93: [eBook Ita] Corso Di Fondamenti Di Informatica

PCI ha introdotto il Plug’N’Play (‘N’Pray !) insieme con Windows 95

Bios PnP + ECSD (Extended System Configuration Data) + S.O. PnP = sistema PnP

Page 94: [eBook Ita] Corso Di Fondamenti Di Informatica

Il BIOS PnP all’accensione chiede a tutti i dispositivi di identificarsiControlla che per ognuno sia presente una configurazione in ESCD, se non presente il BIOS assegna alcune risorse (IRQ, memoria etc.)Il S.O. fa il boot, controlla BIOS e PnP e se trova qualcosa di nuovo installa il driver

Page 95: [eBook Ita] Corso Di Fondamenti Di Informatica

I bus si possono caratterizzare per larghezza (in bit) e frequenza (MHz):

più sono grandi maggiore e’ la banda:⌧PC: 8 bit / 4.77 MHz⌧ISA: 16 bit / 8 MHz⌧EISA: 32 bit / 8 Mhz⌧VL (Vesa): 32 bit / local bus - solo 1 disp. !

• usata per le schede grafiche

Page 96: [eBook Ita] Corso Di Fondamenti Di Informatica

PCI è una via di mezzo tra EISA e VL

5 dispositivi max.velocità indip. da CPUpiù PCI su stesso computer64 bit / 66 MHzPCI-X: 64 bit / 133 MHz = 1 GBps

Page 97: [eBook Ita] Corso Di Fondamenti Di Informatica

Dopo il controllo della RAM, del bus PCI ed il caricamento di eventuali driver (es. adattatori SCSI) il BIOS esamina la sequenza di dei dispositivi di bootpresente nella memoria CMOS

Il complementary metal oxide semiconductor (CMOS) chip è una piccola memoria che contiene la configurazione del BIOS. Una batteria mantiene i dati a computer spento

Page 98: [eBook Ita] Corso Di Fondamenti Di Informatica

Nella configurazione del BIOS c’è una lista di dispositivi da provare in sequenza per avviare il S.O.

Floppy, disco rigido, CD/DVD o anche ZIPSi può scegliere la sequenzaProva tutti i dispositivi della sequenza finchènon trova uno con il S.O.

Page 99: [eBook Ita] Corso Di Fondamenti Di Informatica

Avvio (Boot) – passo 3

Il boot loader cerca di caricare il S.O. dai vari dischi indicati nella sequenza

Un computer può avere più S.O. installati, in questo caso il BIOS carica un programma boot manager, con cui selezionare il S.O.A questo punto viene caricato ed eseguito un boot loader più complesso (tipicamente memorizzato nel settore 0)

Page 100: [eBook Ita] Corso Di Fondamenti Di Informatica

Il secondo boot loader incomincia a caricare ed esegue il S.O.Se vi dimenticate un floppy infilato nel drive all’avvio probabilmente avrete un messaggio del tipo:

Page 101: [eBook Ita] Corso Di Fondamenti Di Informatica

Il sistema operativo

A questo punto è il S.O. a controllare il PCIl suo ruolo ricopre sei tipologie di operazioni:

Gestione dei processi: suddivide i programmi in unità gestibili (processi o thread) e ne gestisce la priorità per inviarli alla CPU

Page 102: [eBook Ita] Corso Di Fondamenti Di Informatica

Gestione della memoria: gestisce l’uso della RAM e determina se la memoria virtuale è necessaria

Page 103: [eBook Ita] Corso Di Fondamenti Di Informatica

Gestione dei dispositivi (device): fornisce un’interfaccia tra i dispositivi del computer e le applicazioni

Page 104: [eBook Ita] Corso Di Fondamenti Di Informatica

Gestione della memorizzazione: gestisce come e dove i dati vengono memorizzati su disco

Page 105: [eBook Ita] Corso Di Fondamenti Di Informatica

Application Interface: fornisce un insieme standard di comunicazione e scambio dati tra programmi e tra programmi, S.O. e hardware

User Interface: interfaccia uomo/macchina

Page 106: [eBook Ita] Corso Di Fondamenti Di Informatica

Si possono distinguere SO:tempo-reale;singolo-utente, singolo-task;singolo-utente, multi-task;multi-utente.

SO più diffusi sono: Windows 95/98, 2000, NT, XP (multi-task);la famiglia UNIX, Linux, Solaris, Irix etc. (multi-user);MacOS.

Page 107: [eBook Ita] Corso Di Fondamenti Di Informatica

Nota: non è detto che tutti i computer abbiano un S.O.

Alcuni dei computer che abbiamo visto all’inizio, es. un lettore MP3 o il computer di un microonde non ne hanno bisogno

Page 108: [eBook Ita] Corso Di Fondamenti Di Informatica

S.O. tempo-reale:

Tipicamente controllano apparecchiature, es. una macchina a raggi X: quando mando il segnale “basta irraggiamento” voglio che smetta subito !Tutte le operazioni devono essere svolte nello stesso tempo ogni volta che lo richiedo⌧Es: quando apro una finestra su Windows a volte basta poco

tempo, a volte ne serve di più

Page 109: [eBook Ita] Corso Di Fondamenti Di Informatica

S.O. singolo-utente, singolo-task:

Es. un computer palmare

Page 110: [eBook Ita] Corso Di Fondamenti Di Informatica

S.O. singolo-utente, multi-task:

Windows, MacOSconsentono ad un singolo utente di eseguire più lavori contemporaneamente

Page 111: [eBook Ita] Corso Di Fondamenti Di Informatica

S.O. multi-utente

Più utenti possono eseguire applicazioni sulla stessa macchina.I S.O. della famiglia Unix, come Linux sono multi-utente

Page 112: [eBook Ita] Corso Di Fondamenti Di Informatica

Un S.O. mono-utente può gestire un server a cui si collegano migliaia di persone, ma c’è sempre un solo vero utente, es. l’amministratore del server

Page 113: [eBook Ita] Corso Di Fondamenti Di Informatica

Nel corso della descrizione delle fasi di boot si è parlato dell’accesso al disco e dei dispositivi SCSI, approfondiamo nel seguito l’argomento

Page 114: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

Integrated Drive Electronics è uno standard per collegare dispositivi di massa (hard disk, floppy, cd-rom)

Nato da AT Attachment (ATA)

Page 115: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

Il controller IDE si trova sul dispositivo stesso

Page 116: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

l’interfaccia di collegamento sta sulla scheda madre e si chiama host adapter (bus di tipo Industry Standard Architecture ISA)

Page 117: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

Due metodi di trasferimento dati:

- DMA: il drive manda i dati direttamente alla memoria

- PIO (programmed input/output): è la CPU che si occupa del trasferimento dati

Page 118: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

Attualmente UltraDMA ha una larghezza di banda di 33.33 MB/sec

ATAPI è uno standard incluso nell’ultimo IDE/ATA per facilitare la connessione di più periferiche di massa (e.g. nastri, CD(RW), ZIP, etc.)

Page 119: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

I dispositivi IDE sono collegati fra loro tramite un connettore

Un’estremità del connettore è collegata alla scheda madre

Page 120: [eBook Ita] Corso Di Fondamenti Di Informatica

IDE

Un’interfaccia consente di collegare due dispositivi ma:

- ognuno ha un suo controllore… chi parla ?

- soluzione: un dispositivo viene configurato come Master e l’altro come Slave

Normalmente ogni PC ha due interfacce IDE

Page 121: [eBook Ita] Corso Di Fondamenti Di Informatica

La configurazione Master/Slave può essere fatta con jumper o mediante il Cable Select

Nel caso di Cable Select ijumper sono in posizione CS ed usando un apposito cavo i device si configurano da soli

IDE

Page 122: [eBook Ita] Corso Di Fondamenti Di Informatica

Buona norma è mettere il dispositivo più veloce come Master, perché lo Slave manda dati solo quando il Master è fermo

IDE

Page 123: [eBook Ita] Corso Di Fondamenti Di Informatica

SCSI (Small Computer System Interface) è un bus veloce che può essere collegato per connettere:

- hard disk- scanner- CD-ROM/RW - stampanti

SCSI

Page 124: [eBook Ita] Corso Di Fondamenti Di Informatica

Normalmente usato su PC di fascia alta

E’ veloce: fino a 160 MBps.

Permette di connettere più dispositivi su un solo bus

SCSI

Page 125: [eBook Ita] Corso Di Fondamenti Di Informatica

In un sistema SCSI ci sono tre componenti:

- controller:

- dispositivo

- cavo

SCSI

Page 126: [eBook Ita] Corso Di Fondamenti Di Informatica

SCSI

controller :

- serve come interfaccia tra i dispositivi collegati e lo SCSI bus sulla schedamadre

- viene chiamato anche host adapter

- può essere una card inserita in uno slot oppure può essere direttamente inserito sullo scheda madre

Page 127: [eBook Ita] Corso Di Fondamenti Di Informatica

SCSI

dispositivo :

- ogni dispositivo in catena deve avere un identificatore unico (ID)

Page 128: [eBook Ita] Corso Di Fondamenti Di Informatica

SCSI

cavo :

- può essere interno o esterno

Page 129: [eBook Ita] Corso Di Fondamenti Di Informatica

Tipi di SCSI:

- Fast è legato al clock

- Wide all’ampiezza del bus

- Ultra è legato alla terza versione dello standard

Ultra3 SCSI: 16 bits / 40 MHz / 160 MBps / 16 disp.

SCSI

Page 130: [eBook Ita] Corso Di Fondamenti Di Informatica

Il punto di forza di SCSI e RAID (Redundant array of independent disks):

- dischi collegati tra loro e considerati come un’unica entità logica

- SCSI può dare ordini a dischi in striping: più dischi scrivono/leggono contemporaneamente

- fondamentale nelle stazioni video

Page 131: [eBook Ita] Corso Di Fondamenti Di Informatica

Cosa è un S.O. ?

È un programmaÈ il secondo programma che vediamo quando accendiamo un PC (dopo il BIOS) e l’ultimo quando lo spengiamoConsente a tutti i programmi applicativi di essere eseguitiConsente ai programmi applicativi di usare l’hardware

Page 132: [eBook Ita] Corso Di Fondamenti Di Informatica

Software di base

Software di base Insieme di programmi che interagiscono con l’hardware e il firmware del calcolatore e cela all’utente la struttura fisica dei dispositivi, realizzando una complessa macchina virtualeSistema operativoInterfaccia utenteSoftware di utilitàSoftware di comunicazione

Page 133: [eBook Ita] Corso Di Fondamenti Di Informatica

Software applicativo

Software applicativoInsieme dei programmi che svolgono attività e compiti specifici per determinati tipi di lavori, finalizzati a produrre certi risultati.Applicazioni esistenti⌧word-processor/editor⌧web browser⌧fogli elettronici

Applicazioni create dall’utente⌧Es.: applicazione Flash o VBA

Page 134: [eBook Ita] Corso Di Fondamenti Di Informatica

In pratica:

Software di sistema (base): consente al sistema di lavorareSoftware applicativo: consente agli utenti di lavorare

Page 135: [eBook Ita] Corso Di Fondamenti Di Informatica

Funzioni svolte dal S.O.

Partenza del sistemaConfigurazione/gestione del sistemaLogin/LogoutGestione dei supporti di memoriaGestione dell’organizzazione delle informazioni sui supportiEsecuzione di applicativiFermo del sistema e spegnimento

Page 136: [eBook Ita] Corso Di Fondamenti Di Informatica

Partenza del sistema:L’ultimo boot loader passa il controllo al S.O. che porta al termine il caricamento del S.O. stesso:

⌧Attiva i driver⌧Attiva le periferiche⌧Attiva le connessioni di rete

Page 137: [eBook Ita] Corso Di Fondamenti Di Informatica

Configurazione/gestione del sistema:

Controlla e gestisce l’hardware⌧Plug’n’play

Driver

Page 138: [eBook Ita] Corso Di Fondamenti Di Informatica

Login/logout

Un S.O. può consentire ad uno o più utenti di:⌧Lavorare contemporaneamente⌧Condividere un PC

Il login/out associa ad ogni utente una sua configurazione del sistema (Desktop + posto dove salvare i dati)

Page 139: [eBook Ita] Corso Di Fondamenti Di Informatica

Login: user id e password identificano l’utente

Autenticazione locale o remotaCaricamento impostazioni personali

Page 140: [eBook Ita] Corso Di Fondamenti Di Informatica

Spengimento sistema:

Seguire SEMPRE la procedura del S.O.⌧Si rischia di perdere dati altrimenti…

Page 141: [eBook Ita] Corso Di Fondamenti Di Informatica

MS/PC/DR DOS

Page 142: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows 98

Page 143: [eBook Ita] Corso Di Fondamenti Di Informatica

In Start > Programmi vengono mostrati vari programmi installati sul PC

È possibile che un programma sia installato ma non mostrato in questo menu ! Attenzione!

Page 144: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows 2000

Page 145: [eBook Ita] Corso Di Fondamenti Di Informatica

In Start > Programmi vengono mostrati come in Windows 98.

Al solito alcuni programmi possono essere installati ma non registrati nel menuWindows 2000 impara quali sono i programmi più usati del menu Programmi e dopo un po’ mostra solo quelli

Page 146: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows XP

Page 147: [eBook Ita] Corso Di Fondamenti Di Informatica

I programmi più usati sono mostrati subito (si sceglie quanti mostrarne)

Page 148: [eBook Ita] Corso Di Fondamenti Di Informatica

In Windows la GUI (Graphical user Interface) è incorporata nel S.O.Nei sistemi Unix si hanno due strati separati per la GUI:

X-Windows fornisce il supporto per la grafica e le perifericheUn Windows Manager gestisce l’interfaccia vera e propria: finestre, pulsanti, icone, etc.

Page 149: [eBook Ita] Corso Di Fondamenti Di Informatica

Linux - KDE

Page 150: [eBook Ita] Corso Di Fondamenti Di Informatica

Linux - Gnome

Page 151: [eBook Ita] Corso Di Fondamenti Di Informatica

SGI IRIX

Page 152: [eBook Ita] Corso Di Fondamenti Di Informatica

Dopo il login il S.O. mostra il desktop

Il desktop contiene le icone e gli strumenti per eseguire programmi ed aprire file

Page 153: [eBook Ita] Corso Di Fondamenti Di Informatica

desktop

cursore

icone

finestra

traytaskbaravvio rapido

Page 154: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 155: [eBook Ita] Corso Di Fondamenti Di Informatica

Il contenuto del menu contestuale cambia secondo l’oggetto su cui si clicca

Page 156: [eBook Ita] Corso Di Fondamenti Di Informatica

Gestione dellamemoria secondaria

La gestione della collocazione delle informazioni in memoria di massa è svolta dal File System “Sistema di Archiviazione”

dove

File: sequenza di byte che rappresentano una informazione omogenea

Page 157: [eBook Ita] Corso Di Fondamenti Di Informatica

Biblioteca Memoria di massa

Armadi Cartelle o Directory

Scaffali Sottodirectory

Libri File

Page 158: [eBook Ita] Corso Di Fondamenti Di Informatica

Una struttura ad albero

Radice

File1 Cartella1 Cartella2

File1.1 Cartella1.1 Cartella2.1

FileB

FileB

FileA FileACartella1.1.A

Cartella1.1.A.1

Page 159: [eBook Ita] Corso Di Fondamenti Di Informatica

Esempio

RADICERADICE

GIOCHIGIOCHIESERCIZIESERCIZI

LEZIONILEZIONILETTERELETTERE

DOCUMENTIDOCUMENTI

•Solitario.exe

•FreeCell.exe

VARIEVARIE

•Mialett.txt

•Curric.doc

•Lab.ppt

•so1.ppt

•Ricette.txt

DWDW EXCELEXCEL

•ES1.html

•ES2.html

•ES3.html

•EX01.xls

•EX02.xls

Page 160: [eBook Ita] Corso Di Fondamenti Di Informatica

Esempio Windows

Page 161: [eBook Ita] Corso Di Fondamenti Di Informatica

Unità a disco tipiche (Windows)

A:\ prima unità di floppy diskC:\ primo hard diskD:\ lettore CD/DVD

Man mano che si aggiungono dischi si usano le altre lettere

Page 162: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 163: [eBook Ita] Corso Di Fondamenti Di Informatica

Nell’esempio precedente si vedevano dei dischi presenti su altre macchine condivisi in rete

Windows li vede come presenti sul PCAnche Unix si comporta allo stesso modo

Page 164: [eBook Ita] Corso Di Fondamenti Di Informatica

Un disco può essere diviso in partizioni

Es. una partizione per S.O. ed una per i dati⌧Se devo reinstallare il S.O. posso anche riformattare la

partizione senza perdere i dati

Es. una partizione per un S.O. ed una per un altro S.O.

Page 165: [eBook Ita] Corso Di Fondamenti Di Informatica

Esistono diversi tipi di file system, es.:

NTFS WindowsFATFAT32

EXT2 LinuxEXT3

Page 166: [eBook Ita] Corso Di Fondamenti Di Informatica

Alcuni S.O. gestiscono più tipi di file system

Cosa cambia ?Come sono memorizzati i file sul discoProprietà più o meno avanzate⌧Es. quota disco, diritti di accesso, frammentazione

file

Page 167: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 168: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 169: [eBook Ita] Corso Di Fondamenti Di Informatica

I sistemi Unix NON identificano i dischi con le lettere

È più facile aggiungere/modificare dischi al computer⌧Sotto Windows ci si ritrova con lettere che fanno riferimento

a dischi inesistenti o non più validi…

In Unix tutto sembra una directory:Es.: /mnt/floppy e /mnt/cdrom

Page 170: [eBook Ita] Corso Di Fondamenti Di Informatica

Ogni file, all’interno di una cartella, è identificato da un Nome e da una Estensione.Per identificare un file è necessario specificare un cammino (path): Unità:\Cartella\Nome.EstensioneEsempio:

C:\Giochi\FreeCell.exeC:\Documenti\Lezioni\Lab.ppt

Page 171: [eBook Ita] Corso Di Fondamenti Di Informatica

Specifiche di file e percorsi

C:\Documenti\Relazioni\miodoc.doc

Disco Directory Subdirectory Nome del file Estensione

Page 172: [eBook Ita] Corso Di Fondamenti Di Informatica

Il nome (ed estensione) di file e directory non deve contenere caratteri speciali come:

\ / ? : * “ < > |

Vanno bene invece: lettere, numeri, _ - $ &

Page 173: [eBook Ita] Corso Di Fondamenti Di Informatica

Aprire un file dati (Windows)

Usare Start > Documenti o Documenti recenti (menu)Usare il menu File > Apri dell’applicazione che gestisce il file datiDoppio click sull’icona del file: Windows usa l’estensione per riconoscere quale programma apre il file

Page 174: [eBook Ita] Corso Di Fondamenti Di Informatica

Cancellare un file

Si trascina il file sul cestinoMenu contestuale del file > eliminaSelezione file e tasto “Canc”

Page 175: [eBook Ita] Corso Di Fondamenti Di Informatica

Il file non viene cancellato veramente… è spostato nel cestino, da cui si può recuperare

Se il cestino si riempie troppo i file più vecchi vengono cancellati

Ogni tanto conviene svuotare il cestino per recuperare i dati

Page 176: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 177: [eBook Ita] Corso Di Fondamenti Di Informatica

Anche dopo aver cancellato un file dal cestino si può cercare di recuperarlo

Servono programmi appositi (utility come le Norton)

Attenzione alla riservatezza dei dati ! Avete venduto qualche vecchio computer ?⌧Avete REALMENTE cancellato i vostri dati ?

Page 178: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 179: [eBook Ita] Corso Di Fondamenti Di Informatica

Tipi di file

File di programmiFile di dati

ASCIIImmaginitestiAudioAnimazioni e video

Altri file

Page 180: [eBook Ita] Corso Di Fondamenti Di Informatica

Quali estensioni vengono usate?

Dipende !

⌧Dal S.O.: Windows le usa molto, Unix meno⌧Dai programmi che le introducono⌧Alcune sono ormai standard…

Page 181: [eBook Ita] Corso Di Fondamenti Di Informatica

Compressione file

Riduce la dimensione dei file: il numero di byte

Una mail che include file compressi viene spedita (leggermente) prima e occupa minor spazio sul server di postaUn file compresso si scarica prima da internet

Si uniscono più file in un file unico

Page 182: [eBook Ita] Corso Di Fondamenti Di Informatica

Esistono svariate utility per comprimere file, WinZip è una delle più famose per i file .zip

Esistono molti algoritmi di compressione e tipicamente i file hanno estensioni diverse (es. .rar e .arj)

Page 183: [eBook Ita] Corso Di Fondamenti Di Informatica

Alcuni programmi di compressione gestiscono più algoritmi e tipi di file

Es.: http://tucows.libero.it/system/comp95_default.htmlper vedere programmi di compressione

Page 184: [eBook Ita] Corso Di Fondamenti Di Informatica

Gli algoritmi di compressione si dividono un due grandi famiglie:

Compressione lossy (con perdita)Compressione lossless (senza perdita)

Page 185: [eBook Ita] Corso Di Fondamenti Di Informatica

Se voglio comprimere un mio documento di testo o di calcolo, o disegno tecnico NON voglio certo perdere dati…

ZipRarArjGzip (tipico Unix)

Page 186: [eBook Ita] Corso Di Fondamenti Di Informatica

Se devo comprimere una foto od un filmato accetto perdite di dettaglio:

JpegMpegDivX

Page 187: [eBook Ita] Corso Di Fondamenti Di Informatica

Utility

La funzione di compressione dei file non fa parte del S.O., si usano utility

Utility: programmi che aggiungono funzioni utili alle funzioni di base di un S.O.:

Protezione antivirusCompressione fileGestione fileGestione e manutenzione S.O.

Page 188: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 189: [eBook Ita] Corso Di Fondamenti Di Informatica

Utility: registry

Windows ha un suo archivio che mantiene informazioni su hardware e software installato: è il registry

Ogni volta che si (dis)installano programmi viene aggiornato

Alla lunga il sistema può rallentare

Page 190: [eBook Ita] Corso Di Fondamenti Di Informatica

Esistono utility che controllano i dati del registry ed eliminano quelli non più validi

Di norma le prestazioni miglioranoNON è una panacea !C’è il rischio di rovinare il S.O.

Page 191: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 192: [eBook Ita] Corso Di Fondamenti Di Informatica

Nei sistemi Unix non c’è questo problema

Tipicamente la configurazione è mantenuta in file di testo nella directory /etc

Non esiste il concetto di registry

Page 193: [eBook Ita] Corso Di Fondamenti Di Informatica

Virus

È un programma scritto in modo tale da replicarsi e spandersi da una locazione ad un’altra, tipicamente senza che l’utente lo sappiaBoot, file, macro virusWorm: simile ad un virus ma non ha bisogno di infettare altri programmi. Si propaga via rete

Page 194: [eBook Ita] Corso Di Fondamenti Di Informatica

A volte non fanno niente di maleCancellano o corrompono fileCompromettono la sicurezza di un computer(Windows): modificano il registryQualsiasi altra cosa i loro creatori vogliono…

Page 195: [eBook Ita] Corso Di Fondamenti Di Informatica

Per informarsi…

È bene informarsi sui virus attivi ed i loro effetti:

Symantec:http://securityresponse.symantec.com/McAfeehttp://vil.nai.com/vil/default.asp

Page 196: [eBook Ita] Corso Di Fondamenti Di Informatica

NON credete alle mail degli amici degli amici !

Microsoft o IBM NON danno avvisi per posta

NON cancellate file senza averli prima controllati con antivirus o con strumenti indicati da Symantec, McAfee o altri produttori di antivirus

Page 197: [eBook Ita] Corso Di Fondamenti Di Informatica

Virus: come proteggersi

1. Comprare un antivirus2. TENERLO AGGIORNATO3. Non eseguire programmi in attach NON

richiesti4. Creare i floppy di ripristino (se previsti

dal programma)

Page 198: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 199: [eBook Ita] Corso Di Fondamenti Di Informatica

Protezione in generale

Le persone che usano il computer si dividono in due tipi

Quelli che hanno già perso i datiQuelli che devono ancora perderli

Page 200: [eBook Ita] Corso Di Fondamenti Di Informatica

Effettuare un backup significa fare una copia di riserva dei propri dati

È bene fare backup ad intervalli regolari: es.

masterizzare su CDcopiare su altro PCcopia su nastro (tipico dei server)

Page 201: [eBook Ita] Corso Di Fondamenti Di Informatica

Secondo il S.O. l’utilità di backup è già inclusa o comunque è liberamente disponibile

Es.: Linux include tutti gli strumenti di backup, in XP è presente sul CD di sistema ma deve essere installata a parte

Page 202: [eBook Ita] Corso Di Fondamenti Di Informatica

Una rete di comunicazioni è…un sistema di computer, telefoni o altri dispositivi di comunicazione interconnessi e in grado di comunicare gli uni con gli altri e di condividere applicazioni e/o datiTipi di reti…WAN, MAN e LAN

Page 203: [eBook Ita] Corso Di Fondamenti Di Informatica

Motivazioni

Condivisione di risorse, sia HW che SW, presenti sulle diverse macchineAccelerazione dei calcoli suddividendo un calcolo in più partiAffidabilità, ottenuta attraverso la ridondanzaComunicazione

Page 204: [eBook Ita] Corso Di Fondamenti Di Informatica

Terminologia

LAN - Local Area NetworkLAN: rete di computer fisicamente prossimi tra loro, collegati da un mezzo di proprietà dell’organizzazione cui appartengono

MAN - Metropolitan Area NetworkMAN: reti localizzate nella stessa area metropolitana: es. rete civica del comune che unisce edifici sparsi per la città

WAN - Wide Area NetworkWAN: network di computer fisicamente distanti, tipicamente collegati da mezzi di proprietà di terze parti; può coprire il globo

Page 205: [eBook Ita] Corso Di Fondamenti Di Informatica

Terminologia

InternetSistema mondiale di reti di computer: una rete di reti in cui un utente di un qualsiasi computer può accedere ad informazioni presenti su altri computer

IntranetRete in cui viene usata la tecnologia Internet per scambiare informazioni, es. WWW aziendale o sistema di posta interno che usa tecnologia internet

Page 206: [eBook Ita] Corso Di Fondamenti Di Informatica

WAN/MAN

• WAN (Wide Area Network)MAN (Metropolitan Area Network)

Area estesa (fino a 100 km di raggio)Connessioni lenteConnessioni inaffidabili

Page 207: [eBook Ita] Corso Di Fondamenti Di Informatica

Topologie (1/2)

Diverse sono le organizzazioni (fisiche e logiche) possibili per una reteCriteri di confronto

Costi di base, ovvero dell’infrastrutturaCosti di comunicazione, ovvero di trasmissione dell’informazioneAffidabilità

Page 208: [eBook Ita] Corso Di Fondamenti Di Informatica

Topologie (2/2)

Si possono avere retiCompletamente connesseParzialmente connesseGerarchiche (bassi costi base)A stellaAd anelloA bus ad accesso multiploIbride

Page 209: [eBook Ita] Corso Di Fondamenti Di Informatica

Reti a stella

Nodo centrale (centro di commutazione)Semplicità di instradamentoImmediata identificazione di guastiL’affidabilità dipende dal nodo centraleBassi costi base (proporzionali al numero di nodi) Bassi costi di comunicazione (fissi)

Page 210: [eBook Ita] Corso Di Fondamenti Di Informatica

Reti ad anello

Ogni stazione è un nodo (nodo è un punto in cui si affacciano almeno due spezzoni di una rete)Introduzione di un ritardo per ogni nodo (vero anche in generale)Con l’impiego di stazioni rigenerative si riescono a coprire distanze maggiori rispetto al caso di reti a stella o a busBassi costi base

Page 211: [eBook Ita] Corso Di Fondamenti Di Informatica

Reti a bus

Struttura semplice ed affidabileTrasmissione diffusiva (o di tipo broadcast)Per le reti a bus (anche per reti ad anello) l’affidabilità dipende dalla linea

Page 212: [eBook Ita] Corso Di Fondamenti Di Informatica

Reti miste

Star-bus

È la tipologia più diffusa

Page 213: [eBook Ita] Corso Di Fondamenti Di Informatica

Codifica digitale dell’informazione

Nei sistemi digitali l’unità fondamentale è il bit, che può assumere solo due stati (‘0’ e ‘1’)Informazioni più complesse vengono rappresentate attraverso insiemi di bit (byte, word, …)

Sistema di numerazione binarioCodici

• Codice ASCII per i caratteri

01001101

01000001

A

77

Page 214: [eBook Ita] Corso Di Fondamenti Di Informatica

Trasmissione digitale dati

Avviene solitamente in modo seriale (un bit alla volta)

01001101

Page 215: [eBook Ita] Corso Di Fondamenti Di Informatica

Larghezza di banda

Nei sistemi di trasmissione digitale, la larghezza di banda è assimilabile alla quantità di bit trasmessi nell’unità di tempo

0 8

0 8

tempo (s)

tempo (s)

1 bit/s

2 bit/s

Page 216: [eBook Ita] Corso Di Fondamenti Di Informatica

Traffico dati

Larghezza (ampiezza) di bandaDati inviati in un canale di comunicazioni in un determinato periodo di tempo⌧Testo⌧Voce⌧Video⌧…e così viaBroadband (banda larga) - accesso ad alta velocità

Page 217: [eBook Ita] Corso Di Fondamenti Di Informatica

Download – trasferimento di dati da un computer remoto al computer localeUpload – trasferimento dei dati da un computer locale a un computer remotoVelocità di trasmissione dei dati:

Bit/s Kbit/s Mbit/s Gbit/s

Page 218: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN

• LAN (Local Area Network)Area limitata (raggio dell’ordine del chilometro)Cavi coassiali, UTP, STP, fibra otticaPuò essere l’utente di una rete geograficaAlta velocitàBasso tassi di errori

Page 219: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN

Client/serverClient – computer che richiedono i datiServer – computer che forniscono i dati⌧Server di file, database, Web e di posta

elettronica

Peer-to-peerSenza serverAccettano senza problemi fino a 25 computer

Page 220: [eBook Ita] Corso Di Fondamenti Di Informatica

Terminologia

La parola “server” si applica sia ai computer che ai programmi che forniscono un servizio

In ambito Unix i programmi server sono chiamati anche “demoni” (daemon)

⌧Es. Apache è un server (daemon) web

Page 221: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN: a cosa servono

Condividere risorse come stampanti, scanner, supporti di memorizzazione (CD player, hard drives, nastri) Condividere file tra gli utentiMandare messaggiCondividere databaseAmministrare programmi

Page 222: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN: componenti

Connessioni o sistema di cablaggioSchede di interfacciamento di reteSistema operativo di reteDispositivi condivisi – stampanti, scanner, dispositivi di memorizzazioneRouterBridgeGateway

Page 223: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 224: [eBook Ita] Corso Di Fondamenti Di Informatica

Client/Server Computing

Client(computer+SW)

Middleware(software)

Server(computer+SW)

Servizi richiesti daclient

filedatipagine webapplicazioni

Il servers “aspetta” le richieste dei clientUn server può serviremolti clientFile server, data server, web server

Initiator Facilitator Passive provider

Middleware: insieme disoftware che facilità lo scambio di messaggi C/S

Page 225: [eBook Ita] Corso Di Fondamenti Di Informatica

Peer to Peer Networking (P2P)

Niente serverI computers della rete sono trattati come pari (peers)Esempi: semplice rete domestica, servizidi scambio musica o file come KaZaA o WinMX

Page 226: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN: come collegarsi

Network Interface Card (NIC):

Scheda che si interfaccia alla rete, es. Ethernet(cavo) o WiFi 802.11 (wireless)

Page 227: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN: Ethernet

La scheda comunica mandando segnali sul cavo (doppino intrecciato o coassiale)

Può parlare un solo computer alla volta

Altrimenti si ha una “collisione”Ethernet DEVE riconoscere quando c’è una collisione, così i dispositivi che l’hanno provocata riprovano a parlare a turno

Page 228: [eBook Ita] Corso Di Fondamenti Di Informatica

Ethernet: limiti

C’è un limite di lunghezza dei cavi della reteDovuto ai tempi di trasmissione del segnale

Per aumentare le dimensioni della rete si uniscono sezioni di cavi Ethernet con repeater

Per una rete Ethernet si possono avere al massimo 4 ripetitori fra due host

Page 229: [eBook Ita] Corso Di Fondamenti Di Informatica

Hub

consente la realizzazione di una rete Ethernet con configurazione a stella, utilizzando cavi UTP anziché coassiali; il suo impiego non influisce in alcun modo sul dominio di collisione

Estremamente comune ! Es.usato nelle reti casalinghe o piccoli uffici

Page 230: [eBook Ita] Corso Di Fondamenti Di Informatica

HUB: prende il segnale trasmesso su un cavo e lo ripete su tutti gli altri cavi

È chiamato anche multiport repeater

Page 231: [eBook Ita] Corso Di Fondamenti Di Informatica

Per ridurre le collisioni si divide una rete Ethernetin più sottoreti

Es.: mentre A parla con B, C può parlare con D senza darsi noia

Page 232: [eBook Ita] Corso Di Fondamenti Di Informatica

Switch (1/2)

può essere considerato come un bridgedotato di più porte e pertanto divide uno stesso dominio di broadcast in più domini di collisione.Ha lo scopo di aumentare la banda a disposizione creando una connessione fisica diretta fra due macchine (o sotto-reti) che condividono una medesima connessione logica

Page 233: [eBook Ita] Corso Di Fondamenti Di Informatica

Switch (2/2)

dispone di un certo numero di porte a ciascuna delle quali può essere collegata una singola unità di rete (port-switching) o un’intera sotto-rete (segment-switching)pone in collegamento diretto due porte offrendo così la massima larghezza di banda

Page 234: [eBook Ita] Corso Di Fondamenti Di Informatica

Anche lo switch è un apparato molto comune

È più costoso di un hub: non si limita a ripetere il segnale

Migliora il funzionamento della rete: meno congestione

Page 235: [eBook Ita] Corso Di Fondamenti Di Informatica

Ideale per reti sopra i 7-8 computer, e dove ci sono più server

Due client potrebbero parlare con server diversi contemporaneamente

Page 236: [eBook Ita] Corso Di Fondamenti Di Informatica

LAN: condivisione di file

Nei sistemi Unix si usa NFS per condividere dischi

In Windows tipicamente si usa il protocollo NETBios (Client for Microsoft Networks)

Page 237: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: reteSi deve dare un nome al computer (ed assegnarlo ad un gruppo di lavoro)

Page 238: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: condivisione file (1/2)

Si attivano i servizi di condivisione file

Page 239: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: condivisione file (2/2)

Si selezionano le cartelle da condividere, con eventuali password

Page 240: [eBook Ita] Corso Di Fondamenti Di Informatica

Si esplorano le risorse di rete

Page 241: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: gruppo di lavoro

Page 242: [eBook Ita] Corso Di Fondamenti Di Informatica

Risorse condivise da un computer

Page 243: [eBook Ita] Corso Di Fondamenti Di Informatica

Internet: come collegarsi

Per ottenere un accesso a Internet è necessario:

Un dispositivo di accessoUna connessione fisicaUn Provider Internet (ISP)

Page 244: [eBook Ita] Corso Di Fondamenti Di Informatica

56 Kbit/sModem telefonicoVELOCITÀ MAX.SERVIZIO

155 Mbit/sWireless400 Kbit/sSatellite10 Mbit/sModem via cavo1,5 Mbit/sT11,5 - 8,4 Mbit/sxDSL128 Kbit/sISDN

Page 245: [eBook Ita] Corso Di Fondamenti Di Informatica

Modem telefonico

a bassa velocitàma economico e disponibile ovunque

Page 246: [eBook Ita] Corso Di Fondamenti Di Informatica

Modem

Converte i segnali da analogici a digitali e viceversaModem significa modulatore -demodulatoreModula i segnali digitali trasformandoli in segnali analogici Demodula i segnali analogici riconvertendoli in segnali digitali

Page 247: [eBook Ita] Corso Di Fondamenti Di Informatica

Segnali e modem

Page 248: [eBook Ita] Corso Di Fondamenti Di Informatica

Linee telefoniche ad alta velocità

ISDN (Integrated Services DigitalNetwork)

Si usa un Terminal Adapter (TA) non un modem (è già digitale!)Consentono la trasmissione contemporaneadi voce, video e datiUsa le normali linee telefoniche

Page 249: [eBook Ita] Corso Di Fondamenti Di Informatica

Linee telefoniche ad alta velocità

xDSL (Digital Subscriber Line)

Sempre attivaTrasmissione dei dati costanteOccorre trovarsi in prossimità della centrale di commutazione

Page 250: [eBook Ita] Corso Di Fondamenti Di Informatica

Spesso un dispositivo xDSL funziona anche come Hub

Page 251: [eBook Ita] Corso Di Fondamenti Di Informatica

Linee telefoniche ad alta velocità

Linea T1Linea di connessione localeTrasporta 24 circuiti telefoniciUtilizzata da aziende, enti governativi e siti accademici

Linea T3Trasmette a 43 Mbit/sCosti molto elevati

Page 252: [eBook Ita] Corso Di Fondamenti Di Informatica

Modem via cavo

Connette un PC a una rete TV via cavo che offre una connessione a InternetSempre attivaConcorrente delle linee DSLLa velocità di trasmissione può calare nelle ore di piccoComune negli USA

Page 253: [eBook Ita] Corso Di Fondamenti Di Informatica

Sistemi wireless

Comunicazioni via satelliteMicroonde trasmesse alle stazioni terrestiRiceve dati a 400 Kbit/s e invia dati a 56 Kbit/s (tramite una comune linea telefonica)

Altre connessioni wirelessMicroonde per telefoni cellulariInviano dati fino a 155 Mbit/s

Page 254: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: collegamento via modem

Dati necessari:

Numero di telefono

DNS (non sempre)

User id e password

Page 255: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 256: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: collegamento via modem

Si esegue il collegamento manualmente attivando il dialer

Oppure il dialer è attivato automaticamente dal programma, es. Explorer o Outlook

Page 257: [eBook Ita] Corso Di Fondamenti Di Informatica

Attenzione ai dialer abusivi !

Rimpiazzano il dialer normale e fanno chiamate costose all’estero

…attenti ai banner che promettono loghi, suonerie per cellulari o immagini pornografiche…

Page 258: [eBook Ita] Corso Di Fondamenti Di Informatica

Internet protocol suite

Indipendente dalla tecnologia delle retiInterconnessione universaleProtocolli per l’indirizzamento e la trasmissione dei dati

IPTCPUDP

Page 259: [eBook Ita] Corso Di Fondamenti Di Informatica

Tutti i computer che si affacciano su internet devono avere un indirizzo IP

L’indirizzo viene dato da:ISPAmministratore di rete

Può essere sia variabile che fisso

Page 260: [eBook Ita] Corso Di Fondamenti Di Informatica

Si può condividere un accesso internet tra i computer della LAN

Serve un router o gateway

PC o apparecchio dedicato

Page 261: [eBook Ita] Corso Di Fondamenti Di Informatica

Un router svolge due funzioni:routing: scelta del percorso ottimaleforwarding: spostare un pacchetto da una porta all’altra del router

Un “modem” ADSL che funziona come Hubfunziona anche come router:

Riceve le richieste dai PC attaccati e decide se mandare i dati su Internet o mantenerli dentro la LAN

Page 262: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: TCP/IP

Page 263: [eBook Ita] Corso Di Fondamenti Di Informatica

Windows: proprietà TCP/IP

Page 264: [eBook Ita] Corso Di Fondamenti Di Informatica

Indirizzi IP

Sono formati da 4 numeri compresi tra 0 e 255, separati da punti:

Es.: 192.168.0.1

Page 265: [eBook Ita] Corso Di Fondamenti Di Informatica

Domain Name Service (1/4)

Problema: ricordarsi gli indirizzi IPSoluzione: assegnazione di nomi alle macchine (e alle reti)Sorge un nuovo problema, ovvero la gestione dei nomi: chi conosce i nomi di tutti i computer su internet ?

Page 266: [eBook Ita] Corso Di Fondamenti Di Informatica

Domain Name Service (2/4)

Il DNS (Domain Name Service) realizza una gestione distribuita, con organizzazione in più domini: root domain(‘.’), top level domains (‘.edu’, ‘.com’, ‘.org’, etc.), numero arbitrario di sottolivelli

Page 267: [eBook Ita] Corso Di Fondamenti Di Informatica

Domain Name Service (3/4)

. (root)

edu com org

mit

it

unifi

dsi

pippo

www

pippo.dsi.unifi.it

www.mit.edu

Page 268: [eBook Ita] Corso Di Fondamenti Di Informatica

Domain Name Service (4/4)

Esempio: pippo.dsi.unifi.it (FQDN, fully qualified domainname) necessita dell’indirizzo IP di www.mit.edu, quindi interroga il name server locale, ad esempio dns.dsi.unifi.it. Questo interroga il DNS per il dominio radice (‘.’). In risposta ottiene il DNS per il dominio edu (ad esempio: dns.pop.edu)interroga allora quest’ultimo per ottenere l’indirizzo per il dominio mit.edu (ad esempio 194.2.16.3 per a.mit.edu). Interrogando quest’ultimo otterrà finalmente l’indirizzo per www.mit.edu che potrà passare a pippo.dsi.unifi.it. Questo, disponendo finalmente dell’indirizzo IP, potrà adesso colloquiare direttamente con la macchina interessata.

Page 269: [eBook Ita] Corso Di Fondamenti Di Informatica

La parte più a dx. di un indirizzo web o nome di computer è il Top Level Domain

Page 270: [eBook Ita] Corso Di Fondamenti Di Informatica

Es. di .int: Unione Europea http://europa.eu.int/

I TLD dei paesi sono di due lettere:

Es.: Italia .it, Germania .de, Inghilterra .uk, etc.

Page 271: [eBook Ita] Corso Di Fondamenti Di Informatica

Il protocollo TCP

Permette di avere un flusso di dati affidabili, sollevando le singole applicazioni da questo onere.

In particolari i dati vengono trasmessi in modo

affidabilesequenzialecompletosenza duplicati

Page 272: [eBook Ita] Corso Di Fondamenti Di Informatica

Il protocollo UDP

Invia pacchetti di dati (datagrams) da hosta host senza alcuna garanzia circa l’avvenuta consegnaPiù veloce del TCP perché non si deve gestire la connessione

Es.: usato per lo streaming audio o video

Page 273: [eBook Ita] Corso Di Fondamenti Di Informatica

World Wide Web

Collezione di file che risiedono su computer dotati di particolari server: i web server

I file sono scambiati usando un particolare protocollo: HTTP

Sono file scritti in HTML

Page 274: [eBook Ita] Corso Di Fondamenti Di Informatica

HTML: Hypertext Markup Language

Il codice HTML è soltanto un file di testo !

Dentro il file ci sono dei tag che dicono ad un programma (browser) come rappresentarel’informazione⌧Es. Trasformano immagini o testo in collegamenti

ipertestuali

Page 275: [eBook Ita] Corso Di Fondamenti Di Informatica

Uso del WWWInformazioneIntrattenimentoCommercio elettronicoPosta elettronica

Perché il WWW è interessante e facilmente navigabile

Formato multimedialeUso degli ipertesti

Page 276: [eBook Ita] Corso Di Fondamenti Di Informatica

Termini per il Web

Siti WebPagine WebBrowserURLPortali Web

Page 277: [eBook Ita] Corso Di Fondamenti Di Informatica

Per identificare una pagina web un browser ha bisogno di una URL (Uniform Resource Locator)

Il domain name segue le regole del DNS

Page 278: [eBook Ita] Corso Di Fondamenti Di Informatica

Se nella URL non c’è il filename di solito il server web manda il file di nome index.htm o default.html

È la home page

Quando si costruisce un sito web è consigliato creare sempre la home page: si semplifica la vita al visitatore

Page 279: [eBook Ita] Corso Di Fondamenti Di Informatica

Per trovare una pagina o si usa un motore di ricerca o i bookmark (o preferiti)

Page 280: [eBook Ita] Corso Di Fondamenti Di Informatica

Indirizzo di posta elettronica

[email protected]

Nome utente Nome di dominio

Dipartimento Dominio (TLD)

Page 281: [eBook Ita] Corso Di Fondamenti Di Informatica

Posta elettronica e IM

Allegati Messaggi istantanei

Un incrocio fra posta elettronica e telefonoSe l’utente è collegato i messaggi verranno visualizzati istantaneamente sullo schermo⌧Es.: ICQ, AIM, Jabber

Page 282: [eBook Ita] Corso Di Fondamenti Di Informatica

Netiquette

Consultare le FAQEvitare le flameNon urlareEvitare erroriNon inviare grossi allegati

Quotare solo le parti rilevanti del messaggio originarioEvitare gli spam

Page 283: [eBook Ita] Corso Di Fondamenti Di Informatica

Invio di posta elettronica

Page 284: [eBook Ita] Corso Di Fondamenti Di Informatica

Ricezione di posta elettronica

Page 285: [eBook Ita] Corso Di Fondamenti Di Informatica

Rispondere a un messaggio di posta elettronica

Page 286: [eBook Ita] Corso Di Fondamenti Di Informatica

Allegati

Page 287: [eBook Ita] Corso Di Fondamenti Di Informatica

6

Funzioni degli applicativi da ufficio più comuni:

Gestione testiCalcoloGestione archiviCreazione presentazioni

Page 288: [eBook Ita] Corso Di Fondamenti Di Informatica

7

I programmi che svolgono questi lavori sono spesso integrati

Può essere utile effettuare dei calcoli, da cui creare un grafico ed inserire il grafico in una presentazione……oppure creare un indirizzario e automatizzare la creazione di lettere

Page 289: [eBook Ita] Corso Di Fondamenti Di Informatica

8

Microsoft Office è la suite di strumenti di lavoro più diffusa

È la gallina dalle uova d’oro di Microsoft

Esistono alternative: CorelLotus SmartsuiteSun OfficeOpen Office (libera e gratuita)

Page 290: [eBook Ita] Corso Di Fondamenti Di Informatica

9

Nel seguito tratteremo gli strumenti Microsoft

Il passaggio ad altri programmi è estremamente facile. Conoscendo Word o Excel si può usare Writer (Calc) di Openoffice senza problemi.

Page 291: [eBook Ita] Corso Di Fondamenti Di Informatica

10

I programmi principali di MS Office sono:

Word per elaborazione testi (word processing)Excel per foglio di calcoloPowerPoint per le presentazioniAccess per gestire archiviOutlook per posta e personal informationmanagement

Page 292: [eBook Ita] Corso Di Fondamenti Di Informatica

11

Per iniziare a lavorare:

Si apre on documento già esistenteSi sceglie un programma dal desktop o menu AvvioSi apre “Nuovo documento Office” dal menu Avvio

Page 293: [eBook Ita] Corso Di Fondamenti Di Informatica

12

Cos’è un foglio di calcolo

Un "foglio di calcolo" (spreadsheet) è un oggetto di un programma costituito da un insieme di celle, organizzate in righe e colonne, atte a memorizzare dati ed effettuare operazioni matematiche.Microsoft Excel è un programma che contiene un foglio di calcolo, più:

GraficiLinguaggio di programmazione

Page 294: [eBook Ita] Corso Di Fondamenti Di Informatica

13

Le celle vengono "chiamate" (cioè univocamente identificate) mediante la loro colonna e la loro riga.Le colonne sono identificate da lettere: A, B, C, ... Z, AA, AB, AC, ... AZ, BA, BB, .... IV

Ci sono 256 colonne.

Le righe sono identificate da numeriCi sono 65536 colonne

Page 295: [eBook Ita] Corso Di Fondamenti Di Informatica

14

Excel può gestire diversi fogli dentro un unico fileOgni foglio ha le dimensioni viste prima

I fogli della figura sotto sono memorizzati dentro la stessa cartella di lavoro (file .xls)

Page 296: [eBook Ita] Corso Di Fondamenti Di Informatica

15

Barra del titoloBarra dei menu

Barra Standard

Barra formattazione

Barra della formula

Elenco dei fogli Barra di stato

Barre di scorrimento

256 colonne

65.5

36 ri

ghe

Page 297: [eBook Ita] Corso Di Fondamenti Di Informatica

16

Cella D5

Page 298: [eBook Ita] Corso Di Fondamenti Di Informatica

17

Zona B3:D10

Page 299: [eBook Ita] Corso Di Fondamenti Di Informatica

18

Selezione celle

Si può selezionare un gruppo di celle cliccandosulla prima, premendo lo shift e cliccandosull’ultima

Oppure trascinando il mouse con il pulsante premuto

Si possono selezionare aree disgiunte usando il tasto CtrlSi possono selezionare colonne o righe premendo sul pulsante relativo

Page 300: [eBook Ita] Corso Di Fondamenti Di Informatica

19

Page 301: [eBook Ita] Corso Di Fondamenti Di Informatica

20

Contenuto celle

All'interno delle celle posso scrivere tre cose:

del testo⌧Tutto quello che contiene almeno un carattere

non numerico o separatore numerico

dei numeri⌧Date e ore sono numeri

delle formule

Page 302: [eBook Ita] Corso Di Fondamenti Di Informatica

21

Cancellazione ed eliminazione

Le celle vengono ripulite con il tasto Canc(o Del)

Per cancellare una colonna o riga la si deve selezionare e quindi cancellare (es. con menu contestuale)

Page 303: [eBook Ita] Corso Di Fondamenti Di Informatica

22

Nell’ esempio seguente fate attenzione alla riga in cui si trova la cella contenente la stringa “dato a”

Nella prima slide è la 4 riga, in quella successiva è nella 3

Page 304: [eBook Ita] Corso Di Fondamenti Di Informatica

23

Page 305: [eBook Ita] Corso Di Fondamenti Di Informatica

24

Page 306: [eBook Ita] Corso Di Fondamenti Di Informatica

25

Copia e inserimento

La copia di celle ha un comportamento simile alla cancellazione/eliminazione

La copia sostituisce i valoriL’inserimento crea nuove celle quindi copia dentro i valoriFate attenzione a come cambiano i dati nel foglio di calcolo…

Page 307: [eBook Ita] Corso Di Fondamenti Di Informatica

26

Page 308: [eBook Ita] Corso Di Fondamenti Di Informatica

27

Page 309: [eBook Ita] Corso Di Fondamenti Di Informatica

28

Inserimento serie dati

Se una selezione contiene una serie di dati (es. numeri o date) Excel è in grado di riempire automaticamente le celle successive, creando una sequenza

Page 310: [eBook Ita] Corso Di Fondamenti Di Informatica

29

Importare dati Excel in Word

Fogli di calcolo (e grafici) di Excel possono essere inseriti in documenti di Word o Powerpoint

Il metodo più banale è la semplice copia di una selezione

I dati sono copiati come tabella di Word

Page 311: [eBook Ita] Corso Di Fondamenti Di Informatica

30

Page 312: [eBook Ita] Corso Di Fondamenti Di Informatica

31

In alternativa si importa o collega un fileIl doppio clic sul foglio inserito fa aprire Excel

Nell’importazione i dati del file Excel vengono completamente inseriti nel documento⌧Le modifiche successive ai dati rimangono nel documento

Con il collegamento i dati modificati vengono salvati nel file Excel che rimane esterno al documento Word

Page 313: [eBook Ita] Corso Di Fondamenti Di Informatica

32

Page 314: [eBook Ita] Corso Di Fondamenti Di Informatica

33

Un altro metodo per il collegamento è usare “Incolla speciale” dentro Word

Page 315: [eBook Ita] Corso Di Fondamenti Di Informatica

34

Il doppio click sui dati Excel dentro Word fa aprire una piccola finestra di Excel

Page 316: [eBook Ita] Corso Di Fondamenti Di Informatica

35

OLE

La condivisione di dati tra applicazioni vista prima è detta OLE

object linking and embedding

Page 317: [eBook Ita] Corso Di Fondamenti Di Informatica

36

Formule e funzioni

In Excel le elaborazioni numeriche possono essere effettuate tramite:formule utentefunzioni predefinite

Le formule sono espressioni in cui vengono indicate le celle, con le loro coordinate, combinate con gli opportuni operatori algebrici.

Le funzioni sono “formule chiavi in mano”, residenti in EXCEL; hanno un algoritmo di calcolo già definito.

Page 318: [eBook Ita] Corso Di Fondamenti Di Informatica

37

Tutte le formule iniziano con un =

Nota: il testo viene allineato a dx, i numeri a sx

Page 319: [eBook Ita] Corso Di Fondamenti Di Informatica

38

Operatori

+ addizione- sottrazione* (asterisco) moltiplicazione/ divisione^ (acc. circonflesso) elevamento a

potenza= inizio di ogni formula( ) parentesi

Page 320: [eBook Ita] Corso Di Fondamenti Di Informatica

39

>,<,>=,<=,<>operatori logici

& concatenastringhe

; unione

spazio intersezione

Page 321: [eBook Ita] Corso Di Fondamenti Di Informatica

40

Indirizzamento relativo delle celle

cella contenente la formula

celle utilizzate nella formula

Se copiamo la formula,(=B1+B3+A4), in A2 nella cella D3, Excel modificherà in modo parallelo le coordinate delle celle coinvolte.

B1 diventa E2, B3 diventa E4

A4 diventa D5

la formula in D3 è =E2+E4+D5

Page 322: [eBook Ita] Corso Di Fondamenti Di Informatica

41

Indirizzamento assoluto delle celle

Se la formula in A2 è =$B$1+B3+$A$4

quando viene copiata in D3 diventa=$B$1+E4+$A$4

per le celle B1 e A4 è stato utilizzato l’indirizzamento assolutole celle si dicono bloccate

Indirizzamento misto$B1 si blocca la colonnaB$1 si blocca la riga

Page 323: [eBook Ita] Corso Di Fondamenti Di Informatica

42

Blocco riquadri

Se mettiamo dei titoli su una riga o colonna ed poi inseriamo molti dati questi possono scomparire dalla pagina, per via dello scrolling

Per mantenere visibili le intestazioni si blocca un riquadro

Page 324: [eBook Ita] Corso Di Fondamenti Di Informatica

43

Riga blocco riquadri

Le colonne da C a F sono nascoste

Notare la formula: è stata copiata ed adattata automaticamente da Excel, grazie all’indirizzamentorelativo

Page 325: [eBook Ita] Corso Di Fondamenti Di Informatica

44

Formato dati

Formattazione grafica

Page 326: [eBook Ita] Corso Di Fondamenti Di Informatica

45

Una tabella di dati può essere formattata automaticamente

Page 327: [eBook Ita] Corso Di Fondamenti Di Informatica

46

Formattazione dei dati

Es. valuta, data, percentuale, …

Page 328: [eBook Ita] Corso Di Fondamenti Di Informatica

47

Page 329: [eBook Ita] Corso Di Fondamenti Di Informatica

48

Funzioni

Le funzioni sono procedure, già memorizzate, che svolgono calcoli anche complessi.

Per utilizzare una funzione è sufficiente richiamarla con il suo nome e indicare i valori o i riferimenti di cella su cui deve operare.I dati sui quali una funzione agisce si dicono argomenti.

Per inserire in una cella una funzione:digitare direttamente il nome e gli argomentiusare l’Autocomposizione funzioni

Page 330: [eBook Ita] Corso Di Fondamenti Di Informatica

49

Sintassi:=parolachiave(argomenti)

Un argomento può essereun numerouna stringa di testo, scritta tra apici e virgoletteuna cellauna zonauna formula

Più argomenti sono separarti da ;

Non devono essere utilizzati spazi nella digitazione di funzioni

Page 331: [eBook Ita] Corso Di Fondamenti Di Informatica

50

Le funzioni contemplate nel foglio di lavoro Excel sono numerose e per praticità di ricerca sono suddivise per categorie:

– Database – Data e ora– Finanziarie– Informative– Logiche– Ricerca e riferimento– Matematiche e trigonometriche– Statistiche– Testo

Page 332: [eBook Ita] Corso Di Fondamenti Di Informatica

51

La funzione somma è molto comune

Excel la calcola al volo sulle selezioni di celle

Si possono scegliere anche altre formule

Il valore di questi calcoli NON è memorizzato in nessuna cella

Page 333: [eBook Ita] Corso Di Fondamenti Di Informatica

52

Page 334: [eBook Ita] Corso Di Fondamenti Di Informatica

53

Inserendo la funzione somma Excel cerca di indovinare a quali celle deve essere applicata

Page 335: [eBook Ita] Corso Di Fondamenti Di Informatica

54

quando si preme il tasto Incolla funzione

viene visualizzata una serie di finestre di dialogo che permettono di scegliere la funzione e i suoi argomenti

Page 336: [eBook Ita] Corso Di Fondamenti Di Informatica

55

Seconda finestra dialogo Autocomposizione funzioni

Descrizione Risultato Argomenti

Page 337: [eBook Ita] Corso Di Fondamenti Di Informatica

56

Nell’ultima versione di Excel sono leggermente cambiati il metodi di inserimento

Page 338: [eBook Ita] Corso Di Fondamenti Di Informatica

57

La funzione SELa funzione SE fa parte delle funzioni logiche, poiché permettono di far compiere ad Excel delle analisi ed in base al risultato effettuare una certa azione, scelta tra più alternative possibili.

TEST(analisi)

Azione da eseguire se il test è VERO

Azione da eseguire se il test è FALSO

SE(test;se_vero;se_falso)L’azione può essere una formula da calcolare o una stringa da scrivere

SE(A1>=0;A1*10;-A1)

SE(A1>=0;”positivo”;”negativo”)

Page 339: [eBook Ita] Corso Di Fondamenti Di Informatica

58

L’argomento di una funzione SE() può essere un’altra funzione SE().

SE(Test1;val1;SE(Test2;val2;val3))

Test1

val1Test2

val2 val3

vero falso

vero falso

Page 340: [eBook Ita] Corso Di Fondamenti Di Informatica

59

Test1vero falso

Test2

val2 val3

val1vero falso

SE(Test1;SE(Test2;val2;val3);val1)

Page 341: [eBook Ita] Corso Di Fondamenti Di Informatica

60

Esempio

Supponiamo che la provvigione agli agenti di commercio dipenda dal volume di affari da essi realizzato: pari al 10% per fatturati fino a 50K€, pari al 12% per fatturati superiori.

Page 342: [eBook Ita] Corso Di Fondamenti Di Informatica

61

Funzioni “condizionali”SOMMA.SE(intervallo;criteri;int_somma)

Intervallo è l'intervallo di celle che si desidera calcolare.

Criteri sono i criteri in forma di numeri, espressioni o testo che determinano le celle che verranno sommate.

Ad esempio, criteri può essere espresso come 32, "32", ">32", "mele".

Int_somma sono le celle da sommare. Le celle in int_sommavengono sommate solo se le celle corrispondenti in intervallo soddisfano i criteri.

Se int_somma è omesso, verranno sommate le celle in intervallo.

Page 343: [eBook Ita] Corso Di Fondamenti Di Informatica

62

Esempio

=SOMMA.SE(A2:A6;">=0")=SOMMA.SE(A2:A6;">=0") =SOMMA.SE(A2:A6;">=0”;B2:B6)=SOMMA.SE(A2:A6;">=0”;B2:B6)

Page 344: [eBook Ita] Corso Di Fondamenti Di Informatica

63

Page 345: [eBook Ita] Corso Di Fondamenti Di Informatica

64

Funzioni “condizionali”

CONTA.SE(intervallo;criteri)

Intervallo è l'intervallo di celle a partire dal quale si desidera contare le celle.

Criteri sono i criteri in forma di numeri, espressioni o testo che determinano quali celle verranno contate.

Page 346: [eBook Ita] Corso Di Fondamenti Di Informatica

65

Esempio

=CONTA.SE(A1:A6;"=mele")=CONTA.SE(A1:A6;"=mele") =CONTA.SE(B1:B6;">50”)=CONTA.SE(B1:B6;">50”)

Page 347: [eBook Ita] Corso Di Fondamenti Di Informatica

66

Alcune funzioni matematiche e trigonometriche

SEN(angolo) seno di un angolo espresso in radianti

COS(angolo) coseno di un angolo espresso in radianti

PI.GRECO() valore di π

LN(numero) logaritmo di un numero in base naturale

LOG10(numero) logaritmo di un numero in base 10

EXP(numero) esponenziale

CASUALE() generazione di un numero casuale tra 0 e 1

SOMMA(zona) somma di una zona di celle

RADQ(numero) radice quadrata di un numero

FATTORIALE(num) num!

INT(num) arrotonda un numero all’intero più vicino

RESTO(divid,divis) resto della divisione dei due numeri

ARROTONDA(num;num_cifre) arrotonda un numero portandolo a unnumero predefinito di valori decimali

Page 348: [eBook Ita] Corso Di Fondamenti Di Informatica

67

Alcune funzioni statisticheMEDIA(zona) media aritmetica dei valori della zona

MEDIANA(zona) mediana dei valori della zona

MODA(zona) moda dei valori della zona

MEDIA.ARMONICA(zona) media armonica dei valori della zona

MEDIA.GEOMETRICA(zona) media geometrica dei valori della zona

MIN(zona) valore minimo della zona

MAX(zona) valore massimo della zona

CONTA.VUOTE(zona) conta il numero di celle vuote della zona

CONTA.VALORI(val1,val2,…) conta il numero di celle non vuote

presenti nell’elenco degli argomenti

Page 349: [eBook Ita] Corso Di Fondamenti Di Informatica

68

Esempio

=CONTA.VALORI(B9:E9)=CONTA.VALORI(B9:E9)

N.B. Le celle contenenti testo vuoto, (“”), sono considerate celle vuote da CONTA.VUOTE e celle con valore da CONTA.VALORI

Page 350: [eBook Ita] Corso Di Fondamenti Di Informatica

69

Alcune funzioni di ricerca e riferimento

INDICE(matrice;n.riga;n.colonna)

estrae da una matrice (zona) il valore contenuto nella cella risultante da n.riga e n.colonna. I numeri di riga e colonna vanno dichiarati con riferimento alla matrice, non al foglio di lavoro

RIGHE(zona) COLONNE(zona)

restituiscono il numero di righe o di colonne di una zona

CERCA.VERT(valore;matrice;indice)

restituisce da una matrice (zona) il valore che si trova nella colonna indice in corrispondenza della riga in cui è presente nella prima colonna il valore indicato

VAL.VUOTO(cella)

restituisce il valore VERO se il contenuto della cella è vuoto

Page 351: [eBook Ita] Corso Di Fondamenti Di Informatica

70

Esempio

=CERCA.VERT(A27;A19:C23;3)=CERCA.VERT(A27;A19:C23;3)

Page 352: [eBook Ita] Corso Di Fondamenti Di Informatica

71

Alcune funzioni matricialiMatr.inversa(matrice) (*)

calcola la matrice inversa di una matrice assegnata

Matr.determ(matrice)

calcola il determinante di una matrice assegnata

Matr.prodotto(matrice1;matrice2) (*)

calcola il prodotto tra due matrici assegante

(*) Prima di scrivere la funzione è necessario selezionare interamente la zona di destinazione, che deve essere compatibile con la matrice risultato; bisogna inoltre confermare la funzione con la combinazione

CTRL+SHIFT+INVIO

Page 353: [eBook Ita] Corso Di Fondamenti Di Informatica

72

Nota: lo sfondo della matrice prodotto è stato creato agendo su “Formato celle” > Motivo

Page 354: [eBook Ita] Corso Di Fondamenti Di Informatica

73

Tabelle pivot

Servono a estrarre e visualizzare dati senza impostare formule complicate

Sono uno strumento di analisi

Es. creare una tabella riassuntiva di un inventario di dischi

Page 355: [eBook Ita] Corso Di Fondamenti Di Informatica

74

Page 356: [eBook Ita] Corso Di Fondamenti Di Informatica

75

Page 357: [eBook Ita] Corso Di Fondamenti Di Informatica

76

Page 358: [eBook Ita] Corso Di Fondamenti Di Informatica

77

A questo punto si devono selezionare i dati da usare per la tabella pivot

Page 359: [eBook Ita] Corso Di Fondamenti Di Informatica

78

Si nota come le date siano già state riunite

Page 360: [eBook Ita] Corso Di Fondamenti Di Informatica

79

Un rapporto di tabella pivot può essere utilizzato quando si desidera analizzare totali correlati, soprattutto quando è necessario sommare un lungo elenco di cifre e si desidera confrontare diversi elementi di ciascuna cifra.

Page 361: [eBook Ita] Corso Di Fondamenti Di Informatica

80

Si vede come la tabella pivot riassuma facilmente le informazioni presenti nei dati grezzi

Page 362: [eBook Ita] Corso Di Fondamenti Di Informatica

81

Dai menu a tendina della tabella si selezionano combinazioni interessanti per esplorare i dati

La tabella pivot si riadatta immediatamente alle selezioni

Page 363: [eBook Ita] Corso Di Fondamenti Di Informatica

82

Si possono aggiungere tante sorgenti di dati alla tabella pivot quante vogliamo (e quante a occhio sembra giusto…)

Es. esaminare incidenza IVA sui totali

Page 364: [eBook Ita] Corso Di Fondamenti Di Informatica

83

Si trascina l’IVA nella sezione dei dati

I risultati del pivot possono essere usati in altre celle

Page 365: [eBook Ita] Corso Di Fondamenti Di Informatica

84

Grafici

I tipi di grafico che si possono realizzare sono diversi:

1) Istogramma 8) Radar

2) Barre 9) Superficie

3) Linee 10) Bolle

4) Torta 11) Azionario

5) Dispers.(XY) 12) Cilindri

6) Area 13) Coni

7) Anello 14) Piramidi

Page 366: [eBook Ita] Corso Di Fondamenti Di Informatica

85

Costruzione di un graficoLa costruzione di un grafico è guidata da una procedura di autocomposizione, che si sviluppa in una serie di finestre di dialogo.

1) Selezione oggetto

2) Scelta comando grafico

L’oggetto è la zona contenente i dati.

Suggerimenti:

• impostare la tabella in modo semplice (evitare righe e colonne vuote)

• inserire le etichette di descrizione

Page 367: [eBook Ita] Corso Di Fondamenti Di Informatica

86

Costruzione di un grafico, prima finestra

Al primo passaggio si scelgono tipo e sottotipo di grafico

Page 368: [eBook Ita] Corso Di Fondamenti Di Informatica

87

Costruzione di un grafico, seconda finestra

Al secondo passaggio è già visibile il grafico in anteprima.

Interventi sulle serie (descrizioni e numeri)

Page 369: [eBook Ita] Corso Di Fondamenti Di Informatica

88

Costruzione di un grafico, terza finestra

Il terzo passaggio consente di personalizzare il grafico in ogni suo elemento: basta selezionare una delle schede poste in alto.

Page 370: [eBook Ita] Corso Di Fondamenti Di Informatica

89

Costruzione di un grafico, quarta finestra

Il quarto passaggio, infine, chiede all’utente dove collocare ilgrafico: all’interno del foglio corrente, oppure in un altro foglio mediante la creazione di un nuovo foglio già dimensionato in modo standard.

Page 371: [eBook Ita] Corso Di Fondamenti Di Informatica

90

Costruzione di un grafico, risultato finale!

Page 372: [eBook Ita] Corso Di Fondamenti Di Informatica

91

Titolo del grafico

Pareti

Serie

Legenda

AssiArea del grafico

Page 373: [eBook Ita] Corso Di Fondamenti Di Informatica

92

Aggiunta retta di regressione

Page 374: [eBook Ita] Corso Di Fondamenti Di Informatica

93

Page 375: [eBook Ita] Corso Di Fondamenti Di Informatica

94

Le sorgenti dei dati da cui creare il grafico sono le serie di dati

Se le serie dati sono selezionate per righe o colonne il grafico cambia !

⌧Si deve scegliere l’ordine giusto

Page 376: [eBook Ita] Corso Di Fondamenti Di Informatica

95

Page 377: [eBook Ita] Corso Di Fondamenti Di Informatica

96

Imposta pagina

Page 378: [eBook Ita] Corso Di Fondamenti Di Informatica

97

Stampa

Page 379: [eBook Ita] Corso Di Fondamenti Di Informatica

98

Stampa

È importante regolare l’aspetto del foglio in stampa

Usate anteprima di stampa ed il pulsante “Imposta”

Page 380: [eBook Ita] Corso Di Fondamenti Di Informatica

99

L’impostazione margini è simile a quella di Word

In più si può centrare la tabella

Page 381: [eBook Ita] Corso Di Fondamenti Di Informatica

100

Spesso è necessario comprimere il foglio di lavoro per far entrare tutto su di una pagina, senza lasciare fuori una colonna o riga

Page 382: [eBook Ita] Corso Di Fondamenti Di Informatica

101

Intestazioni e piè di pagina si inseriscono dalle proprietà di pagina

in Word sono invece parte del documento

Page 383: [eBook Ita] Corso Di Fondamenti Di Informatica

102

Se non si deve stampare tutto un foglio di lavoro si può selezionare solo la parte che ci interessa

Page 384: [eBook Ita] Corso Di Fondamenti Di Informatica

103

Per non stampare la griglia delle celle:

Page 385: [eBook Ita] Corso Di Fondamenti Di Informatica

104

Modalità di esecuzione di calcoli su date e ore

Le date vengono memorizzate come numeri sequenziali denominati valori seriali e le ore vengono memorizzate come frazioni decimali (l'ora è considerata come una parte del giorno). È quindi possibile sommare, sottrarre e includere in altri calcoli i valori delle date e delle ore. Per determinare ad esempio la differenza tra due date, è possibile sottrarre una data dall'altra.È possibile visualizzare una data o un'ora come numero seriale o come frazione decimale assegnando alla cella contenente la data o l'ora il formato Generale.

Page 386: [eBook Ita] Corso Di Fondamenti Di Informatica

105

Esempio

=G7+H7=G7+H7

Le celle G7:G10 e I7:I10 hanno un formato “data”

Page 387: [eBook Ita] Corso Di Fondamenti Di Informatica

106

Tecniche avanzate

Formattazione condizionale

Etichette

Ricerca obiettivo

Archivi

Page 388: [eBook Ita] Corso Di Fondamenti Di Informatica

107

Formattazione condizionale

Page 389: [eBook Ita] Corso Di Fondamenti Di Informatica

108

Page 390: [eBook Ita] Corso Di Fondamenti Di Informatica

109

Etichette

Si può assegnare un nome a celle o range, ed usarlo nelle formule

Page 391: [eBook Ita] Corso Di Fondamenti Di Informatica

110

Ricerca obiettivo

Consideriamo il caso della crescita di un capitale Ct secondo la regola dell’interesse composto:

Ct = C0(1 + i)t

Ci chiediamo partendo da un capitale iniziale quale deve essere il tasso affinché si possa avere in un tempo t un certo montante.

Page 392: [eBook Ita] Corso Di Fondamenti Di Informatica

111

Page 393: [eBook Ita] Corso Di Fondamenti Di Informatica

112

Archivio in Excel

In Excel archivio (database) vuol dire tabella.Per garantire il corretto funzionamento dei comandi di database la tabella di dati deve essere costruita secondo alcune regole:una prima riga della tabella deve contenere

l’intestazione, cioè il nome del campo vanno evitate righe vuote, anche tra intestazione e

righe successivela tabella deve essere isolata, cioè separata da almeno

una riga o colonna vuota da formule, funzioni, ecc.

Page 394: [eBook Ita] Corso Di Fondamenti Di Informatica

113

Tipico database di Excel

campi

record

Page 395: [eBook Ita] Corso Di Fondamenti Di Informatica

114

Ordinamento di un database

Page 396: [eBook Ita] Corso Di Fondamenti Di Informatica

115

Ordinamento di un database, risultato finale

Page 397: [eBook Ita] Corso Di Fondamenti Di Informatica

116

Selezione mediante filtriSelezionare la tabella

Selezionare Filtro Automatico dal menu Dati: Excel posiziona delle caselle di selezione a fianco di ogni nome di campo

Cliccando su una freccia appare una lista con tutti i contenuti del campo

Scegliendo una voce della lista, Excel estrae tutti i record contenenti quel valore.

Cliccando su una freccia appare anche un’opzione molto utile: Personalizza.

Questa opzione permette di estrarre dati anche secondo intervalli di valori o confrontando stringhe di testo.

Page 398: [eBook Ita] Corso Di Fondamenti Di Informatica

117

Personalizza filtro automatico

Page 399: [eBook Ita] Corso Di Fondamenti Di Informatica

118

Errori

#DIV/0 divisione per zero###### colonna troppo stretta per i dati#NOME? Excel non riconosce un nome#NUM! qualche problema con la

gestione di un numero#RIF! non è possibile risolvere un

riferimento (es. cella cancellata)#VALORE! tipo errato in un operandoRif. circolari es. in C7 =SOMMA(C4:C7)

Page 400: [eBook Ita] Corso Di Fondamenti Di Informatica

7

Introduzione:

Applicazioni dei database sul Web

Page 401: [eBook Ita] Corso Di Fondamenti Di Informatica

8

Nella scorsa lezione si è visto come gestire un semplice archivio con Excel

Per gestire grandi archivi servono programmi specifici:

DBMS Data Base Management System

Page 402: [eBook Ita] Corso Di Fondamenti Di Informatica

9

Cosa hanno in comune due siti web come:

Amazon: grande magazzino virtuale

WebMonkey: rivista di design per il web

?????

Usano tutti e due un database…

Page 403: [eBook Ita] Corso Di Fondamenti Di Informatica

10

Page 404: [eBook Ita] Corso Di Fondamenti Di Informatica

11

Page 405: [eBook Ita] Corso Di Fondamenti Di Informatica

12

Perché usare un database sul Web

Due premesse:il Web è un ottimo mezzo per la diffusione delle informazioni;i database sono il mezzo idoneo per immagazzinare ed organizzare dati da cui estrarre informazioni.

È possibile raggruppare i diversi modi in cui i database sono impiegati sul Web, in tre tipi di applicazioni:

creazione dinamica di contenuto;transazione di informazioni;memorizzazione ed analisi di dati.

Page 406: [eBook Ita] Corso Di Fondamenti Di Informatica

13

Creazione dinamica di contenuto sul Web

Normalmente ogni pagina Web in un sito è un’entità singola. Le pagine sono progettate individualmente e ciascuna esiste come un file distinto.

Tuttavia, in molti siti un elevato numero di pagine è basato su di uno schema (template) fisso che aiuta a semplificare o automatizzare il processo di progetto.

Seguendo questo schema, una grande quantità di tempo è spesa per immettere o fare il “cut and paste” di testo o di nomi di file in questo template, memorizzando un elevato numero di file.

Page 407: [eBook Ita] Corso Di Fondamenti Di Informatica

14

Nome prodottoImmagine

Descrizione

Numero di telefono per ordinarescritta

Codice prodottoPrezzoOpzioni

Creazione dinamica di contenuto sul Web

Una pagina di un catalogo online può rappresentare un esempio.

Page 408: [eBook Ita] Corso Di Fondamenti Di Informatica

15

Creazione dinamica di contenuto sul Web

Una soluzione efficiente che semplifica drasticamente il processo di editing è quella di memorizzare il file immagine e le descrizioni testuali in un database e “lasciare” che sia un programma, appositamente creato ed eseguito in corrispondenza alla chiamata di una pagine web, a riempire i campi del template.

È questa l’essenza della creazione dinamica di pagine Web.

Page 409: [eBook Ita] Corso Di Fondamenti Di Informatica

16

Creazione dinamica di contenuto sul Web

ZZZZZZZZZ

yyyyyyyyyyyyyyyyyyyy

tel. 1-888-555-1122aperto 24 ore

Codice prodotto: X-2135Prezzo: 500 Opzioni: rotondo, quadratoItemNum Filename ItemName Options Price Description

X-2135 img10.jpg zzzzzzzzz rotondo,quadrato

500 yyyyyyyyyyYyyyyyyyyy

Page 410: [eBook Ita] Corso Di Fondamenti Di Informatica

17

DB

Creazione dinamica di contenuto sul Web

Un unico script sul server genera un numero arbitrario di pagine html tutte con lo stesso formato, il cui contenuto è letto da un database.

ImageID Nome Righe Colonne Bit per Pixel Risoluzione

……. …… ……. …… …… ……

14 chateau1.jpg

100 100 24 20

15 Fighting-forms.jpg

100 120 24 20

……. …… ……. …… …… ……

Tabella ImmaginiMiddleware (php,cgi,asp)

Page 411: [eBook Ita] Corso Di Fondamenti Di Informatica

18

Creazione dinamica di contenuto sul Web

Le pagine Web create dinamicamente attraverso un database, ed il template usato per generare il codice HTML offrono una serie di vantaggi:

il sistema cresce con semplicità. Ad esempio se un catalogo online comprende 1000 pagine, una modifica nel layout richiederebbe, nel caso di pagine statiche, l’editing di tutte le pagine.Elimina possibili erroriNel caso dinamico è sufficiente modificare il layout dell’unico template. Sulla base di questo tutte le pagine vengono generate nello stesso modo, applicando i dati nel database al nuovo template.

Page 412: [eBook Ita] Corso Di Fondamenti Di Informatica

19

Creazione dinamica di contenuto sul Web

Un altro vantaggio della gestione dinamica delle pagine Web è il risparmio di memoria. Questo, più che ai fini del costo (ormai il costo della memoria di massa è relativamente basso), è importante in fase di manutenzione.

Inoltre, l’informazione memorizzata nel database è inserita una volta, ma può essere usata per molteplici scopi oltre a quello della pubblicazione sul Web.

Page 413: [eBook Ita] Corso Di Fondamenti Di Informatica

20

Esempi: query

Page 414: [eBook Ita] Corso Di Fondamenti Di Informatica

21

Esempi

Pagina dei risultati creata dinamicamente

Page 415: [eBook Ita] Corso Di Fondamenti Di Informatica

22

Esempi

Page 416: [eBook Ita] Corso Di Fondamenti Di Informatica

23

Esempi

Page 417: [eBook Ita] Corso Di Fondamenti Di Informatica

24

Transazione di informazioni

In pratica, in ogni interazione tra cliente e fornitore è implicata una transazione di informazioni. Possibili transazioni per un tipico sistema di ordini via web potrebbe includere:

ordine di un prodotto - il cliente fornisce il numero del prodotto, la quantità, la descrizione, informazioni per la spedizione ed il pagamento. La transazione inserisce queste informazioni nei corrispondenti database.

Queste transazioni sono di solito eseguite riempendo un form HTML. Questo documento sul Web rappresenta l’ingresso per il database dell’azienda, utilizzato per gestire tutte le informazioni di una transazione.

Page 418: [eBook Ita] Corso Di Fondamenti Di Informatica

25

Memorizzazione ed analisi di dati

È possibile pensare ad un browser sul Web come strumento di interfaccia per la visualizzazione e l’analisi dei dati di un database. Rappresenta uno strumento di standardizzazione per le applicazioni tradizionali di un database.

I dati del database possono essere usati per fornire informazioni organizzate e per l’analisi delle transazioni o dei prodotti di un’azienda.

Page 419: [eBook Ita] Corso Di Fondamenti Di Informatica

26

Concetti base e linee guida nel progetto

Page 420: [eBook Ita] Corso Di Fondamenti Di Informatica

27

Dati e informazioni

Nel seguito affronteremo essenzialmente il problema di memorizzare ed organizzare dati.

Un dato è un qualunque tipo di valore statico. I suoi valori possono assumere forme diverse, da una semplice scelta si/no, ad un valore numerico, ad un blocco di testo.

Il problema di trasformare dati in informazioni è completamente diverso da quello di costruire dei “contenitori” per i dati.Comunque, esistono metodi per progettare la struttura del database che rendono questa elaborazione più facile da compiere.

Page 421: [eBook Ita] Corso Di Fondamenti Di Informatica

28

Cos’è un database

Un database è fondamentalmente una collezione di registrazioni (records) che concernono qualche sorta di azione od oggetto.

Più formalmente, un database è qualsiasi collezione di “fatti” organizzati in modo sistematico.

Es. Le schede del catalogo di una biblioteca. Ogni scheda, fisica o virtuale, contiene fatti (autore, titolo, ISBN, etc.) che sono organizzati (alfabeticamente per titolo o autore, numericamente per ISBN) al fine di rendere la loro ricerca più semplice rispetto ad una scansione di tutti i libri della biblioteca.

Page 422: [eBook Ita] Corso Di Fondamenti Di Informatica

29

Esistono diversi tipi di database:

Database gerarchiciDatabase a reteDatabase relazionaliDatabase a oggetti

Access, MySQL, SQL Server etc. sono database relazionali

Page 423: [eBook Ita] Corso Di Fondamenti Di Informatica

30

Es. Scheda e Rappresentazione TabellareAutore Titolo Numero di

codice

Ashenfelter, John Choosing a Database foryour Web Site

5019BNA15

Botto, Francis Multimedia and InternetApplications

2212MKV26

Cintron, Dave Fast Track WebProgramming

7682QYT91

Ashenfelter, John 5019BNA15

Choosing a Database for your Web Site

John Wiley & Sons, Inc.

1st printing 1998

Page 424: [eBook Ita] Corso Di Fondamenti Di Informatica

31

Terminologia

Un certo numero di termini descrivono le parti di un database. Sono termini standard, indipendenti dal particolare software con cui è implementato il database.

Campo - è l’unità strutturale di base del database. È il contenitore per un dato o per ogni sua parte logica. Ad esempio, un indirizzo di posta potrebbe essere il campo ma, in un diverso contesto, potrebbero essere campi separati la via, il numero civico, la città, lo stato ed il codice postale.

Page 425: [eBook Ita] Corso Di Fondamenti Di Informatica

32

Terminologia

Record - è un insieme di campi che descrivono un’unità più grande. È detto anche riga. I campi in un record forniscono una descrizione completa di ogni elemento in una collezione. Un record è un’istanza unica di dati che riguardano un oggetto o un evento.

Tabella - è il nome formale dato ad un gruppo di records che contengono gli elementi di una collezione. Di norma una tabella rappresenta un oggetto distinto (es. tabella libri in una biblioteca) o un evento (es. tabella degli ordini per un prodotto).

Page 426: [eBook Ita] Corso Di Fondamenti Di Informatica

33

Terminologia

Chiave - è un identificatore univoco per ogni riga (record) in una tabella di dati. Anche se un record singolo rappresenta una porzione separata dei dati, alcuni di questi records possono apparire identici. La chiave rappresenta un modo non ambiguo per identificare records distinti e serve come puntatore ad un particolare record della tabella. ⌧Es.: ogni cittadino italiano è univocamente identificato dal

codice fiscale.⌧In molti casi, le chiavi per le tabelle dei dati sono costruite

semplicemente aggiungendo un campo al record con funzione di chiave.

Page 427: [eBook Ita] Corso Di Fondamenti Di Informatica

34

Key Field

Record

Tabella indirizzi

TerminologiaID LastName FirstName Address City State Zip

2231 Adamson Robert 1021 BWheatley

Lawrence NY 11559

2232 Anderson John 1024Santee St.

Owings Mill MD 21117

2233 Atget Eugene 103 NMarket

Cleveland OH 44135

2234 Baldus Denis 1031-1 SDolfield

Los Angeles CA 90015

Page 428: [eBook Ita] Corso Di Fondamenti Di Informatica

35

Terminologia

Spesso utenti diversi vogliono guardare ai dati di una stessa o di più tabelle in modi diversi.

⌧Ad esempio, se fornitori e merce sono due tabelle in un database, può essere utile avere una vista di quali merci sono fornite da un certo fornitore. Questo dato può essere ottenuto dalle due tabelle e combinato in una tabella virtuale.

Vista - è una tabella “virtuale”, nel senso che la tabella non è fisicamente presente nel database nel modo con cui è presentata all’utente. La vista è generata come risposta ad una particolare interrogazione. Permette di presentare in modi diversi i dati contenuti nel database.

Page 429: [eBook Ita] Corso Di Fondamenti Di Informatica

36

Terminologia

Database - è una collezione di tabelle. Spesso include anche maschere per l’ingresso dei dati, regole per la verifica della correttezza e la validazione dei dati immessi, ed il formato per creare reportsinformativi dei dati nel database.

Page 430: [eBook Ita] Corso Di Fondamenti Di Informatica

37

Tipi di Database

Esistono diversi modi in cui i database sono implementati. Si possono individuare tre categorie di base:

database flat-filedatabase relazionali database orientati agli oggetti

Page 431: [eBook Ita] Corso Di Fondamenti Di Informatica

38

Database Flat-File

È il tipo più elementare di organizzazione dei dati in un database. La caratteristica base di un flat-file è che tutti i dati sono memorizzati insieme in una singola tabella. La maggior parte dei database cartacei appartengono a questa categoria.

Caratterizzati da semplicità di progetto e implementabili in modo diretto. Un semplice file di testo con dati organizzati può rappresentare un flat-file.È il tipo di organizzazione meno efficiente e più problematica. Il maggior svantaggio è dovuto al fatto che parte dei dati inseriti possono essere ridondanti o inconsistenti.

Page 432: [eBook Ita] Corso Di Fondamenti Di Informatica

39

Flat-File: database di ordiniOrderID CustID Name Shipping Address ItemCode Quantity Price

23455 1521 VelioCooper

152 W Waterloo StAustin, TX 78752

ZD-552 1 8.95

23456 1567 FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-211 2 16.50

23457 1567 FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-212 2 22.00

23458 1765 JaneCarroll

1551 WestwoodBlvd Ocilla, GA31774

CC-48 15 225.15

23459 0021 JodyHawes

2664 Woodhill RdBronx, NY

A-567 1 19.99

23460 1235 DavidHill

742 HearneCleveland, OH44104

XD-234 1 49.95

Page 433: [eBook Ita] Corso Di Fondamenti Di Informatica

40

Database Flat-File

Il database dell’esempio precedente ha un evidente problema di progetto: ogni record è relativo all’ordine di un solo prodotto per un dato cliente.

Se un cliente ordina prodotti diversi, si avranno tanti records per il cliente quanti sono gli ordini (come mostrato per il cliente con CustID=1567)

questo porta alla duplicazione dei dati relativi al cliente (Name, Shipping Address) in ognuno di questi record.

Page 434: [eBook Ita] Corso Di Fondamenti Di Informatica

41

Database Flat-File

In maniera alternativa, il problema potrebbe essere risolto aggiungendo alla tabella un altro insieme di campi (colonne della tabella) ItemCode, Price e Quantity, numerandoli in sequenza (così da distinguere i campi per il primo prodotto da quelli del secondo e dei successivi).

Name Shipping Address ItemCode1 Quantity1 Price1 ItemCode2 Quantity2 Price2

VelioCooper

152 W Waterloo StAustin, TX 78752

ZD-552 1 8.95

FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-211 2 16.50 XT-212 2 22.00

Page 435: [eBook Ita] Corso Di Fondamenti Di Informatica

42

Database Flat-File

Quanti elementi sono sufficienti?se si considera un numero massimo di prodotti ammessi per ogni ordine piccolo, potrebbe accadere che un ordine non possa essere soddisfatto (non è previsto un numero sufficiente di campi);se è previsto un numero massimo ammissibile di prodotti troppo grande si produce un evidente spreco di spazio.

Page 436: [eBook Ita] Corso Di Fondamenti Di Informatica

43

Database relazionali

Sono stati sviluppati con l’obiettivo di prevenire una non necessaria duplicazione dei dati nel database.

Il problema, nell’esempio del database di ordini, nasce dal fatto che nella tabella sono rappresentate due entità logicamente distinte:

il cliente e i dati ad esso relativi;l’insieme di prodotti che sono stati ordinati.

In un database relazionale ogni entità logicamente distinta dalle altre è rappresentata in una differente tabella del database.

Page 437: [eBook Ita] Corso Di Fondamenti Di Informatica

44

Database relazionali: database di ordini

Due tabelle:tabella ordini, con i dati relativi al cliente;tabella prodotti, con i dati relativi ai prodotti di ogni singolo ordine.

Page 438: [eBook Ita] Corso Di Fondamenti Di Informatica

45

Database relazionali: database di ordini

OrderID CustID Name Shipping Address

23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

23460 1235 David Hill 742 Hearne Cleveland, OH 44104

One

Tabella ordini

OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

Many

Tabella prodotti

Page 439: [eBook Ita] Corso Di Fondamenti Di Informatica

46

Database relazionali

La chiave OrderID nella tabella degli ordini descrive univocamente ciascun ordine di un cliente.Ogni prodotto ordinato è individualmente e univocamente memorizzato in una tabella separata dei prodotti.Il cliente può, nello stesso ordine, richiedere quanti prodotti desidera senza limitazioni a priori sul numero massimo, né spreco di memoria.Tra le tabelle è stabilita una relazione tramite le rispettive chiavi.

Page 440: [eBook Ita] Corso Di Fondamenti Di Informatica

47

Database relazionali

Ogni tabella ha la propria chiave primaria per identificare i suoi elementi.

Notare che la chiave OrderID della tabella degli ordini è inserita nella tabella dei prodotti per ogni prodotto che è stato ordinato da un cliente.

Ogni prodotto che è stato ordinato può essere legato al cliente appropriato cercando tutti i records della tabella prodotti che hanno un particolare valore nel campo OrderID.

Page 441: [eBook Ita] Corso Di Fondamenti Di Informatica

48

Database relazionali: relazione uno-a-molti

Nella tabella dei prodotti OrderID non è un valore univoco.

La relazione tra la tabella degli ordini e quella dei prodotti è detta relazione uno-a-molti in quanto un record nella tabella degli ordini è legato ad un numero variabile di records nella tabella dei prodotti.

OrderID serve come chiave esterna nella tabella dei prodotti, in quanto il valore della chiave viene da una diversa tabella (dove i valori sono univoci).

Page 442: [eBook Ita] Corso Di Fondamenti Di Informatica

49

Database relazionali: database degli ordini

Nota: per evitare la duplicazione degli indirizzi di un cliente tra più ordini successivi sarebbe conveniente creare una ulteriore tabella dei clienti, con solo i dati relativi al cliente, e legarla con una relazione uno-a-molti, stabilita attraverso il CustID, con la tabella degli ordini.

In questo modo ogni cliente può effettuare più ordini ed ogni ordine può comprendere più prodotti.

Page 443: [eBook Ita] Corso Di Fondamenti Di Informatica

50

Database relazionale: database di ordiniCustID Name Shipping Address

1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

1235 David Hill 742 Hearne Cleveland, OH 44104

Tabella clienti

OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

Tabella prodottiOrderID CustID Date

23455 1521 2002.02.25

23457 1567 2002.02.13

23458 1765 2002.01.19

23459 1521 2002.02.13

23460 1235 2001.12.21

Tabella ordini

Page 444: [eBook Ita] Corso Di Fondamenti Di Informatica

51

Database relazionali: tipi di relazioni

Oltre alla relazione uno-a-molti esistono altri due modi possibili per relazionare due tabelle del database:

relazione uno-ad-uno;

relazione molti-a-molti.

Page 445: [eBook Ita] Corso Di Fondamenti Di Informatica

52

Database relazionali: relazione uno-a-uno

In una relazione uno-a-uno ogni record in una tabella è collegato ad uno ed uno solo dei record in un’altra tabella.

Nella maggior parte dei casi, questo tipo di relazione è stabilita tra una tabella che rappresenta un insieme di dati relativi ad un sottoinsieme delle entità in una tabella “principale”, e la tabella principale stessa.

Page 446: [eBook Ita] Corso Di Fondamenti Di Informatica

53

Relazione uno-a-uno: database delle risorse umane

EmployeeID LastName FirstName Address Phone77620 Southworth Jerry 496 Laguardia Place 555-222277621 Talbot Gina 426 Lake St 555-826777622 Russell David 318 W 39 Th St 555-444577623 Thompson Linda 2427 Broadway 555-156877624 Albertson Steve 224 Lawrence Ave 555-987277625 Davis Russell 224 Lawrence Ave 555-1213

Tabella

impiegati

EmployeeID Rate Hours77620 7.78 3077625 13.55 40

Tabella impiegati a ore

EmployeeID Salary 401 Health77621 41,000 5 BC77622 55,755 2 BC77623 22,155 N/A QS77624 18,975 2 N/A

Tabella impiegati salariati

Page 447: [eBook Ita] Corso Di Fondamenti Di Informatica

54

Database relazionali: relazione uno-a-uno

La tabella degli impiegati ha un record per ogni impiegato dell’azienda ed usa EmployeeID come chiave primaria per identificarli in modo univoco.

Supponiamo che l’azienda preveda due tipi di impiegati: salariati;a ore.

La tabella impiegati contiene solo i dati di base relativi ad entrambe le categorie: nome, cognome, indirizzo e numero telefonico.

Page 448: [eBook Ita] Corso Di Fondamenti Di Informatica

55

Database relazionali: relazione uno-a-uno

Dato che per le due categorie di impiegati devono essere mantenuti dati diversi, questi sono inclusi in due tabelle ausiliarie:

la tabella degli impiegati a ore. Mantiene solo i dati aggiuntivi che li riguardano, come il costo orario e le ore lavorate;la tabella degli impiegati salariati. La tabella mantiene solo i dati specifici per questa categoria, come il salario complessivo e l’informazione sanitaria.

Per entrambe le tabelle ausiliarie la chiave primaria è rappresentata da EmployeeID.

Page 449: [eBook Ita] Corso Di Fondamenti Di Informatica

56

Database relazionali: relazione uno-a-uno

Ogni impiegato può apparire una sola volta nella tabella impiegati, ed un record nella tabella degli impiegati a ore rappresenta un solo impiegato. Lo stesso vale per la tabella degli impiegati salariati.

L’uso della relazione uno-a-uno tra la tabella principale e ciascuna delle due tabelle ausiliarie ha permesso di separare i dati che riguardano solo sottoinsiemi di records nella tabella principale. In questo modo non è stato necessario inserire campi aggiuntivi nella tabella principale con conseguente risparmio di memoria.

Page 450: [eBook Ita] Corso Di Fondamenti Di Informatica

57

Database relazionali: relazione molti-a-molti

La caratteristica distintiva di una relazione molti-a-molti tra due tabelle è che una terza tabella è necessaria per rappresentare la relazione.

La tabella che descrive la relazione semplicemente mantiene la chiave primaria da una tabella, con la chiave primaria dei record ad essa collegati nella seconda tabella, insieme con ogni altra informazione che contraddistingue la relazione.

Page 451: [eBook Ita] Corso Di Fondamenti Di Informatica

58

Database relazionali: relazione molti-a-molti

La relazione molti-a-molti permette di rappresentare relazioni in casi in cui più records in una tabella sono in relazione con più records in un’altra tabella.

Un esempio classico è quello di un database di corsi e studenti. Ogni corso è seguito da più studenti, ma ogni studente segue molti corsi. Perciò è necessaria una relazione molti-a-molti tra la tabella dei corsi e quella degli studenti.

Un altro esempio è quello della relazione tra impiegati e progetti.

Page 452: [eBook Ita] Corso Di Fondamenti Di Informatica

59

Relazione molti-a-molti:database impiegati e progetti

EmployeeID LastName FirstName77620 Southworth Jerry77621 Talbot Gina77622 Russell David77623 Thompson Linda77624 Albertson Steve77625 Davis Russell

ProjectID Manager Deadline22356 Jones 4/927685 Lewis 12/2233564 Albertson 8/17

Tabella impiegatiTabella progetti

EmployeeID ProjectID77620 2235677621 2768577624 2768577622 3356477624 3356477622 22356

Tabella relazione

impiegati-progetti

Page 453: [eBook Ita] Corso Di Fondamenti Di Informatica

60

Relazione molti-a-molti

Database di progetti che tiene traccia degli impiegati che lavorano su ciascun progetto.Ogni impiegato dell’azienda lavora a molti progetti, ed ogni progetto ha molti impiegati dedicati al suo svolgimento.Sono individuate due tabelle per rappresentare le due entità distinte:

tabella impiegati;tabella progetti.

È necessaria un’ulteriore tabella per rappresentare la relazione molti-a-molti tra impiegati e progetti.

Page 454: [eBook Ita] Corso Di Fondamenti Di Informatica

61

Relazione molti-a-molti

La tabella di relazione tra impiegati e progetti è costruita usando le chiavi primarie delle tabelle impiegati e progetti.

Sia i valori della chiave per la tabella degli impiegati (EmployeeID), sia quelli della chiave per la tabella dei progetti (ProjectID), possono essere ripetuti più volte nella tabella della relazione.

Page 455: [eBook Ita] Corso Di Fondamenti Di Informatica

62

Tabelle e relazioni in Access

Access ha un set di database pronti di esempio

Page 456: [eBook Ita] Corso Di Fondamenti Di Informatica

63

Dal modello Access crea tabelle, relazioni e query

In alternativa si crea un database vuoto e si creano tabelle e relazioni manualmente o in modo guidato

Page 457: [eBook Ita] Corso Di Fondamenti Di Informatica

64

Page 458: [eBook Ita] Corso Di Fondamenti Di Informatica

65

Es.: creazione tabelle dell’esempio precedente: impiegati, progetti e tabella relazione tra impiegati e progetti

Page 459: [eBook Ita] Corso Di Fondamenti Di Informatica

66

Dopo aver creato la tabella delle relazioni si deve creare la relazione vera e propria che mette in collegamento i campi

Page 460: [eBook Ita] Corso Di Fondamenti Di Informatica

67

Si trascinano i campi dalle tabelle degli impiegati e progetti ai rispettivi campi della tabella di relazione

Page 461: [eBook Ita] Corso Di Fondamenti Di Informatica

68

Page 462: [eBook Ita] Corso Di Fondamenti Di Informatica

69

Per fare una prova si immettono dei dati nelle tabelle di impiegati e progetti, e poi nella tabella relazioni

Page 463: [eBook Ita] Corso Di Fondamenti Di Informatica

70

Per vedere il risultato dobbiamo fare una query: selezioniamo tabelle e campi che vogliamo esaminare

Page 464: [eBook Ita] Corso Di Fondamenti Di Informatica

71

Page 465: [eBook Ita] Corso Di Fondamenti Di Informatica

72

Page 466: [eBook Ita] Corso Di Fondamenti Di Informatica

73

Criteri di progetto di un database

I moderni software permettono di costruire in modo semplice un database, ma forniscono uno scarso supporto nel processo di progetto.

Infatti, il processo di progetto dovrebbe essere una fase completamente indipendente dalla scelta del particolare software realizzativo.

Spesso si è vincolati ad un particolare software; tuttavia delle buone scelte di progetto dovrebbero venire prima.

Page 467: [eBook Ita] Corso Di Fondamenti Di Informatica

74

Criteri di progetto di un database

I passi base del processo di progetto sono:1. definizione del problema e degli obiettivi2. valutazione della soluzione corrente (se esiste)3. progetto delle strutture dati4. costruzione delle relazioni5. implementazione di regole e vincoli6. creazione di viste 7. implementazione del progetto.

Notare che l’implementazione con un particolare software è il passo finale. I passi precedenti sono indipendenti dalla realizzazione.

Page 468: [eBook Ita] Corso Di Fondamenti Di Informatica

75

Criteri di progetto:1. definizione del problema

Il primo passo nel progetto di un database è quello di delineare chiaramente la natura dei dati che è necessario memorizzare, senza considerare le interrogazioni che verranno usate sul database per trasformare i dati memorizzati in informazioni.

Questo perché le domande possono cambiare nel tempo ed un database progettato solo per rispondere a domande specifiche diventerebbe inutile.

Page 469: [eBook Ita] Corso Di Fondamenti Di Informatica

76

Criteri di progetto:1. definizione del problema

Il database deve essere pensato in modo da organizzare tutti i dati che sono utilizzati per risolvere un particolare problema o raggiungere un obiettivo, in modo che sia possibile rispondere ad ogni tipo di domanda su quei dati.

Page 470: [eBook Ita] Corso Di Fondamenti Di Informatica

77

Criteri di progetto:2. valutazione della soluzione corrente

Nella maggior parte delle situazioni di progetto, qualche tipo di database esiste già, sia esso in forma cartacea o digitale.

Spesso rappresenta un punto di partenza per conoscere i dati che sono attualmente di interesse.

Nel caso si usi Access è bene esaminare i database di esempio

Page 471: [eBook Ita] Corso Di Fondamenti Di Informatica

78

Criteri di progetto:3. progetto delle strutture dati

Un database è essenzialmente una collezione di tabelle che devono essere definite in base ai dati da rappresentare.

Ogni tabella dovrebbe rappresentare un soggetto o un oggetto fisico distinto.

Di solito, il modo migliore per determinare i dati che appartengono ad una stessa tabella è quello di fare una lista di tutti i campi di interesse per il problema in esame e determinare i raggruppamenti logici tra questi.

Page 472: [eBook Ita] Corso Di Fondamenti Di Informatica

79

Criteri di progetto:3. progetto delle strutture datiSubjects FieldsBuildings AddressClassrooms Course DescriptionCourses Course NameEmployees Course NumberFaculty Members Courses TaughtPart-time Employee Date HiredStaff Funding Source

Home DepartmentHourly RateMeeting TimesNameNumber of SeatsPhone NumberPrerequisitesSalarySocial Security NumberTenure Status………….

Page 473: [eBook Ita] Corso Di Fondamenti Di Informatica

80

Criteri di progetto:3. progetto delle strutture dati

Es. di campi individuati per un sistema di pagamento per l’Università.

Nella lista dei campi alcuni fanno chiaramente riferimento agli impiegati, come Name, Address, Phone Number, Social Security Number, e Date Hired.Altri campi come Courses Taught, Salary e TenureStatus sono parte di una struttura dati separata.I campi Hourly Rate, Founding Source e Home Department sono parte di una struttura per i Part-time Employees.

In questo modo è possibile raggruppare i campi secondo le entità cui appartengono.

Page 474: [eBook Ita] Corso Di Fondamenti Di Informatica

81

Criteri di progetto:3. progetto delle strutture dati

Una volta che le tabelle sono state determinate e i campi sono loro assegnati, il passo successivo è la specifica dei campi.

Un campo perfetto dovrebbe essere:unico tra tutte le tabelle nel database, a meno che non sia usato come chiave;dovrebbe contenere un singolo valore;non dovrebbe essere possibile scomporlo in sottoparti componenti più piccole.

Page 475: [eBook Ita] Corso Di Fondamenti Di Informatica

82

Criteri di progetto:3. progetto delle strutture dati

Deve essere stabilito anche il tipo di dati che devono essere posti in ciascun campo.

Esistono cinque tipi base per i campi (possono essere ulteriormente suddivisi per incrementare l’efficienza di memorizzazione e di elaborazione):

Numerico - è un qualunque valore numerico utilizzabile in operazioni di tipo matematico. È di solito possibile specificare campi numerici interi e reali (float).Booleano - assume solo due valori si/no, vero/falso.

Page 476: [eBook Ita] Corso Di Fondamenti Di Informatica

83

Criteri di progetto:3. progetto delle strutture dati

Ora/Data - memorizza ora e/o data usando vari formati (europeo o americano, conversione a 12-24 ore, etc.).Testuale - rappresenta virtualmente qualunque altro tipo di dato. Di solito esistono campi a lunghezza fissa, variabile o campi speciali per grandi sezioni di testo.Binario - alcuni database possono memorizzare oggetti in forma binaria in un campo. Es.documento, file grafico, campione di suono, o altro. Sono campi essenzialmente contenitori di dati. Su questi campi non possono essere eseguite operazioni di ordinamento o ricerca.

Page 477: [eBook Ita] Corso Di Fondamenti Di Informatica

84

Es. in Access, tipi di dati e formato per dato numerico

Page 478: [eBook Ita] Corso Di Fondamenti Di Informatica

85

Criteri di progetto:3. progetto delle strutture dati

Un ulteriore aspetto di interesse riguarda la nomenclatura da adottare nel nominare tabelle e campi. È di aiuto nella comunicazione e quando il database cresce in complessità e dimensione.

Page 479: [eBook Ita] Corso Di Fondamenti Di Informatica

86

Alcuni suggerimenti:usare nomi descrittivi che riflettono il soggetto della tabella o i dati;non usare nomi specifici per dati che potrebbero assumere una forma più generale;evitare abbreviazioni e acronimi;non usare punteggiatura o spazi nei nomi;usare nomi delle tabelle plurali, nomi dei campi singolari;tabelle di relazione hanno di solito come nome la combinazione dei nomi delle tabelle che collegano.

Page 480: [eBook Ita] Corso Di Fondamenti Di Informatica

87

Criteri di progetto:4. costruzione delle relazioni

Un prerequisito alla costruzione delle relazioni è garantire che ogni tabella abbia una chiave univoca per identificare i singoli records della tabella.

Qualunque campo esistente contenente un valore univoco è un candidato accettabile per essere utilizzato come chiave.

Page 481: [eBook Ita] Corso Di Fondamenti Di Informatica

88

Criteri di progetto:4. costruzione delle relazioni

Una soluzione migliore è quella di aggiungere un campo arbitrario ad ogni tabella con il compito specifico di fungere da campo chiave.

Tale campo deve contenere un valore univoco, anche senza un particolare significato per i dati contenuti nella tabella.

Il valore della chiave è tipicamente un intero assegnato ad ogni record inserito nella tabella e mai ripetuto.

Le relazioni tra tabelle possono essere costruite usando le chiavi delle singole tabelle.

Page 482: [eBook Ita] Corso Di Fondamenti Di Informatica

89

Criteri di progetto:4. costruzione delle relazioni

Per una relazione uno-a-uno, la chiave primaria della tabella principale è inserita nella sottotabella:

la sottotabella utilizza la chiave esterna come chiave principale e non necessita di una propria chiave primaria in quanto gli ingressi nelle due tabelle sono univocamente collegati gli uni agli altri.

EmployeeID LastName FirstName Address Phone77620 Southworth Jerry 496 Laguardia Place 555-222277621 Talbot Gina 426 Lake St 555-826777622 Russell David 318 W 39 Th St 555-444577623 Thompson Linda 2427 Broadway 555-156877624 Albertson Steve 224 Lawrence Ave 555-987277625 Davis Russell 224 Lawrence Ave 555-1213

E m p lo y e e I D S a la r y 4 0 1 ( k ) H e a l t h7 7 6 2 1 4 1 , 0 0 0 5 B C7 7 6 2 2 5 5 , 7 5 5 2 B C7 7 6 2 3 2 2 , 1 5 5 N / A Q S7 7 6 2 4 1 8 , 9 7 5 2 N / A

Page 483: [eBook Ita] Corso Di Fondamenti Di Informatica

90

Criteri di progetto:4. costruzione delle relazioni

In una relazione uno-a-molti, la chiave primaria della tabella con la relazione “uno”, è usata per identificare i record collegati nella tabella “molti:

il collegamento è fatto inserendo la chiave primaria della tabella “uno” come nuovo campo nella tabella “molti” dove rappresenta una chiave esterna.

OrderID CustID Name Shipping Address

23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

23460 1235 David Hill 742 Hearne Cleveland, OH 44104OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

Page 484: [eBook Ita] Corso Di Fondamenti Di Informatica

91

Criteri di progetto:4. costruzione delle relazioni

Una relazione molti-a-molti è la più complessa da costruire. Richiede una tabella aggiuntiva per rappresentare la relazione:

la tabella di relazione è creata riportando in essa le chiavi di una tabella con tutte le chiavi della seconda tabella che sono ad essa associate.

EmployeeID LastName FirstName77620 Southworth Jerry77621 Talbot Gina77622 Russell David77623 Thompson Linda77624 Albertson Steve77625 Davis Russell

ProjectID Manager Deadline22356 Jones 4/927685 Lewis 12/2233564 Albertson 8/17

EmployeeID ProjectID77620 2235677621 2768577624 2768577622 3356477624 3356477622 22356

Page 485: [eBook Ita] Corso Di Fondamenti Di Informatica

92

Criteri di progetto:5. implementazione di regole e vincoli

Regole e vincoli conducono di norma ad una maggiore “pulizia” dei dati e a migliori informazioni nel loro uso.

Alcuni vincoli sono tipicamente imposti dalla natura stessa dei dati.Es.: un campo per il codice fiscale può essere dimensionato per contenere sempre 16 caratteri. Assicura che il dato sia corretto ed accurato. Il sistema può impedire l’inserimento di un codicecon un numero diverso di caratteri (in difetto o in eccesso).Altri dati possono assumere valori solo in uno specifico intervallo. Il sistema può operare un controllo sulla validità dei dati in ingresso.

Page 486: [eBook Ita] Corso Di Fondamenti Di Informatica

93

In Access si specificano i vincoli nelle proprietà del campo

Page 487: [eBook Ita] Corso Di Fondamenti Di Informatica

94

Page 488: [eBook Ita] Corso Di Fondamenti Di Informatica

95

Criteri di progetto:6. creazione di viste

Consente di trasformare i dati del database in informazioni utili all’utente.

Le viste sono semplicemente collezioni di dati resi accessibili in un certo modo. Una vista potrebbe essere un sottoinsieme dei dati delle tabelle.

Ad esempio, nel database degli impiegati il nome ed il numero di telefono potrebbero essere una vista per una interrogazione che ricerca il numero di telefono di un impiegato. Risponde alladomanda senza includere informazione inutile come altri dati personali o privati.In altri casi una vista può raccogliere dati da più tabelle e condensarli insieme. Ad esempio i dati delle tabelle Corsi e Studenti potrebbero essere usati per fornire una lista aggiornata degli studenti in ciascun corso.

Page 489: [eBook Ita] Corso Di Fondamenti Di Informatica

96

Criteri di progetto:7. implementazione del progetto

Il progetto è condotto fino a questo punto senza considerare il particolare software da utilizzare per realizzare il database.

Il criterio di base che guida la scelta è la possibilità di realizzare con una data soluzione software il database di cui si ha bisogno.

Alcune tra le scelte possibili sono:⌧Microsoft Access, lo standard di fatto per Windows;⌧Microsoft SQL Server, database professionale;⌧MySQL, prodotto free molto diffuso per applicazioni sul

Web;⌧Oracle, il leader in ambiente Unix. Richiede hardware e

supporto costosi.

Page 490: [eBook Ita] Corso Di Fondamenti Di Informatica

97

Normalizzazione

In qualunque libro che affronti il progetto di database dal punto di vista teorico viene sempre riservata una certa enfasi al problema della normalizzazione o decomposizione del database.

In sostanza, la normalizzazione è un modo di analizzare e migliorare la stabilità ed integrità di un insieme di dati relazionali.

Previene la possibilità di inconsistenze nei dati conseguenza di una cattiva progettazione.

Page 491: [eBook Ita] Corso Di Fondamenti Di Informatica

98

Normalizzazione

Il processo di progettazione discusso è tale da verificare i requisiti di normalizzazione per il progetto di database tipici.

Il processo di normalizzazione è composto da più passi, ognuno dei quali rappresenta una forma normale (NF).

Esistono 5 forme normali che possono essere applicate ad un database, ma di solito il progettista può accontentarsi di realizzare le prime tre (quindi il processo può arrestarsi alla 3NF).

Page 492: [eBook Ita] Corso Di Fondamenti Di Informatica

99

Processo di Normalizzazione

Un database deve passare attraverso le normalizzazioni in sequenza:

un database in 3NF deve soddisfare anche i requisiti della 1NF e 2NF.

5NF No dipendenze ciclichein chiavi composite

Ogni campo deve essere unico1NF

Per chiavi composite, i campi non chiavedevono essere funzionalmente dipendentidalla chiave composita (non da sue parti)

2NF

No dipendenze transitive tra campi3NF

(BCNF)

No dipendenze multiple in chiavi composite4NF

Page 493: [eBook Ita] Corso Di Fondamenti Di Informatica

100

Prima forma normale (1NF)

Un database che soddisfa la 1NF ha una chiave primaria e non contiene campi dati ripetuti o gruppi di campi (si intende che queste proprietà devono essere soddisfatte da tutte le tabelle del database).

Questo significa che tutti i record di una tabella nel database contengono lo stesso numero di campi dati distinti.

Garantisce che ciascun record possa essere identificato in modo univoco, ed evita la duplicazione di campi base.

Tutti i database visti soddisfano questa condizione.

Page 494: [eBook Ita] Corso Di Fondamenti Di Informatica

101

Prima forma normale (1NF)

Le tabelle non soddisfano la 1NF.

Student Album_______________________________________________________________________________________

StudentID (key) AlbumID (Key)

Name Artist

Year Title

Period 1 class Track 1 name

Period 1 teacher Track 1 duration

Period 1 grade Track 2 name

Period 2 class Track 2 duration

Period 2 teacher Track 3 name

Period 2 grade Track 3 duration

Period 3 class Track 4 name

Period 3 teacher Track 4 duration

Period 3 grade (etc.)

(etc.)

Page 495: [eBook Ita] Corso Di Fondamenti Di Informatica

102

Prima forma normale (1NF)Nell’esempio precedente la tabella Student ha una chiave univoca, ma è chiaramente composta da due entità distinte e dovrebbe pertanto essere divisa in due tabelle in relazione tra loro:

una tabella di informazioni relative agli studenti;una tabella dei corsi.

Una relazione molti a molti dovrebbe rappresentare i corsi seguiti dallo studente.

Nella forma attuale si potrebbe avere un numero di campi per i corsi grande o piccolo rispetto a quelli effettivamente seguiti dallo studente. Lo stesso limite esiste per la tabella degli album.

Page 496: [eBook Ita] Corso Di Fondamenti Di Informatica

103

Seconda e Terza forma normale (2NF, 3NF)

La 2NF si applica solo a database con chiavi composite. Una chiave composita è costituita da informazioni di due o più entità logiche distinte (chiave costituita da più campi). Di conseguenza:

una tabella la cui chiave non è composita e che verifica la 1NF verifica anche la 2NF.

Nella maggior parte dei casi progettare il database in modo da verificare la 2NF determina che anche la 3NF sia verificata.

È la forma di normalizzazione finale applicata a database relazionali nella pratica di impiego comune.

Page 497: [eBook Ita] Corso Di Fondamenti Di Informatica

104

Seconda forma normale(2NF)

Item

Item number (component of key)

Vendor name (component of key)

Product name

Product description

Vendor contact name

Vendor address

Vendor phone number

Unit price

Unit cost

La tabella non

soddisfa la 2NF

Page 498: [eBook Ita] Corso Di Fondamenti Di Informatica

105

Seconda forma normale(2NF)

La tabella dell’esempio precedente non verifica i requisiti della 2NF.

La chiave composita è costituita da informazioni che riguardano due distinte entità logiche, l’item ed il vendor:

il problema di questa soluzione è che quando il Vendor contact name è cambiato, tutti i record che contengono quella informazione devono essere cambiati altrimenti il database conterrà informazione errata;infatti, i record di questa tabella hanno alcuni campi (Vendorcontact name, Vendor address, Vendor phone number) i cui valori dipendono dal valore di un componente della chiave composita (Vendor name).

Page 499: [eBook Ita] Corso Di Fondamenti Di Informatica

106

Seconda forma normale(2NF)

Il processo di progetto definito in precedenza evitava questi problemi attraverso due accorgimenti:

evitare l’uso di chiavi composite;

entità logiche distinte, siano esse oggetti od eventi, richiedono tabelle dei dati distinte.

Page 500: [eBook Ita] Corso Di Fondamenti Di Informatica

107

Terza forma normale (3NF)

Richiede che non esistano dipendenze transitive tra campi nelle tabelle dei dati:

una dipendenza transitiva si presenta quando un campo che non è la chiave primaria della tabella agisce come se fosse un’altrachiave primaria per parte o tutti i campi del record.

La tabella dell’esempio visto per la 2NF contiene sia dipendenze transitive che funzionali, poiché i campi Vendor name e Item number determinano ciascuno i valori di diversi record nella tabella.Nella maggior parte dei casi riprogettare il database in modo da verificare la 2NF determina che anche la 3NF sia verificata.

Page 501: [eBook Ita] Corso Di Fondamenti Di Informatica

108

Normalizzazione

Riassumendo è possibile dire che i processi di base per verificare la 1NF, 2NF e 3NF, si possono tutti ricondurre ad un unico criterio:

garantire che entità logiche distinte siano memorizzate in tabelle differenti.

Come si è visto è possibile arrivare ad una buona progettazione semplicemente seguendo alcune regole di base.

Page 502: [eBook Ita] Corso Di Fondamenti Di Informatica

109

ESEMPI DI PROGETTO

Page 503: [eBook Ita] Corso Di Fondamenti Di Informatica

110

Esercizio di progetto - I

1. Definizione ed obiettivi.Personal Information Manager (PIM) - il principale obiettivo di questo database è di mantenere ed organizzare i dati per contattare le persone coinvolte nella vita personale e professionale.Per il momento la definizione non include il tipo particolare di dati da immagazzinare nel database, né il tipo di interrogazioni eseguite sui dati.

2. Ricerca del database corrente.Comprende la ricerca del modo in cui i dati sono attualmente raccolti e come quei dati sono trasformati in informazioni utili.

Page 504: [eBook Ita] Corso Di Fondamenti Di Informatica

111

Esercizio di progetto - I

3. Progetto delle strutture dati.Assumiamo che il database contenga una sola tabella (Contacts) sia per contatti che riguardano il lavoro che privati. Una soluzione alternativa potrebbe essere quella di avere due tabelle separate per questi due tipi di contatti. Comunque il modo usuale di fare delle interrogazioni è quello di usare il cognome indipendentemente dal fatto che il soggetto cercato appartenga ai contatti di lavoro o privati.

4. Costruzione delle relazioni.Esiste una sola tabella e quindi non ci sono relazioni.

Page 505: [eBook Ita] Corso Di Fondamenti Di Informatica

112

Fieldname Notes

ID Campo numerico usato come chiaveLastName Limite a 40 caratteriFirstName Limite a 20 caratteriMailingAddress Campo testo a lunghezza variabileCity Limite a 30 caratteriState Limite a 2 caratteriZip 10 cifreCountry Limite a 20 caratteriDirections Campo testoHomePhone Memorizzato come campo testoWorkPhone Memorizzato come campo testoFax Memorizzato come campo testoEmail Limitato a 40 caratteriWebPage Home page URLBirthday Data in formato mm/dd/yyyy

Esercizio di progetto - I

Page 506: [eBook Ita] Corso Di Fondamenti Di Informatica

113

Esercizio di progetto - I5. Regole e vincoli.

Sono usate per garantire che le relazioni tra tabelle siano valide e che i dati in ingresso alle tabelle siano privi di errori. In questo caso non ci sono relazioni, ma la chiave primaria deve essere fissata. La sola regola necessaria è che ciascun record sia individuato da un numero intero univoco. Pertanto si assegna 1 al primo record e si incrementa il valore di uno per ogni record successivo.Si potrebbero definire dei vincoli al formato dei numeri telefonici per garantire una maggiore accuratezza.

Page 507: [eBook Ita] Corso Di Fondamenti Di Informatica

114

Esercizio di progetto - I

6. Creazione di viste e reports.Una vista potrebbe essere quella per una query tipica che ricerca nome, indirizzo di posta elettronica e numero(i) di telefono. L’altra vista necessaria è quella che fornisce tutto il record del database.Un report utile è quello che presenta la lista ordinata alfabeticamente di tutti i contatti con numeri di telefono ed indirizzi. Un altro potrebbe essere una lista mensile di tutti i compleanni, o solo per il mese corrente.

7. Implementazione del progetto.Realizzazione del database usando Access

Page 508: [eBook Ita] Corso Di Fondamenti Di Informatica

115

Esercizio di progetto - I

Due possibili alternative alla soluzione vista.Due tabelle distinte. Si potrebbero avere due tabelle separate, una per i contatti personali e una per quelli di lavoro. Un vantaggio di questa scelta è che i campi relativi ad un solo tipo di contatto devono essere posti solo nella tabella corrispondente. Ad esempio il campo compleanno potrebbe essere rilevante solo per i contatti personali. Le queries potrebbero essere più efficienti. Potrebbe però generare problemi se un contatto viene inserito in entrambe le tabelle

Page 509: [eBook Ita] Corso Di Fondamenti Di Informatica

116

Esercizio di progetto - I

Tabella primaria con due sottotabelle. Un progetto più relazionale potrebbe consistere di una tabella primaria con tutte le informazioni costanti sull’individuo (nome, data di nascita, etc.) e due tabelle addizionali che mantengano i contatti personali e di lavoro. Queste sottotabelle addizionali sono collegate a quella principale da una relazione uno-a-uno, ottenuta semplicemente attraverso la chiave primaria della tabella principale. Questa, dal punto di vista del progetto, è la soluzione più corretta.

Page 510: [eBook Ita] Corso Di Fondamenti Di Informatica

117

Esercizio di progetto - II1. Definizione ed obiettivi.

Media File Database - l’obiettivo di questo database è di consentire la gestione di diversi media files e di permettere il loro uso per costruire in modo dinamico il contenuto di un sito Web.

2. Ricerca del database corrente.In questo caso il database corrente è quello costituito dalle informazioni che riteniamo utili. Inoltre è necessario capire come il database verrà utilizzato. Un modo ovvio è di cercare media files rapidamente e facilmente. Un altro possibile utilizzo è la pubblicazione dinamica del contenuto sul Web. Es.per creare un catalogo online per la vendita.

Page 511: [eBook Ita] Corso Di Fondamenti Di Informatica

118

Fieldname NotesFilename Nome del media fileFilesize Può variare da pochi KB a molti MBFile type or format Deve essere flessibileImage dimensions Dimensione in pixelsColor depth In bit da 1 a 32Compression level Alcuni formati hanno diversi livelli di compressioneScanned resolution Immagini scannerizzate a diversi livelliFile manupulations Storia di come il file è stato editatoLast modification Data di ultima modificaSampling rate Per audio files. Frequenza di campionamentoVideo frame rate Per i video sono possibili diversi frame rateCodec used Video compressi con formati proprietariOriginal source Book, CD, videotape o altre sorgentiDescriptive text Descrive il tipo di media presenteKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)Length of sound clip Lunghezza del file audioPlug-in location Sito Web da cui scaricare il plug-in se necessarioVideo duration Durata del file video

Esercizio di progetto - II

Page 512: [eBook Ita] Corso Di Fondamenti Di Informatica

119

Esercizio di progetto - II

3. Progetto delle strutture dati.In questo esempio è possibile individuare più oggetti: i files video, audio e di immagini. In aggiunta è possibile considerare un oggetto corrispondente a files di testo con le informazioni descrittive utili per realizzare una pubblicazione dinamica sul Web. Una tabella può essere impiegata per mantenere la descrizione testuale e il nucleo di informazioni comuni ai vari files (es. nome, dimensione e lista di keywords). Questa tabella è collegata a quella dei singoli media, che ne riportano le informazioni specifiche (una tabella separata per audio, video ed immagini).

Page 513: [eBook Ita] Corso Di Fondamenti Di Informatica

120

Esercizio di progetto - IIFieldname NotesFilename Nome del media fileFilesize Può variare da pochi KB a molti MBFileType Deve essere flessibileFileChanges Storia di come il file è stato editatoLastModification Data di ultima modificaDescriptiveText Descrive il tipo di media presenteFileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)

Files Data Table

Fieldname NotesImageHeight In pixelsImage Width In pixelsImageColor depth In bit da 1 a 32ImageCompressionLevel Alcuni formati hanno diversi livelli di compressioneImageScannedResolution Immagini scannerizzate a diversi livelli

Images Data Table

Page 514: [eBook Ita] Corso Di Fondamenti Di Informatica

121

Fieldname NotesSoundSamplingRate Audio files possono essere campionati a diversi ratesSoundClipLength Lunghezza del file audio

Esercizio di progetto - IISounds Data Table

Videos Data TableFieldname NotesHeight In pixelsWidth In pixelsVideoColorDepth In bit da 1 a 32VideoCompressionLevel Alcuni formati hanno diversi livelli di compressioneVideoSamplingRate Campionamento per il videoFrameRate Per i video sono possibili diversi frame rateCodec Video compressi con formati proprietariVideoLength Lunghezza del file video

Page 515: [eBook Ita] Corso Di Fondamenti Di Informatica

122

Esercizio di progetto - II

Possiamo considerare altre due tabelle utili.Dato che una particolare sorgente può fornire un numero di media diversi, è meglio utilizzare una tabella separata per questa informazione. Le sorgenti possono essere compagnie o singoli individui; altre sorgenti sono libri, riviste o altri media tradizionali digitalizzati.L’ultima tabella contiene l’insieme di progetti in cui questi media files sono attualmente utilizzati.

Page 516: [eBook Ita] Corso Di Fondamenti Di Informatica

123

Esercizio di progetto - II

Fieldname NotesProjectName Nome del progettoContact Persona da contattare per il progettoProjectsNotes Note sul progetto

Projects Data Table

Fieldname NotesOriginalSource Book, CD, videotape o altre sorgentiSourceNotes Descrive il tipo di media presenteSourceKeywords Usate per la sorgente

Sources Data Table

Page 517: [eBook Ita] Corso Di Fondamenti Di Informatica

124

Esercizio di progetto - II4. Costruzione delle relazioni.

Il primo problema è la definizione delle chiavi per ogni tabella. Le chiavi sono poi utilizzate per stabilire le relazioni.⌧Per la tabella dei Files il campo FileName può contenere

duplicati. Come chiave primaria si assegna un intero in un campo FileID.

⌧La tabella dei Files è legata alle tabelle Images, Videos e Sounds da relazioni uno-a-uno, in quanto ciascuna di queste rappresenta una sottotabella per la tabella dei Files. Per creare la relazione è sufficiente porre la chiave FileIDdella tabella Files nelle sottotabelle come chiave esterna. Le sottotabelle possono usare la chiave esterna come chiave primaria, in quanto consente di identificare in modo univoco ciascun record.

Page 518: [eBook Ita] Corso Di Fondamenti Di Informatica

125

Esercizio di progetto - IIF ileID F ileType F ileS ize Keyw ords Descrip tion101 JPG 427 Bu lle t,square Hom epage bu lle t102 AVI 1592031 P lane F ly ing p lane103 G IF 85 L ine , red Red ru le104 JPG 5627 Canyon Copper canyon105 W AV 13220 D ing Doorbe ll106 M O V 22843612 Cry, baby Cry ing baby boy

FileID Height Width101 20 80103 10 60104 110 75

Images Table

FileID SoundSamplingRate SoundClipLength105 44.1 30

Sounds Table

FileID Height Width Length102 400 300 26.1106 400 300 240.0

Videos Table

Files

Table

Page 519: [eBook Ita] Corso Di Fondamenti Di Informatica

126

Esercizio di progetto - II

⌧La relazione tra la tabella Files e la tabella Sources è invece una relazione uno-a-molti tra Sources (uno) e Files(molti). Infatti, ciascun record nella tabella Files è legato ad un solo record della tabella Sources (ogni file può avere una sola sorgente), mentre ogni record in Sources può essere legato ad uno o più record in Files (ogni sorgente può produrre più file diversi).È quindi necessario inserire la chiave primaria della tabella “uno” come chiave esterna nella tabella “molti”.Alla tabella Sources è assegnata come chiave primaria un intero identificato con il campo SourceID, e questa chiave è aggiunta anche alla tabella Files dove rappresenta una chiave esterna.

Page 520: [eBook Ita] Corso Di Fondamenti Di Informatica

127

Esercizio di progetto - II

SourceID Source Copyright001 Personal Yes002 BBC Library No003 Mega Studios No004 David Rides Yes

David

Sources Table

one

FileID SourceID FileType FileS ize Keywords Description101 001 JPG 427 Bullet,square Hom epage bullet102 001 AVI 1592031 Plane Flying p lane103 002 GIF 85 Line, red Red ru le104 004 JPG 5627 Canyon Copper canyon105 001 W AV 13220 D ing Doorbell106 002 M OV 22843612 Cry, baby Crying baby boy

Files Table many

Page 521: [eBook Ita] Corso Di Fondamenti Di Informatica

128

Esercizio di progetto - II⌧L’ultima relazione è tra la tabella Projects e la tabella

Files. Un singolo progetto può comprendere un certo numero di files, ed un singolo file può essere parte di più progetti. La relazione tra le due tabelle è quindi molti-a-molti.Alla tabella progetti è assegnata una chiave primaria ProjectID costituita da un numero intero. La relazione è stabilita attraverso una nuova tabella in cui sono riportate le chiavi primarie dalle tabelle Filese Projects per i records che devono essere posti in relazione. La tabella di collegamento è identificata con Projects_Files.

Nella sua versione finale il database comprende quindi 7 tabelle, 3 relazioni uno-a-uno, 1 relazione uno-a-molti e 1 relazione molti-a-molti.

Page 522: [eBook Ita] Corso Di Fondamenti Di Informatica

129

Esercizio di progetto - IIF ile ID SourceID F ileType101 001 JPG102 001 AVI103 002 G IF104 004 JPG105 001 W AV106 002 M O V

ProjectID ProjectName Cantact2567 MegaSite Dave Nelson2568 Davis Presentation Cindy Raye2569 Monkey Movie Nell Smith

David

Files Table

Projects Table

ProjectID FileID2567 1012569 1022568 1032567 1042569 1052569 106Projects_Files Table

Page 523: [eBook Ita] Corso Di Fondamenti Di Informatica

130

Esercizio di progetto - II

In uno schema entità-relazione il database può essere rappresentato nel modo seguente:

Sources

moltiuno

FilesProjectsuno

uno

unouno

Images

Sounds

Videosmoltimolti

Project_Files

Page 524: [eBook Ita] Corso Di Fondamenti Di Informatica

131

Esercizio di progetto - II

Tenendo conto delle chiavi primarie e delle relazioni, le tabelle assumono la forma seguente:

Fieldname NotesFileID Chiave primariaSourceID Chiave esterna che collega alla Sources Data TableFileName Nome del media fileFileSize Può variare da pochi KB a molti MBFileType Deve essere flessibileFileChanges Storia di come il file è stato editatoLastModified Data di ultima modificaDescription Descrive il tipo di media presenteFileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)

Files Data Table

Page 525: [eBook Ita] Corso Di Fondamenti Di Informatica

132

Esercizio di progetto - II

Fieldname NotesImageID Chiave esterna dalla Files Data TableImageHeight In pixelsImageWidth In pixelsImageColorDepth In bit da 1 a 32ImageCompressionLevel Alcuni formati hanno diversi livelli di compressioneImageScannedResolution Immagini scannerizzate a diversi livelli

Images Data Table

Fieldname NotesSoundID Chiave esterna dalla Files Data TableSoundSamplingRate Audio files possono essere campionati a diversi ratesSoundClipLength Lunghezza del file audio

Sounds Data Table

Page 526: [eBook Ita] Corso Di Fondamenti Di Informatica

133

Esercizio di progetto - IIVideos Data Table

Fieldname NotesVideoID Chiave esterna dalla Files Data TableHeight In pixelsWidth In pixelsVideoColorDepth In bit da 1 a 32VideoCompressionLevel Alcuni formati hanno diversi livelli di compressioneVideoSamplingRate Campionamento per il videoFrameRate Per i video sono possibili diversi frame rateCodec Video compressi con formati proprietariVideoLength Lunghezza del file video

Fieldname NotesSourceID Chiave primariaOriginalSource Book, CD, videotape o altre sorgentiSourceNotes Descrive il tipo di media presentSourceKeywords Usate per la sorgente

Sources Data Table

Page 527: [eBook Ita] Corso Di Fondamenti Di Informatica

134

Esercizio di progetto - II

Fieldname NotesProjectID Chiave primariaProjectName Nome del progettoProjectContact Persona da contattare per il progettoProjectsNotes Note sul progetto

Projects Data Table

Fieldname NotesFileID Chiave esterna dalla Files Data Table ProjectID Chiave esterna dalla Projects Data Table

Projects_Files Table

Page 528: [eBook Ita] Corso Di Fondamenti Di Informatica

135

Esercizio di progetto - II

5. Regole e vincoli.Diversi campi per le sottotabelle Images, Sound e Videos, sono soggetti a vincoli. Ad esempio un file audio può essere campionato sia in modalità monoche stereo. La frequenza di campionamento è normalmente limitata ad un insieme di frequenze, che includono 11, 22, 32, 44.1 e 48KHz.Inoltre possono essere stabilite delle regole per i nomi dei files. Ad esempio tutti con lettere minuscole senza spaziature o altri caratteri di punteggiatura.

Page 529: [eBook Ita] Corso Di Fondamenti Di Informatica

136

Esercizio di progetto - II6. Creazione di viste e reports.

Le viste essenziali da creare sono quelle che combinano i dati dalla tabella dei Files con quelli dei singoli media. Le informazioni dai records collegati possono essere ottenute attraverso la chiave che definisce la relazione.Un report di interesse potrebbe essere quello che produce la lista di files che verificano una qualche combinazione di keyword, size, type e/o filename. Ad esempio, tutte le immagini con dimensione maggiore di una soglia data. Oppure la lista dei files forniti da ciascuna sorgente. Infine, una lista dei file impiegati in ogni progetto.

Page 530: [eBook Ita] Corso Di Fondamenti Di Informatica

7

Introduzione:

Breve storia del linguaggio HTML

Page 531: [eBook Ita] Corso Di Fondamenti Di Informatica

8

Breve storia del linguaggio HTML

Le origini dell’HTML possono essere fatte risalire ad un’idea di Vannevar Bush che descrisse un sistema per collegare in modo associativo le informazioni.

Bush definì questo sistema memex (memoryextension), e lo propose come mezzo per aiutare la mente umana a far fronte ad un sempre più crescente numero di informazioni.

Page 532: [eBook Ita] Corso Di Fondamenti Di Informatica

9

Breve storia del linguaggio HTML

Nel 1965, Ted Nelson coniò il termine ipertestoper descrivere un testo che seguisse le idee di Bush.

L’ipertesto, come descritto da Nelson, avrebbe dovuto collegare dei documenti per creare una rete di relazioni con l’intento di estendere ed accrescere il significato di un testo "piatto" con collegamenti ad altri testi.

Page 533: [eBook Ita] Corso Di Fondamenti Di Informatica

10

Breve storia del linguaggio HTML

Le idee di Vannevar Bush e di Ted Nelson furono riprese in un progetto del 1989 da Tim Berners-Lee, un ricercatore del CERN di Ginevra, che propose un sistema basato sull’ipertesto per permettere una più efficiente condivisione delle informazioni tra i membri della comunità scientifica dell’istituto per cui lavorava.

Page 534: [eBook Ita] Corso Di Fondamenti Di Informatica

11

Breve storia del linguaggio HTML

La proposta di Berners-Lee (il cui titolo era "HyperText and CERN") aveva come obiettivi:

• la creazione di un’interfaccia utente che potesse essere consistente su tutte le piattaforme, per permettere all’utente di accedere alle informazioni da diversi computer;

• uno schema per quest’interfaccia che permettesse di accedere ad una grande varietà di tipi di documenti e di protocolli di informazione;

• la predisposizione per un "accesso universale", che avrebbe permesso ad un qualunque utente della rete di accedere ad un qualunque tipo di informazione

Page 535: [eBook Ita] Corso Di Fondamenti Di Informatica

12

Breve storia del linguaggio HTML

Da questo momento in poi ha inizio la storia dell’HTML, che diventa di pubblico dominio grazie all’introduzione nel febbraio del 1993 del browser Mosaic per il sistema X Window. Mosaic fu sviluppato dall’NCSA (National Center forSupercomputing Applications) sotto la guida di MarcAndreessen che in seguito sarebbe diventato uno dei fondatori di Netscape.

Page 536: [eBook Ita] Corso Di Fondamenti Di Informatica

13

Breve storia del linguaggio HTML

Dal 1994 tutte le modifiche ad HTML sono avvenute sotto l’egida del World Wide Web Consortium (W3C) consorzio nato grazie agli sforzi del MIT e del CERN.

Il consorzio comprende i più importanti centri di ricerca e le principali aziende del settore informatico che stanno guidando l’HTML nella sua evoluzione verso la definizione di uno STANDARD per lo sviluppo della rete.

Page 537: [eBook Ita] Corso Di Fondamenti Di Informatica

14

Terminologia

Ipertesto: documento testuale in formato elettronico “non sequenziale”

Sito: insieme delle informazioni, organizzate come un ipertesto e residenti su un computer

Page 538: [eBook Ita] Corso Di Fondamenti Di Informatica

15

Il Web

Al livello di descrizione più elementare il Web è un mezzo per condividere informazioni. L’informazione è memorizzata in un formato standard che include sia gli effettivi dati testuali e/o numerici, sia i controlli per la loro formattazione.

Questa informazione è memorizzata in un computer remoto connesso alla rete, che rende accessibile questa informazione a chiunque sia connesso alla rete.

Page 539: [eBook Ita] Corso Di Fondamenti Di Informatica

16

Introduzione

Concetti base del linguaggio HTMLConcetti base del linguaggio XMLConcetti base delle pagine HTMLAggiungere intestazioni e paragrafi Aggiungere enfasi al testo Aggiungere immagini Aggiungere collegamenti ad altre pagine Usare vari tipi di liste

Page 540: [eBook Ita] Corso Di Fondamenti Di Informatica

17

Concetti base del linguaggio HTML

Page 541: [eBook Ita] Corso Di Fondamenti Di Informatica

18

Concetti base del linguaggio HTML

HTML e' l'acronimo di HyperText Markup Language, ovvero un linguaggio di formattazione basato su marcatori che consentono di specificare l'aspetto di un documento e le relazioni o i collegamenti con altri documenti.

Page 542: [eBook Ita] Corso Di Fondamenti Di Informatica

19

Markup

Definizione di markup:

sequenza di caratteri o altri simboli che si inseriscono all’interno di un documento per indicare come il contenuto deve apparire o per descrivere la struttura logica del documento. Spesso gli indicatori di markupsono chiamati tag.

Page 543: [eBook Ita] Corso Di Fondamenti Di Informatica

20

Concetti base del linguaggio HTML

La definizione del contenuto di un documento HTML avviene attraverso appositi marcatori definiti TAG. I TAG rappresentano gli elementi o identificatori che costituiscono il linguaggio HTML e sono delimitati da parentesi angolari:Es. <HTML>

Page 544: [eBook Ita] Corso Di Fondamenti Di Informatica

21

HTML

E’ un linguaggio per la descrizione di come appaiono documenti all’interno di un browser.

Fornisce tag per titoli, paragrafi, font, link, immagini.

Page 545: [eBook Ita] Corso Di Fondamenti Di Informatica

22

HTML

<P><FONT SIZE="+1"><STRONG>HTML: All form and no

substance</STRONG></FONT><BR>HTML is a language designed to &quot;talk about&quot; documents:

headings, titles, captions, fonts, and so on. It's heavily documentstructure- and presentation-oriented.

Page 546: [eBook Ita] Corso Di Fondamenti Di Informatica

23

HTML

Non è estendibile: a meno di non essere il W3C o BillGates…

E’ orientato alla rappresentazione del contenuto: mischia elementi strutturali (es. titoli) con elementi rappresentativi (es. bold)

Page 547: [eBook Ita] Corso Di Fondamenti Di Informatica

24

XML

Concetti base del linguaggio XML

Page 548: [eBook Ita] Corso Di Fondamenti Di Informatica

25

Concetti base del linguaggio XML

XML è l’ eXtensible Markup Language

è extensible a differenza dell’HTML che è fisso.

E’ un metalinguaggio:

può definire nuovi linguaggi di markup

Page 549: [eBook Ita] Corso Di Fondamenti Di Informatica

26

Concetti base del linguaggio XML

E’ una specifica ufficiale del World Wide Web Consortium (W3C).

W3C lo definisce come:

"a common syntax for expressing structure in data."

Page 550: [eBook Ita] Corso Di Fondamenti Di Informatica

27

Concetti base del linguaggio XML

Lo scopo di XML è quello di separare la definizione dei dati dalla loro rappresentazione, per consentire lo scambio di documenti strutturati sul web.

HTML specifica come un documento deve essere mostrato, non descrive che tipo di informazione è contenuta e come è strutturata.

Page 551: [eBook Ita] Corso Di Fondamenti Di Informatica

28

Concetti base del linguaggio XML

XML consente agli autori di un documento di organizzare l’informazione in un modo standard.

Uno degli scopi principali di XML è di consentire lo scambio di dati tra sistemi potenzialmente incompatibili.

Page 552: [eBook Ita] Corso Di Fondamenti Di Informatica

29

Concetti base del linguaggio XML

XML è basato su file di testo (come HTML), può essere usato su qualsiasi piattaforma.

E’ nato per essere usato su Internet, ma va bene ovunque.

E’ un sub-set di SGML (Standard Generalized MarkupLanguage)

Page 553: [eBook Ita] Corso Di Fondamenti Di Informatica

30

Concetti base del linguaggio XML

Def.: SGML:Metalinguaggio per la definizione di linguaggi di markup. Standard ISO

SGML si basa sull’idea che i documenti hanno elementi strutturali e semantici che possono essere descritti senza tenere conto di come devono essere visualizzati.

Page 554: [eBook Ita] Corso Di Fondamenti Di Informatica

31

Concetti base del linguaggio XML

L’ Hypertext Markup Language (HTML), è un esempio di linguaggio basato su SGML.

C’è un document type definition (DTD) per l’HTML

Il DTD è un documento che definisce la grammatica di un linguaggio

Un linguaggio definito in termini di SGML si chiama applicazione di SGML.

Page 555: [eBook Ita] Corso Di Fondamenti Di Informatica

32

Concetti base del linguaggio XML

SGML è usato per lo scambio di dati e documenti dal Dipartimento della Difesa degli Stati Uniti, dalle industrie aerospaziali e delle telecomunicazioni, etc.

XML è nato per portare SGML sul web

Page 556: [eBook Ita] Corso Di Fondamenti Di Informatica

33

Concetti base delle pagine HTML

Page 557: [eBook Ita] Corso Di Fondamenti Di Informatica

34

Concetti base delle pagine HTML

Ogni pagina HTML deve iniziare con i seguenti elementi:

<html><head><title>Titolo della finestra</title></head><body>

Dove l’elemento <html> è la dichiarazione di linguaggio e <head> è l’area che contiene ciò che apparirà nella barra superiore del browser (<title>) più eventuali script e META tagper i motori di ricerca

Page 558: [eBook Ita] Corso Di Fondamenti Di Informatica

35

Concetti base delle pagine HTML

<html><head><title>Titolo della finestra</title></head><body>

All’interno del tag <body> andrà inserito il contenuto della pagina HTML

Alla fine della pagina dovranno essere presenti i tag di chiusura

</body></html>

Vedi la pagina HTML

Page 559: [eBook Ita] Corso Di Fondamenti Di Informatica

36

HTML

La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico:

es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

Page 560: [eBook Ita] Corso Di Fondamenti Di Informatica

37

HTML

<HTML><HEAD><TITLE></TITLE></HEAD><BODY></BODY></HTML>

Page 561: [eBook Ita] Corso Di Fondamenti Di Informatica

38

HTML

Es.: dentro il body non devo rispettare l’ordine degli header H1, H2, H3.

Per motivi pratici i browser “perdonano” molti errori nel codice HTML

Page 562: [eBook Ita] Corso Di Fondamenti Di Informatica

39

Aggiungere intestazioni e paragrafi

Page 563: [eBook Ita] Corso Di Fondamenti Di Informatica

40

Aggiungere intestazioni e paragrafi

In HTML esistono sei livelli di intestazioni. H1 è il più importante, H2 è leggermente meno

importante, e così via fino ad H6, il meno importante di tutti. Ecco come aggiungere un'intestazione importante:

<h1>Un'intestazione importante</h1>ed ecco un'intestazione leggermente meno importante:

<h2>Un'intestazione leggermente meno importante</h2>

Vedi la pagina HTML

Page 564: [eBook Ita] Corso Di Fondamenti Di Informatica

41

Aggiungere intestazioni e paragrafi

Ogni paragrafo che scrivete dovrebbe cominciare con il marcatore <p> e chiudere con </p>.

<p>Questo è il primo paragrafo.</p><p>Questo è il secondo paragrafo.</p>

E’ possibile anche creare interruzioni di riga con il tag<br>

<p>Questo è il terzo paragrafo.<br>Adesso siamo a capo di una riga </p>

Vedi la pagina HTML

Page 565: [eBook Ita] Corso Di Fondamenti Di Informatica

42

Aggiungere enfasi al testo

Page 566: [eBook Ita] Corso Di Fondamenti Di Informatica

43

Aggiungere enfasi al testo

Potete enfatizzare una o più parole grazie ad appositi marcatori.

<strong> o <b> rende il testo grassetto

<em> o <i> rende il testo corsivo

Page 567: [eBook Ita] Corso Di Fondamenti Di Informatica

44

Aggiungere enfasi al testo

Esempio:<p>Con il testo in grassetto, <strong>voglio attirare l'attenzione</strong> mentre di seguito faccio una citazione <em>”Thinking HTML”</em></p>

Vedi la pagina HTML

Page 568: [eBook Ita] Corso Di Fondamenti Di Informatica

45

Aggiungere immagini

Page 569: [eBook Ita] Corso Di Fondamenti Di Informatica

46

Aggiungere immagini

Le immagini possono essere usate per aiutarvi a veicolare il messaggio che intendete comunicare. Il modo più semplice di aggiungere un'immagine è usare il marcatore <img>.

Poniamo che vi sia un file immagine chiamato ”libro.jpg" nella stessa directory del vostro file HTML. Esso misura 200 pixel di larghezza per 150 di altezza.

Page 570: [eBook Ita] Corso Di Fondamenti Di Informatica

47

Aggiungere immagini

Avremo quindi:

<img src=”libro.jpg" width="200" height="150” alt=“Il Dizionario Sabatini-Colletti”>

L'attributo src richiama il file immagine.

L'attributo alt serve per le persone che non possono vedere l'immagine ed hanno bisogno di una descrizione da leggere in sua assenza.

Vedi la pagina HTML

Page 571: [eBook Ita] Corso Di Fondamenti Di Informatica

48

Aggiungere collegamenti ad altre pagine

Page 572: [eBook Ita] Corso Di Fondamenti Di Informatica

49

Aggiungere collegamenti ad altre pagine

Ciò che rende il Web così efficace è la capacità di definire collegamenti da una pagina ad un'altra, sia all’interno dello stesso sito che verso altri siti.

I collegamenti (o link) sono definiti per mezzo del marcatore <a> (anchor).

Page 573: [eBook Ita] Corso Di Fondamenti Di Informatica

50

Aggiungere collegamenti ad altre pagine

Creiamo ora un collegamento alla pagina ”libro.html":

<p>Questo è un collegamento <a href=”libro.html">alla pagina del libro</a></p>

Vedi la pagina HTML

Il testo tra <a> e </a> è usato come didascalia per il collegamento. La didascalia appare comunemente come un testo blu sottolineato.

Page 574: [eBook Ita] Corso Di Fondamenti Di Informatica

51

Aggiungere collegamenti ad altre pagine

Per fare un collegamento ad una pagina su un altro sito Web è necessario fornire l'indirizzo Internet completo (comunemente chiamato URL), per esempio per creare un collegamento a www.w3c.org dovete scrivere: <p>Questo è un link al <a href="http://www.w3.org/">W3C</a></p>

Vedi la pagina HTML

Page 575: [eBook Ita] Corso Di Fondamenti Di Informatica

52

Usare vari tipi di liste

Page 576: [eBook Ita] Corso Di Fondamenti Di Informatica

53

Usare vari tipi di liste

L'HTML supporta tre tipi di liste.

Il primo tipo è l'elenco puntato, definito spesso lista non ordinata.

Esso usa i marcatori <ul> e <li>

Page 577: [eBook Ita] Corso Di Fondamenti Di Informatica

54

Usare vari tipi di liste

Per esempio:

<ul><li>il primo elemento della lista</li><li>il secondo elemento della lista</li><li>il terzo elemento della lista</li>

</ul>

Notate che è necessario chiudere sempre la lista con il marcatore finale </ul>.

Vedi la pagina HTML

Page 578: [eBook Ita] Corso Di Fondamenti Di Informatica

55

Usare vari tipi di liste

Il secondo tipo di lista è l'elenco numerato, detto anche lista ordinata.

Usa i marcatori <ol> e <li>

Page 579: [eBook Ita] Corso Di Fondamenti Di Informatica

56

Usare vari tipi di liste

Per esempio:

<ol><li>il primo elemento della lista</li><li>il secondo elemento della lista</li><li>il terzo elemento della lista</li>

</ol>

Così come per gli elenchi puntati, occorre sempre chiudere la lista con il marcatore finale </ol>,

Vedi la pagina HTML

Page 580: [eBook Ita] Corso Di Fondamenti Di Informatica

57

Usare vari tipi di liste

Il terzo ed ultimo tipo di lista è l'elenco di definizioni, che vi consente di elencare dei termini e le relative definizioni.

Questo tipo di lista è aperta con il marcatore <dl> ed è chiusa con </dl>.

Ogni termine comincia con un marcatore <dt> ed ogni definizione con un <dd>.

Page 581: [eBook Ita] Corso Di Fondamenti Di Informatica

58

Usare vari tipi di liste

Per esempio:

<dl> <dt>il primo termine</dt> <dd>la sua definizione</dd> <dt>il secondo termine</dt> <dd>la sua definizione</dd> <dt>il terzo termine</dt> <dd>la sua definizione</dd> </dl>

Vedi la pagina HTML

Page 582: [eBook Ita] Corso Di Fondamenti Di Informatica

59

Inserire contenuti multimediali

Page 583: [eBook Ita] Corso Di Fondamenti Di Informatica

60

Inserire contenuti multimediali

Dobbiamo prima di tutto distinguere tra due tipi di contenuto multimediale: il contenuto “interno” ed il contenuto “esterno”.Il contenuto interno è quello che è fruibile direttamente attraverso il browser, mentre quello esterno richiede del software che non è parte integrante del browser.

Page 584: [eBook Ita] Corso Di Fondamenti Di Informatica

61

Inserire contenuti multimediali

Un tipico contenuto interno è ad esempio una semplice animazione come una gif animata, una applet Java o un controllo ActiveX.Per contenuto esterno si può far riferimento ad un filmato mpeg o una sorgente RealAudio ( che comportano l'apertura dell'apposito lettore)

Page 585: [eBook Ita] Corso Di Fondamenti Di Informatica

62

Inserire contenuti multimediali

Iniziamo a trattare l'inserimento del contenuto esterno che risulta un procedimento piuttosto semplice: l'operazione da effettuare è la scrittura di un link che punti al file multimediale che si desidera mandare in esecuzione.

Page 586: [eBook Ita] Corso Di Fondamenti Di Informatica

63

Inserire contenuti multimediali

Ad esempio per inserire il filmato ”libro.mpeg" nella propria pagina è necessario scrivere :

<A href=”filmato.mov"> Vedi il Filmato </A>

vedi la pagina web

Page 587: [eBook Ita] Corso Di Fondamenti Di Informatica

64

Inserire contenuti multimediali

E' consigliabile inserire nel testo allegato ai contenuti multimediali anche qualche informazione riguardo alle dimensioni del file e ai tempi di caricamento

es.: Tempo richiesto per il download

Page 588: [eBook Ita] Corso Di Fondamenti Di Informatica

65

Inserire contenuti multimediali

si può anche collegare il filmato ad una immagine o frame significativo.

Vedi la pagina web

Page 589: [eBook Ita] Corso Di Fondamenti Di Informatica

66

Inserire contenuti multimediali “interni”

Page 590: [eBook Ita] Corso Di Fondamenti Di Informatica

67

Inserire contenuti multimediali “interni”

L'inserimento di contenuti interni è invece leggermente più complesso e richiede l'uso di appositi tag come <OBJECT>.

Conviene focalizzare l’attenzione solo sul tag<OBJECT> che è quello raccomandato dal W3C.

Page 591: [eBook Ita] Corso Di Fondamenti Di Informatica

68

Inserire contenuti multimediali “interni”

Per inserire una animazione Macromedia Flash all’interno della pagina HTML, andrà usato il tag<OBJECT> corredato dagli appositi parametri. Ogni plug-in, secondo le specifiche del produttore, usa i propri parametri.

Vedi la pagina HTML

Page 592: [eBook Ita] Corso Di Fondamenti Di Informatica

69

Concetti ulteriori delle pagine HTML

Page 593: [eBook Ita] Corso Di Fondamenti Di Informatica

70

Concetti ulteriori delle pagine HTML

⌧Testo preformattato

Uno dei vantaggi del Web è che il testo slitta automaticamente su più righe per adattare i margini alla grandezza della finestra corrente. A volte però potreste voler disabilitare questo comportamento. Per esempio quando state inserendo esempi di codice di programmazione. Potete fare ciò utilizzando l'elemento pre. Ad esempio: vedi la pagina web

Page 594: [eBook Ita] Corso Di Fondamenti Di Informatica

71

Aggiungere mappe immagine

L'elemento area ha la funzione di definire una regione dell'immagine e di collegarla a un indirizzo Internet. L'attributo shape può assumere i valori "rect", "circle" o "poly". L'attributo "coords" specifica le coordinate per una regione a seconda della forma.

• rect: sinistra-x, alto-y, destra-x, basso-y

• circle: centro-x, centro-y, raggio

• poly: x1,y1, x2,y2, ... xn,yn

Vedi la pagina HTML

Page 595: [eBook Ita] Corso Di Fondamenti Di Informatica

72

Usare tabelle

Le tabelle sono utilizzate sia per fornire informazioni sia a fini di presentazione. Potete allargare le tabelle fino a farle coincidere con i margini della pagina, specificare una larghezza fissa o lasciare che sia il browser a dimensionare la tabella per adattarla ai contenuti.

Page 596: [eBook Ita] Corso Di Fondamenti Di Informatica

73

Usare tabelle

Esempio:<table border="1"> <tr><th>Anno</th><th>Vendite</th></tr> <tr><td>2000</td><td>$18M</td></tr> <tr><td>2001</td><td>$25M</td></tr> <tr><td>2002</td><td>$36M</td></tr></table>

Vedi la pagina HTML

Page 597: [eBook Ita] Corso Di Fondamenti Di Informatica

74

Spaziatura interna delle celle

Potete incrementare per tutte le celle della tabella la spaziatura interna [distanza tra il margine esterno della cella e l'inizio del contenuto] usando l'attributo cellpadding dell'elemento table. Per esempio, per impostare la spaziatura interna a 10 pixel: <table border="1" cellpadding="10">

Vedi la pagina HTML

Page 598: [eBook Ita] Corso Di Fondamenti Di Informatica

75

Aggiungere attributi alle tabelle

Per contro, l'attributo cellspacing determina lo spazio tra le celle. Ecco come impostare la spaziatura tra le celle a 10:

<table border="1" cellpadding="10" cellspacing="10">

Vedi la pagina HTML

Page 599: [eBook Ita] Corso Di Fondamenti Di Informatica

76

Allineamento del testo nelle celle

Per impostazione predefinita i browser centrano le intestazioni delle celle (th) ed allineano a sinistra i dati (td). Potete modificare l'allineamento usando l'attributo align, che può essere aggiunto ad ogni cella o alla riga (elemento tr). E' usato con i valori "left", "center" o "right":

Vedi la pagina HTML

Page 600: [eBook Ita] Corso Di Fondamenti Di Informatica

77

XML

XML vs. HTML

Page 601: [eBook Ita] Corso Di Fondamenti Di Informatica

78

XML vs. HTML

Non separa il contenuto dalla presentazioneFornisce una sola “vista”: è estremamente difficile scrivere pagine dinamiche che si riadattino al sistema usato dall’utente

Non ha praticamente struttura semantica: non c’è indicazione sul significato dei dati di una pagina HTML

Page 602: [eBook Ita] Corso Di Fondamenti Di Informatica

79

XML vs. HTML

Originariamente l’HTML prevedeva di contrassegnare l’informazione secondo il suo significato, indipendentemente da come il browser l’avrebbe resa:

<TITLE>Questo è un titolo di pagina</TITLE><STRONG>Summary</STRONG><H2>Header<H2>

Page 603: [eBook Ita] Corso Di Fondamenti Di Informatica

80

XML vs. HTML

La tendenza è invece quella di specificare precisamente l’apparenza dei dati:

<font size="-1" face="Arial, Helvetica, Sans-serif">

Page 604: [eBook Ita] Corso Di Fondamenti Di Informatica

81

XML vs. HTML

Un metodo per separare la resa grafica dai contenuti è usare i CSS (Cascading Style Sheets), ma non sono ancora standardizzati nei browser di ultima generazione.

W3C raccomanda l’uso di CSS

Anche le regole di accessibilità

Page 605: [eBook Ita] Corso Di Fondamenti Di Informatica

82

XML vs. HTML

Page 606: [eBook Ita] Corso Di Fondamenti Di Informatica

83

I CSS consentono di separare la rappresentazione dei dati dalla loro struttura

Consentono di specificare la presentazione grafica in modo più preciso che con i tag HTML

Basta cambiare il CSS e la rappresentazione del sito cambia

Page 607: [eBook Ita] Corso Di Fondamenti Di Informatica

84

XML vs. HTML

Gli editor HTML spesso usano tag per in base alla resa grafica che forniscono anziché al loro significato semantico:

es. <UL> per l’indentazione anziché per le liste non numerate

Page 608: [eBook Ita] Corso Di Fondamenti Di Informatica

85

XML vs. HTML

Le pagine web sono spesso disegnate tenendo conto delle differenti rese grafiche delle varie versioni di browser

Page 609: [eBook Ita] Corso Di Fondamenti Di Informatica

86

XML vs. HTML

La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico:

es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

Page 610: [eBook Ita] Corso Di Fondamenti Di Informatica

87

XML vs. HTML

XML consente di crearsi i propri tipi di documentiE’ facile scambiarsi dati: molti database accettano e producono file XMLE’ possibile validare una struttura datiI tag proprietari per avere una resa grafica più precisa diventano inutiliLe proprietà dei link sono molto più avanzate rispetto a quelle di HTML

Page 611: [eBook Ita] Corso Di Fondamenti Di Informatica

88

XML vs. HTML

È più facile creare viste diverse degli stessi dati

Page 612: [eBook Ita] Corso Di Fondamenti Di Informatica

89

XML - standard associati

Modeling Rules (DTD, Schema)

Stylesheets (XSL)

Linking (XLink, XPointer)

Page 613: [eBook Ita] Corso Di Fondamenti Di Informatica

90

XML

Regole base di XMLEsempio DTD

Page 614: [eBook Ita] Corso Di Fondamenti Di Informatica

91

HTML - esempio di pagina<HTML><HEAD><TITLE>Lime Jello Marshmallow Cottage Cheese Surprise</TITLE></HEAD><BODY><H3>Lime Jello Marshmallow Cottage Cheese Surprise</H3>My grandma's favorite (may she rest in peace).<H4>Ingredients</H4><TABLE BORDER="1"><TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR><TR><TD>1</TD><TD>box</TD><TD>lime gelatin</TD></TR><TR><TD>500</TD><TD>g</TD><TD>multicolored tiny marshmallows</TD></TR><TR><TD>500</TD><TD>ml</TD><TD>cottage cheese</TD></TR><TR><TD></TD><TD>dash</TD><TD>Tabasco sauce (optional)</TD></TR></TABLE><P><H4>Instructions</H4><OL><LI>Prepare lime gelatin according to package instructions...</LI><!-- and so on --></BODY></HTML>

Page 615: [eBook Ita] Corso Di Fondamenti Di Informatica

92

HTML - esempio di pagina

Page 616: [eBook Ita] Corso Di Fondamenti Di Informatica

93

HTML - esempio di pagina

Il significato degli elementi della pagina precedente non è reso dall’HTML:

gli elementi della prima colonna NON sono quantità, sono solo testo liberoè molto difficile fare un parsing automatico dei contenuti della pagina

Page 617: [eBook Ita] Corso Di Fondamenti Di Informatica

94

XML - esempio di file<?xml version="1.0” ?><Recipe>

<Name>Lime Jello Marshmallow Cottage Cheese Surprise</Name><Description>

My grandma's favorite (may she rest in peace).</Description><Ingredients>

<Ingredient><Qty unit="box">1</Qty><Item>lime gelatin</Item>

</Ingredient><Ingredient>

<Qty unit="g">500</Qty><Item>multicolored tiny marshmallows</Item>

</Ingredient>

<Ingredient><Qty unit="ml">500</Qty><Item>Cottage cheese</Item>

</Ingredient><Ingredient>

<Qty unit="dash"/><Item optional="1">Tabasco

sauce</Item></Ingredient>

</Ingredients><Instructions>

<Step>Prepare lime gelatin according topackage instructions

</Step><!-- And so on... -->

</Instructions></Recipe>

Page 618: [eBook Ita] Corso Di Fondamenti Di Informatica

95

XML - analisi

<?xml version="1.0"?>

Header

<Ingredient><Qty unit="box">1</Qty><Item>lime gelatin</Item>

</Ingredient>

Page 619: [eBook Ita] Corso Di Fondamenti Di Informatica

96

XML - analisi

Non c’è descritto come deve essere mostrata la ricetta.

I tipi dei dati devono essere definiti in un DTD: document type definition

Page 620: [eBook Ita] Corso Di Fondamenti Di Informatica

97

Esistono già vari DTD standard:

HL7 SGML/XML industria ospedalieraMathML matematicaXML/EDI elettronicaFDX scarpeWML 1.x wireless markup

language

Page 621: [eBook Ita] Corso Di Fondamenti Di Informatica

98

Nomenclatura XML

Page 622: [eBook Ita] Corso Di Fondamenti Di Informatica

99

XML - tag

In XML i tag seguono regole molto più rigide che in HTMLI documenti XML devono essere “well-formed”:

i tag devono essere chiusi, in HTML il seguente codice è accettabile:

<P>blah blah<P>blah2 blah2

Page 623: [eBook Ita] Corso Di Fondamenti Di Informatica

100

XML - tag

I tag non possono sovrapporsi:<primotag> aaaaa <secondotag> bbbbbb</primotag> </secondotag>

la forma accettabile è:

<primotag> aaaaa <secondotag> bbbbbb</secondotag> </primotag>

Page 624: [eBook Ita] Corso Di Fondamenti Di Informatica

101

XML - tag

I valori degli attributi sono racchiusi da: “”

in HTML possono anche essere “nudi”:

<TABLE BORDER=1>

Page 625: [eBook Ita] Corso Di Fondamenti Di Informatica

102

Well-formed: il documento segue le regole dell’XML

valido: il documento segue anche le regole del DTD

Page 626: [eBook Ita] Corso Di Fondamenti Di Informatica

103

<Ingredient><Qty unit="box">1</Qty><Qty unit=”g">5</Qty><Item>lime gelatin</Item>

</Ingredient>

Quale è la quantità giusta ??

Page 627: [eBook Ita] Corso Di Fondamenti Di Informatica

104

DTD

Il DTD è la grammatica del linguaggio di markup definita dal disegnatore del linguaggio.

Nell’esempio precedente dobbiamo definire un DTD che specifica quali elementi esistono, con quali attributi, con quali relazioni reciproche ed in quale ordine si trovano.

Page 628: [eBook Ita] Corso Di Fondamenti Di Informatica

105

Un parser XML che valida un documento legge il documento ed il DTD, e controlla la corrispondenza nei confronti del DTD.

I validatori per HTML fanno un lavoro simile.I browser HTML sono molto liberali...

Page 629: [eBook Ita] Corso Di Fondamenti Di Informatica

106

DTD

I DTD danno l’estendibilità dell’XML

Usano una sintassi diversa dai documenti XML

gli “schema” dovrebbero essere documenti XML con funzioni di DTD. XML Schema è adesso al livello Recommended di W3C

Page 630: [eBook Ita] Corso Di Fondamenti Di Informatica

107

DTD - esempio<!-- DTD per le ricette --><!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)><!ELEMENT Name (#PCDATA)><!ELEMENT Description (#PCDATA)><!ELEMENT Ingredients (Ingredient)*><!ELEMENT Ingredient (Qty, Item)><!ELEMENT Qty (#PCDATA)><!ATTLIST Qty unit CDATA #REQUIRED><!ELEMENT Item (#PCDATA)><!ATTLIST Item optional CDATA "0"

isVegetarian CDATA "true"><!ELEMENT Instructions (Step)+>

Page 631: [eBook Ita] Corso Di Fondamenti Di Informatica

108

<!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)>

<!ELEMENT...> definisce un tag di nome Recipe che contiene gli elementi tra parentesi.

Page 632: [eBook Ita] Corso Di Fondamenti Di Informatica

109

“?” significa che l’elemento è opzionale e può apparire 1 o 0 volte

“+” significa 1 o più

“*” significa 1,0 o più volte

Page 633: [eBook Ita] Corso Di Fondamenti Di Informatica

110

<!ELEMENT Name (#PCDATA)>

L’elemento può contenere solo caratteri e nient’altro (parsed character data). Non può avere figli.

Page 634: [eBook Ita] Corso Di Fondamenti Di Informatica

111

<!ATTLIST Item optional CDATA "0" isVegetarianCDATA "true">

Il tag ha due possibili attributi con relativo valore di default

Page 635: [eBook Ita] Corso Di Fondamenti Di Informatica

112

Un attributo può essere reso obbligatorio con #REQUIRED

Se un attributo non è richiesto allora si può indicare con #IMPLIED

Page 636: [eBook Ita] Corso Di Fondamenti Di Informatica

113

I tipi di attributi possono essere:

stringhe (CDATA o character data)token (ID, IDREF, ENTITY, NMTOKEN)attributi enumerati

Page 637: [eBook Ita] Corso Di Fondamenti Di Informatica

114

XML

Esempio: RSS

Page 638: [eBook Ita] Corso Di Fondamenti Di Informatica

115

XML: esempio

RSS: RDF Site Summary (RDF: Resource Description Framework)Indice dei contenuti di un sito, contiene link alle pagine del sitoEs.: molto usato nei blog

È un file XML

Page 639: [eBook Ita] Corso Di Fondamenti Di Informatica

116

Page 640: [eBook Ita] Corso Di Fondamenti Di Informatica

117

Un programma può aggregare informazione da diversi siti usando RSS

Page 641: [eBook Ita] Corso Di Fondamenti Di Informatica

118

XHTML

Page 642: [eBook Ita] Corso Di Fondamenti Di Informatica

119

XHTML

È il successore di HTML

Si basa sul rigore di XML applicandolo alle funzioni di formattazione di HTML

Un documento XML deve essere well formed

Page 643: [eBook Ita] Corso Di Fondamenti Di Informatica

120

I tag devono essere scritti in minuscolo !

La rappresentazione grafica dovrebbe usare solo CSS (strict)

In alternativa si possono mettere tag di presentazione anche nel codice XHTML (transitional)

Page 644: [eBook Ita] Corso Di Fondamenti Di Informatica

121

Come funziona il web

Architettura client-server

Page 645: [eBook Ita] Corso Di Fondamenti Di Informatica

122

Come funziona il web

L’architettura del WWW prevede una parte client e una server

un programma client (browser) è in grado di visualizzare documenti testuali, grafica, informazioni multimediali ricevute dal server con cui comunica tramite HTTP

HyperText Transfer Protocol: protocollo standard utilizzato per la trasmissione delle informazioni

Page 646: [eBook Ita] Corso Di Fondamenti Di Informatica

123

Come funziona il web

La pagina inviata dal server è in formato HyperTextMarkup Language

file ASCII con informazioni di controllo per l’impaginazione del testo, per la definizione dei link, etc.⌧link è formato dall’indirizzo di rete del server e l’identificativo

del file contenente la pagina associata al link (nascosto)

<a href=“http://viplab.dsi.unifi.it/~bertini/>Home page</a>

Page 647: [eBook Ita] Corso Di Fondamenti Di Informatica

124

Come funziona il web

URL (Uniform Resource Locator): indirizzo per ogni tipo di risorsa residente sui vari computer collegati alla rete

tipo://host.dominio/path/filenameEsempio: http://viplab.dsi.unifi.it/∼bertini/index.htm

Page 648: [eBook Ita] Corso Di Fondamenti Di Informatica

125

Il Browser

Strumento per la navigazioneIl browser interpreta l’HTMLEsempi: Mosaic, Netscape Navigator, Internet ExplorerCosa Accade:

ConnessioneRichiestaRispostaTermine

⇔ Messaggio di errore

Page 649: [eBook Ita] Corso Di Fondamenti Di Informatica

126

….continuaConnessione

Il client invia un richiesta di connessione al server: Connecting to…

RichiestaSe l connessione viene stabilita il client specifica al server il protocollo da applicare e l’oggetto richiesto

RispostaSe il server riesce a soddisfare la richiesta la transazione viene eseguita: status line

TermineLa connessione è chiusa e il browser mostra quanto ha recuperato: Document Done

Page 650: [eBook Ita] Corso Di Fondamenti Di Informatica

127

Browser – server web

Le operazioni da compiere per consultare siti Internet navigando tra i computer e le pagine presenti nel WWW:

Collegarsi all’ISP, fornitore della connessione a internet, componendo il numero telefonico (tramite modem). Entrati nella rete (Login e Password) attivare il browser: digitare l’URL di un sito nella casella dell’indirizzo.

Page 651: [eBook Ita] Corso Di Fondamenti Di Informatica

128

Browser – server web (2)

La richiesta dell’utente percorre la rete fino ai server interessati, seguendo il percorso più efficiente tra le migliaia disponibili che collegano tra loro i server che costituiscono i nodi della rete.

⌧L’instradamento viene effettuato dai router⌧Sono usati i protocolli TCP e IP

Page 652: [eBook Ita] Corso Di Fondamenti Di Informatica

129

Browser – server web (3)

Il server esamina la richiesta e trasmette i dati richiesti al computer dell’utente usando un testo scritto con il linguaggio HyperText Marked Language, contenente codici che sono interpretabili dal browser. Il messaggio di ritorno può seguire anche percorsi diversi sui nodi della rete, secondo il criterio del percorso più efficiente.

Page 653: [eBook Ita] Corso Di Fondamenti Di Informatica

130

Browser – server web (4)

Quando i dati trasmessi raggiungono il computer dell’utente, il browser trasforma il codice HTML in una pagina grafica e la visualizza sul monitor.

Le fasi dalla 2 alla 4 si ripetono spostandosi tramite i link.

Page 654: [eBook Ita] Corso Di Fondamenti Di Informatica

131

Programmazione client-side

In realtà, esiste la possibilità di incorporare elementi dinamici nei documenti HTML, che possono essere interpretati direttamente dal browser:

JavaScript e VBScript sono linguaggi che possono essere racchiusi direttamente nel documento HTML. Entrambi sono “guidati dagli eventi” (click del mouse o entry da tastiera), e sono in grado di manipolare gli elementi di un documento Web attraverso il browser;⌧eventi sono il click del mouse su particolari elementi della

pagina,così come il caricamento di una pagina.

Page 655: [eBook Ita] Corso Di Fondamenti Di Informatica

132

Programmazione client-side

Questi linguaggi di script sono relativamente semplici da usare, ma non particolarmente potenti:

il maggior vantaggio è che consentono alla pagina di variare dinamicamente alle condizioni o cambiamenti del browser, senza la necessità di fare accesso al server;lo script è eseguito (interpretato) direttamente nel browser; in questo modo il numero di accessi al server è ridotto e la velocità incrementata.

Page 656: [eBook Ita] Corso Di Fondamenti Di Informatica

133

Programmazione client-side

Un tipico impiego è quello di usare un semplice script per cambiare lo stato di una piccola immagine usata per un bottone in una pagina web, quando passa da uno stato on ad uno off.

L’uso più rilevante è per la validazione degli ingressi:ad esempio un text-box usato per un codice postale potrebbe prevedere una lunghezza massima di 5 cifre. Lo script potrebbe verificare la congruenza del dato immesso ed eventualmente notificare all’utente l’errore, prima di inviare il dato al server. In questo modo si svincola il server dall’operazione di controllo e si evita l’invio di dati errati.

Page 657: [eBook Ita] Corso Di Fondamenti Di Informatica

134

Come funziona il web

Web serverProgrammazione server side

Page 658: [eBook Ita] Corso Di Fondamenti Di Informatica

135

Web server

Il compito principale di un web-server è quello di ricevere, interpretare e rispondere alle richieste di un web-client. I serverssono i responsabili della maggior percentuale di traffico sulla rete.

Il termine web-server è spesso usato in due modi distinti:a livello base il web-server è un programma che ascolta attivamente un particolare canale di comunicazione per intercettare le richieste HTTP dei client. Alcuni tra i più comuni server web sono Microsoft IIS (Internet Information Server) in ambiente Windows, e Apache server disponibile per Linux e Windows (consigliato l’uso della release 2).

Page 659: [eBook Ita] Corso Di Fondamenti Di Informatica

136

Web server

Spesso il termine web-server è utilizzato anche per indicare una particolare macchina fisica dedicata al compito specifico di eseguire il software di un particolare web-server:

⌧in questo caso non esiste una reale distinzione tra la macchina ed il software eseguito;

⌧in altri casi il software del server web può essere eseguito su di una macchina condivisa per le normali operazioni. La soluzione dedicata è di solito preferibile.

Page 660: [eBook Ita] Corso Di Fondamenti Di Informatica

137

Programmazione server-side

La capacità di rispondere alle richieste degli utenti è stata introdotta nel software dei server web per trattare i dati introdotti attraverso form HTML.

L’informazione fornita dal web client è elaborata da un programma eseguito sul server che può re-indirizzare il client ad un URL basandosi sul risultato della elaborazione, o generare in modo automatico una nuova pagina web come risposta all’ingresso.

Il modo più diretto per elaborare richieste dal Web è rappresentato dalla Common Gateway Interface (CGI).

Page 661: [eBook Ita] Corso Di Fondamenti Di Informatica

138

Programmazione server-side

In una applicazione tipica, un form HTML è inviato al server, e qui è passato attraverso il protocollo CGI ad un programma di elaborazione.

I CGI forniscono anche l’accesso ad un insieme standard di informazioni riguardo il web client, come ad esempio il tipo di browser utilizzato.

La programmazione server-side è essenziale per ogni applicazione orientata all’utilizzo di database sul Web:

i CGI forniscono un modo per accedere a programmi sul server, ma sono relativamente lenti (di solito scritti in Perl).una soluzione alternativa utilizza le Application ProgrammingInterfaces (APIs).

Page 662: [eBook Ita] Corso Di Fondamenti Di Informatica

139

Server Side Scripting

La necessità di linguaggi di scripting server side inclusi nel codice HTML si è resa evidente per superare i limiti posti dal solo HTML e dagli script client side, in particolare per la costruzione di pagine dinamiche e l’accesso a database.

Il concetto alla base di tutti i linguaggi di script server side è che il loro codice, inserito all’interno di una pagina HTML, è interpretato ed eseguito dal web server:

il server sostituisce il codice dello script con il risultato della sua esecuzione, ed invia la pagina HTML così ottenuta al browser che ne ha fatto richiesta.

Page 663: [eBook Ita] Corso Di Fondamenti Di Informatica

140

Server Side Scripting: PHP

Il PHP (Personal Home Page) è nato nell’autunno del 1994 ad opera di Rasmus Lerdorf.

È un progetto open source che negli ultimi anni si è affermato come una delle soluzioni più versatili e diffuse sul web come linguaggio di scripting server-side.

Attualmente si stima che sia attivo su oltre 5 milioni di siti nel mondo:

in termini di diffusione è leggermente superiore rispetto ad un prodotto antagonista come ASP in combinazione con il web server Internet Information Server di Microsoft.

Page 664: [eBook Ita] Corso Di Fondamenti Di Informatica

141

Server Side Scripting: PHP

La sua diffusione è dovuta anche al fatto che è multipiattaforma, per cui è possibile trovare l’interprete PHP per i più diffusi sistemi operativi (Windows, Linux, Unix, etc.).

Inoltre rispetto ai CGI gode di alcuni vantaggi:il PHP è un linguaggio embedded nel codice HTML, e non necessita quindi di ulteriori file esterni per essere eseguito;uno script PHP non ha bisogno di risiedere in una particolare directory, come avviene per la directory cgi-bin dei CGI.

Page 665: [eBook Ita] Corso Di Fondamenti Di Informatica

142

Cos’è il PHP

Il PHP (ufficialmente PHP: Hypertext preprocessor) rappresenta un linguaggio di scripting server-side, incluso nel codice HTML.

Il codice PHP è incluso tra i tags speciali di inizio e di fine (<?php e ?>), posti all’interno di una paginaHTML. I tag delimitano l’ingresso e l’uscita dal PHP. Ogni linea di codice PHP deve essere terminata da “;”.

<html><head> <title>Example</title></head><body><?phpecho “A PHP script”;

?></body>

<html>

Page 666: [eBook Ita] Corso Di Fondamenti Di Informatica

143

Cos’è il PHPSe la pagina precedente (esempio0.php) è aperta dal browser come file (nel location box del browser compare l’indirizzo c:\path\file.php), il risultato prodotto è il seguente:

La pagina è vuota perché il browser non è in grado di interpretare il codice PHP. La pagina è visualizzata esclusivamente in base alla formattazione HTML.

Page 667: [eBook Ita] Corso Di Fondamenti Di Informatica

144

Cos’è il PHPSe la stessa pagina è aperta dal browser facendo riferimento al server web (nelcaso particolareall’indirizzo localhost) si ottiene il risultato voluto:

È infatti il server web che usa l’interprete PHPper eseguire lo script, e restituisce al browser la pagina HTML creata “on the fly”.

Page 668: [eBook Ita] Corso Di Fondamenti Di Informatica

145

Cos’è il PHPSe dal browser visualizziamo il codice HTML della pagina si ottiene il risultato seguente:

Si osserva che i tag del PHP non compaiono nella pagina finale, che comprende solo i tag HTML e la scritta “A PHP script” inserita nel file HTML tramite il comando echo del PHP:

echo produce come risultato la stampa nella pagina HTML della stringa o della variabile che segue.

Page 669: [eBook Ita] Corso Di Fondamenti Di Informatica

146

Come funziona il web

Web e database

Page 670: [eBook Ita] Corso Di Fondamenti Di Informatica

147

Tecnologia del Web

Nella prospettiva di collegare le componenti web con un database, tre sono le componenti base per qualsiasi applicazione:

la tecnologia del Web (lato server e lato client);la tecnologia del database:la tecnologia per il collegamento client/server e tra le componenti Web ed il database.

La tecnologia impiegata nell’ultimo punto va sotto il nome di middleware, in quanto si situa tra l’applicazione e la rete.

Page 671: [eBook Ita] Corso Di Fondamenti Di Informatica

148

Tecnologia del WebLayout generico per le tre componenti con alcune delle tecnologie che le realizzano.

HTMLWeb

JavaScript

Application ServersMiddleware

jsp, php, asp

DatabaseSQL

ODBCNative DatabaseGateways

CGI

Web ServerAPIs

Page 672: [eBook Ita] Corso Di Fondamenti Di Informatica

149

Web side

La struttura base del processo di accesso alle informazioni sul Web comprende le seguenti fasi:

un utente usando un web browser richiede un file da un computer remoto ad un certo indirizzo;il web browser invia la richiesta in rete utilizzando il protocollo HTTP;il web-server sul computer remoto all’indirizzo indicato riceve la richiesta e la elabora;se il file esiste ed è accessibile sul computer remoto, questo invia il file al web-server;il web-server gira il file al web browser (client) che ha fatto la richiesta:il web browser interpreta i comandi di formattazione presenti nel file e presenta la pagina all’utente.

Page 673: [eBook Ita] Corso Di Fondamenti Di Informatica

150

Struttura client/server sul Web

User(client)

Web Browser1. L’utente richiede il file

6. Output HTML formattato

Web Server

2. richiestaHTTP

5. rispostaHTTP

Remote Computer(server)

3. Il Web server processa la richiesta

4. Il file è ritrovato dal Web server

Page 674: [eBook Ita] Corso Di Fondamenti Di Informatica

151

Accessibilità

Page 675: [eBook Ita] Corso Di Fondamenti Di Informatica

152

ACCESSIBILITÀ

I siti Web devono devono essere progettati in modo da garantire la consultazione anche da individui affetti da disabilità motorie (controllo arti) o sensoriali (vista e udito), o cognitive, o condizionati dall’uso di strumenti con prestazioni limitate o da condizioni ambientali sfavorevoliOpportunità legate alla possibilità di tradurre l’informazione in formato elettronico in diverse modalità percettiveUn sito accessibile fornisce vantaggi anche alla generalità degli utenti

Page 676: [eBook Ita] Corso Di Fondamenti Di Informatica

153

Un utente potrebbe:non essere in grado di vedere, udire, muoversi o elaborare alcuni tipi di informazioneavere difficoltà a leggere o comprendere il testonon essere in grado di usare un mouse o una tastieraavere uno schermo che visualizza solo testo, un piccolo schermo o una connessione lenta ad Internetnon comprendere il linguaggio nativo del documentoavere una vecchia versione del browser, un diverso browser, un voice browser….

Limiti dell’utente

Page 677: [eBook Ita] Corso Di Fondamenti Di Informatica

154

L’accessibilità di siti e documenti disponibili nel Web significa garantire la possibilità di:

orientarsi e navigare all’interno di un sito

leggere i contenuti delle pagine

interagire con le procedure che prevedono scelte, immissione di dati

I contenuti e le procedure devono essere fruibili da utenti dotati di browser con diverse configurazioni

Page 678: [eBook Ita] Corso Di Fondamenti Di Informatica

155

Ogni linea guida ha una serie di checkpoint che dettagliano come applicare la linea guida in tipici contesti di sviluppo di pagine webOgni check point ha un livello di priorità in base al suo impatto sull’acccessibilitàI livelli di priorità sono 3:

[Priorità 1] ⌧Una sito web deve osservare questi check point altrimenti l’informazione

non risulta accessibile a uno o più gruppi di utenti.[Priorità 2] ⌧Una sito web dovrebbe osservare questi check point altrimenti

l’informazione risulterà difficilmente accessibile a uno o più gruppi di utenti. Osservare questi check point riduce notevolmente le barriere di accesso al contenuto

[Priorità 3] ⌧Una pagina web può osservare questi check point altrimenti l’informazione

può risultare in qualche modo difficilmente accessibile a uno o più gruppi di utenti

Linee guida W3C: check point

Page 679: [eBook Ita] Corso Di Fondamenti Di Informatica

156

SI definiscono tre livelli di conformità per un sito web

Conformità di livello A⌧Sono stati rispettati tutti i check point di Priorità 1

Conformità di livello AA⌧Sono stati rispettati tutti i check point di Priorità 1 e 2

Conformità di livello AAA⌧Sono stati rispettati tutti i check point di Priorità 1,2 e 3

Linee guida W3C: Conformità

Page 680: [eBook Ita] Corso Di Fondamenti Di Informatica

157

Esistono programmi e plugin che aiutano a validare i siti, es. Bobby e alcuni plugin per Dreamweaver

Bobby effettua un’analisi automatica, le sue indicazioni devono essere controllate

Page 681: [eBook Ita] Corso Di Fondamenti Di Informatica

158

Guideline 1. Offrire informazione equivalente per contenuto uditivo o visivoCheckpoints

Contenuto testo equivalente per ciascun contenuto non testo ( es.”alt” per le immagini) [Priorità 1]

Link testuali per ogni regione di una image-map [Priorità 1]Prevedere testo equivalente per la descrizione di ogni contenutomultimediale [Priorità 1]

Linee guida

Page 682: [eBook Ita] Corso Di Fondamenti Di Informatica

159

Guideline 2. Non affidarsi ai coloriAssicurarsi che il testo e la grafica siano comprensibili anche se visti senza colori

CheckpointsAssicurarsi che ogni tipo di informazione legata al colore sia comprensibile anche in assenza di colori attraverso il contesto o il markup [Priorità 1]Assicurarsi che la combinazione di colori di sfondo e quelli di primo piano realizzino un adeguato contesto [Priorità 2 per le immagini, Priorità 3 per il testo]

Linee guida

Page 683: [eBook Ita] Corso Di Fondamenti Di Informatica

160

Guideline 3. Usare markup e fogli di stile e farlo in modo appropriatoCheckpoints

Se esiste uno specifico linguaggio di markup per il contenuto deve essere usato ( Ad esempio usare MathML per equazioni e formule) [Priorità 2]Usare fogli di stile per controllare il layout e la presentazione [Priorità 2]Usare gli header in accordo con la struttura del documento e non per ottenere effetti sui font [priorità 2]…..

Linee guida

Page 684: [eBook Ita] Corso Di Fondamenti Di Informatica

161

Guideline 4. Rendere chiaro l’uso di linguaggio correnteUsare markup che facilitino l’interpretazione di abbreviazioni e di parole straniere

CheckpointsIdentificare il linguaggio primario di un documento. In HTML settare l’attributo “lang” nell’elemento HTML [Priorità 3]Specificare l’espansione di ogni abbreviazione [Priorità 3]…..

Linee guida

Page 685: [eBook Ita] Corso Di Fondamenti Di Informatica

162

Guideline 5. Creare tabelle che si trasformino in maniera adeguata Assicurarsi che le tabelle abbiano i markup necessari per trasformarsi adeguatamente con l’uso di browser alternativi

CheckpointsPer tabelle di dati specificare l’intestazione di riga e di colonna. In HTML usare sempre TD per le celle e TH per l’header [Priorità 1]Per tabelle di dati che hanno due o più livelli logici di intestazione di riga o di colonna. Ad esempio in HTML, usare THEAD, TFOOT, e TBODY per raggruppare le righe, COL e COLGROUP per raggruppare le colonne, e gli attributi "axis", "scope", and "headers" per descrivere le relazioni tra i dati [Priorità 1]

Linee guida

Page 686: [eBook Ita] Corso Di Fondamenti Di Informatica

163

Guideline 6. Assicurarsi che le pagine contenenti nuove tecnologie si trasformino in maniera adeguata

Assicurarsi che le pagine siano accessibili anche quando le nuove tecnologie non sono disponibili (Es. nuovi Plug-in)

CheckpointsOrganizzare la pagina in modo che possa essere letta correttamente anche senza fogli di stile [Priorità 1]Assicurarsi che il il contenuto equivalente per contenuto dinamico si aggiorni quando il contenuto dinamico cambia [Priorità 1]Assicurarsi che la pagina sia leggibile anche quando script, applett o altri oggetti non siano disponibili o disabilitati. Se non fosse possibile usare la pagina senza script rendere disponibile una pagina testo equivalente o usare scripting server side al posto di scripting client side [Priorità 1]

Linee guida

Page 687: [eBook Ita] Corso Di Fondamenti Di Informatica

164

Guideline 7. Assicurarsi che l’utente abbia il controllo di contenuti mutevoli nel tempo possano essere

Assicurarsi che oggetti che lampeggiano, si muovono o si auto aggiornano possano essere messi in pausa o stoppati

CheckpointsEvitare lo sfarfallio dello schermo [Priorità 1]…

Linee guida

Page 688: [eBook Ita] Corso Di Fondamenti Di Informatica

165

Guideline 8. Assicurare l’accessibilità alla interfaccia utenteAssicurarsi che l’interfaccia utente segua principi di design accessibile: accesso indipendente dal mezzo

CheckpointsUsare script e elementi di programmazione che siano compatibili con tecnologie che assistono alla navigazione [Priorità 1]

Linee guida

Page 689: [eBook Ita] Corso Di Fondamenti Di Informatica

166

Guideline 9. Design indipendente dall’interfacciaUsare funzionalità che permettano l’attivazione degli elementi della pagina da diversi dispositivi di input

CheckpointsRendere disponibili image-map lato client piuttosto che lato server [Priorità 1]Creare shortcut da tastiera per link importanti. Ad esempio in HTML specificare gli shortcut attraverso l’attributo “accesskey” [Priorità 3]…..

Linee guida

Page 690: [eBook Ita] Corso Di Fondamenti Di Informatica

167

Guideline 10. Usare tecnologie “di passaggio”Tenere presente l’esistenza di browser datati e delle tecnologie di navigazione assistita in modo da renderne possibile il funzionamento

CheckpointsRendere possibile disabilitare i pop-up [Priorità 2]….

Linee guida

Page 691: [eBook Ita] Corso Di Fondamenti Di Informatica

168

Guideline 11. Usare tecnologie e linee guida W3CCheckpoints

Se , nonostante gli sforzi non si riesce a creare una pagina accessibile, rendere disponibile un link ad una pagina alternativa che usi le tecnologie e le linee guida W3C con informazione equivalente e stessa frequenza di aggiornamento [Priorità 1]Non usare funzionalità deprecate dal W3C [Priorità 2]….

Linee guida

Page 692: [eBook Ita] Corso Di Fondamenti Di Informatica

169

Guideline 12. Rendere disponibili informazioni sul contesto e informazioni di orientamento Checkpoints

Assegnare un titolo ad ogni frame per facilitarne l’identificazione e la navigazione [Priorità 1]Dividere larghi blocchi di informazione in gruppi più appropriati [Priorità 2]….

Linee guida

Page 693: [eBook Ita] Corso Di Fondamenti Di Informatica

170

Guideline 13. Rendere disponibile un chiaro meccanismo di navigazioneCheckpoints

Identificare chiaramente il target di ogni link. In HTML scrivere “informazioni su W3C” invece di “clicca qui” [Priorità 2]Usare metodi meccanismi di navigazione in modo consistente [Priorità 2]Usare barre di navigazione del sito [Priorità 3]

Linee guida

Page 694: [eBook Ita] Corso Di Fondamenti Di Informatica

171

Guideline 14. Assicurare che il documento sia chiaro e sempliceCheckpoints

Usare il linguaggio più semplice e adeguato per il contenuto del sito [Priorità 1]Creare uno stile di presentazione che sia coerente in tutto il sito [Priorità 3]

Linee guida

Page 695: [eBook Ita] Corso Di Fondamenti Di Informatica

172

Trattare separatamente, il contenuto, la struttura e la presentazione di una pagina, facendo uso di "fogli di stile"Non usare il colore come unico veicolo di informazione

Usare grandezze relative per indicare le dimensioni e la posizione delle componenti di una pagina

Creare documenti "scalabili” che non dipendono da un solo tipo di hardware

Sintesi raccomandazioni

Page 696: [eBook Ita] Corso Di Fondamenti Di Informatica

173

Fornire testo equivalente a immagini, video e contenuto multimediale

corredare le immagini di descrizioni testuali (es. "alt" di HTML) per indicare la funzione dell’immagine o la descrizione del contenuto (es. "longdesc" o "description link" in HTML) quando è importante per la comprensione del documento

Corredare le componenti sonore di segnalazioni alternative visive

Sintesi raccomandazioni

Page 697: [eBook Ita] Corso Di Fondamenti Di Informatica

174

Usare parole o brevi frasi di chiaro e univoco significato anchefuori del contesto

Seguire la stessa regola anche per la didascalia alternativa di collegamenti realizzati con immagini o simboli grafici

Prevedere procedure alternative a script, applet …. nel caso che non siano gestibili con i comuni ausili usati dagli utenti disabili.

Prevedere un messaggio di avvertimento di apertura di una finestra.

Sintesi raccomandazioni

Page 698: [eBook Ita] Corso Di Fondamenti Di Informatica

175

Limitare l’uso di frame ai casi di vera utilitàUna presentazione ristretta ad una porzione di schermo può creare problemi alle persone ipovedenti che preferiscono sfruttare tutta la larghezza dello schermo per la lettura con caratteri ingranditi, evitando più che è possibile lo scorrimento orizzontale del testoLimitare l’uso di tabelle ai casi di vera utilitàAssicurarsi che il contenuto e la struttura delle tabelle risultino chiari anche quando la tabella stessa viene letta cella dopo cella e una riga alla volta

Sintesi raccomandazioni

Page 699: [eBook Ita] Corso Di Fondamenti Di Informatica

176

Browser alternativi

Browser disegnati specificamente per disabiliSpeech output, simple keyboard interface / standard graphical user interfaceSpeech output, supporto Braille, font su schermo specialiScreen readernavigation of the screen presented by the operating system, using speech or Braille output

Browser adattativiIngrandimento di porzioni di schermo o opzioni di navigazioneVoice browsersNavigazione voice-driven, (voice-in/ voice-out, accesso web via telefono).

Page 700: [eBook Ita] Corso Di Fondamenti Di Informatica

Immagini bitmap e vettoriali

Page 701: [eBook Ita] Corso Di Fondamenti Di Informatica

Bitmap vs. Vettoriale

Immagine bitmap: immagine formata da una matrice di punti (colorati)

Immagine vettoriale: immagine definita da linee e curve (vettori), che racchiudono anche proprietà relative al colore e alla posizione.

Page 702: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 703: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 704: [eBook Ita] Corso Di Fondamenti Di Informatica

L’immagine vettoriale mostrata prima è memorizzata come istruzione di disegno (es. circolo, ellissi, spline) con relativi parametri

per ruotarla, ingrandirla o ridurla cambio i parametri e ricalcolo il risultato

Page 705: [eBook Ita] Corso Di Fondamenti Di Informatica

Nel caso di un’immagine bitmap devo agire sui punti (pixel) che compongono l’immagine

in molti casi mi devo “inventare” i pixel che fanno parte dell’immagine ingrandita, ruotata etc.

Page 706: [eBook Ita] Corso Di Fondamenti Di Informatica

Campionamento e quantizzazione

Page 707: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali

Nel passaggio dal mondo analogico ad uno digitale si deve tenere conto di due concetti basilari:

il campionamento (sampling)la quantizzazione (quantization)

Page 708: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali

Il campionamento

⌧E’ il partizionamento di un flusso continuo di informazione in quantità discrete, rispetto al tempo, lo spazio o entrambi.

La quantizzazione

⌧E’ la rappresentazione di una quantità usando un valore intero

Page 709: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali

La scelta del numero di interi da usare per la quantizzazione e su quanti campioni prendere (quando e dove) è importante. Da questa scelta dipende l’accuratezza della rappresentazione digitale.

Es. quando si effettua la scansione di una foto

Page 710: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali

Esempio di quantizzazione del colore

Page 711: [eBook Ita] Corso Di Fondamenti Di Informatica

Spazi di colore

Page 712: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

Esistono vari spazi per la rappresentazione del colore.

Alcuni sono spazi “percettivi”, creati per essere il più possibile simili al modo in cui gli umani percepiscono il colore, e.g.:

• CIE L*a*b*• CIE L*u*v*• Munsell• Itten

Page 713: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

E.g.: modello di colore di Itten

Page 714: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

Ci sono poi modelli “ingegneristici”, adatti per la rappresentazione e trasmissione elettronica del colore, e.g.:

RGB (monitor)YUV (PAL)YCrCbYIQ (NTSC)HSI, HSV

Page 715: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

E.g.: spazio di colore RGB

Page 716: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

Rapporto tra lo spazio di colore RGB e YCrCb

Nota: i colori possono essere distorti, passando da uno spazio di colore all’altro.

Page 717: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

E.g.: spazi di colore HSI e HSV

Page 718: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

Gli spazi di colore usati in campo televisivo separano l’informazione sulla luminosità da quella sulla cromaticità.

Si sottocampiona l’informazione sul colore

Anche nel JPEG !!

Page 719: [eBook Ita] Corso Di Fondamenti Di Informatica

I media digitali - il colore

E.g.:

⌧La Y di YIQ, YUV, YCrCb fornisce informazioni sulla luminosità.

⌧La L di CIE Lab e Luv significa Luminance

⌧La I di HSI significa Intensity

Page 720: [eBook Ita] Corso Di Fondamenti Di Informatica

Photoshop gestisce diversi spazi di colore, da RGB a Lab a CMYK

Page 721: [eBook Ita] Corso Di Fondamenti Di Informatica

La scelta di uno spazio di colore piuttosto che un altro può avere effetti sul modo di lavorare

es.: due colori vicini tra loro in uno spazio possono risultare distanti in uno spazio diverso

Page 722: [eBook Ita] Corso Di Fondamenti Di Informatica

RGB

Lab

Page 723: [eBook Ita] Corso Di Fondamenti Di Informatica

Nell’esempio precedente lo strumento bacchetta magica di Photoshop è stato usato:

mantenendo gli stessi parametriselezionando lo stesso pixel di partenzausando due spazi di colore diversi…

Photoshop ha considerato in modo diverso i pixel...

Page 724: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 725: [eBook Ita] Corso Di Fondamenti Di Informatica

Profondità di colore

Page 726: [eBook Ita] Corso Di Fondamenti Di Informatica

Il numero di colori rappresentabili in un’immagine dipende dal numero di bit assegnati ai vari canali di ogni pixel

Es. 8 bit ad ogni canale (256 valori diversi) per 3 canali: 24 bit = 16 milioni di colori

Page 727: [eBook Ita] Corso Di Fondamenti Di Informatica

Es.: le immagini GIF assegnano un byte ad ogni pixel => un’immagine GIF può avere al max. 256 colori

Es.: 11111111 in binario = 255 in decimale( 1*20 + 1*21 + 1*22 + …) = ( 5*100 + 5*101 + 2*102)

Page 728: [eBook Ita] Corso Di Fondamenti Di Informatica

Maggiore è il numero di bit usati per rappresentare il colore maggiore è la precisione ed il numero di sfumature disponibili

maggiore è la memoria necessaria a memorizzare l’immagine...

Page 729: [eBook Ita] Corso Di Fondamenti Di Informatica

Spesso si aggiunge anche un canale “Alpha”, anche questo espresso in bit

Indica il grado di trasparenzaAlcuni programmi come 3D Studio lo usano anche per indicare la “profondità” dei pixel dell’immagine (i.e. distanza dall’osservatore)

Page 730: [eBook Ita] Corso Di Fondamenti Di Informatica

Il canale alpha è usato per fondere insieme immagini che stanno su piani (layer) diversi

E.g. 24 bit di colore + 8 bit di alpha = immagini a 32 bit di profondità

Page 731: [eBook Ita] Corso Di Fondamenti Di Informatica

Compressione

Page 732: [eBook Ita] Corso Di Fondamenti Di Informatica

Gli algoritmi di compressione delle immagini sono anche loro divisi in due famiglie

con perdita (lossy)senza perdita (lossless)

Page 733: [eBook Ita] Corso Di Fondamenti Di Informatica

I formati delle immagini vettoriali sono losslessGIF è losslessTIFF con compressione LZW è lossless

e senza limite di colori

Page 734: [eBook Ita] Corso Di Fondamenti Di Informatica

JPEG e PNG sono lossy

a seconda di quanto si comprime cambia la perdita dei dettagli

di norma viene dimezzata l’informazione sul colore, poi l’algoritmo quantizza i dati

Page 735: [eBook Ita] Corso Di Fondamenti Di Informatica

La compressione con perdita introduce artefatti

tipicamente i bordi netti causano problemi, es. testo

Page 736: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 737: [eBook Ita] Corso Di Fondamenti Di Informatica

Nelle immagini fotografiche gli errori si notano meno

si riesce a ridurre molto le dimensioni mantenendo qualità accettabili

es.: programmi come Macromedia Fireworksconsentono di comparare compressioni diverse della stessa immagine

Page 738: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 739: [eBook Ita] Corso Di Fondamenti Di Informatica

Introduzione a Photoshop

Page 740: [eBook Ita] Corso Di Fondamenti Di Informatica

Photoshop (o Paint Shop Pro) sono programmi di fotoritocco

Si possono anche creare immagine ex-novo, hanno strumenti per disegno vettoriale

Page 741: [eBook Ita] Corso Di Fondamenti Di Informatica

Gli strumenti a disposizione si possono in dividere in categorie:Selezione: rettangolari, circolari, crop

Selezionano varie forme e tagliano l’immagine (crop)

lasso, lasso magnetico, bacchetta magica⌧Selezionano a mano libera, agganciandosi ai bordi

degli oggetti, o sulla base della similarità di colore

Page 742: [eBook Ita] Corso Di Fondamenti Di Informatica

Uso: selezione oggetti, spostamento, spostamento del disegno all’interno della finestra di lavoro, selezione colore (contagocce)

Artistici e creativi: aerografo, pennelli, penne, forme vettoriali, testo, timbro, etc.

Page 743: [eBook Ita] Corso Di Fondamenti Di Informatica

Nella toolbar di Photoshop alcuni strumenti sono raggruppati all’interno della stessa casella (contrassegnata da un triangolino in basso a sx)

Si deve tenere premuto il pulsante per vedere tutti gli strumenti disponibili

Page 744: [eBook Ita] Corso Di Fondamenti Di Informatica

Il funzionamento degli strumenti può essere variato agendo sui loro parametri

Es. si possono selezionare gli oggetti in modo “sfumato” (ideale per foto)

Page 745: [eBook Ita] Corso Di Fondamenti Di Informatica

Le immagini di Photoshop possono essere livelli (layer) su cui disegnare

I layer sono come fogli di acetato sovrapposti

Le zone trasparenti fanno vedere il layer sottostanteSi decide quanto un layer è trasparente e come si “fonde” con quelli sottoPosso selezionare oggetti su di un layer senza toccare gli altri layer

Page 746: [eBook Ita] Corso Di Fondamenti Di Informatica

Le linee viola sono passate in primo piano

Page 747: [eBook Ita] Corso Di Fondamenti Di Informatica

I layer si possono usare per effetti artistici o per isolare le zone di lavoro

Quando l’immagine finale è pronta si possono riunire tutti i layer in uno solo

Page 748: [eBook Ita] Corso Di Fondamenti Di Informatica

Un’immagine è stata usata come pattern per fare il riempimento di un layer

Page 749: [eBook Ita] Corso Di Fondamenti Di Informatica

Si può manipolare parte dei pixel di un layer usando una maschera (praticamente un canale alpha)

Per creare una maschera temporanea si seleziona l’area su cui si vuole lavorare e si preme nella toolbox

Posso creare un livello-maschera

Page 750: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 751: [eBook Ita] Corso Di Fondamenti Di Informatica

Ingrandimento e riduzione

Page 752: [eBook Ita] Corso Di Fondamenti Di Informatica

Se si ingrandisce o riduce un’immagine bitmap è necessario “inventarsi” dei nuovi pixel o eliminare pixel esistenti

È un problema di interpolazione

Page 753: [eBook Ita] Corso Di Fondamenti Di Informatica

La funzione “Image size…” di Photoshop o Paint Shop Pro consentono di decidere quale tipo di interpolazione usare

I risultati cambiano !

È bene scegliere interpolazioni bicubiche

Page 754: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 755: [eBook Ita] Corso Di Fondamenti Di Informatica

Notare le differenze tra interpolazione bicubica e lineare nella slide precedente

Il tipo di interpolazione determina quali pixel vengono selezionati per la decimazione o per il calcolo di nuovi pixel

In pratica è un filtro…

Page 756: [eBook Ita] Corso Di Fondamenti Di Informatica

I filtri

Page 757: [eBook Ita] Corso Di Fondamenti Di Informatica

I programmi di fotoritocco hanno di norma molti filtri già pronti

Si possono creare manualmente nuovi filtri, o scaricarli da Internet

I filtri si applicano alle zone selezionate dell’immagine, a maschere o layer

Page 758: [eBook Ita] Corso Di Fondamenti Di Informatica

Alcuni filtri hanno parametri modificabili

Page 759: [eBook Ita] Corso Di Fondamenti Di Informatica

Molti filtri sono basati su operazioni di convoluzione

Es. smoothing (blurring) o sharpening

Page 760: [eBook Ita] Corso Di Fondamenti Di Informatica

La convoluzione è un’operazione matematica in cui i valori di due matrici sono usati per produrre una terza matrice

Tipicamente i valori di una matrice vengono moltiplicati con i corrispondenti di una seconda matrice e sommati tra loro

Page 761: [eBook Ita] Corso Di Fondamenti Di Informatica
Page 762: [eBook Ita] Corso Di Fondamenti Di Informatica

Il filtro di blurring gaussiano di Photoshop è fatto usando una convoluzione

σ = 1.4

Page 763: [eBook Ita] Corso Di Fondamenti Di Informatica

Il σ visto prima è chiamato Radius in Photoshop