Sei sulla pagina 1di 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.
- Monitor
- Stampante - Scheda audio
- Casse acustiche - Scheda video
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. 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
2. Il BIOS controlla che si tratti di un avvio da macchina spenta (cold boot) o di un riavvio (es. Riavvio della
funzione di chiusura di Windows). Se un cold boot il BIOS evita il POST
3. Se non un cold boot il BIOS allora verifica la RAM, con operazioni di scrittura/lettura. Controlla la
presenza di mouse e tastiera. Controlla la presenza di un bus PCI, e nel caso controlla la presenza di
schede PCI. Se viene identificato un errore questo viene notificato con suoni o scritte:
Se deve controllare il manuale del PC per interpretarli, non c uno standard
Un errore in questa fase quasi sicuramente un errore hardware
Prima di disperarsi si pu: aprire il computer, controllare che tutte le schede e cavi siano
fissati correttamente
4. Il BIOS mostra alcuni dettagli sul sistema:
Processore
Floppy e hard disk
Memoria
Versione BIOS e data
schermo
5. Se esistono dispositivi con driver speciali, es. dischi SCSI, questi sono caricati da una ROM presente sul
dispositivo, ed il BIOS ne mostra le informazioni
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
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
IDE
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
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
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.
SCSI
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
desktop
cursore
icone
finestra
tray taskbar avvio rapido
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 Memoria di massa
Armadi Cartelle o Directory
Scaffali Sottodirectory
Libri File
Una struttura ad albero
Radice
File1 Cartella1
Cartella2
File1.1 Cartella1.1 Cartella2.1
FileB
FileB
FileA FileA Cartella1.1.A
Cartella1.1.A.1
Esempio
RADICE
RADICE
GIOCHI
GIOCHI
ESERCIZI
ESERCIZI
LEZIONI
LEZIONI
LETTERE
LETTERE
DOCUMENTI
DOCUMENTI
Solitario.exe
FreeCell.exe
VARIE
VARIE
Mialett.txt
Curric.doc
Lab.ppt
so1.ppt
Ricette.txt
DW
DW
EXCEL
EXCEL
ES1.html
ES2.html
ES3.html
EX01.xls
EX02.xls
Esempio Windows
Unit a disco tipiche
(Windows)
A:\ prima unit di floppy disk
C:\ primo hard disk
D:\ 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 Windows
FAT
FAT32
EXT2 Linux
EXT3
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
01001101
01000001
A
77
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
0 8
0
8
tempo (s)
tempo (s)
1 bit/s
2 bit/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
Client
(computer+SW)
Middleware
(software)
Server
(computer+SW)
Servizi richiesti da
client
file
dati
pagine web
applicazioni
Il servers aspetta le
richieste dei client
Un server pu servire
molti client
File server, data server,
web server
Initiator Facilitator Passive provider
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 sotto-
reti) 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)
56 Kbit/s Modem telefonico
VELOCIT MAX. SERVIZIO
155 Mbit/s Wireless
400 Kbit/s Satellite
10 Mbit/s Modem via cavo
1,5 Mbit/s T1
1,5 - 8,4 Mbit/s xDSL
128 Kbit/s ISDN
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
mit
it
unifi
dsi
pippo
www
pippo.dsi.unifi.it
www.mit.edu
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
Mario_Rossi@dsi.unifi.it
Nome utente
Nome di dominio
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
6
Funzioni degli applicativi da ufficio pi
comuni:
Gestione testi
Calcolo
Gestione archivi
Creazione presentazioni
7
I programmi che svolgono questi lavori
sono spesso integrati
Pu essere utile effettuare dei calcoli, da cui
creare un grafico ed inserire il grafico in una
presentazione
oppure creare un indirizzario e
automatizzare la creazione di lettere
8
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)
9
Nel seguito tratteremo gli strumenti
Microsoft
Il passaggio ad altri programmi
estremamente facile.
Conoscendo Word o Excel si pu usare
Writer (Calc) di Openoffice senza problemi.
10
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
11
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
12
Cos un foglio di calcolo
Un "foglio di calcolo" (spreadsheet) un
oggetto di un programma costituito da un
insieme di celle, organizzate in righe e colonne,
atte a memorizzare dati ed effettuare operazioni
matematiche.
Microsoft Excel un programma che contiene
un foglio di calcolo, pi:
Grafici
Linguaggio di programmazione
13
Le celle vengono "chiamate" (cio
univocamente identificate) mediante la loro
colonna e la loro riga.
Le colonne sono identificate da lettere: A, B, C,
... Z, AA, AB, AC, ... AZ, BA, BB, .... IV
Ci sono 256 colonne.
Le righe sono identificate da numeri
Ci sono 65536 colonne
14
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)
15
Barra del titolo
Barra dei menu
Barra Standard
Barra formattazione
Barra della formula
Elenco dei fogli
Barra di stato
Barre di scorrimento
256 colonne
6
5
.
5
3
6

