You are on page 1of 763

FONDAMENTI DI INFORMATICA

Marco Bertini Universit degli Studi di Firenze Facolt di Architettura Corso di Laurea in Disegno Industriale

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

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

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

Programma ANNO ACCADEMICO 2002-2003


Parte IV: Database
- funzionalit e organizzazione relazionale di un database - elementi di progetto - Access - Cenni su server SQL

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)

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

PARTE I

Calcolatori e Sistemi operativi

Architettura di un calcolatore

Il funzionamento dei calcolatori Trasformano i dati in informazioni Utilizzano hardware e software Eseguono le seguenti operazioni: - Input - Elaborazione - Memorizzazione - Comunicazione - Output

Operazioni svolte da un calcolatore

Hardware di input
Tastiera - Converte le lettere, i numeri e i caratteri in segnali elettrici Mouse - manipola gli oggetti

Hardware di elaborazione della memoria Unit di sistema o case Microprocessore (chip) Chip di memoria Scheda madre

Scheda madre

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

Hardware di memorizzazione Unit a disco floppy Unit a disco fisso Unit CD-ROM

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.

- Scheda video - Scheda audio - Monitor

- Casse acustiche - Stampante

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

Software
Software di sistema - Esegue operazioni fondamentali - Consente lesecuzione del software applicativo Software applicativo - Consente di svolgere operazioni specifiche - Richiede la presenza del software di sistema

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.

Unit di controllo ed elaborazione La CPU il componente comunemente indicato come microprocessore: - pentium della Intel, K6 della AMD, PowerPC della Motorola, Sparc della Sun sono alcuni di questi dispositivi; - seppur diversi costruttivamente si comportano in modo molto simile dal punto di vista funzionale.

Evoluzione dei processori INTEL


- Incremento delle prestazioni dovuto a maggiore integrazione - misurato dal numero di operazioni nellunit di tempo (MIPS-milioni di istruzioni eseguite al secondo)

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 allesecuzione 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

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

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).

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.

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.

Perch tanti dispositivi di memoria?


La CPU richiede laccesso 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 dallunit centrale avrebbe un costo eccessivo Una memoria RAM non in grado di supportare questa velocit. - il motivo che porta allintroduzione della cache.

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.

Hard-disk
Rappresenta la forma di memoria lettura/scrittura di maggior diffusione e minor costo: - relativamente lenta rispetto a RAM, ROM e cache. Sullhard-disk sono installati i software applicativi ed i dati utente. Sullhard-disk realizzata anche la memoria virtuale: - rappresenta lo stadio finale della gerarchia di memorie utilizzate dalla CPU.

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.

Hard-disk
Il disco ruota ad alta velocit (3600-7200 g/m). Un braccio meccanico supporta la testina di lettura/scrittura: si muove radialmente dallinterno al bordo del disco e viceversa per reperire i dati.

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 dellelaboratore in cui risiedono il sistema operativo ed i programmi durante la loro esecuzione.

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.

Memoria Cache di I e II livello La cache di I livello realizza una piccola quantit di memoria direttamente allinterno 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.

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.

Scheda madre
Esempio di scheda madre : - ad essa sono collegati i diversi componenti hardware del sistema; il collegamento eseguito su slots appositi.

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.

USB
Lo scopo eliminare porte seriali, parallele e schede speciali ad alta velocit. Attaccare pi dispositivi in modo semplice (fino a 127).

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

USB
- Fino a 127 dispositivi contemporaneamente - Dist. Max cavo 5 metri -Dist max. percorribile 75 metri (tramite hub)

USB
Due tipi di connettori

USB
Il computer lhost vel. max. 12 Mbps ogni dispositivo pu richiedere un max di 6 Mbps USB 2.0 dovrebbe andare da 10 a 20 volte pi veloce

FireWire
Bus seriale creato da Apple e standardizzato da IEEE
- noto anche come IEEE 1394 o i.Link (Sony)

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

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

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

USB vs. Firewire

Scheda Grafica
La scheda grafica converte linformazione digitale interna al calcolatore in qualcosa che pu essere visto dalluomo 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.

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 per supportare applicazioni grafiche avanzate.

Scheda Grafica
Una scheda grafica composta da:
- memoria, utilizzata per mantenere il valore di colore per ogni pixel del monitor; - uninterfaccia verso la CPU, per consentire la scrittura nella memoria interna della scheda; - uninterfaccia video, per consentire la generazione dei segnali verso i pixels del monitor.

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.

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 lutilizzo del bus PCI o la costruzione diretta sulla scheda madre.

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

Scheda Grafica
Esempio di scheda grafica AGP

Scheda Grafica
Connessione della scheda sullo slot AGP della scheda madre.

Scanner e OCR
OCR: Optical Character Recognition
scansione di documenti, estrazione e riconoscimento del testo
LOCR di testo scritto a mano particolarmente complesso. I software commerciali non lo consentono.

Il funzionamento degli scanner


Esistono diversi tipi di scanner
Flatbed: i pi comuni, sono quelli da tavolo, generalmente scandiscono fino allA4 Sheet-fed: simili a stampanti portatili, si muove il foglio mentre la testa di scansione rimane ferma Hand held: portatili, bassa qualit di scansione

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

Scanner flatbed

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

Limmagine 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 Cathode Fluorescent Lamp (CCFL) o allo Xenon
CCFL non riscalda ed molto piccola

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

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

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 filtro Normalmente viene usato un solo passo: la lente divide limmagine in tre, ed ogni immagine passa attraverso un filtro

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 limmagine

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)

Particolare della cinghia del motore passo-passo

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

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

Linterpolazione
Linterpolazione unelaborazione effettuata dal software dello scanner per aumentare la risoluzione percepita di unimmagine Vengono creati dei pixel partendo dai dati dei pixel ottenuti dal CCD

Il colore
Altro elemento importante degli scanner la profondit di colore: bit depth
indica il numero di colori riproducibili dallo scanner Il 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

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 linformazione questa pu essere:
Mostrata ad un utente (monitor) Memorizzata (disco o RAM) Inviata ad altri PC (scheda di rete, modem, etc.)

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 suonano PS/2: carica giochi da CD, mostra filmati da DVD

Avvio (Boot) passo 1


Vediamo quando le varie componenti del PC vengono usate dal momento dellaccensione al momento in cui possiamo iniziare ad usare il PC: 1. Accendiamo il PC !

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)

BIOS: Basic Input/Output System il primo programma ad essere eseguito:


Lhardware inutile senza il software Fornisce funzioni per gestire a basso livello periferiche: fondamentali allavvio del PC

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 file Il BIOS fornisce le istruzioni necessarie ad accedere il disco e caricare il S.O.

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. 2. 3. 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 unaltra ROM presente sulla scheda madre 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 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 Il BIOS mostra alcuni dettagli sul sistema: Processore Floppy e hard disk Memoria Versione BIOS e data schermo 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

4.

5.

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

Lo spengimento richieder un cold boot, il riavvio no


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

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.

Laggiornamento possibile se il BIOS memorizzato su una ROM su cui possibile riscrivere, es. Flash

Impostazioni del BIOS


E possibile allatto dellavviamento 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 laccesso al sistema); power management.

Impostazioni del BIOS: approfondimento


Data e ora di sistema: sono aggiornate automaticamente anche quando il PC spento (lorologio interno ha una batteria)
Quando si creano o modificano i dati su disco il S.O. registra data e ora Si pu modificare data e ora anche dal S.O. Lorologio si sincronizza anche via Internet con lIstituto Galileo Ferraris (o altri orologi atomici)

Sicurezza: si pu impostare una password che blocca laccesso 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

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

Il local bus (system bus) collega processore e memoria PCI collega processore/memoria con altre periferiche tramite un bridge
shared bus

Periferiche collegabili sullo shared bus


modem hard-drive sound-card graphic-card (pi vecchie) controller-card scanner

PCI ha introdotto il PlugNPlay (NPray !) insieme con Windows 95 Bios PnP + ECSD (Extended System Configuration Data) + S.O. PnP = sistema PnP

Il BIOS PnP allaccensione chiede a tutti i dispositivi di identificarsi Controlla 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

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

PCI una via di mezzo tra EISA e VL 5 dispositivi max. velocit indip. da CPU pi PCI su stesso computer 64 bit / 66 MHz PCI-X: 64 bit / 133 MHz = 1 GBps

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 boot presente 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

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 ZIP Si pu scegliere la sequenza Prova tutti i dispositivi della sequenza finch non trova uno con il S.O.

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)

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

Il sistema operativo
A questo punto il S.O. a controllare il PC Il 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

Gestione della memoria: gestisce luso della RAM e determina se la memoria virtuale necessaria

Gestione dei dispositivi (device): fornisce uninterfaccia tra i dispositivi del computer e le applicazioni

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

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

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.

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


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

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

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


Es. un computer palmare

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


Windows, MacOS consentono ad un singolo utente di eseguire pi lavori contemporaneamente

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

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

Nel corso della descrizione delle fasi di boot si parlato dellaccesso al disco e dei dispositivi SCSI, approfondiamo nel seguito largomento

IDE

Integrated Drive Electronics uno standard per collegare dispositivi di massa (hard disk, floppy, cd-rom) Nato da AT Attachment (ATA)

IDE
Il controller IDE si trova sul dispositivo stesso

IDE linterfaccia di collegamento sta sulla scheda madre e si chiama host adapter (bus di tipo Industry Standard Architecture ISA)

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

IDE Attualmente UltraDMA ha una larghezza di banda di 33.33 MB/sec ATAPI uno standard incluso nellultimo IDE/ATA per facilitare la connessione di pi periferiche di massa (e.g. nastri, CD(RW), ZIP, etc.)

IDE I dispositivi IDE sono collegati fra loro tramite un connettore Unestremit del connettore collegata alla scheda madre

IDE Uninterfaccia consente di collegare due dispositivi ma: - ognuno ha un suo controllore chi parla ? - soluzione: un dispositivo viene configurato come Master e laltro come Slave Normalmente ogni PC ha due interfacce IDE

IDE
La configurazione Master/Slave pu essere fatta con jumper o mediante il Cable Select Nel caso di Cable Select i jumper sono in posizione CS ed usando un apposito cavo i device si configurano da soli

IDE

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

SCSI

SCSI (Small Computer System Interface) un bus veloce che pu essere collegato per connettere: hard disk scanner CD-ROM/RW stampanti

SCSI

Normalmente usato su PC di fascia alta E veloce: fino a 160 MBps. Permette di connettere pi dispositivi su un solo bus

SCSI

In un sistema SCSI ci sono tre componenti: - controller: - dispositivo - cavo

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

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

SCSI cavo : - pu essere interno o esterno

SCSI Tipi di SCSI: - Fast legato al clock - Wide allampiezza del bus - Ultra legato alla terza versione dello standard Ultra3 SCSI: 16 bits / 40 MHz / 160 MBps / 16 disp.

Il punto di forza di SCSI e RAID (Redundant array of independent disks): - dischi collegati tra loro e considerati come ununica entit logica - SCSI pu dare ordini a dischi in striping: pi dischi scrivono/leggono contemporaneamente - fondamentale nelle stazioni video

Cosa un S.O. ?
un programma il secondo programma che vediamo quando accendiamo un PC (dopo il BIOS) e lultimo quando lo spengiamo Consente a tutti i programmi applicativi di essere eseguiti Consente ai programmi applicativi di usare lhardware

Software di base
Software di base
Insieme di programmi che interagiscono con lhardware e il firmware del calcolatore e cela allutente la struttura fisica dei dispositivi, realizzando una complessa macchina virtuale Sistema operativo Interfaccia utente Software di utilit Software di comunicazione

Software applicativo
Software applicativo
Insieme 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 dallutente


Es.: applicazione Flash o VBA

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

Funzioni svolte dal S.O.


Partenza del sistema Configurazione/gestione del sistema Login/Logout Gestione dei supporti di memoria Gestione dellorganizzazione delle informazioni sui supporti Esecuzione di applicativi Fermo del sistema e spegnimento

Partenza del sistema:


Lultimo 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

Configurazione/gestione del sistema:


Controlla e gestisce lhardware
Plugnplay

Driver

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)

Login: user id e password identificano lutente


Autenticazione locale o remota Caricamento impostazioni personali

Spengimento sistema:
Seguire SEMPRE la procedura del S.O.
Si rischia di perdere dati altrimenti

MS/PC/DR DOS

Windows 98

In Start > Programmi vengono mostrati vari programmi installati sul PC


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

Windows 2000

In Start > Programmi vengono mostrati come in Windows 98.


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

Windows XP

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

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 periferiche Un Windows Manager gestisce linterfaccia vera e propria: finestre, pulsanti, icone, etc.

Linux - KDE

Linux - Gnome

SGI IRIX

Dopo il login il S.O. mostra il desktop Il desktop contiene le icone e gli strumenti per eseguire programmi ed aprire file

cursore icone

finestra desktop avvio rapido taskbar tray

Il contenuto del menu contestuale cambia secondo loggetto su cui si clicca

Gestione della memoria 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

Biblioteca Armadi Scaffali Libri

Memoria di massa Cartelle o Directory Sottodirectory File

Una struttura ad albero


Radice Cartella2

File1

Cartella1

File1.1

Cartella1.1 FileA

Cartella2.1 FileA

Cartella1.1.A

FileB

Cartella1.1.A.1

FileB

Esempio
RADICE RADICE

GIOCHI GIOCHI
Solitario.exe FreeCell.exe

DOCUMENTI DOCUMENTI

ESERCIZI ESERCIZI

LETTERE LETTERE
Mialett.txt Curric.doc

LEZIONI LEZIONI
Lab.ppt so1.ppt

VARIE VARIE
Ricette.txt

DW DW
ES1.html ES2.html ES3.html

EXCEL EXCEL
EX01.xls EX02.xls

Esempio Windows

Unit a disco tipiche (Windows)


A:\ C:\ D:\ prima unit di floppy disk primo hard disk lettore CD/DVD

Man mano che si aggiungono dischi si usano le altre lettere

Nellesempio precedente si vedevano dei dischi presenti su altre macchine condivisi in rete Windows li vede come presenti sul PC Anche Unix si comporta allo stesso modo

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.

Esistono diversi tipi di file system, es.:


NTFS FAT FAT32 EXT2 EXT3 Windows

Linux

Alcuni S.O. gestiscono pi tipi di file system Cosa cambia ?


Come sono memorizzati i file sul disco Propriet pi o meno avanzate
Es. quota disco, diritti di accesso, frammentazione file

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

Ogni file, allinterno di una cartella, identificato da un Nome e da una Estensione. Per identificare un file necessario specificare un cammino (path): Unit:\Cartella\Nome.Estensione Esempio: C:\Giochi\FreeCell.exe C:\Documenti\Lezioni\Lab.ppt

Specifiche di file e percorsi C:\Documenti\Relazioni\miodoc.doc


Disco Directory Subdirectory Nome del file Estensione

Il nome (ed estensione) di file e directory non deve contenere caratteri speciali come:
\/?:*<>| Vanno bene invece: lettere, numeri, _ - $ &

Aprire un file dati (Windows)


Usare Start > Documenti o Documenti recenti (menu) Usare il menu File > Apri dellapplicazione che gestisce il file dati Doppio click sullicona del file: Windows usa lestensione per riconoscere quale programma apre il file

Cancellare un file
Si trascina il file sul cestino Menu contestuale del file > elimina Selezione file e tasto Canc

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

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 ?

Tipi di file
File di programmi File di dati
ASCII Immagini testi Audio Animazioni e video

Altri file

Quali estensioni vengono usate?


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

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 posta Un file compresso si scarica prima da internet Si uniscono pi file in un file unico

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)

Alcuni programmi di compressione gestiscono pi algoritmi e tipi di file

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

Gli algoritmi di compressione si dividono un due grandi famiglie:


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

Se voglio comprimere un mio documento di testo o di calcolo, o disegno tecnico NON voglio certo perdere dati
Zip Rar Arj Gzip (tipico Unix)

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


Jpeg Mpeg DivX

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 antivirus Compressione file Gestione file Gestione e manutenzione S.O.

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

Esistono utility che controllano i dati del registry ed eliminano quelli non pi validi
Di norma le prestazioni migliorano NON una panacea ! C il rischio di rovinare il S.O.

Nei sistemi Unix non c questo problema


Tipicamente la configurazione mantenuta in file di testo nella directory /etc Non esiste il concetto di registry

Virus
un programma scritto in modo tale da replicarsi e spandersi da una locazione ad unaltra, tipicamente senza che lutente lo sappia Boot, file, macro virus Worm: simile ad un virus ma non ha bisogno di infettare altri programmi. Si propaga via rete

A volte non fanno niente di male Cancellano o corrompono file Compromettono la sicurezza di un computer (Windows): modificano il registry Qualsiasi altra cosa i loro creatori vogliono

Per informarsi
bene informarsi sui virus attivi ed i loro effetti: Symantec: http://securityresponse.symantec.com/ McAfee http://vil.nai.com/vil/default.asp

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

Virus: come proteggersi


1. Comprare un antivirus 2. TENERLO AGGIORNATO 3. Non eseguire programmi in attach NON richiesti 4. Creare i floppy di ripristino (se previsti dal programma)

Protezione in generale
Le persone che usano il computer si dividono in due tipi
Quelli che hanno gi perso i dati Quelli che devono ancora perderli

Effettuare un backup significa fare una copia di riserva dei propri dati bene fare backup ad intervalli regolari: es.
masterizzare su CD copiare su altro PC copia su nastro (tipico dei server)

Secondo il S.O. lutilit 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

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 dati
Tipi di reti

WAN, MAN e LAN

Motivazioni
Condivisione di risorse, sia HW che SW, presenti sulle diverse macchine Accelerazione dei calcoli suddividendo un calcolo in pi parti Affidabilit, ottenuta attraverso la ridondanza Comunicazione

Terminologia
LAN - Local Area Network
LAN: rete di computer fisicamente prossimi tra loro, collegati da un mezzo di propriet dellorganizzazione cui appartengono

MAN - Metropolitan Area Network


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

WAN - Wide Area Network


WAN: network di computer fisicamente distanti, tipicamente collegati da mezzi di propriet di terze parti; pu coprire il globo

Terminologia
Internet
Sistema 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

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

WAN/MAN
WAN (Wide Area Network) MAN (Metropolitan Area Network)
Area estesa (fino a 100 km di raggio) Connessioni lente Connessioni inaffidabili

Topologie (1/2)
Diverse sono le organizzazioni (fisiche e logiche) possibili per una rete Criteri di confronto
Costi di base, ovvero dellinfrastruttura Costi di comunicazione, ovvero di trasmissione dellinformazione Affidabilit

Topologie (2/2)
Si possono avere reti
Completamente connesse Parzialmente connesse Gerarchiche (bassi costi base) A stella Ad anello A bus ad accesso multiplo Ibride

Reti a stella
Nodo centrale (centro di commutazione) Semplicit di instradamento Immediata identificazione di guasti Laffidabilit dipende dal nodo centrale Bassi costi base (proporzionali al numero di nodi) Bassi costi di comunicazione (fissi)

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 limpiego di stazioni rigenerative si riescono a coprire distanze maggiori rispetto al caso di reti a stella o a bus Bassi costi base

Reti a bus

Struttura semplice ed affidabile Trasmissione diffusiva (o di tipo broadcast) Per le reti a bus (anche per reti ad anello) laffidabilit dipende dalla linea

Reti miste
Star-bus la tipologia pi diffusa

Codifica digitale dellinformazione


Nei sistemi digitali lunit 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 binario Codici Codice ASCII per i caratteri

77
01001101 01000001

Trasmissione digitale dati


Avviene solitamente in modo seriale (un bit alla volta)
01001101

Larghezza di banda
Nei sistemi di trasmissione digitale, la larghezza di banda assimilabile alla quantit di bit trasmessi nellunit di tempo
1 bit/s 0 8 2 bit/s 0 8 tempo (s) tempo (s)

Traffico dati
Larghezza (ampiezza) di banda
Dati inviati in un canale di comunicazioni in un determinato periodo di tempo
Testo Voce Video e cos via

Broadband (banda larga) - accesso ad alta velocit

Download trasferimento di dati da un computer remoto al computer locale Upload trasferimento dei dati da un computer locale a un computer remoto Velocit di trasmissione dei dati:
Bit/s Kbit/s Mbit/s Gbit/s

LAN
LAN (Local Area Network)
Area limitata (raggio dellordine del chilometro) Cavi coassiali, UTP, STP, fibra ottica Pu essere lutente di una rete geografica Alta velocit Basso tassi di errori

LAN
Client/server
Client computer che richiedono i dati Server computer che forniscono i dati
Server di file, database, Web e di posta elettronica

Peer-to-peer
Senza server Accettano senza problemi fino a 25 computer

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

LAN: a cosa servono


Condividere risorse come stampanti, scanner, supporti di memorizzazione (CD player, hard drives, nastri) Condividere file tra gli utenti Mandare messaggi Condividere database Amministrare programmi

LAN: componenti
Connessioni o sistema di cablaggio Schede di interfacciamento di rete Sistema operativo di rete Dispositivi condivisi stampanti, scanner, dispositivi di memorizzazione Router Bridge Gateway

Client/Server Computing
Initiator Client (computer+SW) Facilitator Middleware (software) Passive provider Server (computer+SW) Il servers aspetta le richieste dei client Un server pu servire molti client File server, data server, web server

Servizi richiesti da client


file dati pagine web applicazioni

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

Peer to Peer Networking (P2P)


Niente server I computers della rete sono trattati come pari (peers) Esempi: semplice rete domestica, servizi di scambio musica o file come KaZaA o WinMX

LAN: come collegarsi