r
i
g
h
e
16
Cella D5
17
Zona B3:D10
18
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
19
20
Contenuto celle
All'interno delle celle posso scrivere tre
cose:
del testo
Tutto quello che contiene almeno un carattere
non numerico o separatore numerico
dei numeri
Date e ore sono numeri
delle formule
21
Cancellazione ed eliminazione
Le celle vengono ripulite con il tasto Canc
(o Del)
Per cancellare una colonna o riga la si
deve selezionare e quindi cancellare (es.
con menu contestuale)
22
Nell esempio seguente fate attenzione
alla riga in cui si trova la cella contenente
la stringa dato a
Nella prima slide la 4 riga, in quella
successiva nella 3
23
24
25
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
26
27
28
Inserimento serie dati
Se una selezione contiene una serie di dati (es.
numeri o date) Excel in grado di riempire
automaticamente le celle successive, creando
una sequenza
29
Importare dati Excel in Word
Fogli di calcolo (e grafici) di Excel possono
essere inseriti in documenti di Word o
Powerpoint
Il metodo pi banale la semplice copia
di una selezione
I dati sono copiati come tabella di Word
30
31
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
32
33
Un altro metodo per il collegamento usare
Incolla speciale dentro Word
34
Il doppio click sui dati Excel dentro Word
fa aprire una piccola finestra di Excel
35
OLE
La condivisione di dati tra applicazioni vista
prima detta OLE
object linking and embedding
36
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.
37
Tutte le formule iniziano con un =
Nota: il testo viene allineato a dx, i numeri a sx
38
Operatori
+ addizione
- sottrazione
* (asterisco) moltiplicazione
/ divisione
^ (acc. circonflesso) elevamento a
potenza
= inizio di ogni formula
( ) parentesi
39
>,<,>=,<=,<>
operatori logici
& concatena
stringhe
; unione
spazio intersezione
40
Indirizzamento relativo delle celle
cella contenente la formula
celle utilizzate nella formula
Se copiamo la formula,(=B1+B3+A4), in A2 nella cella D3, Excel
modificher in modo parallelo le coordinate delle celle coinvolte.
B1 diventa E2, B3 diventa E4
A4 diventa D5
la formula in D3 =E2+E4+D5
41
Indirizzamento assoluto delle
celle
Se la formula in A2
=$B$1+B3+$A$4
quando viene copiata in D3 diventa
=$B$1+E4+$A$4
per le celle B1 e A4 stato utilizzato lindirizzamento assoluto
le celle si dicono bloccate
Indirizzamento misto
$B1 si blocca la colonna
B$1 si blocca la riga
42
Blocco riquadri
Se mettiamo dei titoli su una riga o
colonna ed poi inseriamo molti dati questi
possono scomparire dalla pagina, per via
dello scrolling
Per mantenere visibili le intestazioni si blocca
un riquadro
43
Riga blocco riquadri
Le colonne da C a F
sono nascoste
Notare la formula: stata copiata ed adattata
automaticamente da Excel, grazie allindirizzamento
relativo
44
Formato dati
Formattazione grafica
45
Una tabella di dati pu essere formattata automaticamente
46
Formattazione dei dati
Es. valuta, data,
percentuale,
47
48
Funzioni
Le funzioni sono procedure, gi memorizzate, che
svolgono calcoli anche complessi.
Per utilizzare una funzione sufficiente richiamarla con il
suo nome e indicare i valori o i riferimenti di cella su cui
deve operare.
I dati sui quali una funzione agisce si dicono
argomenti.
Per inserire in una cella una funzione:
digitare direttamente il nome e gli argomenti
usare lAutocomposizione funzioni
49
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
50
Le funzioni contemplate nel foglio di lavoro
Excel sono numerose e per praticit di ricerca
sono suddivise per categorie:
Database
Data e ora
Finanziarie
Informative
Logiche
Ricerca e riferimento
Matematiche e trigonometriche
Statistiche
Testo
51
La funzione somma molto comune
Excel la calcola al volo sulle selezioni di celle
Si possono scegliere anche altre formule
Il valore di questi calcoli NON memorizzato
in nessuna cella
52
53
Inserendo la funzione somma Excel cerca di
indovinare a quali celle deve essere applicata
54
quando si preme il
tasto Incolla funzione
viene visualizzata una serie di finestre
di dialogo che permettono di
scegliere la funzione e i suoi
argomenti
55
Seconda finestra dialogo Autocomposizione funzioni
Descrizione Risultato
Argomenti
56
Nellultima versione di Excel sono leggermente
cambiati il metodi di inserimento
57
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)
SE(A1>=0;positivo;negativo)
58
Largomento di una funzione SE() pu essere
unaltra funzione SE().
SE(Test1;val1;SE(Test2;val2;val3))
Test1
val1
Test2
val2 val3
vero falso
vero falso
59
Test1
vero falso
Test2
val2 val3
val1
vero falso
SE(Test1;SE(Test2;val2;val3);val1)
60
Esempio
Supponiamo che la provvigione agli agenti di commercio dipenda dal volume di
affari da essi realizzato: pari al 10% per fatturati fino a 50K, pari al 12%
per fatturati superiori.
61
Funzioni condizionali
SOMMA.SE(intervallo;criteri;int_somma)
Intervallo l'intervallo di celle che si desidera calcolare.
Criteri sono i criteri in forma di numeri, espressioni o testo che
determinano le celle che verranno sommate.
Ad esempio, criteri pu essere espresso come 32, "32", ">32",
"mele".
Int_somma sono le celle da sommare. Le celle in int_somma
vengono sommate solo se le celle corrispondenti in intervallo
soddisfano i criteri.
Se int_somma omesso, verranno sommate le celle in
intervallo.
62
Esempio
=SOMMA.SE(A2:A6;">=0")
=SOMMA.SE(A2:A6;">=0")
=SOMMA.SE(A2:A6;">=0;B2:B6)
=SOMMA.SE(A2:A6;">=0;B2:B6)
63
64
Funzioni condizionali
CONTA.SE(intervallo;criteri)
Intervallo l'intervallo di celle a partire dal quale
si desidera contare le celle.
Criteri sono i criteri in forma di numeri,
espressioni o testo che determinano quali celle
verranno contate.
65
Esempio
=CONTA.SE(A1:A6;"=mele")
=CONTA.SE(A1:A6;"=mele")
=CONTA.SE(B1:B6;">50)
=CONTA.SE(B1:B6;">50)
66
Alcune funzioni matematiche e
trigonometriche
SEN(angolo) seno di un angolo espresso in radianti
COS(angolo) coseno di un angolo espresso in radianti
PI.GRECO() valore di
LN(numero) logaritmo di un numero in base naturale
LOG10(numero) logaritmo di un numero in base 10
EXP(numero) esponenziale
CASUALE() generazione di un numero casuale tra 0 e 1
SOMMA(zona) somma di una zona di celle
RADQ(numero) radice quadrata di un numero
FATTORIALE(num) num!
INT(num) arrotonda un numero allintero pi vicino
RESTO(divid,divis) resto della divisione dei due numeri
ARROTONDA(num;num_cifre) arrotonda un numero portandolo a un
numero predefinito di valori decimali
67
Alcune funzioni statistiche
MEDIA(zona) media aritmetica dei valori della zona
MEDIANA(zona) mediana dei valori della zona
MODA(zona) moda dei valori della zona
MEDIA.ARMONICA(zona) media armonica dei valori della zona
MEDIA.GEOMETRICA(zona) media geometrica dei valori della zona
MIN(zona) valore minimo della zona
MAX(zona) valore massimo della zona
CONTA.VUOTE(zona) conta il numero di celle vuote della zona
CONTA.VALORI(val1,val2,) conta il numero di celle non vuote
presenti nellelenco degli argomenti
68
Esempio
=CONTA.VALORI(B9:E9)
=CONTA.VALORI(B9:E9)
N.B. Le celle contenenti testo vuoto, (), sono considerate
celle vuote da CONTA.VUOTE e celle con valore da
CONTA.VALORI
69
Alcune funzioni di ricerca e
riferimento
INDICE(matrice;n.riga;n.colonna)
estrae da una matrice (zona) il valore contenuto nella cella risultante da
n.riga e n.colonna. I numeri di riga e colonna vanno dichiarati con
riferimento alla matrice, non al foglio di lavoro
RIGHE(zona) COLONNE(zona)
restituiscono il numero di righe o di colonne di una zona
CERCA.VERT(valore;matrice;indice)
restituisce da una matrice (zona) il valore che si trova nella colonna
indice in corrispondenza della riga in cui presente nella prima colonna il
valore indicato
VAL.VUOTO(cella)
restituisce il valore VERO se il contenuto della cella vuoto
70
Esempio
=CERCA.VERT(A27;A19:C23;3)
=CERCA.VERT(A27;A19:C23;3)
71
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
72
Nota: lo sfondo della matrice prodotto stato creato
agendo su Formato celle > Motivo
73
Tabelle pivot
Servono a estrarre e visualizzare dati
senza impostare formule complicate
Sono uno strumento di analisi
Es. creare una tabella riassuntiva di un
inventario di dischi
74
75
76
77
A questo punto si devono selezionare i dati da
usare per la tabella pivot
78
Si nota come le date siano gi state riunite
79
Un rapporto di tabella pivot pu essere utilizzato quando
si desidera analizzare totali correlati, soprattutto quando
necessario sommare un lungo elenco di cifre e si
desidera confrontare diversi elementi di ciascuna cifra.
80
Si vede come la tabella pivot riassuma
facilmente le informazioni presenti nei dati
grezzi
81
Dai menu a tendina della
tabella si selezionano
combinazioni interessanti per
esplorare i dati
La tabella pivot si riadatta
immediatamente alle selezioni
82
Si possono aggiungere tante sorgenti di
dati alla tabella pivot quante vogliamo (e
quante a occhio sembra giusto)
Es. esaminare incidenza IVA sui totali
83
Si trascina lIVA nella
sezione dei dati
I risultati del pivot
possono essere usati
in altre celle
84
Grafici
I tipi di grafico che si possono realizzare sono diversi:
1) Istogramma 8) Radar
2) Barre 9) Superficie
3) Linee 10) Bolle
4) Torta 11) Azionario
5) Dispers.(XY) 12) Cilindri
6) Area 13) Coni
7) Anello 14) Piramidi
85
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
86
Costruzione di un grafico,
prima finestra
Al primo
passaggio si
scelgono tipo e
sottotipo di
grafico
87
Costruzione di un grafico,
seconda finestra
Al secondo passaggio
gi visibile il grafico in
anteprima.
Interventi sulle serie
(descrizioni e numeri)
88
Costruzione di un grafico, terza
finestra
Il terzo passaggio consente di personalizzare il grafico in ogni suo
elemento: basta selezionare una delle schede poste in alto.
89
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.
90
Costruzione di un grafico,
risultato finale!
91
Titolo del grafico
Pareti
Serie
Legenda
Assi
Area del grafico
92
Aggiunta retta di regressione
93
94
Le sorgenti dei dati da cui creare il grafico
sono le serie di dati
Se le serie dati sono selezionate per righe o
colonne il grafico cambia !
Si deve scegliere lordine giusto
95
96
Imposta pagina
97
Stampa
98
Stampa
importante regolare laspetto del foglio
in stampa
Usate anteprima di stampa ed il pulsante
Imposta
99
Limpostazione
margini simile a
quella di Word
In pi si pu centrare
la tabella
100
Spesso necessario
comprimere il foglio
di lavoro per far
entrare tutto su di
una pagina, senza
lasciare fuori una
colonna o riga
101
Intestazioni e pi di
pagina si inseriscono
dalle propriet di pagina
in Word sono invece
parte del documento
102
Se non si deve stampare tutto un foglio di
lavoro si pu selezionare solo la parte che ci
interessa
103
Per non stampare la griglia delle celle:
104
Modalit di esecuzione di
calcoli su date e ore
Le date vengono memorizzate come numeri sequenziali
denominati valori seriali e le ore vengono memorizzate
come frazioni decimali (l'ora considerata come una
parte del giorno).
quindi possibile sommare, sottrarre e includere in altri
calcoli i valori delle date e delle ore.
Per determinare ad esempio la differenza tra due date,
possibile sottrarre una data dall'altra.
possibile visualizzare una data o un'ora come numero
seriale o come frazione decimale assegnando alla cella
contenente la data o l'ora il formato Generale.
105
Esempio
=G7+H7
=G7+H7
Le celle G7:G10 e I7:I10 hanno un formato data
106
Tecniche avanzate
Formattazione condizionale
Etichette
Ricerca obiettivo
Archivi
107
Formattazione condizionale
108
109
Etichette
Si pu assegnare un nome a celle o range, ed
usarlo nelle formule
110
Ricerca obiettivo
Consideriamo il caso della crescita di un capitale Ct secondo la
regola dellinteresse composto:
C
t
= C
0
(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.
111
112
Archivio in Excel
In Excel archivio (database) vuol dire tabella.
Per garantire il corretto funzionamento dei comandi di
database la tabella di dati deve essere costruita secondo
alcune regole:
una prima riga della tabella deve contenere
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.
113
Tipico database di Excel
campi
r
e
c
o
r
d
114
Ordinamento di un database
115
Ordinamento di un database,
risultato finale
116
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.
117
Personalizza filtro automatico
118
Errori
#DIV/0 divisione per zero
###### colonna troppo stretta per i dati
#NOME? Excel non riconosce un nome
#NUM! qualche problema con la
gestione di un numero
#RIF! non possibile risolvere un
riferimento (es. cella cancellata)
#VALORE! tipo errato in un operando
Rif. circolari es. in C7 =SOMMA(C4:C7)
7
Introduzione:
Applicazioni dei
database sul Web
8
Nella scorsa lezione si visto come gestire un semplice
archivio con Excel
Per gestire grandi archivi servono programmi specifici:
DBMS Data Base Management System
9
Cosa hanno in comune due siti web come:
Amazon: grande magazzino virtuale
WebMonkey: rivista di design per il web
?????
Usano tutti e due un database
10
11
12
Perch usare un database
sul Web
Due premesse:
il Web un ottimo mezzo per la diffusione delle
informazioni;
i database sono il mezzo idoneo per immagazzinare
ed organizzare dati da cui estrarre informazioni.
possibile raggruppare i diversi modi in cui i database
sono impiegati sul Web, in tre tipi di applicazioni:
creazione dinamica di contenuto;
transazione di informazioni;
memorizzazione ed analisi di dati.
13
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.
14
Nome prodotto
Immagine
Descrizione
Numero di telefono per ordinare
scritta
Codice prodotto
Prezzo
Opzioni
Creazione dinamica di
contenuto sul Web
Una pagina di un catalogo online pu rappresentare un
esempio.
15
Creazione dinamica di
contenuto sul Web
Una soluzione efficiente che semplifica drasticamente
il processo di editing quella di memorizzare il file
immagine e le descrizioni testuali in un database e
lasciare che sia un programma, appositamente creato
ed eseguito in corrispondenza alla chiamata di una
pagine web, a riempire i campi del template.
questa lessenza della creazione dinamica di pagine
Web.
16
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 ItemName Options Price Description
X-2135 img10.jpg zzzzzzzzz rotondo,
quadrato
500 yyyyyyyyyy
Yyyyyyyyyy
17
DB
Creazione dinamica di
contenuto sul Web
Un unico script sul server genera
un numero arbitrario di pagine
html tutte con lo stesso formato,
il cui contenuto letto da un
database.
ImageID Nome Righe Colonne Bit per Pixel Risoluzione
. .
14 chateau1.j
pg
100 100 24 20
15 Fighting-
forms.jpg
100 120 24 20
. .
Tabella Immagini
Middleware
(php,cgi,asp)
18
Creazione dinamica di
contenuto sul Web
Le pagine Web create dinamicamente attraverso un
database, ed il template usato per generare il codice
HTML offrono una serie di vantaggi:
il sistema cresce con semplicit. Ad esempio se un
catalogo online comprende 1000 pagine, una
modifica nel layout richiederebbe, nel caso di pagine
statiche, 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.
19
Creazione dinamica di
contenuto sul Web
Un altro vantaggio della gestione dinamica delle
pagine Web il risparmio di memoria. Questo, pi
che ai fini del costo (ormai il costo della memoria di
massa relativamente basso), importante in fase di
manutenzione.
Inoltre, linformazione memorizzata nel database
inserita una volta, ma pu essere usata per molteplici
scopi oltre a quello della pubblicazione sul Web.
20
Esempi: query
21
Esempi
Pagina
dei
risultati
creata
dinamica
mente
22
Esempi
23
Esempi
24
Transazione di informazioni
In pratica, in ogni interazione tra cliente e fornitore
implicata una transazione di informazioni. Possibili
transazioni per un tipico sistema di ordini via web
potrebbe includere:
ordine di un prodotto - il cliente fornisce il numero
del prodotto, la quantit, la descrizione, informazioni
per la spedizione ed il pagamento. La transazione
inserisce queste informazioni nei corrispondenti
database.
Queste transazioni sono di solito eseguite riempendo un
form HTML. Questo documento sul Web rappresenta
lingresso per il database dellazienda, utilizzato per
gestire tutte le informazioni di una transazione.
25
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.
26
Concetti base e linee
guida nel progetto
27
Dati e informazioni
Nel seguito affronteremo essenzialmente il problema di
memorizzare ed organizzare dati.
Un dato un qualunque tipo di valore statico. I suoi
valori possono assumere forme diverse, da una
semplice scelta si/no, ad un valore numerico, ad un
blocco di testo.
Il problema di trasformare dati in informazioni
completamente diverso da quello di costruire dei
contenitori per i dati.
Comunque, esistono metodi per progettare la struttura
del database che rendono questa elaborazione pi facile
da compiere.
28
Cos un database
Un database fondamentalmente una collezione di
registrazioni (records) che concernono qualche sorta di
azione od oggetto.
Pi formalmente, un database qualsiasi collezione di
fatti organizzati in modo sistematico.
Es. Le schede del catalogo di una biblioteca. Ogni
scheda, fisica o virtuale, contiene fatti (autore, titolo,
ISBN, etc.) che sono organizzati (alfabeticamente
per titolo o autore, numericamente per ISBN) al fine
di rendere la loro ricerca pi semplice rispetto ad una
scansione di tutti i libri della biblioteca.
29
Esistono diversi tipi di database:
Database gerarchici
Database a rete
Database relazionali
Database a oggetti
Access, MySQL, SQL Server etc. sono database
relazionali
30
Es. Scheda e
Rappresentazione Tabellare
Autore Titolo Numero di
codice
Ashenfelter, John Choosing a Database for
your Web Site
5019BNA15
Botto, Francis Multimedia and Internet
Applications
2212MKV26
Cintron, Dave Fast Track Web
Programming
7682QYT91
Ashenfelter, John 5019BNA15
Choosing a Database for your Web Site
John Wiley & Sons, Inc.
1st printing 1998
31
Terminologia
Un certo numero di termini descrivono le parti di un
database. Sono termini standard, indipendenti dal
particolare software con cui implementato il database.
Campo - 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.
32
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).
33
Terminologia
Chiave - un identificatore univoco per ogni riga
(record) in una tabella di dati.
Anche se un record singolo rappresenta una porzione
separata dei dati, alcuni di questi records possono
apparire identici.
La chiave rappresenta un modo non ambiguo per
identificare records distinti e serve come puntatore
ad un particolare record della tabella.
Es.: ogni cittadino italiano univocamente identificato dal
codice fiscale.
In molti casi, le chiavi per le tabelle dei dati sono costruite
semplicemente aggiungendo un campo al record con
funzione di chiave.
34
Key Field
Record
Tabella indirizzi
Terminologia
ID LastName FirstName Address City State Zip
2231 Adamson Robert 1021 B
Wheatley
Lawrence NY 11559
2232 Anderson John 1024
Santee St.
Owings Mill MD 21117
2233 Atget Eugene 103 N
Market
Cleveland OH 44135
2234 Baldus Denis 1031-1 S
Dolfield
Los Angeles CA 90015
35
Terminologia
Spesso utenti diversi vogliono guardare ai dati di una
stessa o di pi tabelle in modi diversi.
Ad esempio, se fornitori e merce sono due tabelle in un
database, pu essere utile avere una vista di quali merci
sono fornite da un certo fornitore. Questo dato pu essere
ottenuto dalle due tabelle e combinato in una tabella
virtuale.
Vista - una tabella virtuale, nel senso che la
tabella non fisicamente presente nel database nel
modo con cui presentata allutente. La vista
generata come risposta ad una particolare
interrogazione. Permette di presentare in modi
diversi i dati contenuti nel database.
36
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.
37
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
38
Database Flat-File
il tipo pi elementare di organizzazione dei dati in un
database. La caratteristica base di un flat-file che tutti
i dati sono memorizzati insieme in una singola tabella.
La maggior parte dei database cartacei appartengono a
questa categoria.
Caratterizzati da semplicit di progetto e
implementabili in modo diretto. Un semplice file di
testo con dati organizzati
pu rappresentare un flat-file.
il tipo di organizzazione meno efficiente e pi
problematica. Il maggior svantaggio dovuto al
fatto che parte dei dati inseriti possono essere
ridondanti o inconsistenti.
39
Flat-File: database di ordini
OrderID CustID Name Shipping Address ItemCode Quantity Price
23455 1521 Velio
Cooper
152 W Waterloo St
Austin, TX 78752
ZD-552 1 8.95
23456 1567 Francis
Cioni
1445 E Delavan
Ave Laredo, TX
78043
XT-211 2 16.50
23457 1567 Francis
Cioni
1445 E Delavan
Ave Laredo, TX
78043
XT-212 2 22.00
23458 1765 Jane
Carroll
1551 Westwood
Blvd Ocilla, GA
31774
CC-48 15 225.15
23459 0021 Jody
Hawes
2664 Woodhill Rd
Bronx, NY
A-567 1 19.99
23460 1235 David
Hill
742 Hearne
Cleveland, OH
44104
XD-234 1 49.95
40
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.
41
Database Flat-File
In maniera alternativa, il problema potrebbe essere
risolto aggiungendo alla tabella un altro insieme di
campi (colonne della tabella) ItemCode, Price e
Quantity, numerandoli in sequenza (cos da distinguere
i campi per il primo prodotto da quelli del secondo e dei
successivi).
Name Shipping Address ItemCode1 Quantity1 Price1 ItemCode2 Quantity2 Price2
Velio
Cooper
152 W Waterloo St
Austin, TX 78752
ZD-552 1 8.95
Francis
Cioni
1445 E Delavan
Ave Laredo, TX
78043
XT-211 2 16.50 XT-212 2 22.00
42
Database Flat-File
Quanti elementi sono sufficienti?
se si considera un numero massimo di prodotti
ammessi per ogni ordine piccolo, potrebbe accadere
che un ordine non possa essere soddisfatto (non
previsto un numero sufficiente di campi);
se previsto un numero massimo ammissibile di
prodotti troppo grande si produce un evidente spreco
di spazio.
43
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
tabella del database.
44
Database relazionali:
database di ordini
Due tabelle:
tabella ordini, con i dati relativi al cliente;
tabella prodotti, con i dati relativi ai prodotti di ogni
singolo ordine.
45
Database relazionali:
database di ordini
OrderID CustID Name Shipping Address
23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752
23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043
23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774
23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY
23460 1235 David Hill 742 Hearne Cleveland, OH 44104
One
Tabella ordini
OrderID ItemCode Quantity Price
23455 ZD-552 1 8.95
23457 XT-211 2 16.50
23457 XT-212 2 22.00
23458 CC-48 15 225.15
23459 A-567 1 19.99
23460 XD-234 1 49.95
Many
Tabella prodotti
46
Database relazionali
La chiave OrderID nella tabella degli ordini descrive
univocamente ciascun ordine di un cliente.
Ogni prodotto ordinato individualmente e
univocamente memorizzato in una tabella separata dei
prodotti.
Il cliente pu, nello stesso ordine, richiedere quanti
prodotti desidera senza limitazioni a priori sul numero
massimo, n spreco di memoria.
Tra le tabelle stabilita una relazione tramite le
rispettive chiavi.
47
Database relazionali
Ogni tabella ha la propria chiave primaria per
identificare i suoi elementi.
Notare che la chiave OrderID della tabella degli ordini
inserita nella tabella dei prodotti per ogni prodotto che
stato ordinato da un cliente.
Ogni prodotto che stato ordinato pu essere legato al
cliente appropriato cercando tutti i records della tabella
prodotti che hanno un particolare valore nel campo
OrderID.
48
Database relazionali:
relazione uno-a-molti
Nella tabella dei prodotti OrderID non un valore
univoco.
La relazione tra la tabella degli ordini e quella dei
prodotti detta relazione uno-a-molti in quanto un
record nella tabella degli ordini legato ad un numero
variabile di records nella tabella dei prodotti.
OrderID serve come chiave esterna nella tabella dei
prodotti, in quanto il valore della chiave viene da una
diversa tabella (dove i valori sono univoci).
49
Database relazionali:
database degli ordini
Nota: per evitare la duplicazione degli indirizzi di un
cliente tra pi ordini successivi sarebbe conveniente
creare una ulteriore tabella dei clienti, con solo i dati
relativi al cliente, e legarla con una relazione uno-a-
molti, stabilita attraverso il CustID, con la tabella degli
ordini.
In questo modo ogni cliente pu effettuare pi ordini
ed ogni ordine pu comprendere pi prodotti.
50
Database relazionale:
database di ordini
CustID Name Shipping Address
1521 Velio Cooper 152 W Waterloo St Austin, TX 78752
1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043
1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774
0021 Jody Hawes 2664 Woodhill Rd Bronx, NY
1235 David Hill 742 Hearne Cleveland, OH 44104
Tabella clienti
OrderID ItemCode Quantity Price
23455 ZD-552 1 8.95
23457 XT-211 2 16.50
23457 XT-212 2 22.00
23458 CC-48 15 225.15
23459 A-567 1 19.99
23460 XD-234 1 49.95
Tabella prodotti OrderID CustID Date
23455 1521 2002.02.25
23457 1567 2002.02.13
23458 1765 2002.01.19
23459 1521 2002.02.13
23460 1235 2001.12.21
Tabella ordini
51
Database relazionali: tipi di
relazioni
Oltre alla relazione uno-a-molti esistono altri due modi
possibili per relazionare due tabelle del database:
relazione uno-ad-uno;
relazione molti-a-molti.
52
Database relazionali:
relazione uno-a-uno
In una relazione uno-a-uno ogni record in una tabella
collegato ad uno ed uno solo dei record in 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.
53
Relazione uno-a-uno:
database delle risorse umane
EmployeeID LastName FirstName Address Phone
77620 Southworth Jerry 496 Laguardia Place 555-2222
77621 Talbot Gina 426 Lake St 555-8267
77622 Russell David 318 W 39 Th St 555-4445
77623 Thompson Linda 2427 Broadway 555-1568
77624 Albertson Steve 224 Lawrence Ave 555-9872
77625 Davis Russell 224 Lawrence Ave 555-1213
Tabella
impiegati
EmployeeID Rate Hours
77620 7.78 30
77625 13.55 40
Tabella impiegati a ore
EmployeeID Salary 401 Health
77621 41,000 5 BC
77622 55,755 2 BC
77623 22,155 N/A QS
77624 18,975 2 N/A
Tabella impiegati salariati
54
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.
55
Database relazionali:
relazione uno-a-uno
Dato che per le due categorie di impiegati devono
essere mantenuti dati diversi, questi sono inclusi in due
tabelle ausiliarie:
la tabella degli impiegati a ore. Mantiene solo i dati
aggiuntivi che li riguardano, come il costo orario e le
ore lavorate;
la tabella degli impiegati salariati. La tabella
mantiene solo i dati specifici per questa categoria,
come il salario complessivo e linformazione sanitaria.
Per entrambe le tabelle ausiliarie la chiave primaria
rappresentata da EmployeeID.
56
Database relazionali:
relazione uno-a-uno
Ogni impiegato pu apparire una sola volta nella tabella
impiegati, ed un record nella tabella degli impiegati a
ore rappresenta un solo impiegato.
Lo stesso vale per la tabella degli impiegati salariati.
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.
57
Database relazionali:
relazione molti-a-molti
La caratteristica distintiva di una relazione molti-a-molti
tra due tabelle che una terza tabella necessaria per
rappresentare la relazione.
La tabella che descrive la relazione semplicemente
mantiene la chiave primaria da una tabella, con la
chiave primaria dei record ad essa collegati nella
seconda tabella, insieme con ogni altra informazione che
contraddistingue la relazione.
58
Database relazionali:
relazione molti-a-molti
La relazione molti-a-molti permette di rappresentare
relazioni in casi in cui pi records in una tabella sono in
relazione con pi records in 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.
59
Relazione molti-a-molti:
database impiegati e progetti
EmployeeID LastName FirstName
77620 Southworth Jerry
77621 Talbot Gina
77622 Russell David
77623 Thompson Linda
77624 Albertson Steve
77625 Davis Russell
ProjectID Manager Deadline
22356 Jones 4/9
27685 Lewis 12/22
33564 Albertson 8/17
Tabella impiegati
Tabella progetti
EmployeeID ProjectID
77620 22356
77621 27685
77624 27685
77622 33564
77624 33564
77622 22356
Tabella relazione
impiegati-progetti
60
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.
61
Relazione molti-a-molti
La tabella di relazione tra impiegati e progetti costruita
usando le chiavi primarie delle tabelle impiegati e
progetti.
Sia i valori della chiave per la tabella degli impiegati
(EmployeeID), sia quelli della chiave per la tabella dei
progetti (ProjectID), possono essere ripetuti pi volte
nella tabella della relazione.
62
Tabelle e relazioni in Access
Access ha un set di database pronti di esempio
63
Dal modello Access crea tabelle, relazioni e query
In alternativa si crea un database vuoto e si creano tabelle e
relazioni manualmente o in modo guidato
64
65
Es.: creazione tabelle dellesempio precedente: impiegati, progetti e
tabella relazione tra impiegati e progetti
66
Dopo aver creato la tabella delle relazioni si deve creare la relazione
vera e propria che mette in collegamento i campi
67
Si trascinano i campi dalle tabelle degli impiegati e progetti ai
rispettivi campi della tabella di relazione
68
69
Per fare una prova si immettono dei dati nelle tabelle di
impiegati e progetti, e poi nella tabella relazioni
70
Per vedere il risultato dobbiamo fare una query: selezioniamo
tabelle e campi che vogliamo esaminare
71
72
73
Criteri di progetto di un
database
I moderni software permettono di costruire in modo
semplice un database, ma forniscono uno scarso
supporto nel processo di progetto.
Infatti, il processo di progetto dovrebbe essere una fase
completamente indipendente dalla scelta del particolare
software realizzativo.
Spesso si vincolati ad un particolare software; tuttavia
delle buone scelte di progetto dovrebbero venire prima.
74
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.
75
Criteri di progetto:
1. definizione del problema
Il primo passo nel progetto di un database quello
di delineare chiaramente la natura dei dati che
necessario memorizzare, senza considerare le
interrogazioni che verranno usate sul database per
trasformare i dati memorizzati in informazioni.
Questo perch le domande possono cambiare nel tempo
ed un database progettato solo per rispondere
a domande specifiche diventerebbe inutile.
76
Criteri di progetto:
1. definizione del problema
Il database deve essere pensato in modo da organizzare
tutti i dati che sono utilizzati per risolvere un particolare
problema o raggiungere un obiettivo,
in modo che sia possibile rispondere ad ogni tipo di
domanda su quei dati.
77
Criteri di progetto:
2. valutazione della soluzione
corrente
Nella maggior parte delle situazioni di progetto, qualche
tipo di database esiste gi, sia esso in forma cartacea o
digitale.
Spesso rappresenta un punto di partenza per conoscere
i dati che sono attualmente di interesse.
Nel caso si usi Access bene esaminare i database di
esempio
78
Criteri di progetto:
3. progetto delle strutture dati
Un database essenzialmente una collezione di tabelle
che devono essere definite in base ai dati da
rappresentare.
Ogni tabella dovrebbe rappresentare un soggetto o un
oggetto fisico distinto.
Di solito, il modo migliore per determinare i dati che
appartengono ad una stessa tabella quello di fare una
lista di tutti i campi di interesse per il problema in esame
e determinare i raggruppamenti logici tra questi.
79
Criteri di progetto:
3. progetto delle strutture dati
Subjects Fields
Buildings Address
Classrooms Course Description
Courses Course Name
Employees Course Number
Faculty Members Courses Taught
Part-time Employee Date Hired
Staff Funding Source
Home Department
Hourly Rate
Meeting Times
Name
Number of Seats
Phone Number
Prerequisites
Salary
Social Security Number
Tenure Status
.
80
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 Part-
time Employees.
In questo modo possibile raggruppare i campi secondo
le entit cui appartengono.
81
Criteri di progetto:
3. progetto delle strutture dati
Una volta che le tabelle sono state determinate e i
campi sono loro assegnati, il passo successivo la
specifica dei campi.
Un campo perfetto dovrebbe essere:
unico tra tutte le tabelle nel database, a meno che
non sia usato come chiave;
dovrebbe contenere un singolo valore;
non dovrebbe essere possibile scomporlo in
sottoparti componenti pi piccole.
82
Criteri di progetto:
3. progetto delle strutture dati
Deve essere stabilito anche il tipo di dati che devono
essere posti in ciascun campo.
Esistono cinque tipi base per i campi (possono essere
ulteriormente suddivisi per incrementare 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.
83
Criteri di progetto:
3. progetto delle strutture dati
Ora/Data - memorizza ora e/o data usando vari
formati (europeo o americano, conversione a 12-24
ore, etc.).
Testuale - rappresenta virtualmente qualunque altro
tipo di dato. Di solito esistono campi a lunghezza
fissa, variabile o campi speciali per grandi sezioni di
testo.
Binario - alcuni database possono memorizzare
oggetti in forma binaria in un campo. Es.
documento, file grafico, campione di suono, o altro.
Sono campi essenzialmente contenitori di dati. Su
questi campi non possono essere eseguite operazioni
di ordinamento o ricerca.
84
Es. in Access, tipi di dati e formato per dato numerico
85
Criteri di progetto:
3. progetto delle strutture dati
Un ulteriore aspetto di interesse riguarda la nomenclatura da
adottare nel nominare tabelle e campi. di aiuto nella
comunicazione e quando il database cresce in complessit e
dimensione.
86
Alcuni suggerimenti:
usare nomi descrittivi che riflettono il soggetto della
tabella o i dati;
non usare nomi specifici per dati che potrebbero
assumere una forma pi generale;
evitare abbreviazioni e acronimi;
non usare punteggiatura o spazi nei nomi;
usare nomi delle tabelle plurali, nomi dei campi
singolari;
tabelle di relazione hanno di solito come nome la
combinazione dei nomi delle tabelle che collegano.
87
Criteri di progetto:
4. costruzione delle relazioni
Un prerequisito alla costruzione delle relazioni
garantire che ogni tabella abbia una chiave univoca per
identificare i singoli records della tabella.
Qualunque campo esistente contenente un valore
univoco un candidato accettabile per essere utilizzato
come chiave.
88
Criteri di progetto:
4. costruzione delle relazioni
Una soluzione migliore quella di aggiungere un campo
arbitrario ad ogni tabella con il compito specifico di
fungere da campo chiave.
Tale campo deve contenere un valore univoco, anche
senza un particolare significato per i dati contenuti nella
tabella.
Il valore della chiave tipicamente un intero
assegnato ad ogni record inserito nella tabella e mai
ripetuto.
Le relazioni tra tabelle possono essere costruite usando
le chiavi delle singole tabelle.
89
Criteri di progetto:
4. costruzione delle relazioni
Per una relazione uno-a-uno, la chiave primaria della tabella
principale inserita nella sottotabella:
la sottotabella utilizza la chiave esterna come chiave principale e
non necessita di una propria chiave primaria in quanto gli
ingressi nelle due tabelle sono univocamente collegati gli uni
agli altri.
EmployeeID LastName FirstName Address Phone
77620 Southworth Jerry 496 Laguardia Place 555-2222
77621 Talbot Gina 426 Lake St 555-8267
77622 Russell David 318 W 39 Th St 555-4445
77623 Thompson Linda 2427 Broadway 555-1568
77624 Albertson Steve 224 Lawrence Ave 555-9872
77625 Davis Russell 224 Lawrence Ave 555-1213
E m p l o y e e I D S a l a r y 4 0 1 ( k ) H e a l t h
7 7 6 2 1 4 1 , 0 0 0 5 B C
7 7 6 2 2 5 5 , 7 5 5 2 B C
7 7 6 2 3 2 2 , 1 5 5 N / A Q S
7 7 6 2 4 1 8 , 9 7 5 2 N / A
90
Criteri di progetto:
4. costruzione delle relazioni
In una relazione uno-a-molti, la chiave primaria della tabella con la
relazione uno, usata per identificare i record collegati nella
tabella molti:
il collegamento fatto inserendo la chiave primaria della tabella
uno come nuovo campo nella tabella molti dove rappresenta
una chiave esterna.
OrderID CustID Name Shipping Address
23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752
23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043
23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774
23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY
23460 1235 David Hill 742 Hearne Cleveland, OH 44104
OrderID ItemCode Quantity Price
23455 ZD-552 1 8.95
23457 XT-211 2 16.50
23457 XT-212 2 22.00
23458 CC-48 15 225.15
23459 A-567 1 19.99
23460 XD-234 1 49.95
91
Criteri di progetto:
4. costruzione delle relazioni
Una relazione molti-a-molti la pi complessa da costruire.
Richiede una tabella aggiuntiva per rappresentare la relazione:
la tabella di relazione creata riportando in essa le chiavi di una
tabella con tutte le chiavi della seconda tabella che sono ad essa
associate.
EmployeeID LastName FirstName
77620 Southworth Jerry
77621 Talbot Gina
77622 Russell David
77623 Thompson Linda
77624 Albertson Steve
77625 Davis Russell
ProjectID Manager Deadline
22356 Jones 4/9
27685 Lewis 12/22
33564 Albertson 8/17
EmployeeID ProjectID
77620 22356
77621 27685
77624 27685
77622 33564
77624 33564
77622 22356
92
Criteri di progetto:
5. implementazione di regole e vincoli
Regole e vincoli conducono di norma ad una maggiore pulizia dei
dati e a migliori informazioni nel loro uso.
Alcuni vincoli sono tipicamente imposti dalla natura stessa dei dati.
Es.: un campo per il codice fiscale pu essere dimensionato per
contenere sempre 16 caratteri. Assicura che il dato sia corretto
ed accurato. Il sistema pu impedire 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.
93
In Access si specificano i vincoli nelle propriet del campo
94
95
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.
96
Criteri di progetto:
7. implementazione del progetto
Il progetto condotto fino a questo punto senza
considerare il particolare software da utilizzare per
realizzare il database.
Il criterio di base che guida la scelta la possibilit di
realizzare con una data soluzione software il database di
cui si ha bisogno.
Alcune tra le scelte possibili sono:
Microsoft Access, lo standard di fatto per Windows;
Microsoft SQL Server, database professionale;
MySQL, prodotto free molto diffuso per applicazioni sul
Web;
Oracle, il leader in ambiente Unix. Richiede hardware e
supporto costosi.
97
Normalizzazione
In qualunque libro che affronti il progetto di database
dal punto di vista teorico viene sempre riservata una
certa enfasi al problema della normalizzazione o
decomposizione del database.
In sostanza, la normalizzazione un modo di analizzare
e migliorare la stabilit ed integrit di un insieme di dati
relazionali.
Previene la possibilit di inconsistenze nei dati
conseguenza di una cattiva progettazione.
98
Normalizzazione
Il processo di progettazione discusso tale da verificare
i requisiti di normalizzazione per il progetto di database
tipici.
Il processo di normalizzazione composto da pi passi,
ognuno dei quali rappresenta una forma normale (NF).
Esistono 5 forme normali che possono essere applicate
ad un database, ma di solito il progettista pu
accontentarsi di realizzare le prime tre (quindi il
processo pu arrestarsi alla 3NF).
99
Processo di Normalizzazione
Un database deve
passare attraverso
le normalizzazioni
in sequenza:
un database in
3NF deve
soddisfare anche
i requisiti della
1NF e 2NF.
5NF
No dipendenze cicliche
in chiavi composite
Ogni campo deve essere unico
1NF
Per chiavi composite, i campi non chiave
devono essere funzionalmente dipendenti
dalla chiave composita (non da sue parti)
2NF
No dipendenze transitive
tra campi
3NF
(BCNF)
No dipendenze multiple in
chiavi composite
4NF
100
Prima forma normale (1NF)
Un database che soddisfa la 1NF ha una chiave primaria
e non contiene campi dati ripetuti o gruppi di campi (si
intende che queste propriet devono essere soddisfatte
da tutte le tabelle del database).
Questo significa che tutti i record di una tabella nel
database contengono lo stesso numero di campi dati
distinti.
Garantisce che ciascun record possa essere identificato
in modo univoco, ed evita la duplicazione di campi base.
Tutti i database visti soddisfano questa condizione.
101
Prima forma normale (1NF)
Le tabelle non
soddisfano la
1NF.
Student Album
_______________________________________________________________________________________
StudentID (key) AlbumID (Key)
Name Artist
Year Title
Period 1 class Track 1 name
Period 1 teacher Track 1 duration
Period 1 grade Track 2 name
Period 2 class Track 2 duration
Period 2 teacher Track 3 name
Period 2 grade Track 3 duration
Period 3 class Track 4 name
Period 3 teacher Track 4 duration
Period 3 grade (etc.)
(etc.)
102
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.
103
Seconda e Terza forma
normale (2NF, 3NF)
La 2NF si applica solo a database con chiavi composite.
Una chiave composita costituita da informazioni di due
o pi entit logiche distinte (chiave costituita da pi
campi).
Di conseguenza:
una tabella la cui chiave non composita e che
verifica la 1NF verifica anche la 2NF.
Nella maggior parte dei casi progettare il database in
modo da verificare la 2NF determina che anche la 3NF
sia verificata.
la forma di normalizzazione finale applicata a
database relazionali nella pratica di impiego comune.
104
Seconda forma normale
(2NF)
Item
Item number (component of key)
Vendor name (component of key)
Product name
Product description
Vendor contact name
Vendor address
Vendor phone number
Unit price
Unit cost
La tabella non
soddisfa la 2NF
105
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).
106
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.
107
Terza forma normale (3NF)
Richiede che non esistano dipendenze transitive tra
campi nelle tabelle dei dati:
una dipendenza transitiva si presenta quando un campo che non
la chiave primaria della tabella agisce come se fosse 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.
108
Normalizzazione
Riassumendo possibile dire che i processi di base per
verificare la 1NF, 2NF e 3NF, si possono tutti ricondurre
ad un unico criterio:
garantire che entit logiche distinte siano
memorizzate in tabelle differenti.
Come si visto possibile arrivare ad una buona
progettazione semplicemente seguendo alcune regole di
base.
109
ESEMPI DI PROGETTO
110
Esercizio di progetto - I
1. Definizione ed obiettivi.
Personal Information Manager (PIM) - il principale
obiettivo di questo database di mantenere ed
organizzare i dati per contattare le persone coinvolte
nella vita personale e professionale.
Per il momento la definizione non include il tipo
particolare di dati da immagazzinare nel database,
n il tipo di interrogazioni eseguite sui dati.
2. Ricerca del database corrente.
Comprende la ricerca del modo in cui i dati sono
attualmente raccolti e come quei dati sono
trasformati in informazioni utili.
111
Esercizio di progetto - I
3. Progetto delle strutture dati.
Assumiamo che il database contenga una sola tabella
(Contacts) sia per contatti che riguardano il lavoro
che privati. Una soluzione alternativa potrebbe essere
quella di avere due tabelle separate per questi due
tipi di contatti.
Comunque il modo usuale di fare delle interrogazioni
quello di usare il cognome indipendentemente dal
fatto che il soggetto cercato appartenga ai contatti di
lavoro o privati.
4. Costruzione delle relazioni.
Esiste una sola tabella e quindi non ci sono relazioni.
112
Fieldname Notes
ID Campo numerico usato come chiave
LastName Limite a 40 caratteri
FirstName Limite a 20 caratteri
MailingAddress Campo testo a lunghezza variabile
City Limite a 30 caratteri
State Limite a 2 caratteri
Zip 10 cifre
Country Limite a 20 caratteri
Directions Campo testo
HomePhone Memorizzato come campo testo
WorkPhone Memorizzato come campo testo
Fax Memorizzato come campo testo
Email Limitato a 40 caratteri
WebPage Home page URL
Birthday Data in formato mm/dd/yyyy
Esercizio di progetto - I
113
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.
114
Esercizio di progetto - I
6. Creazione di viste e reports.
Una vista potrebbe essere quella per una query tipica
che ricerca nome, indirizzo di posta elettronica e
numero(i) di telefono. 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.
Realizzazione del database usando Access
115
Esercizio di progetto - I
Due possibili alternative alla soluzione vista.
Due tabelle distinte. Si potrebbero avere due tabelle
separate, una per i contatti personali e una per quelli
di lavoro.
Un vantaggio di questa scelta che i campi relativi
ad un solo tipo di contatto devono essere posti solo
nella tabella corrispondente. Ad esempio il campo
compleanno potrebbe essere rilevante solo per i
contatti personali. Le queries potrebbero essere pi
efficienti. Potrebbe per generare problemi se un
contatto viene inserito in entrambe le tabelle
116
Esercizio di progetto - I
Tabella primaria con due sottotabelle. Un progetto
pi relazionale potrebbe consistere di una tabella
primaria con tutte le informazioni costanti
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.
117
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.
118
Fieldname Notes
Filename Nome del media file
Filesize Pu variare da pochi KB a molti MB
File type or format Deve essere flessibile
Image dimensions Dimensione in pixels
Color depth In bit da 1 a 32
Compression level Alcuni formati hanno diversi livelli di compressione
Scanned resolution Immagini scannerizzate a diversi livelli
File manupulations Storia di come il file stato editato
Last modification Data di ultima modifica
Sampling rate Per audio files. Frequenza di campionamento
Video frame rate Per i video sono possibili diversi frame rate
Codec used Video compressi con formati proprietari
Original source Book, CD, videotape o altre sorgenti
Descriptive text Descrive il tipo di media presente
Keywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)
Length of sound clip Lunghezza del file audio
Plug-in location Sito Web da cui scaricare il plug-in se necessario
Video duration Durata del file video
Esercizio di progetto - II
119
Esercizio di progetto - II
3. Progetto delle strutture dati.
In questo esempio possibile individuare pi oggetti:
i files video, audio e di immagini. In aggiunta
possibile considerare un oggetto corrispondente a
files di testo con le informazioni descrittive utili per
realizzare una pubblicazione dinamica sul Web.
Una tabella pu essere impiegata per mantenere la
descrizione testuale e il nucleo di informazioni comuni
ai vari files (es. nome, dimensione e lista di
keywords). Questa tabella collegata a quella dei
singoli media, che ne riportano le informazioni
specifiche (una tabella separata per audio, video ed
immagini).
120
Esercizio di progetto - II
Fieldname Notes
Filename Nome del media file
Filesize Pu variare da pochi KB a molti MB
FileType Deve essere flessibile
FileChanges Storia di come il file stato editato
LastModification Data di ultima modifica
DescriptiveText Descrive il tipo di media presente
FileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)
Files Data Table
Fieldname Notes
ImageHeight In pixels
Image Width In pixels
ImageColor depth In bit da 1 a 32
ImageCompressionLevel Alcuni formati hanno diversi livelli di compressione
ImageScannedResolution Immagini scannerizzate a diversi livelli
Images Data Table
121
Fieldname Notes
SoundSamplingRate Audio files possono essere campionati a diversi rates
SoundClipLength Lunghezza del file audio
Esercizio di progetto - II
Sounds Data Table
Videos Data Table
Fieldname Notes
Height In pixels
Width In pixels
VideoColorDepth In bit da 1 a 32
VideoCompressionLevel Alcuni formati hanno diversi livelli di compressione
VideoSamplingRate Campionamento per il video
FrameRate Per i video sono possibili diversi frame rate
Codec Video compressi con formati proprietari
VideoLength Lunghezza del file video
122
Esercizio di progetto - II
Possiamo considerare altre due tabelle utili.
Dato che una particolare sorgente pu fornire un
numero di media diversi, meglio utilizzare una
tabella separata per questa informazione. Le sorgenti
possono essere compagnie o singoli individui; altre
sorgenti sono libri, riviste o altri media tradizionali
digitalizzati.
Lultima tabella contiene linsieme di progetti in cui
questi media files sono attualmente utilizzati.
123
Esercizio di progetto - II
Fieldname Notes
ProjectName Nome del progetto
Contact Persona da contattare per il progetto
ProjectsNotes Note sul progetto
Projects Data Table
Fieldname Notes
OriginalSource Book, CD, videotape o altre sorgenti
SourceNotes Descrive il tipo di media presente
SourceKeywords Usate per la sorgente
Sources Data Table
124
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
ciascun record.
125
Esercizio di progetto - II
FileID FileType FileSize Keywords Description
101 JPG 427 Bullet,square Homepage bullet
102 AVI 1592031 Plane Flying plane
103 GIF 85 Line, red Red rule
104 JPG 5627 Canyon Copper canyon
105 WAV 13220 Ding Doorbell
106 MOV 22843612 Cry, baby Crying baby boy
FileID Height Width
101 20 80
103 10 60
104 110 75
Images Table
FileID SoundSamplingRate SoundClipLength
105 44.1 30
Sounds Table
FileID Height Width Length
102 400 300 26.1
106 400 300 240.0
Videos Table
Files
Table
126
Esercizio di progetto - II
La relazione tra la tabella Files e la tabella Sources
invece una relazione uno-a-molti tra Sources (uno) e Files
(molti). Infatti, ciascun record nella tabella Files legato ad
un solo record della tabella Sources (ogni file pu avere una
sola sorgente), mentre ogni record in Sources pu essere
legato ad uno o pi record in Files (ogni sorgente pu
produrre pi file diversi).
quindi necessario inserire la chiave primaria della tabella
uno come chiave esterna nella tabella molti.
Alla tabella Sources assegnata come chiave primaria un
intero identificato con il campo SourceID, e questa chiave
aggiunta anche alla tabella Files dove rappresenta una
chiave esterna.
127
Esercizio di progetto - II
SourceID Source Copyright
001 Personal Yes
002 BBC Library No
003 Mega Studios No
004 David Rides Yes
Davi d
Sources Table
one
FileID SourceID FileType FileSize Keywords Description
101 001 JPG 427 Bullet,square Homepage bullet
102 001 AVI 1592031 Plane Flying plane
103 002 GIF 85 Line, red Red rule
104 004 JPG 5627 Canyon Copper canyon
105 001 WAV 13220 Ding Doorbell
106 002 MOV 22843612 Cry, baby Crying baby boy
Files Table
many
128
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.
129
Esercizio di progetto - II
FileID SourceID FileType
101 001 JPG
102 001 AVI
103 002 GIF
104 004 JPG
105 001 WAV
106 002 MOV
ProjectID ProjectName Cantact
2567 MegaSite Dave Nelson
2568 Davis Presentation Cindy Raye
2569 Monkey Movie Nell Smith
Davi d
Files Table
Projects Table
ProjectID FileID
2567 101
2569 102
2568 103
2567 104
2569 105
2569 106
Projects_Files Table
130
Esercizio di progetto - II
In uno schema entit-relazione il database pu essere
rappresentato nel modo seguente:
Sources
molti
uno
Files
Projects
uno
uno
uno
uno
Images
Sounds
Videos
molti
molti
Project_Files
131
Esercizio di progetto - II
Tenendo conto delle chiavi primarie e delle relazioni,
le tabelle assumono la forma seguente:
Fieldname Notes
FileID Chiave primaria
SourceID Chiave esterna che collega alla Sources Data Table
FileName Nome del media file
FileSize Pu variare da pochi KB a molti MB
FileType Deve essere flessibile
FileChanges Storia di come il file stato editato
LastModified Data di ultima modifica
Description Descrive il tipo di media presente
FileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)
Files Data Table
132
Esercizio di progetto - II
Fieldname Notes
ImageID Chiave esterna dalla Files Data Table
ImageHeight In pixels
ImageWidth In pixels
ImageColorDepth In bit da 1 a 32
ImageCompressionLevel Alcuni formati hanno diversi livelli di compressione
ImageScannedResolution Immagini scannerizzate a diversi livelli
Images Data Table
Fieldname Notes
SoundID Chiave esterna dalla Files Data Table
SoundSamplingRate Audio files possono essere campionati a diversi rates
SoundClipLength Lunghezza del file audio
Sounds Data Table
133
Esercizio di progetto - II
Videos Data Table
Fieldname Notes
VideoID Chiave esterna dalla Files Data Table
Height In pixels
Width In pixels
VideoColorDepth In bit da 1 a 32
VideoCompressionLevel Alcuni formati hanno diversi livelli di compressione
VideoSamplingRate Campionamento per il video
FrameRate Per i video sono possibili diversi frame rate
Codec Video compressi con formati proprietari
VideoLength Lunghezza del file video
Fieldname Notes
SourceID Chiave primaria
OriginalSource Book, CD, videotape o altre sorgenti
SourceNotes Descrive il tipo di media present
SourceKeywords Usate per la sorgente
Sources Data Table
134
Esercizio di progetto - II
Fieldname Notes
ProjectID Chiave primaria
ProjectName Nome del progetto
ProjectContact Persona da contattare per il progetto
ProjectsNotes Note sul progetto
Projects Data Table
Fieldname Notes
FileID Chiave esterna dalla Files Data Table
ProjectID Chiave esterna dalla Projects Data Table
Projects_Files Table
135
Esercizio di progetto - II
5. Regole e vincoli.
Diversi campi per le sottotabelle Images, Sound e
Videos, sono soggetti a vincoli. Ad esempio un file
audio pu essere campionato sia in modalit 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.
136
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.
7
Introduzione:
Breve storia del linguaggio HTML
8
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.
9
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.
10
Breve storia del linguaggio
HTML
Le idee di Vannevar Bush e di Ted Nelson furono
riprese in un progetto del 1989 da Tim Berners-
Lee, un ricercatore del CERN di Ginevra, che
propose un sistema basato sullipertesto per
permettere una pi efficiente condivisione delle
informazioni tra i membri della comunit scientifica
dellistituto per cui lavorava.
11
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
12
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.
13
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.
14
Terminologia
Ipertesto: documento testuale in formato elettronico non
sequenziale
Sito: insieme delle informazioni, organizzate come un ipertesto e
residenti su un computer
15
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.
16
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
17
Concetti base del linguaggio
HTML
18
Concetti base del linguaggio
HTML
HTML e' l'acronimo di HyperText Markup Language,
ovvero un linguaggio di formattazione basato su
marcatori che consentono di specificare l'aspetto di
un documento e le relazioni o i collegamenti con altri
documenti.
19
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.
20
Concetti base del linguaggio
HTML
La definizione del contenuto di un documento HTML
avviene attraverso appositi marcatori definiti TAG.
I TAG rappresentano gli elementi o identificatori che
costituiscono il linguaggio HTML e sono delimitati da
parentesi angolari:
Es. <HTML>
21
HTML
E un linguaggio per la descrizione di come appaiono
documenti allinterno di un browser.
Fornisce tag per titoli, paragrafi, font, link, immagini.
22
HTML
<P>
<FONT SIZE="+1"><STRONG>HTML: All form and no
substance</STRONG></FONT><BR>
HTML is a language designed to &quot;talk about&quot; documents:
headings, titles, captions, fonts, and so on. It's heavily document
structure- and presentation-oriented.
23
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)
24
XML
Concetti base del linguaggio XML
25
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
26
Concetti base del linguaggio
XML
E una specifica ufficiale del World Wide Web
Consortium (W3C).
W3C lo definisce come:
"a common syntax for expressing structure in data."
27
Concetti base del linguaggio
XML
Lo scopo di XML quello di separare la definizione dei
dati dalla loro rappresentazione, per consentire lo
scambio di documenti strutturati sul web.
HTML specifica come un documento deve essere
mostrato, non descrive che tipo di informazione
contenuta e come strutturata.
28
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.
29
Concetti base del linguaggio
XML
XML basato su file di testo (come HTML), pu essere
usato su qualsiasi piattaforma.
E nato per essere usato su Internet, ma va bene
ovunque.
E un sub-set di SGML (Standard Generalized Markup
Language)
30
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.
31
Concetti base del linguaggio
XML
L Hypertext Markup Language (HTML), un esempio di
linguaggio basato su SGML.
C un document type definition (DTD) per lHTML
Il DTD un documento che definisce la grammatica
di un linguaggio
Un linguaggio definito in termini di SGML si chiama
applicazione di SGML.
32
Concetti base del linguaggio
XML
SGML usato per lo scambio di dati e documenti dal
Dipartimento della Difesa degli Stati Uniti, dalle industrie
aerospaziali e delle telecomunicazioni, etc.
XML nato per portare SGML sul web
33
Concetti base delle pagine
HTML
34
Concetti base delle pagine
HTML
Ogni pagina HTML deve iniziare con i seguenti elementi:
<html>
<head>
<title>Titolo della finestra</title>
</head>
<body>
Dove 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
35
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
36
HTML
La struttura interna di un documento HTML molto
ridotta, per cui possibile scrivere documenti corretti
ma senza senso semantico:
es.: i titoli di un paragrafo possono essere sopra ai
titoli di un capitolo
37
HTML
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
38
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
39
Aggiungere intestazioni e
paragrafi
40
Aggiungere intestazioni e
paragrafi
In HTML esistono sei livelli di intestazioni.
H1 il pi importante, H2 leggermente meno
importante, e cos via fino ad H6, il meno importante di
tutti.
Ecco come aggiungere un'intestazione importante:
<h1>Un'intestazione importante</h1>
ed ecco un'intestazione leggermente meno importante:
<h2>Un'intestazione leggermente meno
importante</h2>
Vedi la pagina HTML
41
Aggiungere intestazioni e
paragrafi
Ogni paragrafo che scrivete dovrebbe cominciare con
il marcatore <p> e chiudere con </p>.
<p>Questo il primo paragrafo.</p>
<p>Questo il secondo paragrafo.</p>
E possibile anche creare interruzioni di riga con il tag
<br>
<p>Questo il terzo paragrafo.<br>Adesso siamo a capo di una riga </p>
Vedi la pagina HTML
42
Aggiungere enfasi al testo
43
Aggiungere enfasi al testo
Potete enfatizzare una o pi parole grazie ad appositi
marcatori.
<strong> o <b> rende il testo grassetto
<em> o <i> rende il testo corsivo
44
Aggiungere enfasi al testo
Esempio:
<p>Con il testo in grassetto, <strong>voglio attirare
l'attenzione</strong> mentre di seguito faccio una citazione
<em>Thinking HTML</em></p>
Vedi la pagina HTML
45
Aggiungere immagini
46
Aggiungere immagini
Le immagini possono essere usate per aiutarvi a veicolare
il messaggio che intendete comunicare. Il modo pi
semplice di aggiungere un'immagine usare il
marcatore <img>.
Poniamo che vi sia un file immagine chiamato libro.jpg"
nella stessa directory del vostro file HTML. Esso misura
200 pixel di larghezza per 150 di altezza.
47
Aggiungere immagini
Avremo quindi:
<img src=libro.jpg" width="200" height="150 alt=Il Dizionario Sabatini-
Colletti>
L'attributo src richiama il file immagine.
L'attributo alt serve per le persone che non possono
vedere l'immagine ed hanno bisogno di una descrizione
da leggere in sua assenza.
Vedi la pagina HTML
48
Aggiungere collegamenti ad
altre pagine
49
Aggiungere collegamenti ad altre
pagine
Ci che rende il Web cos efficace la capacit di
definire collegamenti da una pagina ad un'altra, sia
allinterno dello stesso sito che verso altri siti.
I collegamenti (o link) sono definiti per mezzo del
marcatore <a> (anchor).
50
Aggiungere collegamenti ad
altre pagine
Creiamo ora un collegamento alla pagina libro.html":
<p>Questo un collegamento <a href=libro.html">alla pagina del
libro</a></p>
Vedi la pagina HTML
Il testo tra <a> e </a> usato come didascalia
per il collegamento.
La didascalia appare comunemente come
un testo blu sottolineato.
51
Aggiungere collegamenti ad
altre pagine
Per fare un collegamento ad una pagina su un altro
sito Web necessario fornire l'indirizzo Internet
completo (comunemente chiamato URL), per
esempio per creare un collegamento a www.w3c.org
dovete scrivere:
<p>Questo un link al
<a href="http://www.w3.org/">W3C</a></p>
Vedi la pagina HTML
52
Usare vari tipi di liste
53
Usare vari tipi di liste
L'HTML supporta tre tipi di liste.
Il primo tipo l'elenco puntato, definito spesso lista
non ordinata.
Esso usa i marcatori <ul> e <li>
54
Usare vari tipi di liste
Per esempio:
<ul>
<li>il primo elemento della lista</li>
<li>il secondo elemento della lista</li>
<li>il terzo elemento della lista</li>
</ul>
Notate che necessario chiudere sempre la lista con
il marcatore finale </ul>.
Vedi la pagina HTML
55
Usare vari tipi di liste
Il secondo tipo di lista l'elenco numerato, detto
anche lista ordinata.
Usa i marcatori <ol> e <li>
56
Usare vari tipi di liste
Per esempio:
<ol>
<li>il primo elemento della lista</li>
<li>il secondo elemento della lista</li>
<li>il terzo elemento della lista</li>
</ol>
Cos come per gli elenchi puntati, occorre sempre
chiudere la lista con il marcatore finale </ol>,
Vedi la pagina HTML
57
Usare vari tipi di liste
Il terzo ed ultimo tipo di lista l'elenco di definizioni,
che vi consente di elencare dei termini e le relative
definizioni.
Questo tipo di lista aperta con il marcatore <dl> ed
chiusa con </dl>.
Ogni termine comincia con un marcatore <dt> ed
ogni definizione con un <dd>.
58
Usare vari tipi di liste
Per esempio:
<dl> <dt>il primo termine</dt> <dd>la sua definizione</dd> <dt>il
secondo termine</dt> <dd>la sua definizione</dd> <dt>il terzo
termine</dt> <dd>la sua definizione</dd> </dl>
Vedi la pagina HTML
59
Inserire contenuti
multimediali
60
Inserire contenuti
multimediali
Dobbiamo prima di tutto distinguere tra due tipi di
contenuto multimediale: il contenuto interno ed il
contenuto esterno.
Il contenuto interno quello che fruibile
direttamente attraverso il browser, mentre quello
esterno richiede del software che non parte
integrante del browser.
61
Inserire contenuti
multimediali
Un tipico contenuto interno ad esempio una
semplice animazione come una gif animata, una
applet Java o un controllo ActiveX.
Per contenuto esterno si pu far riferimento ad un
filmato mpeg o una sorgente RealAudio ( che
comportano l'apertura dell'apposito lettore)
62
Inserire contenuti
multimediali
Iniziamo a trattare l'inserimento del contenuto
esterno che risulta un procedimento piuttosto
semplice: l'operazione da effettuare la scrittura di
un link che punti al file multimediale che si desidera
mandare in esecuzione.
63
Inserire contenuti
multimediali
Ad esempio per inserire il filmato libro.mpeg" nella
propria pagina necessario scrivere :
<A href=filmato.mov"> Vedi il Filmato </A>
vedi la pagina web
64
Inserire contenuti
multimediali
E' consigliabile inserire nel testo allegato ai contenuti
multimediali anche qualche informazione riguardo
alle dimensioni del file e ai tempi di caricamento
es.: Tempo richiesto per il download
65
Inserire contenuti
multimediali
si pu anche collegare il filmato ad una immagine o
frame significativo.
Vedi la pagina web
66
Inserire contenuti multimediali
interni
67
Inserire contenuti multimediali
interni
L'inserimento di contenuti interni invece
leggermente pi complesso e richiede l'uso di
appositi tag come <OBJECT>.
Conviene focalizzare lattenzione solo sul tag
<OBJECT> che quello raccomandato dal W3C.
68
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
69
Concetti ulteriori delle
pagine HTML
70
Concetti ulteriori delle
pagine HTML
Testo preformattato
Uno dei vantaggi del Web che il testo slitta
automaticamente su pi righe per adattare i margini alla
grandezza della finestra corrente. A volte per potreste
voler disabilitare questo comportamento. Per esempio
quando state inserendo esempi di codice di
programmazione. Potete fare ci utilizzando l'elemento
pre.
Ad esempio: vedi la pagina web
71
Aggiungere mappe
immagine
L'elemento area ha la funzione di definire una
regione dell'immagine e di collegarla a un indirizzo
Internet. L'attributo shape pu assumere i valori
"rect", "circle" o "poly". L'attributo "coords" specifica
le coordinate per una regione a seconda della forma.
rect: sinistra-x, alto-y, destra-x, basso-y
circle: centro-x, centro-y, raggio
poly: x
1
,y
1
, x
2
,y
2
, ... x
n
,y
n
Vedi la pagina HTML
72
Usare tabelle
Le tabelle sono utilizzate sia per fornire informazioni sia
a fini di presentazione. Potete allargare le tabelle fino a
farle coincidere con i margini della pagina, specificare
una larghezza fissa o lasciare che sia il browser a
dimensionare la tabella per adattarla ai contenuti.
73
Usare tabelle
Esempio:
<table border="1">
<tr><th>Anno</th><th>Vendite</th></tr>
<tr><td>2000</td><td>$18M</td></tr>
<tr><td>2001</td><td>$25M</td></tr>
<tr><td>2002</td><td>$36M</td></tr>
</table>
Vedi la pagina HTML
74
Spaziatura interna delle
celle
Potete incrementare per tutte le celle della tabella la
spaziatura interna [distanza tra il margine esterno della
cella e l'inizio del contenuto] usando l'attributo
cellpadding dell'elemento table. Per esempio, per
impostare la spaziatura interna a 10 pixel:
<table border="1" cellpadding="10">
Vedi la pagina HTML
75
Aggiungere attributi alle
tabelle
Per contro, l'attributo cellspacing determina lo spazio tra
le celle. Ecco come impostare la spaziatura tra le celle a
10:
<table border="1" cellpadding="10" cellspacing="10">
Vedi la pagina HTML
76
Allineamento del testo nelle
celle
Per impostazione predefinita i browser centrano le
intestazioni delle celle (th) ed allineano a sinistra i dati
(td). Potete modificare l'allineamento usando l'attributo
align, che pu essere aggiunto ad ogni cella o alla riga
(elemento tr). E' usato con i valori "left", "center" o
"right":
Vedi la pagina HTML
77
XML
XML vs. HTML
78
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
79
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>
80
XML vs. HTML
La tendenza invece quella di specificare precisamente
lapparenza dei dati:
<font size="-1" face="Arial, Helvetica, Sans-serif">
81
XML vs. HTML
Un metodo per separare la resa grafica dai contenuti
usare i CSS (Cascading Style Sheets), ma non sono
ancora standardizzati nei browser di ultima generazione.
W3C raccomanda luso di CSS
Anche le regole di accessibilit
82
XML vs. HTML
83
I CSS consentono di separare la rappresentazione dei
dati dalla loro struttura
Consentono di specificare la presentazione grafica in
modo pi preciso che con i tag HTML
Basta cambiare il CSS e la rappresentazione del sito
cambia
84
XML vs. HTML
Gli editor HTML spesso usano tag per in base alla resa
grafica che forniscono anzich al loro significato
semantico:
es. <UL> per lindentazione anzich per le liste non
numerate
85
XML vs. HTML
Le pagine web sono spesso
disegnate tenendo conto
delle differenti rese grafiche
delle varie versioni di
browser
86
XML vs. HTML
La struttura interna di un documento HTML molto
ridotta, per cui possibile scrivere documenti corretti
ma senza senso semantico:
es.: i titoli di un paragrafo possono essere sopra ai
titoli di un capitolo
87
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
88
XML vs. HTML
pi facile creare viste diverse degli stessi dati
89
XML - standard associati
Modeling Rules (DTD, Schema)
Stylesheets (XSL)
Linking (XLink, XPointer)
90
XML
Regole base di XML
Esempio DTD
91
HTML - esempio di pagina
<HTML>
<HEAD>
<TITLE>Lime Jello Marshmallow Cottage Cheese Surprise</TITLE>
</HEAD>
<BODY>
<H3>Lime Jello Marshmallow Cottage Cheese Surprise</H3>
My grandma's favorite (may she rest in peace).
<H4>Ingredients</H4>
<TABLE BORDER="1">
<TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR>
<TR><TD>1</TD><TD>box</TD><TD>lime gelatin</TD></TR>
<TR><TD>500</TD><TD>g</TD><TD>multicolored tiny marshmallows</TD></TR>
<TR><TD>500</TD><TD>ml</TD><TD>cottage cheese</TD></TR>
<TR><TD></TD><TD>dash</TD><TD>Tabasco sauce (optional)</TD></TR>
</TABLE>
<P>
<H4>Instructions</H4>
<OL>
<LI>Prepare lime gelatin according to package instructions...</LI>
<!-- and so on -->
</BODY>
</HTML>
92
HTML - esempio di pagina
93
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
94
XML - esempio di file
<?xml version="1.0 ?>
<Recipe>
<Name>Lime Jello Marshmallow Cottage Cheese Surprise</Name>
<Description>
My grandma's favorite (may she rest in peace).
</Description>
<Ingredients>
<Ingredient>
<Qty unit="box">1</Qty>
<Item>lime gelatin</Item>
</Ingredient>
<Ingredient>
<Qty unit="g">500</Qty>
<Item>multicolored tiny marshmallows</Item>
</Ingredient>
<Ingredient>
<Qty unit="ml">500</Qty>
<Item>Cottage cheese</Item>
</Ingredient>
<Ingredient>
<Qty unit="dash"/>
<Item optional="1">Tabasco
sauce</Item>
</Ingredient>
</Ingredients>
<Instructions>
<Step>
Prepare lime gelatin according to
package instructions
</Step>
<!-- And so on... -->
</Instructions>
</Recipe>
95
XML - analisi
<?xml version="1.0"?>
Header
<Ingredient>
<Qty unit="box">1</Qty>
<Item>lime gelatin</Item>
</Ingredient>
96
XML - analisi
Non c descritto come deve essere mostrata la ricetta.
I tipi dei dati devono essere definiti in un DTD:
document type definition
97
Esistono gi vari DTD standard:
HL7 SGML/XML industria ospedaliera
MathML matematica
XML/EDI elettronica
FDX scarpe
WML 1.x wireless markup
language
98
Nomenclatura XML
99
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
100
XML - tag
I tag non possono sovrapporsi:
<primotag> aaaaa <secondotag> bbbbbb
</primotag> </secondotag>
la forma accettabile :
<primotag> aaaaa <secondotag> bbbbbb
</secondotag> </primotag>
101
XML - tag
I valori degli attributi sono racchiusi da:
in HTML possono anche essere nudi:
<TABLE BORDER=1>
102
Well-formed: il documento segue le regole dellXML
valido: il documento segue anche le regole del DTD
103
<Ingredient>
<Qty unit="box">1</Qty>
<Qty unit=g">5</Qty>
<Item>lime gelatin</Item>
</Ingredient>
Quale la quantit giusta ??
104
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.
105
Un parser XML che valida un documento legge il
documento ed il DTD, e controlla la corrispondenza nei
confronti del DTD.
I validatori per HTML fanno un lavoro simile.
I browser HTML sono molto liberali...
106
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
107
DTD - esempio
<!-- DTD per le ricette -->
<!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Description (#PCDATA)>
<!ELEMENT Ingredients (Ingredient)*>
<!ELEMENT Ingredient (Qty, Item)>
<!ELEMENT Qty (#PCDATA)>
<!ATTLIST Qty unit CDATA #REQUIRED>
<!ELEMENT Item (#PCDATA)>
<!ATTLIST Item optional CDATA "0"
isVegetarian CDATA "true">
<!ELEMENT Instructions (Step)+>
108
<!ELEMENT Recipe (Name, Description?, Ingredients?,
Instructions?)>
<!ELEMENT...> definisce un tag di nome Recipe che
contiene gli elementi tra parentesi.
109
? significa che lelemento opzionale e pu apparire 1
o 0 volte
+ significa 1 o pi
* significa 1,0 o pi volte
110
<!ELEMENT Name (#PCDATA)>
Lelemento pu contenere solo caratteri e nientaltro
(parsed character data). Non pu avere figli.
111
<!ATTLIST Item optional CDATA "0" isVegetarian
CDATA "true">
Il tag ha due possibili attributi con relativo valore di
default
112
Un attributo pu essere reso obbligatorio con
#REQUIRED
Se un attributo non richiesto allora si pu indicare con
#IMPLIED
113
I tipi di attributi possono essere:
stringhe (CDATA o character data)
token (ID, IDREF, ENTITY, NMTOKEN)
attributi enumerati
114
XML
Esempio: RSS
115
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
116
117
Un programma pu aggregare informazione da diversi siti usando
RSS
118
XHTML
119
XHTML
il successore di HTML
Si basa sul rigore di XML applicandolo alle funzioni di
formattazione di HTML
Un documento XML deve essere well formed
120
I tag devono essere scritti in minuscolo !
La rappresentazione grafica dovrebbe usare solo CSS
(strict)
In alternativa si possono mettere tag di presentazione
anche nel codice XHTML (transitional)
121
Come funziona il web
Architettura client-server
122
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
123
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>
124
Come funziona il web
URL (Uniform Resource Locator): indirizzo per ogni
tipo di risorsa residente sui vari computer collegati alla
rete
tipo://host.dominio/path/filename
Esempio:
http://viplab.dsi.unifi.it/bertini/index.htm
125
Il Browser
Strumento per la navigazione
Il browser interpreta lHTML
Esempi: Mosaic, Netscape Navigator, Internet Explorer
Cosa Accade:
Connessione
Richiesta
Risposta
Termine
Messaggio di errore
126
.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
127
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.
128
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
129
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.
130
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.
131
Programmazione client-side
In realt, esiste la possibilit di incorporare elementi
dinamici nei documenti HTML, che possono essere
interpretati direttamente dal browser:
JavaScript e VBScript sono linguaggi che possono
essere racchiusi direttamente nel documento HTML.
Entrambi sono guidati dagli eventi (click del mouse
o entry da tastiera), e sono in grado di manipolare gli
elementi di un documento Web attraverso il browser;
eventi sono il click del mouse su particolari elementi della
pagina,
cos come il caricamento di una pagina.
132
Programmazione client-side
Questi linguaggi di script sono relativamente semplici da
usare, ma non particolarmente potenti:
il maggior vantaggio che consentono alla pagina di
variare dinamicamente alle condizioni o cambiamenti
del browser,
senza la necessit di fare accesso al server;
lo script eseguito (interpretato) direttamente nel
browser; in questo modo il numero di accessi al
server ridotto e la velocit
incrementata.
133
Programmazione client-side
Un tipico impiego quello di usare un semplice script per cambiare
lo stato di una piccola immagine usata per un bottone in una pagina
web, quando passa da uno stato on ad uno off.
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.
134
Come funziona il web
Web server
Programmazione server side
135
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).
136
Web server
Spesso il termine web-server utilizzato anche per
indicare una particolare macchina fisica dedicata al
compito specifico di eseguire il software di un particolare
web-server:
in questo caso non esiste una reale distinzione tra la
macchina ed il software eseguito;
in altri casi il software del server web pu essere eseguito
su di una macchina condivisa per le normali operazioni. La
soluzione dedicata di solito preferibile.
137
Programmazione server-side
La capacit di rispondere alle richieste degli utenti stata introdotta
nel software dei server web per trattare i dati introdotti attraverso
form HTML.
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).
138
Programmazione server-side
In una applicazione tipica, un form HTML inviato al server, e qui
passato attraverso il protocollo CGI ad un programma di
elaborazione.
I CGI forniscono anche 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).
139
Server Side Scripting
La necessit di linguaggi di scripting server side inclusi nel codice
HTML si resa evidente per superare i limiti posti dal solo HTML e
dagli script client side, in particolare per la costruzione di pagine
dinamiche e 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.
140
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.
141
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.
142
Cos il PHP
Il PHP (ufficialmente PHP: Hypertext preprocessor)
rappresenta un linguaggio
di scripting server-side,
incluso nel codice HTML.
Il codice PHP incluso tra
i tags speciali di inizio e di
fine (<?php e ?>), posti
allinterno di una pagina
HTML. I tag delimitano
lingresso e luscita dal PHP.
Ogni linea di codice PHP
deve essere terminata da ;.
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo A PHP script;
?>
</body>
<html>
143
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.
144
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.
145
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
della stringa o della variabile che segue.
146
Come funziona il web
Web e database
147
Tecnologia del Web
Nella prospettiva di collegare le componenti web con un
database, tre sono le componenti base per qualsiasi
applicazione:
la tecnologia del Web (lato server e lato client);
la tecnologia del database:
la tecnologia per il collegamento client/server e tra le
componenti Web ed il database.

La tecnologia impiegata nellultimo punto va sotto il


nome di middleware, in quanto si situa tra lapplicazione
e la rete.
148
Tecnologia del Web
Layout generico per le tre componenti con alcune delle
tecnologie che le realizzano.
HTML
Web
JavaScript
Application Servers
Middleware
jsp, php, asp
Database
SQL
ODBC
Native Database
Gateways
CGI
Web Server
APIs
149
Web side
La struttura base del processo di accesso alle informazioni sul Web
comprende le seguenti fasi:
un utente usando un web browser richiede un file da un
computer remoto ad un certo indirizzo;
il web browser invia la richiesta in rete utilizzando il protocollo
HTTP;
il web-server sul computer remoto 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.
150
Struttura client/server sul
Web
User
(client)
Web Browser
1. Lutente richiede il file
6. Output HTML formattato
Web Server
2. richiesta
HTTP
5. risposta
HTTP
Remote Computer
(server)
3. Il Web server processa la
richiesta
4. Il file ritrovato dal Web
server
151
Accessibilit
152
ACCESSIBILIT
I siti Web devono devono essere progettati in modo da
garantire la consultazione anche da individui affetti da
disabilit motorie (controllo arti) o sensoriali (vista e
udito), o cognitive, o condizionati 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
153
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.
Limiti dellutente
154
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
155
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]
Una sito web deve osservare questi check point altrimenti linformazione
non risulta accessibile a uno o pi gruppi di utenti.
[Priorit 2]
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
[Priorit 3]
Una pagina web pu osservare questi check point altrimenti linformazione
pu risultare in qualche modo difficilmente accessibile a uno o pi gruppi di
utenti
Linee guida W3C: check point
156
SI definiscono tre livelli di conformit per un sito web
Conformit di livello A
Sono stati rispettati tutti i check point di Priorit 1
Conformit di livello AA
Sono stati rispettati tutti i check point di Priorit 1 e 2
Conformit di livello AAA
Sono stati rispettati tutti i check point di Priorit 1,2 e 3
Linee guida W3C: Conformit
157
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
158
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]
Link testuali per ogni regione di una image-map [Priorit
1]
Prevedere testo equivalente per la descrizione di ogni contenuto
multimediale [Priorit 1]
Linee guida
159
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]
Linee guida
160
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]
..
Linee guida
161
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]
..
Linee guida
162
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]
Linee guida
163
Guideline 6. Assicurarsi che le pagine contenenti nuove tecnologie si
trasformino in maniera adeguata
Assicurarsi che le pagine siano accessibili anche quando le nuove
tecnologie non sono disponibili (Es. nuovi Plug-in)
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]
Linee guida
164
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]

Linee guida
165
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]
Linee guida
166
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]..
Linee guida
167
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]
.
Linee guida
168
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]
.
Linee guida
169
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]
.
Linee guida
170
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]

Linee guida
171
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]

Linee guida
172
Trattare separatamente, il contenuto, la struttura e la presentazione di
una pagina, facendo uso di "fogli di stile"
Non usare il colore come unico veicolo di informazione
Usare grandezze relative per indicare le dimensioni e la posizione delle
componenti di una pagina
Creare documenti "scalabili che non dipendono da un solo tipo di
hardware
Sintesi raccomandazioni
173
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
Sintesi raccomandazioni
174
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.
Sintesi raccomandazioni
175
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
Sintesi raccomandazioni
176
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).
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*2
0
+ 1*2
1
+ 1*2
2
+ ) = ( 5*10
0
+
5*10
1
+ 2*10
2
)
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

Potrebbero piacerti anche