Network Interface Card (NIC): Scheda che si interfaccia alla rete, es. Ethernet (cavo) o WiFi 802.11 (wireless)

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 lhanno provocata riprovano a parlare a turno

Ethernet: limiti
C un limite di lunghezza dei cavi della rete
Dovuto 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

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

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

Per ridurre le collisioni si divide una rete Ethernet in pi sottoreti Es.: mentre A parla con B, C pu parlare con D senza darsi noia

Switch (1/2)
pu essere considerato come un bridge dotato 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 sottoreti) che condividono una medesima connessione logica

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 unintera sotto-rete (segment-switching) pone in collegamento diretto due porte offrendo cos la massima larghezza di banda

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

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


Due client potrebbero parlare con server diversi contemporaneamente

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)

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

Windows: condivisione file (1/2)


Si attivano i servizi di condivisione file

Windows: condivisione file (2/2)


Si selezionano le cartelle da condividere, con eventuali password

Si esplorano le risorse di rete

Windows: gruppo di lavoro

Risorse condivise da un computer

Internet: come collegarsi


Per ottenere un accesso a Internet necessario:

Un dispositivo di accesso Una connessione fisica Un Provider Internet (ISP)

SERVIZIO Modem telefonico ISDN xDSL T1 Modem via cavo Satellite Wireless

VELOCIT MAX. 56 Kbit/s 128 Kbit/s 1,5 - 8,4 Mbit/s 1,5 Mbit/s 10 Mbit/s 400 Kbit/s 155 Mbit/s

Modem telefonico
a bassa velocit ma economico e disponibile ovunque

Modem
Converte i segnali da analogici a digitali e viceversa Modem significa modulatore demodulatore Modula i segnali digitali trasformandoli in segnali analogici Demodula i segnali analogici riconvertendoli in segnali digitali

Segnali e modem

Linee telefoniche ad alta velocit


ISDN (Integrated Services Digital Network)
Si usa un Terminal Adapter (TA) non un modem ( gi digitale!) Consentono la trasmissione contemporanea di voce, video e dati Usa le normali linee telefoniche

Linee telefoniche ad alta velocit


xDSL (Digital Subscriber Line)
Sempre attiva Trasmissione dei dati costante Occorre trovarsi in prossimit della centrale di commutazione

Spesso un dispositivo xDSL funziona anche come Hub

Linee telefoniche ad alta velocit


Linea T1
Linea di connessione locale Trasporta 24 circuiti telefonici Utilizzata da aziende, enti governativi e siti accademici

Linea T3
Trasmette a 43 Mbit/s Costi molto elevati

Modem via cavo


Connette un PC a una rete TV via cavo che offre una connessione a Internet Sempre attiva Concorrente delle linee DSL La velocit di trasmissione pu calare nelle ore di picco Comune negli USA

Sistemi wireless
Comunicazioni via satellite
Microonde trasmesse alle stazioni terresti Riceve dati a 400 Kbit/s e invia dati a 56 Kbit/s (tramite una comune linea telefonica)

Altre connessioni wireless


Microonde per telefoni cellulari Inviano dati fino a 155 Mbit/s

Windows: collegamento via modem


Dati necessari:
Numero di telefono DNS (non sempre) User id e password

Windows: collegamento via modem


Si esegue il collegamento manualmente attivando il dialer Oppure il dialer attivato automaticamente dal programma, es. Explorer o Outlook

Attenzione ai dialer abusivi !


Rimpiazzano il dialer normale e fanno chiamate costose allestero attenti ai banner che promettono loghi, suonerie per cellulari o immagini pornografiche

Internet protocol suite


Indipendente dalla tecnologia delle reti Interconnessione universale Protocolli per lindirizzamento e la trasmissione dei dati
IP TCP UDP

Tutti i computer che si affacciano su internet devono avere un indirizzo IP Lindirizzo viene dato da:
ISP Amministratore di rete Pu essere sia variabile che fisso

Si pu condividere un accesso internet tra i computer della LAN


Serve un router o gateway PC o apparecchio dedicato

Un router svolge due funzioni: routing: scelta del percorso ottimale forwarding: spostare un pacchetto da una porta allaltra del router Un modem ADSL che funziona come Hub funziona anche come router:
Riceve le richieste dai PC attaccati e decide se mandare i dati su Internet o mantenerli dentro la LAN

Windows: TCP/IP

Windows: propriet TCP/IP

Indirizzi IP
Sono formati da 4 numeri compresi tra 0 e 255, separati da punti:
Es.: 192.168.0.1

Domain Name Service (1/4)


Problema: ricordarsi gli indirizzi IP Soluzione: 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 ?

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

Domain Name Service (3/4)


. (root)

edu

com

org

it

mit

unifi

www

www.mit.edu

dsi

pippo.dsi.unifi.it

pippo

Domain Name Service (4/4)


Esempio: pippo.dsi.unifi.it (FQDN, fully qualified domain name) necessita dellindirizzo 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 questultimo per ottenere lindirizzo per il dominio mit.edu (ad esempio 194.2.16.3 per a.mit.edu). Interrogando questultimo otterr finalmente lindirizzo per www.mit.edu che potr passare a pippo.dsi.unifi.it. Questo, disponendo finalmente dellindirizzo IP, potr adesso colloquiare direttamente con la macchina interessata.

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

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.

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
affidabile sequenziale completo senza duplicati

Il protocollo UDP
Invia pacchetti di dati (datagrams) da host a host senza alcuna garanzia circa lavvenuta consegna Pi veloce del TCP perch non si deve gestire la connessione
Es.: usato per lo streaming audio o video

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

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 rappresentare linformazione
Es. Trasformano immagini o testo in collegamenti ipertestuali

Uso del WWW


Informazione Intrattenimento Commercio elettronico Posta elettronica

Perch il WWW interessante e facilmente navigabile


Formato multimediale Uso degli ipertesti

Termini per il Web


Siti Web Pagine Web Browser URL Portali Web

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

Il domain name segue le regole del DNS

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

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

Indirizzo di posta elettronica


Nome utente Nome di dominio

Mario_Rossi@dsi.unifi.it
Dipartimento Dominio (TLD)

Posta elettronica e IM
Allegati Messaggi istantanei
Un incrocio fra posta elettronica e telefono Se lutente collegato i messaggi verranno visualizzati istantaneamente sullo schermo
Es.: ICQ, AIM, Jabber

Netiquette
Consultare le FAQ Evitare le flame Non urlare Evitare errori Non inviare grossi allegati Quotare solo le parti rilevanti del messaggio originario Evitare gli spam

Invio di posta elettronica

Ricezione di posta elettronica

Rispondere a un messaggio di posta elettronica

Allegati

Funzioni degli applicativi da ufficio pi comuni:


Gestione testi Calcolo Gestione archivi Creazione presentazioni

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
7

Microsoft Office la suite di strumenti di lavoro pi diffusa


la gallina dalle uova doro di Microsoft

Esistono alternative:
Corel Lotus Smartsuite Sun Office Open Office (libera e gratuita)
8

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.

I programmi principali di MS Office sono:


Word per elaborazione testi (word processing) Excel per foglio di calcolo PowerPoint per le presentazioni Access per gestire archivi Outlook per posta e personal information management

10

Per iniziare a lavorare:


Si apre on documento gi esistente Si sceglie un programma dal desktop o menu Avvio Si apre Nuovo documento Office dal menu Avvio

11

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:
Grafici Linguaggio di programmazione
12

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 numeri


Ci sono 65536 colonne

13

Excel pu gestire diversi fogli dentro un unico file Ogni foglio ha le dimensioni viste prima
I fogli della figura sotto sono memorizzati dentro la stessa cartella di lavoro (file .xls)

14

Barra del titolo

Barra dei menu

Barra Standard Barra formattazione

256 colonne
65.536 righe

Barra della formula

Barre di scorrimento

Elenco dei fogli

Barra di stato

15

Cella

D5

16

Zona B3:D10

17

Selezione celle
Si pu selezionare un gruppo di celle cliccando sulla prima, premendo lo shift e cliccando sullultima
Oppure trascinando il mouse con il pulsante premuto Si possono selezionare aree disgiunte usando il tasto Ctrl Si possono selezionare colonne o righe premendo sul pulsante relativo
18

19

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
20

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)

21

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

22

23

24

Copia e inserimento
La copia di celle ha un comportamento simile alla cancellazione/eliminazione
La copia sostituisce i valori Linserimento crea nuove celle quindi copia dentro i valori Fate attenzione a come cambiano i dati nel foglio di calcolo
25

26

27

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

28

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
29

30

In alternativa si importa o collega un file


Il doppio clic sul foglio inserito fa aprire Excel Nellimportazione 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

31

32

Un altro metodo per il collegamento usare Incolla speciale dentro Word

33

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

34

OLE
La condivisione di dati tra applicazioni vista prima detta OLE object linking and embedding

35

Formule e funzioni
In Excel le elaborazioni numeriche possono essere effettuate tramite: formule utente funzioni 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.
36

Tutte le formule iniziano con un =

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


37

Operatori
+ * (asterisco) / ^ (acc. circonflesso) = () addizione sottrazione moltiplicazione divisione elevamento a potenza inizio di ogni formula parentesi
38

>,<,>=,<=,<> operatori logici & concatena stringhe ; unione intersezione


39

spazio

Indirizzamento relativo delle celle


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

cella contenente la formula celle utilizzate nella formula

B1 diventa E2, B3 diventa E4 A4 diventa D5 la formula in D3 =E2+E4+D5


40

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 lindirizzamento assoluto le celle si dicono bloccate Indirizzamento misto $B1 si blocca la colonna B$1 si blocca la riga

41

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

42

Le colonne da C a F sono nascoste

Riga blocco riquadri

Notare la formula: stata copiata ed adattata automaticamente da Excel, grazie allindirizzamento relativo 43

Formato dati
Formattazione grafica

44

Una tabella di dati pu essere formattata automaticamente

45

Formattazione dei dati


Es. valuta, data, percentuale,

46

47

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 argomenti usare lAutocomposizione funzioni
48

Sintassi: =parolachiave(argomenti) Un argomento pu essere un numero una stringa di testo, scritta tra apici e virgolette una cella una zona una formula Pi argomenti sono separarti da ; Non devono essere utilizzati spazi nella digitazione di funzioni
49

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

50

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
51

52

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

53

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

54

Seconda finestra dialogo Autocomposizione funzioni

Descrizione

Risultato

Argomenti
55

Nellultima versione di Excel sono leggermente cambiati il metodi di inserimento

56

La funzione SE
La 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)
Lazione pu essere una formula da calcolare o una stringa da scrivere SE(A1>=0;A1*10;-A1)
57

Largomento di una funzione SE() pu essere unaltra funzione SE(). SE(Test1;val1;SE(Test2;val2;val3))


vero falso

Test1

val1

vero

Test2

falso

val2

val3
58

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

vero

Test1

falso

vero

falso

Test2

val1

val2

val3

59

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.

60

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_somma vengono sommate solo se le celle corrispondenti in intervallo soddisfano i criteri. Se int_somma omesso, verranno sommate le celle in intervallo. 61

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)
62

63

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.

64

Esempio

=CONTA.SE(A1:A6;"=mele") =CONTA.SE(A1:A6;"=mele")

=CONTA.SE(B1:B6;">50) =CONTA.SE(B1:B6;">50)
65

Alcune funzioni matematiche e trigonometriche


SEN(angolo) COS(angolo) PI.GRECO() LN(numero) LOG10(numero) EXP(numero) CASUALE() SOMMA(zona) RADQ(numero) FATTORIALE(num) INT(num) RESTO(divid,divis) seno di un angolo espresso in radianti coseno di un angolo espresso in radianti valore di logaritmo di un numero in base naturale logaritmo di un numero in base 10 esponenziale generazione di un numero casuale tra 0 e 1 somma di una zona di celle radice quadrata di un numero num! arrotonda un numero allintero pi vicino resto della divisione dei due numeri arrotonda un numero portandolo a un numero predefinito di valori decimali
66

ARROTONDA(num;num_cifre)

Alcune funzioni statistiche


MEDIA(zona) MEDIANA(zona) MODA(zona) MEDIA.ARMONICA(zona) MEDIA.GEOMETRICA(zona) MIN(zona) MAX(zona) CONTA.VUOTE(zona) CONTA.VALORI(val1,val2,) media aritmetica dei valori della zona mediana dei valori della zona moda dei valori della zona media armonica dei valori della zona media geometrica dei valori della zona valore minimo della zona valore massimo della zona conta il numero di celle vuote della zona conta il numero di celle non vuote presenti nellelenco degli argomenti
67

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
68

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
69

Esempio

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

Alcune funzioni matriciali


Matr.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
71

Nota: lo sfondo della matrice prodotto stato creato agendo su Formato celle > Motivo
72

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
73

74

75

76

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

77

Si nota come le date siano gi state riunite

78

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.

79

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

80

Dai menu a tendina della tabella si selezionano combinazioni interessanti per esplorare i dati
La tabella pivot si riadatta immediatamente alle selezioni

81

Si possono aggiungere tante sorgenti di dati alla tabella pivot quante vogliamo (e quante a occhio sembra giusto) Es. esaminare incidenza IVA sui totali

82

Si trascina lIVA nella sezione dei dati

I risultati del pivot possono essere usati in altre celle


83

Grafici
I tipi di grafico che si possono realizzare sono diversi:

1) Istogramma 2) Barre 3) Linee 4) Torta 5) Dispers.(XY) 6) Area 7) Anello

8) Radar 9) Superficie 10) Bolle 11) Azionario 12) Cilindri 13) Coni 14) Piramidi
84

Costruzione di un grafico
La 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 Loggetto la zona contenente i dati. Suggerimenti: impostare la tabella in modo semplice (evitare righe e colonne vuote) inserire le etichette di descrizione

85

Costruzione di un grafico, prima finestra


Al primo passaggio si scelgono tipo e sottotipo di grafico

86

Costruzione di un grafico, seconda finestra


Al secondo passaggio gi visibile il grafico in anteprima.

Interventi sulle serie (descrizioni e numeri)

87

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.
88

Costruzione di un grafico, quarta finestra

Il quarto passaggio, infine, chiede allutente dove collocare il grafico: allinterno del foglio corrente, oppure in un altro foglio mediante la creazione di un nuovo foglio gi dimensionato in modo standard.
89

Costruzione di un grafico, risultato finale!

90

Serie

Titolo del grafico Pareti

Assi Legenda

Area del grafico


91

Aggiunta retta di regressione

92

93

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 lordine giusto

94

95

Imposta pagina

96

Stampa

97

Stampa
importante regolare laspetto del foglio in stampa
Usate anteprima di stampa ed il pulsante Imposta

98

Limpostazione margini simile a quella di Word


In pi si pu centrare la tabella

99

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

100

Intestazioni e pi di pagina si inseriscono dalle propriet di pagina


in Word sono invece parte del documento

101

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

102

Per non stampare la griglia delle celle:

103

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.
104

Esempio

=G7+H7 =G7+H7

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


105

Tecniche avanzate
Formattazione condizionale Etichette Ricerca obiettivo Archivi
106

Formattazione condizionale

107

108

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

109

Ricerca obiettivo
Consideriamo il caso della crescita di un capitale Ct secondo la regola dellinteresse 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.

110

111

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 lintestazione, cio il nome del campo vanno evitate righe vuote, anche tra intestazione e righe successive la tabella deve essere isolata, cio separata da almeno una riga o colonna vuota da formule, funzioni, ecc.

112

Tipico database di Excel

record campi
113

Ordinamento di un database

114

Ordinamento di un database, risultato finale

115

Selezione mediante filtri


Selezionare 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 unopzione molto utile: Personalizza. Questa opzione permette di estrarre dati anche secondo intervalli di valori o confrontando stringhe di testo.
116

Personalizza filtro automatico

117

Errori
#DIV/0 ###### #NOME? #NUM! #RIF! #VALORE! Rif. circolari divisione per zero colonna troppo stretta per i dati Excel non riconosce un nome qualche problema con la gestione di un numero non possibile risolvere un riferimento (es. cella cancellata) tipo errato in un operando es. in C7 =SOMMA(C4:C7)
118

Introduzione:

Applicazioni dei database sul Web

Nella scorsa lezione si visto come gestire un semplice archivio con Excel Per gestire grandi archivi servono programmi specifici: DBMS Data Base Management System

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
9

10

11

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.

12

Creazione dinamica di contenuto sul Web


Normalmente ogni pagina Web in un sito unentit 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.
13

Creazione dinamica di contenuto sul Web


Una pagina di un catalogo online pu rappresentare un esempio. Nome prodotto Immagine Descrizione Numero di telefono per ordinare scritta Codice prodotto Prezzo Opzioni
14

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 lessenza della creazione dinamica di pagine Web.

15

Creazione dinamica di contenuto sul Web


ZZZZZZZZZ yyyyyyyyyy yyyyyyyyyy tel. 1-888-555-1122 aperto 24 ore Codice prodotto: X-2135 Prezzo: 500 Opzioni: rotondo, quadrato
ItemNum Filename X-2135 img10.jpg ItemName zzzzzzzzz Options Price Description yyyyyyyyyy Yyyyyyyyyy
16

rotondo, 500 quadrato

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.
Tabella Immagini
Middleware (php,cgi,asp)
ImageID Nome . 14 Righe . Colonne 100 120 Bit per Pixel Risoluzione 24 24 20 20

chateau1.j 100 pg Fightingforms.jpg 100 .

DB

15 .

17

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, lediting di tutte le pagine. Elimina possibili errori Nel caso dinamico sufficiente modificare il layout dellunico template. Sulla base di questo tutte le pagine vengono generate nello stesso modo, applicando i dati nel database al nuovo template. 18

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, linformazione memorizzata nel database inserita una volta, ma pu essere usata per molteplici scopi oltre a quello della pubblicazione sul Web.

19

Esempi: query

20

Esempi

Pagina dei risultati creata dinamica mente

21

Esempi

22

Esempi

23

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 lingresso per il database dellazienda, utilizzato per

24

Memorizzazione ed analisi di dati


possibile pensare ad un browser sul Web come strumento di interfaccia per la visualizzazione e lanalisi 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 lanalisi delle transazioni o dei prodotti di unazienda.

25

Concetti base e linee guida nel progetto

26

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. 27

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.
28

Esistono diversi tipi di database: Database Database Database Database gerarchici a rete relazionali a oggetti

Access, MySQL, SQL Server etc. sono database relazionali


29

Es. Scheda e Rappresentazione Tabellare


Autore
Ashenfelter, John Botto, Francis Cintron, Dave

Titolo
Choosing a Database for your Web Site Multimedia and Internet Applications Fast Track Web Programming

Numero di codice
5019BNA15 2212MKV26 7682QYT91

Ashenfelter, John

5019BNA15

Choosing a Database for your Web Site John Wiley & Sons, Inc. 1st printing 1998
30

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 - lunit 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.
31

Terminologia
Record - un insieme di campi che descrivono ununit pi grande. detto anche riga. I campi in un record forniscono una descrizione completa di ogni elemento in una collezione. Un record unistanza 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).

32

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.

33

Terminologia
Key
ID 2231 2232 2233 2234 Adamson Robert Anderson John Atget Baldus Eugene Denis

Field
City Lawrence State NY MD OH CA Zip 11559 21117 44135 90015

LastName FirstName Address 1021 B Wheatley

Record

1024 Owings Mill Santee St. 103 N Market 1031-1 S Dolfield Cleveland Los Angeles

Tabella indirizzi
34

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 allutente. La vista generata come risposta ad una particolare interrogazione. Permette di presentare in modi diversi i dati contenuti nel database.

35

Terminologia
Database - una collezione di tabelle. Spesso include anche maschere per lingresso dei dati, regole per la verifica della correttezza e la validazione dei dati immessi, ed il formato per creare reports informativi dei dati nel database.

36

Tipi di Database
Esistono diversi modi in cui i database sono implementati. Si possono individuare tre categorie di base: database flat-file database relazionali database orientati agli oggetti

37

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

38

Flat-File: database di ordini


OrderID CustID Name 23455 23456 23457 23458 23459 23460 1521 1567 1567 1765 0021 1235 Shipping Address ItemCode Quantity Price 1 2 2 15 1 1 8.95 16.50 22.00 225.15 19.99 49.95
39

Velio Cooper Francis Cioni Francis Cioni Jane Carroll Jody Hawes David Hill

152 W Waterloo St ZD-552 Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 1445 E Delavan Ave Laredo, TX 78043 1551 Westwood Blvd Ocilla, GA 31774 2664 Woodhill Rd Bronx, NY 742 Hearne Cleveland, OH 44104 XT-211 XT-212 CC-48 A-567 XD-234

Database Flat-File
Il database dellesempio precedente ha un evidente problema di progetto: ogni record relativo allordine 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.
40

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 Velio Cooper Francis Cioni Shipping Address ItemCode1 Quantity1 Price1 1 2 8.95 16.50 XT-212 2 22.00 ItemCode2 Quantity2 Price2 152 W Waterloo St ZD-552 Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 XT-211

41

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.

42

Database relazionali
Sono stati sviluppati con lobiettivo di prevenire una non necessaria duplicazione dei dati nel database. Il problema, nellesempio del database di ordini, nasce dal fatto che nella tabella sono rappresentate due entit logicamente distinte: il cliente e i dati ad esso relativi; linsieme di prodotti che sono stati ordinati. In un database relazionale ogni entit logicamente distinta dalle altre rappresentata in una differente
43

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.

44

Database relazionali: database di ordini


Shipping Address 152 W Waterloo St Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 1551 Westwood Blvd Ocilla, GA 31774 2664 Woodhill Rd Bronx, NY 742 Hearne Cleveland, OH 44104 1521 1567 1765 0021 1235 Velio Cooper Francis Cioni Jane Carroll Jody Hawes David Hill

derID CustID Name

3455

Tabella ordini

3457

3458

3459

3460

Tabella prodotti
ZD-552 XT-211 XT-212 CC-48 A-567 XD-234 1 2 2 15 1 1 8.95 16.50 22.00 225.15 19.99 49.95
45

One Many

OrderID ItemCode Quantity Price 23455 23457 23457 23458 23459 23460

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.
46

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.
47

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).
48

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-amolti, 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.

49

Database relazionale: database di ordini


CustID Name 1521 1567 1765 0021 1235 Shipping Address Velio Cooper Francis Cioni Jane Carroll Jody Hawes David Hill 152 W Waterloo St Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 1551 Westwood Blvd Ocilla, GA 31774 2664 Woodhill Rd Bronx, NY 742 Hearne Cleveland, OH 44104

Tabella clienti

OrderID CustID Date 23455 23457 23458 23459 23460 1521 1567 1765 1521 1235 2002.02.25 2002.02.13 2002.01.19 2002.02.13 2001.12.21

Tabella prodotti
OrderID ItemCode Quantity Price 23455 23457 23457 23458 23459 23460 ZD-552 XT-211 XT-212 CC-48 A-567 XD-234 1 2 2 15 1 1 8.95 16.50 22.00 225.15 19.99 49.95
50

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.

51

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 unaltra 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.

52

Relazione uno-a-uno: database delle risorse umane


EmployeeID 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstName Jerry Gina David Linda Steve Russell Address 496 Laguardia Place 426 Lake St 318 W 39 Th St 2427 Broadway 224 Lawrence Ave 224 Lawrence Ave
EmployeeID 77621 77622 77623 77624

Phone 555-2222 555-8267 555-4445 555-1568 555-9872 555-1213

Tabella impiegati

EmployeeID Rate 77620 7.78 77625 13.55

Hours 30 40

Salary 41,000 55,755 22,155 18,975

401 5 2 N/A 2

Health BC BC QS N/A

Tabella impiegati a ore

Tabella impiegati salariati


53

Database relazionali: relazione uno-a-uno


La tabella degli impiegati ha un record per ogni impiegato dellazienda ed usa EmployeeID come chiave primaria per identificarli in modo univoco. Supponiamo che lazienda 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.
54

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 linformazione sanitaria. Per entrambe le tabelle ausiliarie la chiave primaria rappresentata da EmployeeID.

55

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. Luso 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.
56

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.

57

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 unaltra 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. 58

Relazione molti-a-molti: database impiegati e progetti


Tabella impiegati
EmployeeID 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstName Jerry Gina David Linda Steve Russell

Tabella progetti
ProjectID 22356 27685 33564 Manager Jones Lewis Albertson Deadline 4/9 12/22 8/17

EmployeeID 77620 77621 77624 77622 77624 77622

ProjectID 22356 27685 27685 33564 33564 22356

Tabella relazione impiegati-progetti

59

Relazione molti-a-molti
Database di progetti che tiene traccia degli impiegati che lavorano su ciascun progetto. Ogni impiegato dellazienda 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 unulteriore tabella per rappresentare la relazione molti-a-molti tra impiegati e progetti.
60

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.

61

Tabelle e relazioni in Access


Access ha un set di database pronti di esempio

62

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

63

64

Es.: creazione tabelle dellesempio precedente: impiegati, progetti e tabella relazione tra impiegati e progetti

65

Dopo aver creato la tabella delle relazioni si deve creare la relazione vera e propria che mette in collegamento i campi

66

Si trascinano i campi dalle tabelle degli impiegati e progetti ai rispettivi campi della tabella di relazione

67

68

Per fare una prova si immettono dei dati nelle tabelle di impiegati e progetti, e poi nella tabella relazioni

69

Per vedere il risultato dobbiamo fare una query: selezioniamo tabelle e campi che vogliamo esaminare

70

71

72

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.
73

Criteri di progetto di un database


I passi base del processo di progetto sono: 1. definizione del problema e degli obiettivi 2. valutazione della soluzione corrente (se esiste) 3. progetto delle strutture dati 4. costruzione delle relazioni 5. implementazione di regole e vincoli 6. creazione di viste 7. implementazione del progetto. Notare che limplementazione con un particolare software il passo finale. I passi precedenti sono indipendenti dalla realizzazione.

74

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.

75

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.

76

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

77

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.
78

Criteri di progetto: 3. progetto delle strutture dati


Subjects
Buildings Classrooms Courses Employees Faculty Members Part-time Employee Staff

Fields
Address Course Description Course Name Course Number Courses Taught Date Hired Funding Source Home Department Hourly Rate Meeting Times Name Number of Seats Phone Number Prerequisites Salary Social Security Number Tenure Status .
79

Criteri di progetto: 3. progetto delle strutture dati


Es. di campi individuati per un sistema di pagamento per lUniversit. 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 Tenure Status sono parte di una struttura dati separata. I campi Hourly Rate, Founding Source e Home Department sono parte di una struttura per i Parttime Employees. In questo modo possibile raggruppare i campi secondo
80

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.
81

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 lefficienza 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.

82

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
83

Es. in Access, tipi di dati e formato per dato numerico

84

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.

85

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.
86

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.

87

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.

88

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 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstNam e Jerry Gina David Linda Steve Russell Address 496 Laguardia Place 426 Lake St 318 W 39 Th St 2427 Broadway 224 Lawrence Ave 224 Lawrence Ave Phone 555-2222 555-8267 555-4445 555-1568 555-9872 555-1213

E m p lo y e e I D 77621 77622 77623 77624

S a la r y 4 1 ,0 0 0 5 5 ,7 5 5 2 2 ,1 5 5 1 8 ,9 7 5

4 0 1 (k ) 5 2 N /A 2

H e a lt h BC BC QS N /A

89

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 23455 23457 23458 23459 23460 1521 1567 1765 0021 1235 Shipping Address Velio Cooper Francis Cioni Jane Carroll Jody Hawes David Hill 152 W Waterloo St Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 1551 Westwood Blvd Ocilla, GA 31774 2664 Woodhill Rd Bronx, NY 742 Hearne Cleveland, OH 44104

OrderID ItemCode 23455 23457 23457 23458 23459 23460 ZD-552 XT-211 XT-212 CC-48 A-567 XD-234

Quantity Price 1 2 2 15 1 1 8.95 16.50 22.00 225.15 19.99 49.95

90

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 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstName Jerry Gina David Linda Steve Russell

ProjectID 22356 27685 33564

Manager Jones Lewis Albertson

Deadline 4/9 12/22 8/17

EmployeeID 77620 77621 77624 77622 77624 77622

ProjectID 22356 27685 27685 33564 33564 22356

91

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 linserimento di un codice con 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.

92

In Access si specificano i vincoli nelle propriet del campo

93

94

Criteri di progetto: 6. creazione di viste


Consente di trasformare i dati del database in informazioni utili allutente. 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 alla domanda 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.
95

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.

96

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.
97

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).
98

Processo di Normalizzazione
5NF 4NF 3NF 2NF 1NF
No dipendenze cicliche in chiavi composite No dipendenze multiple in chiavi composite

(BCNF)
No dipendenze transitive tra campi Per chiavi composite, i campi non chiave devono essere funzionalmente dipendenti dalla chiave composita (non da sue parti)

Un database deve passare attraverso le normalizzazioni in sequenza: un database in 3NF deve soddisfare anche i requisiti della 1NF e 2NF.

Ogni campo deve essere unico


99

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.
100

Prima forma normale (1NF)


Student Album AlbumID (Key) Artist Title Track 1 name Track 1 duration Track 2 name Track 2 duration Track 3 name Track 3 duration Track 4 name Track 4 duration (etc.)
101
_______________________________________________________________________________________

Le tabelle non soddisfano la 1NF.

StudentID (key) Name Year Period 1 class Period 1 teacher Period 1 grade Period 2 class Period 2 teacher Period 2 grade Period 3 class Period 3 teacher Period 3 grade (etc.)

Prima forma normale (1NF)


Nellesempio 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. 102

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.

103

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

104

Seconda forma normale (2NF)


La tabella dellesempio precedente non verifica i requisiti della 2NF. La chiave composita costituita da informazioni che riguardano due distinte entit logiche, litem 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 (Vendor contact name, Vendor address, Vendor phone number) i cui valori dipendono dal valore di un componente della chiave composita (Vendor name).
105

Seconda forma normale (2NF)


Il processo di progetto definito in precedenza evitava questi problemi attraverso due accorgimenti: evitare luso di chiavi composite; entit logiche distinte, siano esse oggetti od eventi, richiedono tabelle dei dati distinte.

106

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 unaltra chiave primaria per parte o tutti i campi del record.

La tabella dellesempio 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.
107

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.

108

ESEMPI DI PROGETTO

109

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
110

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.
111

Esercizio di progetto - I
Fieldname
ID LastName FirstName MailingAddress City State Zip Country Directions HomePhone WorkPhone Fax Email WebPage Birthday

Notes
Campo numerico usato come chiave Limite a 40 caratteri Limite a 20 caratteri Campo testo a lunghezza variabile Limite a 30 caratteri Limite a 2 caratteri 10 cifre Limite a 20 caratteri Campo testo Memorizzato come campo testo Memorizzato come campo testo Memorizzato come campo testo Limitato a 40 caratteri Home page URL Data in formato mm/dd/yyyy

112

Esercizio di progetto - I
5. 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.

113

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. Laltra 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.
114

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
115

Esercizio di progetto - I
Tabella primaria con due sottotabelle. Un progetto pi relazionale potrebbe consistere di una tabella primaria con tutte le informazioni costanti sullindividuo (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.
116

Esercizio di progetto - II
1. Definizione ed obiettivi. Media File Database - lobiettivo 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. 117

Esercizio di progetto - II
Notes
Nome del media file Pu variare da pochi KB a molti MB Deve essere flessibile Dimensione in pixels In bit da 1 a 32 Alcuni formati hanno diversi livelli di compressione Immagini scannerizzate a diversi livelli Storia di come il file stato editato Data di ultima modifica Per audio files. Frequenza di campionamento Per i video sono possibili diversi frame rate Video compressi con formati proprietari Book, CD, videotape o altre sorgenti Descrive il tipo di media presente Usate per una ricerca rapida (es. albero, sinfonia, etc.) Lunghezza del file audio Sito Web da cui scaricare il plug-in se necessario 118 Durata del file video

Fieldname

Filename Filesize File type or format Image dimensions Color depth Compression level Scanned resolution File manupulations Last modification Sampling rate Video frame rate Codec used Original source Descriptive text Keywords Length of sound clip Plug-in location Video duration

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
119

Files Data Table Fieldname


Filename Filesize FileType FileChanges LastModification DescriptiveText FileKeywords

Esercizio di progetto - II
Notes

Nome del media file Pu variare da pochi KB a molti MB Deve essere flessibile Storia di come il file stato editato Data di ultima modifica Descrive il tipo di media presente Usate per una ricerca rapida (es. albero, sinfonia, etc.)

Images Data Table Fieldname


ImageHeight Image Width ImageColor depth ImageCompressionLevel ImageScannedResolution

Notes
In pixels In pixels In bit da 1 a 32 Alcuni formati hanno diversi livelli di compressione Immagini scannerizzate a diversi livelli
120

Esercizio di progetto - II
Sounds Data Table Fieldname
SoundSamplingRate SoundClipLength

Notes

Audio files possono essere campionati a diversi rates Lunghezza del file audio

Videos Data Table Fieldname


Height Width VideoColorDepth VideoCompressionLevel VideoSamplingRate FrameRate Codec VideoLength

Notes
In pixels In pixels In bit da 1 a 32 Alcuni formati hanno diversi livelli di compressione Campionamento per il video Per i video sono possibili diversi frame rate Video compressi con formati proprietari Lunghezza del file video
121

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. Lultima tabella contiene linsieme di progetti in cui questi media files sono attualmente utilizzati.

122

Esercizio di progetto - II
Sources Data Table Fieldname
OriginalSource SourceNotes SourceKeywords

Notes
Book, CD, videotape o altre sorgenti Descrive il tipo di media presente Usate per la sorgente

Projects Data Table Fieldname


ProjectName Contact ProjectsNotes

Notes
Nome del progetto Persona da contattare per il progetto Note sul progetto

123

Esercizio di progetto - II
4. 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 FileID della 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

124

F ile ID 101 102 103 104 105 106

Esercizio di progetto - II
F ile T y p e JP G AVI G IF JP G W AV MOV F ile S iz e 427 1592031 85 5627 13220 22843612 K e y w o rd s B u lle t,s q u a re P la n e L in e , re d Canyon D in g C ry , b a b y

D e s c rip tio n H o m e p a g e b u lle t F ly in g p la n e R e d ru le C opper canyon D o o rb e ll C ry in g b a b y b o y

Files Table

FileID 101 103 104

Height 20 10 110

Width 80 60 75

FileID 102 106

Height 400 400

Width 300 300

Length 26.1 240.0

Videos Table

Images Table

FileID SoundSamplingRate SoundClipLength 105 44.1 30 Sounds Table


125

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.
126

Esercizio di progetto - II
F ile ID 101 102 103 104 105 106 S o u rce ID 001 001 002 004 001 002 F ile T yp e JP G AVI G IF JP G W AV MOV F ile S ize 427 1592031 85 5627 13220 22843612 K e yw o rd s B u lle t,sq u a re P la n e Lin e , re d Canyon D in g C ry , b a b y D e scrip tio n H o m e pa g e b u lle t F lyin g p la n e R e d ru le C o p p e r ca n yo n D o o rb e ll C ry in g b a b y b o y

Files Table

many

one Sources Table


Davi d

SourceID 001 002 003 004

Source Personal BBC Library Mega Studios David Rides

Copyright Yes No No Yes


127

Esercizio di progetto - II
Lultima 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 Files e 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.

128

Esercizio di progetto - II
Projects Table
ProjectName MegaSite Davis Presentation Monkey Movie Cantact Dave Nelson Cindy Raye Nell Smith
F ile ID 101 102 103 104 105 106

ProjectID 2567 2568 2569

S o u rc e ID 001 001 002 004 001 002

F ile T y p e JP G AVI G IF JP G W AV MOV

Files Table

Projects_Files Table

ProjectID 2567 2569 2568 2567 2569 2569

FileID 101 102 103 104 105 106

129

Esercizio di progetto - II
In uno schema entit-relazione il database pu essere rappresentato nel modo seguente:
Sources

uno
Projects

molti uno

uno uno uno

Images Sounds Videos

Files

molti molti
Project_Files

130

Esercizio di progetto - II
Tenendo conto delle chiavi primarie e delle relazioni, le tabelle assumono la forma seguente: Files Data Table Fieldname
FileID SourceID FileName FileSize FileType FileChanges LastModified Description FileKeywords

Notes

Chiave primaria Chiave esterna che collega alla Sources Data Table Nome del media file Pu variare da pochi KB a molti MB Deve essere flessibile Storia di come il file stato editato Data di ultima modifica Descrive il tipo di media presente Usate per una ricerca rapida (es. albero, sinfonia, etc.)
131

Esercizio di progetto - II
Images Data Table Fieldname
ImageID ImageHeight ImageWidth ImageColorDepth ImageCompressionLevel ImageScannedResolution

Notes
Chiave esterna dalla Files Data Table In pixels In pixels In bit da 1 a 32 Alcuni formati hanno diversi livelli di compressione Immagini scannerizzate a diversi livelli

Sounds Data Table Fieldname


SoundID SoundSamplingRate SoundClipLength

Notes
Chiave esterna dalla Files Data Table Audio files possono essere campionati a diversi rates Lunghezza del file audio

132

Videos Data Table Fieldname


VideoID Height Width VideoColorDepth VideoCompressionLevel VideoSamplingRate FrameRate Codec VideoLength

Esercizio di progetto - II
Notes
Chiave esterna dalla Files Data Table In pixels In pixels In bit da 1 a 32 Alcuni formati hanno diversi livelli di compressione Campionamento per il video Per i video sono possibili diversi frame rate Video compressi con formati proprietari Lunghezza del file video

Sources Data Table Fieldname


SourceID OriginalSource SourceNotes SourceKeywords

Notes
Chiave primaria Book, CD, videotape o altre sorgenti Descrive il tipo di media present Usate per la sorgente

133

Esercizio di progetto - II
Projects Data Table Fieldname
ProjectID ProjectName ProjectContact ProjectsNotes

Notes
Chiave primaria Nome del progetto Persona da contattare per il progetto Note sul progetto

Projects_Files Table Fieldname


FileID ProjectID

Notes
Chiave esterna dalla Files Data Table Chiave esterna dalla Projects Data Table

134

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 mono che 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.

135

Esercizio di progetto - II
6. 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. 136

Introduzione:

Breve storia del linguaggio HTML

Breve storia del linguaggio HTML


Le origini dellHTML possono essere fatte risalire ad unidea di Vannevar Bush che descrisse un sistema per collegare in modo associativo le informazioni. Bush defin questo sistema memex (memory extension), e lo propose come mezzo per aiutare la mente umana a far fronte ad un sempre pi crescente numero di informazioni.

Breve storia del linguaggio HTML


Nel 1965, Ted Nelson coni il termine ipertesto per descrivere un testo che seguisse le idee di Bush. Lipertesto, come descritto da Nelson, avrebbe dovuto collegare dei documenti per creare una rete di relazioni con lintento di estendere ed accrescere il significato di un testo "piatto" con collegamenti ad altri testi.

Breve storia del linguaggio HTML


Le idee di Vannevar Bush e di Ted Nelson furono riprese in un progetto del 1989 da Tim BernersLee, un ricercatore del CERN di Ginevra, che propose un sistema basato sullipertesto per permettere una pi efficiente condivisione delle informazioni tra i membri della comunit scientifica dellistituto per cui lavorava.

10

Breve storia del linguaggio HTML


La proposta di Berners-Lee (il cui titolo era "HyperText and CERN") aveva come obiettivi:
la creazione di uninterfaccia utente che potesse essere consistente su tutte le piattaforme, per permettere allutente di accedere alle informazioni da diversi computer; uno schema per questinterfaccia 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

11

Breve storia del linguaggio HTML


Da questo momento in poi ha inizio la storia dellHTML, che diventa di pubblico dominio grazie allintroduzione nel febbraio del 1993 del browser Mosaic per il sistema X Window. Mosaic fu sviluppato dallNCSA (National Center for Supercomputing Applications) sotto la guida di Marc Andreessen che in seguito sarebbe diventato uno dei fondatori di Netscape.

12

Breve storia del linguaggio HTML


Dal 1994 tutte le modifiche ad HTML sono avvenute sotto legida 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 lHTML nella sua evoluzione verso la definizione di uno STANDARD per lo sviluppo della rete.

13

Terminologia
Ipertesto: documento testuale in formato elettronico non sequenziale

Sito: insieme delle informazioni, organizzate come un ipertesto e residenti su un computer

14

Il Web
Al livello di descrizione pi elementare il Web un mezzo per condividere informazioni. Linformazione 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.

15

Introduzione
Concetti base del linguaggio HTML Concetti base del linguaggio XML Concetti base delle pagine HTML Aggiungere intestazioni e paragrafi Aggiungere enfasi al testo Aggiungere immagini Aggiungere collegamenti ad altre pagine Usare vari tipi di liste
16

Concetti base del linguaggio HTML

17

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.

18

Markup
Definizione di markup: sequenza di caratteri o altri simboli che si inseriscono allinterno di un documento per indicare come il contenuto deve apparire o per descrivere la struttura logica del documento. Spesso gli indicatori di markup sono chiamati tag.

19

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>

20

HTML
E un linguaggio per la descrizione di come appaiono documenti allinterno di un browser. Fornisce tag per titoli, paragrafi, font, link, immagini.

21

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 document structure- and presentation-oriented.

22

HTML
Non estendibile: a meno di non essere il W3C o Bill Gates

E orientato alla rappresentazione del contenuto: mischia elementi strutturali (es. titoli) con elementi rappresentativi (es. bold)

23

XML

Concetti base del linguaggio XML

24

Concetti base del linguaggio XML


XML l eXtensible Markup Language extensible a differenza dellHTML che fisso. E un metalinguaggio: pu definire nuovi linguaggi di markup

25

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."

26

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.

27

Concetti base del linguaggio XML


XML consente agli autori di un documento di organizzare linformazione in un modo standard. Uno degli scopi principali di XML di consentire lo scambio di dati tra sistemi potenzialmente incompatibili.

28

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 Markup Language)

29

Concetti base del linguaggio XML


Def.: SGML: Metalinguaggio per la definizione di linguaggi di markup. Standard ISO SGML si basa sullidea che i documenti hanno elementi strutturali e semantici che possono essere descritti senza tenere conto di come devono essere visualizzati.

30

Concetti base del linguaggio XML


L Hypertext Markup Language (HTML), un esempio di linguaggio basato su SGML. C un document type definition (DTD) per lHTML Il DTD un documento che definisce la grammatica di un linguaggio Un linguaggio definito in termini di SGML si chiama applicazione di SGML.

31

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

32

Concetti base delle pagine HTML

33

Concetti base delle pagine HTML


Ogni pagina HTML deve iniziare con i seguenti elementi:
<html> <head> <title>Titolo della finestra</title> </head> <body>

Dove lelemento <html> la dichiarazione di linguaggio e <head> larea che contiene ci che apparir nella barra superiore del browser (<title>) pi eventuali script e META tag per i motori di ricerca

34

Concetti base delle pagine HTML


<html> <head> <title>Titolo della finestra</title> </head> <body> Allinterno 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 35

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

36

HTML
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> </BODY> </HTML>

37

HTML
Es.: dentro il body non devo rispettare lordine degli header H1, H2, H3. Per motivi pratici i browser perdonano molti errori nel codice HTML

38

Aggiungere intestazioni e paragrafi

39

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 40

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 41

Aggiungere enfasi al testo

42

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

43

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 44

Aggiungere immagini

45

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.

46

Aggiungere immagini
Avremo quindi:
<img src=libro.jpg" width="200" height="150 alt=Il Dizionario SabatiniColletti>

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 47

Aggiungere collegamenti ad altre pagine

48

Aggiungere collegamenti ad altre pagine


Ci che rende il Web cos efficace la capacit di definire collegamenti da una pagina ad un'altra, sia allinterno dello stesso sito che verso altri siti. I collegamenti (o link) sono definiti per mezzo del marcatore <a> (anchor).

49

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>

Il testo tra <a> e </a> usato come didascalia per il collegamento. La didascalia appare comunemente come un testo blu sottolineato.
Vedi la pagina HTML 50

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 51

Usare vari tipi di liste

52

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>

53

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 54

Usare vari tipi di liste


Il secondo tipo di lista l'elenco numerato, detto anche lista ordinata. Usa i marcatori <ol> e <li>

55

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 56

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>.

57

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 58

Inserire contenuti multimediali

59

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.

60

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)

61

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.

62

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

63

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

64

Inserire contenuti multimediali


si pu anche collegare il filmato ad una immagine o frame significativo.

Vedi la pagina web

65

Inserire contenuti multimediali interni

66

Inserire contenuti multimediali interni


L'inserimento di contenuti interni invece leggermente pi complesso e richiede l'uso di appositi tag come <OBJECT>. Conviene focalizzare lattenzione solo sul tag <OBJECT> che quello raccomandato dal W3C.

67

Inserire contenuti multimediali interni


Per inserire una animazione Macromedia Flash allinterno 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

68

Concetti ulteriori delle pagine HTML

69

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

70

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 71

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.

72

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 73

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 74

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 75

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 76

XML

XML vs. HTML

77

XML vs. HTML


Non separa il contenuto dalla presentazione Fornisce una sola vista: estremamente difficile scrivere pagine dinamiche che si riadattino al sistema usato dallutente Non ha praticamente struttura semantica: non c indicazione sul significato dei dati di una pagina HTML

78

XML vs. HTML


Originariamente lHTML prevedeva di contrassegnare linformazione secondo il suo significato, indipendentemente da come il browser lavrebbe resa: <TITLE>Questo un titolo di pagina</TITLE> <STRONG>Summary</STRONG> <H2>Header<H2>

79

XML vs. HTML


La tendenza invece quella di specificare precisamente lapparenza dei dati: <font size="-1" face="Arial, Helvetica, Sans-serif">

80

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 luso di CSS Anche le regole di accessibilit

81

XML vs. HTML

82

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

83

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 lindentazione anzich per le liste non numerate

84

XML vs. HTML


Le pagine web sono spesso disegnate tenendo conto delle differenti rese grafiche delle varie versioni di browser

85

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

86

XML vs. HTML


XML consente di crearsi i propri tipi di documenti E facile scambiarsi dati: molti database accettano e producono file XML E possibile validare una struttura dati I tag proprietari per avere una resa grafica pi precisa diventano inutili Le propriet dei link sono molto pi avanzate rispetto a quelle di HTML

87

XML vs. HTML


pi facile creare viste diverse degli stessi dati

88

XML - standard associati


Modeling Rules (DTD, Schema) Stylesheets (XSL) Linking (XLink, XPointer)

89

XML

Regole base di XML Esempio DTD

90

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>

91

HTML - esempio di pagina

92

HTML - esempio di pagina


Il significato degli elementi della pagina precedente non reso dallHTML: gli elementi della prima colonna NON sono quantit, sono solo testo libero molto difficile fare un parsing automatico dei contenuti della pagina

93

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 to package instructions </Step> <!-- And so on... --> </Instructions> </Recipe>
94

XML - analisi
<?xml version="1.0"?> Header <Ingredient> <Qty unit="box">1</Qty> <Item>lime gelatin</Item> </Ingredient>

95

XML - analisi
Non c descritto come deve essere mostrata la ricetta. I tipi dei dati devono essere definiti in un DTD: document type definition

96

Esistono gi vari DTD standard: HL7 SGML/XML MathML XML/EDI FDX WML 1.x industria ospedaliera matematica elettronica scarpe wireless markup language

97

Nomenclatura XML

98

XML - tag
In XML i tag seguono regole molto pi rigide che in HTML I documenti XML devono essere well-formed: i tag devono essere chiusi, in HTML il seguente codice accettabile:
<P> blah blah <P> blah2 blah2

99

XML - tag
I tag non possono sovrapporsi: <primotag> aaaaa <secondotag> bbbbbb </primotag> </secondotag> la forma accettabile : <primotag> aaaaa <secondotag> bbbbbb </secondotag> </primotag>

100

XML - tag
I valori degli attributi sono racchiusi da: in HTML possono anche essere nudi: <TABLE BORDER=1>

101

Well-formed: il documento segue le regole dellXML valido: il documento segue anche le regole del DTD

102

<Ingredient> <Qty unit="box">1</Qty> <Qty unit=g">5</Qty> <Item>lime gelatin</Item> </Ingredient> Quale la quantit giusta ??

103

DTD
Il DTD la grammatica del linguaggio di markup definita dal disegnatore del linguaggio. Nellesempio precedente dobbiamo definire un DTD che specifica quali elementi esistono, con quali attributi, con quali relazioni reciproche ed in quale ordine si trovano.

104

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...

105

DTD
I DTD danno lestendibilit dellXML 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

106

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)+>

107

<!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)> <!ELEMENT...> definisce un tag di nome Recipe che contiene gli elementi tra parentesi.

108

? significa che lelemento opzionale e pu apparire 1 o 0 volte + significa 1 o pi * significa 1,0 o pi volte

109

<!ELEMENT Name (#PCDATA)> Lelemento pu contenere solo caratteri e nientaltro (parsed character data). Non pu avere figli.

110

<!ATTLIST Item optional CDATA "0" isVegetarian CDATA "true"> Il tag ha due possibili attributi con relativo valore di default

111

Un attributo pu essere reso obbligatorio con #REQUIRED Se un attributo non richiesto allora si pu indicare con #IMPLIED

112

I tipi di attributi possono essere: stringhe (CDATA o character data) token (ID, IDREF, ENTITY, NMTOKEN) attributi enumerati

113

XML

Esempio: RSS

114

XML: esempio
RSS: RDF Site Summary (RDF: Resource Description Framework) Indice dei contenuti di un sito, contiene link alle pagine del sito Es.: molto usato nei blog un file XML

115

116

Un programma pu aggregare informazione da diversi siti usando RSS

117

XHTML

118

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

119

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)

120

Come funziona il web

Architettura client-server

121

Come funziona il web


Larchitettura 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

122

Come funziona il web


La pagina inviata dal server in formato HyperText Markup Language file ASCII con informazioni di controllo per limpaginazione del testo, per la definizione dei link, etc.
link formato dallindirizzo di rete del server e lidentificativo del file contenente la pagina associata al link (nascosto)

<a href=http://viplab.dsi.unifi.it/~bertini/>Home page</a>

123

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/filename

Esempio:
http://viplab.dsi.unifi.it/bertini/index.htm

124

Il Browser
Strumento per la navigazione Il browser interpreta lHTML Esempi: Mosaic, Netscape Navigator, Internet Explorer Cosa Accade: Connessione Richiesta Messaggio di errore Risposta Termine

125

.continua
Connessione Il client invia un richiesta di connessione al server: Connecting to Richiesta Se l connessione viene stabilita il client specifica al server il protocollo da applicare e loggetto richiesto Risposta Se il server riesce a soddisfare la richiesta la transazione viene eseguita: status line Termine La connessione chiusa e il browser mostra quanto ha recuperato: Document Done 126

Browser server web


Le operazioni da compiere per consultare siti Internet navigando tra i computer e le pagine presenti nel WWW: Collegarsi allISP, fornitore della connessione a internet, componendo il numero telefonico (tramite modem). Entrati nella rete (Login e Password) attivare il browser: digitare lURL di un sito nella casella dellindirizzo.

127

Browser server web (2)


La richiesta dellutente 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.
Linstradamento viene effettuato dai router Sono usati i protocolli TCP e IP

128

Browser server web (3)


Il server esamina la richiesta e trasmette i dati richiesti al computer dellutente 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.

129

Browser server web (4)


Quando i dati trasmessi raggiungono il computer dellutente, 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.

130

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.
131

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.
132

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. Luso 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 allutente lerrore, prima di inviare il dato al server. In questo modo si svincola il server dalloperazione di controllo e si evita linvio di dati errati.

133

Come funziona il web

Web server Programmazione server side

134

Web server
Il compito principale di un web-server quello di ricevere, interpretare e rispondere alle richieste di un web-client. I servers sono 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 luso della release 2).

135

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.

136

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. Linformazione 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 allingresso. Il modo pi diretto per elaborare richieste dal Web rappresentato dalla Common Gateway Interface (CGI).

137

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 laccesso 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 allutilizzo 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 Programming Interfaces (APIs).

138

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 laccesso a database. Il concetto alla base di tutti i linguaggi di script server side che il loro codice, inserito allinterno 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.

139

Server Side Scripting: PHP


Il PHP (Personal Home Page) nato nellautunno 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.
140

Server Side Scripting: PHP


La sua diffusione dovuta anche al fatto che multipiattaforma, per cui possibile trovare linterprete 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.

141

Cos il PHP
Il PHP (ufficialmente PHP: Hypertext preprocessor) rappresenta un linguaggio <html> di scripting server-side, <head> incluso nel codice HTML. Il codice PHP incluso tra i tags speciali di inizio e di fine (<?php e ?>), posti allinterno di una pagina HTML. I tag delimitano lingresso e luscita dal PHP. Ogni linea di codice PHP
</head> <body> <?php echo A PHP script; ?> </body> <html>
142

<title>Example</title>

Cos il PHP
Se la pagina precedente (esempio0.php) aperta dal browser come file (nel location box del browser compare lindirizzo 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.
143

Cos il PHP
Se la stessa pagina aperta dal browser facendo riferimento al server web (nel caso particolare allindirizzo localhost) si ottiene il risultato voluto:

infatti il server web che usa linterprete PHP per eseguire lo script, e restituisce al browser la pagina HTML creata on the fly.
144

Cos il PHP
Se 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 145

Come funziona il web

Web e database

146

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 nellultimo punto va sotto il nome di middleware, in quanto si situa tra lapplicazione e la rete.
147

Tecnologia del Web


Layout generico per le tre componenti con alcune delle tecnologie che le realizzano.
HTML

Web
JavaScript

Web Server APIs CGI Application Servers

Middleware
ODBC
jsp, php, asp

Database
SQL

Native Database Gateways


148

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 allindirizzo 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 allutente.

149

Struttura client/server sul Web


Web Server
3. Il Web server processa la richiesta 4. Il file ritrovato dal Web server 2. richiesta HTTP 5. risposta HTTP

Remote Computer
(server)

6. Output HTML formattato

Web Browser
1. Lutente richiede il file

User
(client)

150

Accessibilit

151

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 dalluso di strumenti con prestazioni limitate o da condizioni ambientali sfavorevoli Opportunit legate alla possibilit di tradurre linformazione in formato elettronico in diverse modalit percettive Un sito accessibile fornisce vantaggi anche alla generalit degli utenti
152

Limiti dellutente
Un utente potrebbe: non essere in grado di vedere, udire, muoversi o elaborare alcuni tipi di informazione avere difficolt a leggere o comprendere il testo non essere in grado di usare un mouse o una tastiera avere uno schermo che visualizza solo testo, un piccolo schermo o una connessione lenta ad Internet non comprendere il linguaggio nativo del documento avere una vecchia versione del browser, un diverso browser, un voice browser.
153

Laccessibilit di siti e documenti disponibili nel Web significa garantire la possibilit di:

orientarsi e navigare allinterno 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

154

Linee guida W3C: check point


Ogni linea guida ha una serie di checkpoint che dettagliano come applicare la linea guida in tipici contesti di sviluppo di pagine web Ogni check point ha un livello di priorit in base al suo impatto sullacccessibilit I livelli di priorit sono 3: [Priorit 1] [Priorit 2]
Una sito web deve osservare questi check point altrimenti linformazione non risulta accessibile a uno o pi gruppi di utenti.

[Priorit 3]

Una sito web dovrebbe osservare questi check point altrimenti linformazione risulter difficilmente accessibile a uno o pi gruppi di utenti. Osservare questi check point riduce notevolmente le barriere di accesso al contenuto Una pagina web pu osservare questi check point altrimenti linformazione pu risultare in qualche modo difficilmente accessibile a uno o pi gruppi di utenti

155

Linee guida W3C: Conformit


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

156

Esistono programmi e plugin che aiutano a validare i siti, es. Bobby e alcuni plugin per Dreamweaver

Bobby effettua unanalisi automatica, le sue indicazioni devono essere controllate

157

Linee guida
Guideline 1. Offrire informazione equivalente per contenuto uditivo o visivo Checkpoints
Contenuto testo equivalente per ciascun contenuto non testo ( es.alt per le immagini) [Priorit 1] 1] Prevedere testo equivalente per la descrizione di ogni contenuto multimediale [Priorit 1]

Link testuali per ogni regione di una image-map

[Priorit

158

Linee guida
Guideline 2. Non affidarsi ai colori
Assicurarsi che il testo e la grafica siano comprensibili anche se visti senza colori

Checkpoints
Assicurarsi 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]

159

Linee guida
Guideline 3. Usare markup e fogli di stile e farlo in modo appropriato Checkpoints
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] ..

160

Linee guida
Guideline 4. Rendere chiaro luso di linguaggio corrente
Usare markup che facilitino linterpretazione di abbreviazioni e di parole straniere

Checkpoints
Identificare il linguaggio primario di un documento. In HTML settare lattributo lang nellelemento HTML [Priorit 3] Specificare lespansione di ogni abbreviazione [Priorit 3] ..

161

Linee guida
Guideline 5. Creare tabelle che si trasformino in maniera adeguata
Assicurarsi che le tabelle abbiano i markup necessari per trasformarsi adeguatamente con luso di browser alternativi

Checkpoints
Per tabelle di dati specificare lintestazione di riga e di colonna. In HTML usare sempre TD per le celle e TH per lheader [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]

162

Linee guida
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) Checkpoints Organizzare 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]

163

Linee guida
Guideline 7. Assicurarsi che lutente 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

Checkpoints
Evitare lo sfarfallio dello schermo [Priorit 1]

164

Linee guida
Guideline 8. Assicurare laccessibilit alla interfaccia utente
Assicurarsi che linterfaccia utente segua principi di design accessibile: accesso indipendente dal mezzo

Checkpoints
Usare script e elementi di programmazione che siano compatibili con tecnologie che assistono alla navigazione [Priorit 1]

165

Linee guida
Guideline 9. Design indipendente dallinterfaccia
Usare funzionalit che permettano lattivazione degli elementi della pagina da diversi dispositivi di input

Checkpoints
Rendere 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 lattributo accesskey [Priorit 3]..

166

Linee guida
Guideline 10. Usare tecnologie di passaggio
Tenere presente lesistenza di browser datati e delle tecnologie di navigazione assistita in modo da renderne possibile il funzionamento

Checkpoints
Rendere possibile disabilitare i pop-up [Priorit 2] .

167

Linee guida
Guideline 11. Usare tecnologie e linee guida W3C Checkpoints
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] .

168

Linee guida
Guideline 12. Rendere disponibili informazioni sul contesto e informazioni di orientamento Checkpoints
Assegnare un titolo ad ogni frame per facilitarne lidentificazione e la navigazione [Priorit 1] Dividere larghi blocchi di informazione in gruppi pi appropriati [Priorit 2] .

169

Linee guida
Guideline 13. Rendere disponibile un chiaro meccanismo di navigazione Checkpoints
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]

170

Linee guida
Guideline 14. Assicurare che il documento sia chiaro e semplice Checkpoints
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]

171

Sintesi raccomandazioni
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

172

Sintesi raccomandazioni
Fornire testo equivalente a immagini, video e contenuto multimediale
corredare le immagini di descrizioni testuali (es. "alt" di HTML) per indicare la funzione dellimmagine 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

173

Sintesi raccomandazioni
Usare parole o brevi frasi di chiaro e univoco significato anche fuori 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.

174

Sintesi raccomandazioni
Limitare luso 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 testo Limitare luso 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
175

Browser alternativi
Browser disegnati specificamente per disabili Speech output, simple keyboard interface / standard graphical user interface Speech output, supporto Braille, font su schermo speciali Screen reader navigation of the screen presented by the operating system, using speech or Braille output Browser adattativi Ingrandimento di porzioni di schermo o opzioni di navigazione Voice browsers Navigazione voice-driven, (voice-in/ voice-out, accesso web via telefono).

176

Immagini bitmap e vettoriali

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.

Limmagine 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

Nel caso di unimmagine bitmap devo agire sui punti (pixel) che compongono limmagine
in molti casi mi devo inventare i pixel che fanno parte dellimmagine ingrandita, ruotata etc.

Campionamento e quantizzazione

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)

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

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 laccuratezza della rappresentazione digitale.
Es. quando si effettua la scansione di una foto

I media digitali
Esempio di quantizzazione del colore

Spazi di colore

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

I media digitali - il colore


E.g.: modello di colore di Itten

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) YCrCb YIQ (NTSC) HSI, HSV

I media digitali - il colore


E.g.: spazio di colore RGB

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 allaltro.

I media digitali - il colore


E.g.: spazi di colore HSI e HSV

I media digitali - il colore


Gli spazi di colore usati in campo televisivo separano linformazione sulla luminosit da quella sulla cromaticit.
Si sottocampiona linformazione sul colore

Anche nel JPEG !!

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

Photoshop gestisce diversi spazi di colore, da RGB a Lab a CMYK

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

RGB

Lab

Nellesempio precedente lo strumento bacchetta magica di Photoshop stato usato:


mantenendo gli stessi parametri selezionando lo stesso pixel di partenza usando due spazi di colore diversi

Photoshop ha considerato in modo diverso i pixel...

Profondit di colore

Il numero di colori rappresentabili in unimmagine 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

Es.: le immagini GIF assegnano un byte ad ogni pixel => unimmagine 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)

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 limmagine...

Spesso si aggiunge anche un canale Alpha, anche questo espresso in bit Indica il grado di trasparenza
Alcuni programmi come 3D Studio lo usano anche per indicare la profondit dei pixel dellimmagine (i.e. distanza dallosservatore)

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

Compressione

Gli algoritmi di compressione delle immagini sono anche loro divisi in due famiglie
con perdita (lossy) senza perdita (lossless)

I formati delle immagini vettoriali sono lossless GIF lossless TIFF con compressione LZW lossless
e senza limite di colori

JPEG e PNG sono lossy


a seconda di quanto si comprime cambia la perdita dei dettagli di norma viene dimezzata linformazione sul colore, poi lalgoritmo quantizza i dati

La compressione con perdita introduce artefatti


tipicamente i bordi netti causano problemi, es. testo

Nelle immagini fotografiche gli errori si notano meno si riesce a ridurre molto le dimensioni mantenendo qualit accettabili
es.: programmi come Macromedia Fireworks consentono di comparare compressioni diverse della stessa immagine

Introduzione a Photoshop

Photoshop (o Paint Shop Pro) sono programmi di fotoritocco


Si possono anche creare immagine ex-novo, hanno strumenti per disegno vettoriale

Gli strumenti a disposizione si possono in dividere in categorie: Selezione: rettangolari, circolari, crop
Selezionano varie forme e tagliano limmagine (crop) lasso, lasso magnetico, bacchetta magica
Selezionano a mano libera, agganciandosi ai bordi degli oggetti, o sulla base della similarit di colore

Uso: selezione oggetti, spostamento, spostamento del disegno allinterno della finestra di lavoro, selezione colore (contagocce) Artistici e creativi: aerografo, pennelli, penne, forme vettoriali, testo, timbro, etc.

Nella toolbar di Photoshop alcuni strumenti sono raggruppati allinterno della stessa casella (contrassegnata da un triangolino in basso a sx)
Si deve tenere premuto il pulsante per vedere tutti gli strumenti disponibili

Il funzionamento degli strumenti pu essere variato agendo sui loro parametri


Es. si possono selezionare gli oggetti in modo sfumato (ideale per foto)

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 sottostante Si decide quanto un layer trasparente e come si fonde con quelli sotto Posso selezionare oggetti su di un layer senza toccare gli altri layer

Le linee viola sono passate in primo piano

I layer si possono usare per effetti artistici o per isolare le zone di lavoro Quando limmagine finale pronta si possono riunire tutti i layer in uno solo

Unimmagine stata usata come pattern per fare il riempimento di un layer

Si pu manipolare parte dei pixel di un layer usando una maschera (praticamente un canale alpha)
Per creare una maschera temporanea si seleziona larea su cui si vuole lavorare e si preme nella toolbox Posso creare un livello-maschera

Ingrandimento e riduzione

Se si ingrandisce o riduce unimmagine bitmap necessario inventarsi dei nuovi pixel o eliminare pixel esistenti un problema di interpolazione

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

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

I filtri

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 dellimmagine, a maschere o layer

Alcuni filtri hanno parametri modificabili

Molti filtri sono basati su operazioni di convoluzione


Es. smoothing (blurring) o sharpening

La convoluzione unoperazione 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

Il filtro di blurring gaussiano di Photoshop fatto usando una convoluzione

= 1.4

Il visto prima chiamato Radius in Photoshop