FONDAMENTI DI INFORMATICA

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

Programma ANNO ACCADEMICO 2002-2003
Parte I: Calcolatori e Sistemi operativi
- architettura di un calcolatore - funzionalità di un sistema operativo - caratteristiche generali di Windows e Linux - elementi di amministrazione in ambiente Windows - programmazione

Programma ANNO ACCADEMICO 2002-2003
Parte II: Reti di calcolatori
- architettura di internet - reti locali (Ethernet) e connettività remota (adsl) - Internetworking - Hubs, Routers e Switches - configurazione di una connessione locale e remota

Programma ANNO ACCADEMICO 2002-2003
Parte III: Strumenti di produttività
- Editor (Word) - fogli elettronici (Excel) - clienti di posta elettronica (Eudora) - browsers (Explorer, Mozilla, Opera) - FTP (Ws_ftp) - freeware e open source

Programma ANNO ACCADEMICO 2002-2003
Parte IV: Database
- funzionalità e organizzazione relazionale di un database - elementi di progetto - Access - Cenni su server SQL

Programma ANNO ACCADEMICO 2002-2003
Parte V: Web technologies
- Html - fogli di stile - Caratteristiche generali di uno strumento di authoring - prodotti commerciali e freeware - laboratorio su dreamweaver - concetti XML - cenni su integrazione con basi di dati (PhP e MySQL)

Programma ANNO ACCADEMICO 2002-2003
Parte VI: Graphic tools
- formati immagine - grafica raster e vettoriale - photoshop e illustrator - cenni su tecniche di elaborazione di immagini - cenni su webdesign e usabilità di siti web

PARTE I

Calcolatori e Sistemi operativi

Architettura di un calcolatore

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

Operazioni svolte da un calcolatore

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

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

Scheda madre

Hardware di memorizzazione

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

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

Hardware di output
Dispositivi che traducono le informazioni elaborate dal computer in una forma comprensibile Dispositivi periferici – espandono le capacità di input, di memorizzazione e di output di un computer.

- Scheda video - Scheda audio - Monitor

- Casse acustiche - Stampante

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

Software
Software di sistema - Esegue operazioni fondamentali - Consente l’esecuzione 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 nell’unità 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 all’esecuzione di un insieme di istruzioni in linguaggio macchina che specificano le operazioni da compiere: - trasferisce dati e istruzioni da e verso la memoria - esegue istruzioni di controllo e di salto. La ALU può eseguire operazioni aritmetiche come addizione e moltiplicazione, o logiche

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 l’accesso ad una grande quantità di dati: - veloce al fine di massimizzare le prestazioni; - se i dati non sono accessibili deve aspettare. La quantità di memoria ad alta velocità in grado di mantenere interamente i dati gestiti dall’unità centrale avrebbe un costo eccessivo Una memoria RAM non è in grado di supportare questa velocità. - è il motivo che porta all’introduzione della cache.

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. Sull’hard-disk sono installati i software applicativi ed i dati utente. Sull’hard-disk è realizzata anche la memoria virtuale: - rappresenta lo stadio finale della gerarchia di memorie utilizzate dalla CPU.

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 dall’interno 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 dell’elaboratore 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 all’interno del chip della CPU, e può lavorare alla stessa frequenza: - dimensione tra 2K e 64K. La cache di II livello è localizzata su una scheda con connessione diretta alla CPU, o integrata direttamente: - dimensioni da 256k a 2M.

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 è l’host 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 l’informazione digitale interna al calcolatore in qualcosa che può essere visto dall’uomo sullo schermo. Lo schermo è composto da punti (pixels) ad ognuno dei quali è associato un colore:
- attualmente la maggior parte dei monitor supporta 16.8 milioni di colori.

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; - un’interfaccia verso la CPU, per consentire la scrittura nella memoria interna della scheda; - un’interfaccia video, per consentire la generazione dei segnali verso i pixels del monitor.

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 l’utilizzo 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
⌧L’OCR 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 all’A4 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 all’interno 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

L’immagine raggiunge il CCD tramite un complesso di specchi, lenti e filtri tipicamente montati sulla testa mobile dello scanner I fogli sono illuminati da una lampada: fluorescente (vecchi), Cold 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 l’immagine 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 l’immagine 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 l’immagine

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à dell’ottica 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

L’interpolazione
L’interpolazione è un’elaborazione effettuata dal software dello scanner per aumentare la risoluzione percepita di un’immagine Vengono creati dei pixel partendo dai dati dei pixel ottenuti dal CCD

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 l’informazione 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 dell’accensione 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:
L’hardware è inutile senza il software… Fornisce funzioni per gestire a basso livello periferiche: fondamentali all’avvio del PC

Quando il computer viene avviato il microprocessore deve prendere le prime istruzioni da eseguire da qualche parte
Non può essere il S.O.: è memorizzato su di un qualche disco ma la CPU non sa neanche come accedere al disco ed ai file Il BIOS fornisce le istruzioni necessarie ad accedere il disco e caricare il S.O.

BIOS e POST
Su molte macchine il BIOS scrive sullo schermo del testo che descrive diverse caratteristiche del PC, come la quantità di memoria ed il tipo di dischi presenti. Inoltre svolge anche le seguenti operazioni:
1. 2. 3. Controlla se la scheda video è presente (alcuni PC non ne hanno bisogno, es. server di calcolo). Le schede più potenti (es. per 3D) hanno spesso un loro processore e loro BIOS. Eventualmente, in alternativa, il BIOS del PC carica informazioni da un’altra ROM presente sulla scheda madre Il BIOS controlla che si tratti di un avvio da macchina spenta (cold boot) o di un riavvio (es. Riavvio della funzione di chiusura di Windows). Se è un cold boot il BIOS evita il POST Se non è un cold boot il BIOS allora verifica la RAM, con operazioni di scrittura/lettura. Controlla la presenza di mouse e tastiera. Controlla la presenza di un bus PCI, e nel caso controlla la presenza di schede PCI. Se viene identificato un errore questo viene notificato con suoni o scritte: ⌧ Se deve controllare il manuale del PC per interpretarli, non c’è uno standard ⌧ Un errore in questa fase è quasi sicuramente un errore hardware • Prima di disperarsi si può: aprire il computer, controllare che tutte le schede e cavi siano fissati correttamente Il BIOS mostra alcuni dettagli sul sistema: ⌧ Processore ⌧ Floppy e hard disk ⌧ Memoria ⌧ Versione BIOS e data ⌧ schermo Se esistono dispositivi con driver speciali, es. dischi SCSI, questi sono caricati da una ROM presente sul dispositivo, ed il BIOS ne mostra le informazioni

4.

5.

BIOS e POST: approfondimento
Alcune macchine non hanno bisogno di schede video
Si tratta tipicamente di macchine dedicate al calcolo, es SGI Origin

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

Lo spengimento richiederà un cold boot, il riavvio no
Queste funzioni sono disponibili anche in altri S.O. come Linux!

Aggiornamento del BIOS
Il BIOS è un programma…
…ogni tanto ci sono versioni nuove: è possibile prenderle dai siti internet dei produttori per:
⌧Correggere errori ⌧Aggiungere nuove funzioni, es. supportare nuove periferiche o S.O.

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

Impostazioni del BIOS
E’ possibile all’atto dell’avviamento del PC entrare in una fase di configurazione del BIOS (premendo una sequenza di tasti che dipende dal PC). Entrati nella fase di set-up è possibile modificare e salvare alcune impostazioni di sistema:
data e ora di sistema; sequenza di boot; plug and play; impostazioni per tastiera e mouse; sicurezza (password per l’accesso al sistema); power management.

Impostazioni del BIOS: approfondimento
Data e ora di sistema: sono aggiornate automaticamente anche quando il PC è spento (l’orologio interno ha una batteria)
Quando si creano o modificano i dati su disco il S.O. registra data e ora Si può modificare data e ora anche dal S.O. L’orologio si sincronizza anche via Internet con l’Istituto Galileo Ferraris (o altri orologi atomici)

Sicurezza: si può impostare una password che blocca l’accesso alla configurazione del BIOS ed eventualmente anche al PC Power management:
Risparmio energetico: si può decidere se e quando spengere alcune componenti della macchina, es. dischi, monitor e PC Wake-up on Lan: si può accendere una macchina inviando un apposito comando tramite la scheda di rete

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 Plug’N’Play (‘N’Pray !) insieme con Windows 95 Bios PnP + ECSD (Extended System Configuration Data) + S.O. PnP = sistema PnP

Il BIOS PnP all’accensione 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 all’avvio 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 l’uso della RAM e determina se la memoria virtuale è necessaria

Gestione dei dispositivi (device): fornisce un’interfaccia 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 all’inizio, 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. l’amministratore del server

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

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 l’interfaccia 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 nell’ultimo 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 Un’estremità del connettore è collegata alla scheda madre

IDE Un’interfaccia consente di collegare due dispositivi ma: - ognuno ha un suo controllore… chi parla ? - soluzione: un dispositivo viene configurato come Master e l’altro come Slave Normalmente ogni PC ha due interfacce IDE

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

IDE

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

SCSI

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

SCSI

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

SCSI

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

SCSI
controller : - serve come interfaccia tra i dispositivi collegati e lo SCSI bus sulla schedamadre - viene chiamato anche host adapter - può essere una card inserita in uno slot oppure può essere direttamente inserito sullo scheda madre

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

SCSI cavo : - può essere interno o esterno

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

Il punto di forza di SCSI e RAID (Redundant array of independent disks): - dischi collegati tra loro e considerati come un’unica 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 l’ultimo quando lo spengiamo Consente a tutti i programmi applicativi di essere eseguiti Consente ai programmi applicativi di usare l’hardware

Software di base
Software di base
Insieme di programmi che interagiscono con l’hardware e il firmware del calcolatore e cela all’utente la struttura fisica dei dispositivi, realizzando una complessa macchina 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 dall’utente
⌧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 dell’organizzazione delle informazioni sui supporti Esecuzione di applicativi Fermo del sistema e spegnimento

Partenza del sistema:
L’ultimo boot loader passa il controllo al S.O. che porta al termine il caricamento del S.O. stesso:
⌧Attiva i driver ⌧Attiva le periferiche ⌧Attiva le connessioni di rete

Configurazione/gestione del sistema:
Controlla e gestisce l’hardware
⌧Plug’n’play

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 l’utente
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 l’interfaccia vera e propria: finestre, pulsanti, icone, etc.

Linux - KDE

Linux - Gnome

SGI IRIX

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

cursore icone

finestra desktop avvio rapido taskbar tray

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

Gestione della memoria secondaria
La gestione della collocazione delle informazioni in memoria di massa è svolta dal File System “Sistema di Archiviazione” dove File: sequenza di byte che rappresentano una informazione omogenea

Biblioteca Armadi Scaffali Libri

Memoria di massa Cartelle o Directory Sottodirectory File

Una struttura ad albero
Radice Cartella2

File1

Cartella1

File1.1

Cartella1.1 FileA

Cartella2.1 FileA

Cartella1.1.A

FileB

Cartella1.1.A.1

FileB

Esempio
RADICE RADICE

GIOCHI GIOCHI
•Solitario.exe •FreeCell.exe

DOCUMENTI DOCUMENTI

ESERCIZI ESERCIZI

LETTERE LETTERE
•Mialett.txt •Curric.doc

LEZIONI LEZIONI
•Lab.ppt •so1.ppt

VARIE VARIE
•Ricette.txt

DW DW
•ES1.html •ES2.html •ES3.html

EXCEL EXCEL
•EX01.xls •EX02.xls

Esempio Windows

Unità a disco tipiche (Windows)
A:\ C:\ D:\ prima unità di floppy disk primo hard disk lettore CD/DVD

Man mano che si aggiungono dischi si usano le altre lettere

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

Un disco può essere diviso in partizioni
Es. una partizione per S.O. ed una per i dati
⌧Se devo reinstallare il S.O. posso anche riformattare la partizione senza perdere i dati

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

Esistono diversi tipi di file system, es.:
NTFS FAT FAT32 EXT2 EXT3 Windows

Linux

Alcuni S.O. gestiscono più tipi di file system Cosa cambia ?
Come sono memorizzati i file sul disco Proprietà più o meno avanzate
⌧Es. quota disco, diritti di accesso, frammentazione file

I sistemi Unix NON identificano i dischi con le lettere
È più facile aggiungere/modificare dischi al computer
⌧Sotto Windows ci si ritrova con lettere che fanno riferimento a dischi inesistenti o non più validi…

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

Ogni file, all’interno di una cartella, è identificato da un Nome e da una Estensione. Per identificare un file è necessario specificare un cammino (path): Unità:\Cartella\Nome.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 dell’applicazione che gestisce il file dati Doppio click sull’icona del file: Windows usa l’estensione 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 un’altra, tipicamente senza che l’utente 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. l’utilità di backup è già inclusa o comunque è liberamente disponibile
Es.: Linux include tutti gli strumenti di backup, in XP è presente sul CD di sistema ma deve essere installata a parte

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à dell’organizzazione 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 dell’infrastruttura Costi di comunicazione, ovvero di trasmissione dell’informazione 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 L’affidabilità 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 l’impiego 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) l’affidabilità dipende dalla linea

Reti miste
Star-bus È la tipologia più diffusa

Codifica digitale dell’informazione
Nei sistemi digitali l’unità fondamentale è il bit, che può assumere solo due stati (‘0’ e ‘1’) Informazioni più complesse vengono rappresentate attraverso insiemi di bit (byte, word, …) Sistema di numerazione binario Codici • Codice ASCII per i caratteri

77
01001101 01000001

A

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 nell’unità di tempo
1 bit/s 0 8 2 bit/s 0 8 tempo (s) tempo (s)

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

Broadband (banda larga) - accesso ad alta velocità

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

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

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

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

Terminologia
La parola “server” si applica sia ai computer che ai programmi che forniscono un servizio
In ambito Unix i programmi server sono chiamati anche “demoni” (daemon)
⌧Es. Apache è un server (daemon) web

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

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

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

Servizi richiesti da client
file dati pagine web applicazioni

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

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

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

LAN: Ethernet
La scheda comunica mandando segnali sul cavo (doppino intrecciato o coassiale) Può parlare un solo computer alla volta
Altrimenti si ha una “collisione” Ethernet DEVE riconoscere quando c’è una collisione, così i dispositivi che l’hanno provocata riprovano a parlare a turno

Ethernet: limiti
C’è un limite di lunghezza dei cavi della rete
Dovuto ai tempi di trasmissione del segnale

Per aumentare le dimensioni della rete si uniscono sezioni di cavi Ethernet con repeater
Per una rete Ethernet si possono avere al massimo 4 ripetitori fra due host

Hub
consente la realizzazione di una rete Ethernet con configurazione a stella, utilizzando cavi UTP anziché coassiali; il suo impiego non influisce in alcun modo sul dominio di collisione
Estremamente comune ! Es. usato nelle reti casalinghe o piccoli uffici

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

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

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

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

Anche lo switch è un apparato molto comune
È più costoso di un hub: non si limita a ripetere il segnale Migliora il funzionamento della rete: meno congestione

Ideale per reti sopra i 7-8 computer, e dove ci sono più server
Due client potrebbero parlare con server diversi contemporaneamente

LAN: condivisione di file
Nei sistemi Unix si usa NFS per condividere dischi In Windows tipicamente si usa il protocollo NETBios (Client for Microsoft Networks)

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

Windows: condivisione file (1/2)
Si attivano i servizi di condivisione file

Windows: condivisione file (2/2)
Si selezionano le cartelle da condividere, con eventuali password

Si esplorano le risorse di rete

Windows: gruppo di lavoro

Risorse condivise da un computer

Internet: come collegarsi
Per ottenere un accesso a Internet è necessario:

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

SERVIZIO Modem telefonico ISDN xDSL T1 Modem via cavo Satellite Wireless

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

Modem telefonico
a bassa velocità ma economico e disponibile ovunque

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

Segnali e modem

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

Linee telefoniche ad alta velocità
xDSL (Digital Subscriber Line)
Sempre attiva Trasmissione dei dati costante Occorre trovarsi in prossimità della centrale di commutazione

Spesso un dispositivo xDSL funziona anche come Hub

Linee telefoniche ad alta velocità
Linea T1
Linea di connessione locale Trasporta 24 circuiti telefonici Utilizzata da aziende, enti governativi e siti accademici

Linea T3
Trasmette a 43 Mbit/s Costi molto elevati

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

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

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

Windows: collegamento via modem
Dati necessari:
Numero di telefono DNS (non sempre) User id e password

Windows: collegamento via modem
Si esegue il collegamento manualmente attivando il dialer Oppure il dialer è attivato automaticamente dal programma, es. Explorer o Outlook

Attenzione ai dialer abusivi !
Rimpiazzano il dialer normale e fanno chiamate costose all’estero …attenti ai banner che promettono loghi, suonerie per cellulari o immagini pornografiche…

Internet protocol suite
Indipendente dalla tecnologia delle reti Interconnessione universale Protocolli per l’indirizzamento e la trasmissione dei dati
IP TCP UDP

Tutti i computer che si affacciano su internet devono avere un indirizzo IP L’indirizzo 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 all’altra del router Un “modem” ADSL che funziona come Hub funziona anche come router:
Riceve le richieste dai PC attaccati e decide se mandare i dati su Internet o mantenerli dentro la LAN

Windows: TCP/IP

Windows: proprietà TCP/IP

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

Domain Name Service (1/4)
Problema: ricordarsi gli indirizzi IP Soluzione: assegnazione di nomi alle macchine (e alle reti) Sorge un nuovo problema, ovvero la gestione dei nomi: chi conosce i nomi di tutti i computer su internet ?

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

Domain Name Service (3/4)
. (root)

edu

com

org

it

mit

unifi

www

www.mit.edu

dsi

pippo.dsi.unifi.it

pippo

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

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 l’avvenuta 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 l’informazione
⌧Es. Trasformano immagini o testo in collegamenti ipertestuali

Uso del WWW
Informazione Intrattenimento Commercio elettronico Posta elettronica

Perché il WWW è interessante e facilmente navigabile
Formato multimediale Uso degli ipertesti

Termini per il Web
Siti Web Pagine Web Browser URL Portali Web

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

Il domain name segue le regole del DNS

Se nella URL non c’è il filename di solito il server web manda il file di nome index.htm o default.html
È la home page Quando si costruisce un sito web è consigliato creare sempre la home page: si semplifica la vita al visitatore

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

Indirizzo di posta elettronica
Nome utente Nome di dominio

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

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

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

Invio di posta elettronica

Ricezione di posta elettronica

Rispondere a un messaggio di posta elettronica

Allegati

Funzioni degli applicativi da ufficio più comuni:
Gestione testi Calcolo Gestione archivi Creazione presentazioni

6

I programmi che svolgono questi lavori sono spesso integrati
Può essere utile effettuare dei calcoli, da cui creare un grafico ed inserire il grafico in una presentazione… …oppure creare un indirizzario e automatizzare la creazione di lettere
7

Microsoft Office è la suite di strumenti di lavoro più diffusa
È la gallina dalle uova d’oro di Microsoft

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

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

9

I programmi principali di MS Office sono:
Word per elaborazione testi (word processing) Excel per foglio di calcolo PowerPoint per le presentazioni Access per gestire archivi Outlook per posta e personal information management

10

Per iniziare a lavorare:
Si apre on documento già esistente Si sceglie un programma dal desktop o menu Avvio Si apre “Nuovo documento Office” dal menu Avvio

11

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

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

Le righe sono identificate da numeri
Ci sono 65536 colonne

13

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

14

Barra del titolo

Barra dei menu

Barra Standard Barra formattazione

256 colonne
65.536 righe

Barra della formula

Barre di scorrimento

Elenco dei fogli

Barra di stato

15

Cella

D5

16

Zona B3:D10

17

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

19

Contenuto celle
All'interno delle celle posso scrivere tre cose:
del testo
⌧Tutto quello che contiene almeno un carattere non numerico o separatore numerico

dei numeri
⌧Date e ore sono numeri

delle formule
20

Cancellazione ed eliminazione
Le celle vengono ripulite con il tasto Canc (o Del) Per cancellare una colonna o riga la si deve selezionare e quindi cancellare (es. con menu contestuale)

21

Nell’ esempio seguente fate attenzione alla riga in cui si trova la cella contenente la stringa “dato a” Nella prima slide è la 4 riga, in quella successiva è nella 3

22

23

24

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

26

27

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

28

Importare dati Excel in Word
Fogli di calcolo (e grafici) di Excel possono essere inseriti in documenti di Word o Powerpoint Il metodo più banale è la semplice copia di una selezione
I dati sono copiati come tabella di Word
29

30

In alternativa si importa o collega un file
Il doppio clic sul foglio inserito fa aprire Excel Nell’importazione i dati del file Excel vengono completamente inseriti nel documento
⌧Le modifiche successive ai dati rimangono nel documento

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

31

32

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

33

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

34

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

35

Formule e funzioni
In Excel le elaborazioni numeriche possono essere effettuate tramite: formule utente funzioni predefinite Le formule sono espressioni in cui vengono indicate le celle, con le loro coordinate, combinate con gli opportuni operatori algebrici. Le funzioni sono “formule chiavi in mano”, residenti in EXCEL; hanno un algoritmo di calcolo già definito.
36

Tutte le formule iniziano con un =

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

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

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

spazio

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

cella contenente la formula celle utilizzate nella formula

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

Indirizzamento assoluto delle celle
Se la formula in A2 è =$B$1+B3+$A$4 quando viene copiata in D3 diventa =$B$1+E4+$A$4 per le celle B1 e A4 è stato utilizzato l’indirizzamento assoluto le celle si dicono bloccate Indirizzamento misto $B1 si blocca la colonna B$1 si blocca la riga

41

Blocco riquadri
Se mettiamo dei titoli su una riga o colonna ed poi inseriamo molti dati questi possono scomparire dalla pagina, per via dello scrolling
Per mantenere visibili le intestazioni si blocca un riquadro

42

Le colonne da C a F sono nascoste

Riga blocco riquadri

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

Formato dati
Formattazione grafica

44

Una tabella di dati può essere formattata automaticamente

45

Formattazione dei dati
Es. valuta, data, percentuale, …

46

47

Funzioni
Le funzioni sono procedure, già memorizzate, che svolgono calcoli anche complessi. Per utilizzare una funzione è sufficiente richiamarla con il suo nome e indicare i valori o i riferimenti di cella su cui deve operare. I dati sui quali una funzione agisce si dicono argomenti. Per inserire in una cella una funzione:
digitare direttamente il nome e gli argomenti usare l’Autocomposizione funzioni
48

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

Le funzioni contemplate nel foglio di lavoro Excel sono numerose e per praticità di ricerca sono suddivise per categorie:
– – – – – – – – – Database Data e ora Finanziarie Informative Logiche Ricerca e riferimento Matematiche e trigonometriche Statistiche Testo

50

La funzione somma è molto comune
Excel la calcola al volo sulle selezioni di celle Si possono scegliere anche altre formule Il valore di questi calcoli NON è memorizzato in nessuna cella
51

52

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

53

quando si preme il tasto Incolla funzione

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

54

Seconda finestra dialogo Autocomposizione funzioni

Descrizione

Risultato

Argomenti
55

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

56

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

Azione da eseguire se il test è VERO

Azione da eseguire se il test è FALSO

SE(test;se_vero;se_falso)
L’azione può essere una formula da calcolare o una stringa da scrivere SE(A1>=0;A1*10;-A1)
57

L’argomento di una funzione SE() può essere un’altra funzione SE(). SE(Test1;val1;SE(Test2;val2;val3))
vero falso

Test1

val1

vero

Test2

falso

val2

val3
58

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

vero

Test1

falso

vero

falso

Test2

val1

val2

val3

59

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

60

Funzioni “condizionali”
SOMMA.SE(intervallo;criteri;int_somma) Intervallo è l'intervallo di celle che si desidera calcolare. Criteri sono i criteri in forma di numeri, espressioni o testo che determinano le celle che verranno sommate. Ad esempio, criteri può essere espresso come 32, "32", ">32", "mele". Int_somma sono le celle da sommare. Le celle in int_somma vengono sommate solo se le celle corrispondenti in intervallo soddisfano i criteri. Se int_somma è omesso, verranno sommate le celle in intervallo. 61

Esempio

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

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

63

Funzioni “condizionali”
CONTA.SE(intervallo;criteri)

Intervallo è l'intervallo di celle a partire dal quale si desidera contare le celle. Criteri sono i criteri in forma di numeri, espressioni o testo che determinano quali celle verranno contate.

64

Esempio

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

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

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

ARROTONDA(num;num_cifre)

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

Esempio

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

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

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

restituiscono il numero di righe o di colonne di una zona CERCA.VERT(valore;matrice;indice) restituisce da una matrice (zona) il valore che si trova nella colonna indice in corrispondenza della riga in cui è presente nella prima colonna il valore indicato VAL.VUOTO(cella) restituisce il valore VERO se il contenuto della cella è vuoto
69

Esempio

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

Alcune funzioni matriciali
Matr.inversa(matrice) (*) calcola la matrice inversa di una matrice assegnata Matr.determ(matrice) calcola il determinante di una matrice assegnata Matr.prodotto(matrice1;matrice2) (*) calcola il prodotto tra due matrici assegante
(*) Prima

di scrivere la funzione è necessario selezionare interamente la zona di destinazione, che deve essere compatibile con la matrice risultato; bisogna inoltre confermare la funzione con la combinazione CTRL+SHIFT+INVIO
71

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

Tabelle pivot
Servono a estrarre e visualizzare dati senza impostare formule complicate Sono uno strumento di analisi
Es. creare una tabella riassuntiva di un inventario di dischi
73

74

75

76

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

77

Si nota come le date siano già state riunite

78

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

79

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

80

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

81

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

82

Si trascina l’IVA nella sezione dei dati

I risultati del pivot possono essere usati in altre celle
83

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

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

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

Costruzione di un grafico
La costruzione di un grafico è guidata da una procedura di autocomposizione, che si sviluppa in una serie di finestre di dialogo. 1) Selezione oggetto 2) Scelta comando grafico L’oggetto è la zona contenente i dati. Suggerimenti: • impostare la tabella in modo semplice (evitare righe e colonne vuote) • inserire le etichette di descrizione

85

Costruzione di un grafico, prima finestra
Al primo passaggio si scelgono tipo e sottotipo di grafico

86

Costruzione di un grafico, seconda finestra
Al secondo passaggio è già visibile il grafico in anteprima.

Interventi sulle serie (descrizioni e numeri)

87

Costruzione di un grafico, terza finestra

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

Costruzione di un grafico, quarta finestra

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

Costruzione di un grafico, risultato finale!

90

Serie

Titolo del grafico Pareti

Assi Legenda

Area del grafico
91

Aggiunta retta di regressione

92

93

Le sorgenti dei dati da cui creare il grafico sono le serie di dati
Se le serie dati sono selezionate per righe o colonne il grafico cambia !
⌧Si deve scegliere l’ordine giusto

94

95

Imposta pagina

96

Stampa

97

Stampa
È importante regolare l’aspetto del foglio in stampa
Usate anteprima di stampa ed il pulsante “Imposta”

98

L’impostazione margini è simile a quella di Word
In più si può centrare la tabella

99

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

100

Intestazioni e piè di pagina si inseriscono dalle proprietà di pagina
in Word sono invece parte del documento

101

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

102

Per non stampare la griglia delle celle:

103

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

Esempio

=G7+H7 =G7+H7

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

Tecniche avanzate
Formattazione condizionale Etichette Ricerca obiettivo Archivi
106

Formattazione condizionale

107

108

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

109

Ricerca obiettivo
Consideriamo il caso della crescita di un capitale Ct secondo la regola dell’interesse composto: Ct = C0(1 + i)t Ci chiediamo partendo da un capitale iniziale quale deve essere il tasso affinché si possa avere in un tempo t un certo montante.

110

111

Archivio in Excel
In Excel archivio (database) vuol dire tabella. Per garantire il corretto funzionamento dei comandi di database la tabella di dati deve essere costruita secondo alcune regole: una prima riga della tabella deve contenere l’intestazione, cioè il nome del campo vanno evitate righe vuote, anche tra intestazione e righe successive la tabella deve essere isolata, cioè separata da almeno una riga o colonna vuota da formule, funzioni, ecc.

112

Tipico database di Excel

record campi
113

Ordinamento di un database

114

Ordinamento di un database, risultato finale

115

Selezione mediante filtri
Selezionare la tabella Selezionare Filtro Automatico dal menu Dati: Excel posiziona delle caselle di selezione a fianco di ogni nome di campo

Cliccando su una freccia appare una lista con tutti i contenuti del campo Scegliendo una voce della lista, Excel estrae tutti i record contenenti quel valore. Cliccando su una freccia appare anche un’opzione molto utile: Personalizza. Questa opzione permette di estrarre dati anche secondo intervalli di valori o confrontando stringhe di testo.
116

Personalizza filtro automatico

117

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

Introduzione:

Applicazioni dei database sul Web

7

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

8

Cosa hanno in comune due siti web come: Amazon: grande magazzino virtuale WebMonkey: rivista di design per il web ????? Usano tutti e due un database…
9

10

11

Perché usare un database sul Web
Due premesse: il Web è un ottimo mezzo per la diffusione delle informazioni; i database sono il mezzo idoneo per immagazzinare ed organizzare dati da cui estrarre informazioni. È possibile raggruppare i diversi modi in cui i database sono impiegati sul Web, in tre tipi di applicazioni: creazione dinamica di contenuto; transazione di informazioni; memorizzazione ed analisi di dati.

12

Creazione dinamica di contenuto sul Web
Normalmente ogni pagina Web in un sito è un’entità singola. Le pagine sono progettate individualmente e ciascuna esiste come un file distinto. Tuttavia, in molti siti un elevato numero di pagine è basato su di uno schema (template) fisso che aiuta a semplificare o automatizzare il processo di progetto. Seguendo questo schema, una grande quantità di tempo è spesa per immettere o fare il “cut and paste” di testo o di nomi di file in questo template, memorizzando un elevato numero di file.
13

Creazione dinamica di contenuto sul Web
Una pagina di un catalogo online può rappresentare un esempio. Nome prodotto Immagine Descrizione Numero di telefono per ordinare scritta Codice prodotto Prezzo Opzioni
14

Creazione dinamica di contenuto sul Web
Una soluzione efficiente che semplifica drasticamente il processo di editing è quella di memorizzare il file immagine e le descrizioni testuali in un database e “lasciare” che sia un programma, appositamente creato ed eseguito in corrispondenza alla chiamata di una pagine web, a riempire i campi del template. È questa l’essenza della creazione dinamica di pagine Web.

15

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

rotondo, 500 quadrato

Creazione dinamica di contenuto sul Web
Un unico script sul server genera un numero arbitrario di pagine html tutte con lo stesso formato, il cui contenuto è letto da un database.
Tabella Immagini
Middleware (php,cgi,asp)
ImageID Nome ……. 14 …… Righe ……. Colonne …… 100 120 …… Bit per Pixel Risoluzione …… 24 24 …… …… 20 20 ……

chateau1.j 100 pg Fightingforms.jpg …… 100 …….

DB

15 …….

17

Creazione dinamica di contenuto sul Web
Le pagine Web create dinamicamente attraverso un database, ed il template usato per generare il codice HTML offrono una serie di vantaggi: il sistema cresce con semplicità. Ad esempio se un catalogo online comprende 1000 pagine, una modifica nel layout richiederebbe, nel caso di pagine statiche, l’editing di tutte le pagine. Elimina possibili errori Nel caso dinamico è sufficiente modificare il layout dell’unico template. Sulla base di questo tutte le pagine vengono generate nello stesso modo, applicando i dati nel database al nuovo template. 18

Creazione dinamica di contenuto sul Web
Un altro vantaggio della gestione dinamica delle pagine Web è il risparmio di memoria. Questo, più che ai fini del costo (ormai il costo della memoria di massa è relativamente basso), è importante in fase di manutenzione. Inoltre, l’informazione memorizzata nel database è inserita una volta, ma può essere usata per molteplici scopi oltre a quello della pubblicazione sul Web.

19

Esempi: query

20

Esempi

Pagina dei risultati creata dinamica mente

21

Esempi

22

Esempi

23

Transazione di informazioni
In pratica, in ogni interazione tra cliente e fornitore è implicata una transazione di informazioni. Possibili transazioni per un tipico sistema di ordini via web potrebbe includere: ordine di un prodotto - il cliente fornisce il numero del prodotto, la quantità, la descrizione, informazioni per la spedizione ed il pagamento. La transazione inserisce queste informazioni nei corrispondenti database. Queste transazioni sono di solito eseguite riempendo un form HTML. Questo documento sul Web rappresenta l’ingresso per il database dell’azienda, utilizzato per

24

Memorizzazione ed analisi di dati
È possibile pensare ad un browser sul Web come strumento di interfaccia per la visualizzazione e l’analisi dei dati di un database. Rappresenta uno strumento di standardizzazione per le applicazioni tradizionali di un database. I dati del database possono essere usati per fornire informazioni organizzate e per l’analisi delle transazioni o dei prodotti di un’azienda.

25

Concetti base e linee guida nel progetto

26

Dati e informazioni
Nel seguito affronteremo essenzialmente il problema di memorizzare ed organizzare dati. Un dato è un qualunque tipo di valore statico. I suoi valori possono assumere forme diverse, da una semplice scelta si/no, ad un valore numerico, ad un blocco di testo. Il problema di trasformare dati in informazioni è completamente diverso da quello di costruire dei “contenitori” per i dati. Comunque, esistono metodi per progettare la struttura del database che rendono questa elaborazione più facile da compiere. 27

Cos’è un database
Un database è fondamentalmente una collezione di registrazioni (records) che concernono qualche sorta di azione od oggetto. Più formalmente, un database è qualsiasi collezione di “fatti” organizzati in modo sistematico. Es. Le schede del catalogo di una biblioteca. Ogni scheda, fisica o virtuale, contiene fatti (autore, titolo, ISBN, etc.) che sono organizzati (alfabeticamente per titolo o autore, numericamente per ISBN) al fine di rendere la loro ricerca più semplice rispetto ad una scansione di tutti i libri della biblioteca.
28

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

Access, MySQL, SQL Server etc. sono database relazionali
29

Es. Scheda e Rappresentazione Tabellare
Autore
Ashenfelter, John Botto, Francis Cintron, Dave

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

Numero di codice
5019BNA15 2212MKV26 7682QYT91

Ashenfelter, John

5019BNA15

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

Terminologia
Un certo numero di termini descrivono le parti di un database. Sono termini standard, indipendenti dal particolare software con cui è implementato il database. Campo - è l’unità strutturale di base del database. È il contenitore per un dato o per ogni sua parte logica. Ad esempio, un indirizzo di posta potrebbe essere il campo ma, in un diverso contesto, potrebbero essere campi separati la via, il numero civico, la città, lo stato ed il codice postale.
31

Terminologia
Record - è un insieme di campi che descrivono un’unità più grande. È detto anche riga. I campi in un record forniscono una descrizione completa di ogni elemento in una collezione. Un record è un’istanza unica di dati che riguardano un oggetto o un evento. Tabella - è il nome formale dato ad un gruppo di records che contengono gli elementi di una collezione. Di norma una tabella rappresenta un oggetto distinto (es. tabella libri in una biblioteca) o un evento (es. tabella degli ordini per un prodotto).

32

Terminologia
Chiave - è un identificatore univoco per ogni riga (record) in una tabella di dati. Anche se un record singolo rappresenta una porzione separata dei dati, alcuni di questi records possono apparire identici. La chiave rappresenta un modo non ambiguo per identificare records distinti e serve come puntatore ad un particolare record della tabella.
⌧Es.: ogni cittadino italiano è univocamente identificato dal codice fiscale. ⌧In molti casi, le chiavi per le tabelle dei dati sono costruite semplicemente aggiungendo un campo al record con funzione di chiave.

33

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

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

LastName FirstName Address 1021 B Wheatley

Record

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

Tabella indirizzi
34

Terminologia
Spesso utenti diversi vogliono guardare ai dati di una stessa o di più tabelle in modi diversi.
⌧Ad esempio, se fornitori e merce sono due tabelle in un database, può essere utile avere una vista di quali merci sono fornite da un certo fornitore. Questo dato può essere ottenuto dalle due tabelle e combinato in una tabella virtuale.

Vista - è una tabella “virtuale”, nel senso che la tabella non è fisicamente presente nel database nel modo con cui è presentata all’utente. La vista è generata come risposta ad una particolare interrogazione. Permette di presentare in modi diversi i dati contenuti nel database.

35

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

36

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

37

Database Flat-File
È il tipo più elementare di organizzazione dei dati in un database. La caratteristica base di un flat-file è che tutti i dati sono memorizzati insieme in una singola tabella. La maggior parte dei database cartacei appartengono a questa categoria. Caratterizzati da semplicità di progetto e implementabili in modo diretto. Un semplice file di testo con dati organizzati può rappresentare un flat-file. È il tipo di organizzazione meno efficiente e più problematica. Il maggior svantaggio è dovuto al fatto che parte dei dati inseriti possono essere

38

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

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

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

Database Flat-File
Il database dell’esempio precedente ha un evidente problema di progetto: ogni record è relativo all’ordine di un solo prodotto per un dato cliente. Se un cliente ordina prodotti diversi, si avranno tanti records per il cliente quanti sono gli ordini (come mostrato per il cliente con CustID=1567) questo porta alla duplicazione dei dati relativi al cliente (Name, Shipping Address) in ognuno di questi record.
40

Database Flat-File
In maniera alternativa, il problema potrebbe essere risolto aggiungendo alla tabella un altro insieme di campi (colonne della tabella) ItemCode, Price e Quantity, numerandoli in sequenza (così da distinguere i campi per il primo prodotto da quelli del secondo e dei successivi).
Name Velio Cooper Francis Cioni Shipping Address ItemCode1 Quantity1 Price1 1 2 8.95 16.50 XT-212 2 22.00 ItemCode2 Quantity2 Price2 152 W Waterloo St ZD-552 Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 XT-211

41

Database Flat-File
Quanti elementi sono sufficienti? se si considera un numero massimo di prodotti ammessi per ogni ordine piccolo, potrebbe accadere che un ordine non possa essere soddisfatto (non è previsto un numero sufficiente di campi); se è previsto un numero massimo ammissibile di prodotti troppo grande si produce un evidente spreco di spazio.

42

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

Database relazionali: database di ordini
Due tabelle: tabella ordini, con i dati relativi al cliente; tabella prodotti, con i dati relativi ai prodotti di ogni singolo ordine.

44

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

derID CustID Name

3455

Tabella ordini

3457

3458

3459

3460

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

One Many

OrderID ItemCode Quantity Price 23455 23457 23457 23458 23459 23460

Database relazionali
La chiave OrderID nella tabella degli ordini descrive univocamente ciascun ordine di un cliente. Ogni prodotto ordinato è individualmente e univocamente memorizzato in una tabella separata dei prodotti. Il cliente può, nello stesso ordine, richiedere quanti prodotti desidera senza limitazioni a priori sul numero massimo, né spreco di memoria. Tra le tabelle è stabilita una relazione tramite le rispettive chiavi.
46

Database relazionali
Ogni tabella ha la propria chiave primaria per identificare i suoi elementi. Notare che la chiave OrderID della tabella degli ordini è inserita nella tabella dei prodotti per ogni prodotto che è stato ordinato da un cliente. Ogni prodotto che è stato ordinato può essere legato al cliente appropriato cercando tutti i records della tabella prodotti che hanno un particolare valore nel campo OrderID.
47

Database relazionali: relazione uno-a-molti
Nella tabella dei prodotti OrderID non è un valore univoco. La relazione tra la tabella degli ordini e quella dei prodotti è detta relazione uno-a-molti in quanto un record nella tabella degli ordini è legato ad un numero variabile di records nella tabella dei prodotti. OrderID serve come chiave esterna nella tabella dei prodotti, in quanto il valore della chiave viene da una diversa tabella (dove i valori sono univoci).
48

Database relazionali: database degli ordini
Nota: per evitare la duplicazione degli indirizzi di un cliente tra più ordini successivi sarebbe conveniente creare una ulteriore tabella dei clienti, con solo i dati relativi al cliente, e legarla con una relazione uno-amolti, stabilita attraverso il CustID, con la tabella degli ordini. In questo modo ogni cliente può effettuare più ordini ed ogni ordine può comprendere più prodotti.

49

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

Tabella clienti

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

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

Database relazionali: tipi di relazioni
Oltre alla relazione uno-a-molti esistono altri due modi possibili per relazionare due tabelle del database: relazione uno-ad-uno; relazione molti-a-molti.

51

Database relazionali: relazione uno-a-uno
In una relazione uno-a-uno ogni record in una tabella è collegato ad uno ed uno solo dei record in un’altra tabella. Nella maggior parte dei casi, questo tipo di relazione è stabilita tra una tabella che rappresenta un insieme di dati relativi ad un sottoinsieme delle entità in una tabella “principale”, e la tabella principale stessa.

52

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

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

Tabella impiegati

EmployeeID Rate 77620 7.78 77625 13.55

Hours 30 40

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

401 5 2 N/A 2

Health BC BC QS N/A

Tabella impiegati a ore

Tabella impiegati salariati
53

Database relazionali: relazione uno-a-uno
La tabella degli impiegati ha un record per ogni impiegato dell’azienda ed usa EmployeeID come chiave primaria per identificarli in modo univoco. Supponiamo che l’azienda preveda due tipi di impiegati: salariati; a ore. La tabella impiegati contiene solo i dati di base relativi ad entrambe le categorie: nome, cognome, indirizzo e numero telefonico.
54

Database relazionali: relazione uno-a-uno
Dato che per le due categorie di impiegati devono essere mantenuti dati diversi, questi sono inclusi in due tabelle ausiliarie: la tabella degli impiegati a ore. Mantiene solo i dati aggiuntivi che li riguardano, come il costo orario e le ore lavorate; la tabella degli impiegati salariati. La tabella mantiene solo i dati specifici per questa categoria, come il salario complessivo e l’informazione sanitaria. Per entrambe le tabelle ausiliarie la chiave primaria è rappresentata da EmployeeID.

55

Database relazionali: relazione uno-a-uno
Ogni impiegato può apparire una sola volta nella tabella impiegati, ed un record nella tabella degli impiegati a ore rappresenta un solo impiegato. Lo stesso vale per la tabella degli impiegati salariati. L’uso della relazione uno-a-uno tra la tabella principale e ciascuna delle due tabelle ausiliarie ha permesso di separare i dati che riguardano solo sottoinsiemi di records nella tabella principale. In questo modo non è stato necessario inserire campi aggiuntivi nella tabella principale con conseguente risparmio di memoria.
56

Database relazionali: relazione molti-a-molti
La caratteristica distintiva di una relazione molti-a-molti tra due tabelle è che una terza tabella è necessaria per rappresentare la relazione. La tabella che descrive la relazione semplicemente mantiene la chiave primaria da una tabella, con la chiave primaria dei record ad essa collegati nella seconda tabella, insieme con ogni altra informazione che contraddistingue la relazione.

57

Database relazionali: relazione molti-a-molti
La relazione molti-a-molti permette di rappresentare relazioni in casi in cui più records in una tabella sono in relazione con più records in un’altra tabella. Un esempio classico è quello di un database di corsi e studenti. Ogni corso è seguito da più studenti, ma ogni studente segue molti corsi. Perciò è necessaria una relazione molti-a-molti tra la tabella dei corsi e quella degli studenti. Un altro esempio è quello della relazione tra impiegati e progetti. 58

Relazione molti-a-molti: database impiegati e progetti
Tabella impiegati
EmployeeID 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstName Jerry Gina David Linda Steve Russell

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

EmployeeID 77620 77621 77624 77622 77624 77622

ProjectID 22356 27685 27685 33564 33564 22356

Tabella relazione impiegati-progetti

59

Relazione molti-a-molti
Database di progetti che tiene traccia degli impiegati che lavorano su ciascun progetto. Ogni impiegato dell’azienda lavora a molti progetti, ed ogni progetto ha molti impiegati dedicati al suo svolgimento. Sono individuate due tabelle per rappresentare le due entità distinte: tabella impiegati; tabella progetti. È necessaria un’ulteriore tabella per rappresentare la relazione molti-a-molti tra impiegati e progetti.
60

Relazione molti-a-molti
La tabella di relazione tra impiegati e progetti è costruita usando le chiavi primarie delle tabelle impiegati e progetti. Sia i valori della chiave per la tabella degli impiegati (EmployeeID), sia quelli della chiave per la tabella dei progetti (ProjectID), possono essere ripetuti più volte nella tabella della relazione.

61

Tabelle e relazioni in Access
Access ha un set di database pronti di esempio

62

Dal modello Access crea tabelle, relazioni e query In alternativa si crea un database vuoto e si creano tabelle e relazioni manualmente o in modo guidato

63

64

Es.: creazione tabelle dell’esempio precedente: impiegati, progetti e tabella relazione tra impiegati e progetti

65

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

66

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

67

68

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

69

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

70

71

72

Criteri di progetto di un database
I moderni software permettono di costruire in modo semplice un database, ma forniscono uno scarso supporto nel processo di progetto. Infatti, il processo di progetto dovrebbe essere una fase completamente indipendente dalla scelta del particolare software realizzativo. Spesso si è vincolati ad un particolare software; tuttavia delle buone scelte di progetto dovrebbero venire prima.
73

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

74

Criteri di progetto: 1. definizione del problema
Il primo passo nel progetto di un database è quello di delineare chiaramente la natura dei dati che è necessario memorizzare, senza considerare le interrogazioni che verranno usate sul database per trasformare i dati memorizzati in informazioni. Questo perché le domande possono cambiare nel tempo ed un database progettato solo per rispondere a domande specifiche diventerebbe inutile.

75

Criteri di progetto: 1. definizione del problema
Il database deve essere pensato in modo da organizzare tutti i dati che sono utilizzati per risolvere un particolare problema o raggiungere un obiettivo, in modo che sia possibile rispondere ad ogni tipo di domanda su quei dati.

76

Criteri di progetto: 2. valutazione della soluzione corrente
Nella maggior parte delle situazioni di progetto, qualche tipo di database esiste già, sia esso in forma cartacea o digitale. Spesso rappresenta un punto di partenza per conoscere i dati che sono attualmente di interesse. Nel caso si usi Access è bene esaminare i database di esempio

77

Criteri di progetto: 3. progetto delle strutture dati
Un database è essenzialmente una collezione di tabelle che devono essere definite in base ai dati da rappresentare. Ogni tabella dovrebbe rappresentare un soggetto o un oggetto fisico distinto. Di solito, il modo migliore per determinare i dati che appartengono ad una stessa tabella è quello di fare una lista di tutti i campi di interesse per il problema in esame e determinare i raggruppamenti logici tra questi.
78

Criteri di progetto: 3. progetto delle strutture dati
Subjects
Buildings Classrooms Courses Employees Faculty Members Part-time Employee Staff

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

Criteri di progetto: 3. progetto delle strutture dati
Es. di campi individuati per un sistema di pagamento per l’Università. Nella lista dei campi alcuni fanno chiaramente riferimento agli impiegati, come Name, Address, Phone Number, Social Security Number, e Date Hired. Altri campi come Courses Taught, Salary e Tenure Status sono parte di una struttura dati separata. I campi Hourly Rate, Founding Source e Home Department sono parte di una struttura per i Parttime Employees. In questo modo è possibile raggruppare i campi secondo
80

Criteri di progetto: 3. progetto delle strutture dati
Una volta che le tabelle sono state determinate e i campi sono loro assegnati, il passo successivo è la specifica dei campi. Un campo perfetto dovrebbe essere: unico tra tutte le tabelle nel database, a meno che non sia usato come chiave; dovrebbe contenere un singolo valore; non dovrebbe essere possibile scomporlo in sottoparti componenti più piccole.
81

Criteri di progetto: 3. progetto delle strutture dati
Deve essere stabilito anche il tipo di dati che devono essere posti in ciascun campo. Esistono cinque tipi base per i campi (possono essere ulteriormente suddivisi per incrementare l’efficienza di memorizzazione e di elaborazione): Numerico - è un qualunque valore numerico utilizzabile in operazioni di tipo matematico. È di solito possibile specificare campi numerici interi e reali (float). Booleano - assume solo due valori si/no, vero/falso.

82

Criteri di progetto: 3. progetto delle strutture dati
Ora/Data - memorizza ora e/o data usando vari formati (europeo o americano, conversione a 12-24 ore, etc.). Testuale - rappresenta virtualmente qualunque altro tipo di dato. Di solito esistono campi a lunghezza fissa, variabile o campi speciali per grandi sezioni di testo. Binario - alcuni database possono memorizzare oggetti in forma binaria in un campo. Es. documento, file grafico, campione di suono, o altro. Sono campi essenzialmente contenitori di dati. Su questi campi non possono essere eseguite operazioni
83

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

84

Criteri di progetto: 3. progetto delle strutture dati
Un ulteriore aspetto di interesse riguarda la nomenclatura da adottare nel nominare tabelle e campi. È di aiuto nella comunicazione e quando il database cresce in complessità e dimensione.

85

Alcuni suggerimenti: usare nomi descrittivi che riflettono il soggetto della tabella o i dati; non usare nomi specifici per dati che potrebbero assumere una forma più generale; evitare abbreviazioni e acronimi; non usare punteggiatura o spazi nei nomi; usare nomi delle tabelle plurali, nomi dei campi singolari; tabelle di relazione hanno di solito come nome la combinazione dei nomi delle tabelle che collegano.
86

Criteri di progetto: 4. costruzione delle relazioni
Un prerequisito alla costruzione delle relazioni è garantire che ogni tabella abbia una chiave univoca per identificare i singoli records della tabella. Qualunque campo esistente contenente un valore univoco è un candidato accettabile per essere utilizzato come chiave.

87

Criteri di progetto: 4. costruzione delle relazioni
Una soluzione migliore è quella di aggiungere un campo arbitrario ad ogni tabella con il compito specifico di fungere da campo chiave. Tale campo deve contenere un valore univoco, anche senza un particolare significato per i dati contenuti nella tabella. Il valore della chiave è tipicamente un intero assegnato ad ogni record inserito nella tabella e mai ripetuto. Le relazioni tra tabelle possono essere costruite usando le chiavi delle singole tabelle.

88

Criteri di progetto: 4. costruzione delle relazioni
Per una relazione uno-a-uno, la chiave primaria della tabella principale è inserita nella sottotabella: la sottotabella utilizza la chiave esterna come chiave principale e non necessita di una propria chiave primaria in quanto gli ingressi nelle due tabelle sono univocamente collegati gli uni agli altri.
EmployeeID 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstNam e Jerry Gina David Linda Steve Russell Address 496 Laguardia Place 426 Lake St 318 W 39 Th St 2427 Broadway 224 Lawrence Ave 224 Lawrence Ave Phone 555-2222 555-8267 555-4445 555-1568 555-9872 555-1213

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

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

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

H e a lt h BC BC QS N /A

89

Criteri di progetto: 4. costruzione delle relazioni
In una relazione uno-a-molti, la chiave primaria della tabella con la relazione “uno”, è usata per identificare i record collegati nella tabella “molti: il collegamento è fatto inserendo la chiave primaria della tabella “uno” come nuovo campo nella tabella “molti” dove rappresenta una chiave esterna.
OrderID CustID Name 23455 23457 23458 23459 23460 1521 1567 1765 0021 1235 Shipping Address Velio Cooper Francis Cioni Jane Carroll Jody Hawes David Hill 152 W Waterloo St Austin, TX 78752 1445 E Delavan Ave Laredo, TX 78043 1551 Westwood Blvd Ocilla, GA 31774 2664 Woodhill Rd Bronx, NY 742 Hearne Cleveland, OH 44104

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

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

90

Criteri di progetto: 4. costruzione delle relazioni
Una relazione molti-a-molti è la più complessa da costruire. Richiede una tabella aggiuntiva per rappresentare la relazione: la tabella di relazione è creata riportando in essa le chiavi di una tabella con tutte le chiavi della seconda tabella che sono ad essa associate.
EmployeeID 77620 77621 77622 77623 77624 77625 LastName Southworth Talbot Russell Thompson Albertson Davis FirstName Jerry Gina David Linda Steve Russell

ProjectID 22356 27685 33564

Manager Jones Lewis Albertson

Deadline 4/9 12/22 8/17

EmployeeID 77620 77621 77624 77622 77624 77622

ProjectID 22356 27685 27685 33564 33564 22356

91

Criteri di progetto: 5. implementazione di regole e vincoli
Regole e vincoli conducono di norma ad una maggiore “pulizia” dei dati e a migliori informazioni nel loro uso. Alcuni vincoli sono tipicamente imposti dalla natura stessa dei dati. Es.: un campo per il codice fiscale può essere dimensionato per contenere sempre 16 caratteri. Assicura che il dato sia corretto ed accurato. Il sistema può impedire l’inserimento di un codice con un numero diverso di caratteri (in difetto o in eccesso). Altri dati possono assumere valori solo in uno specifico intervallo. Il sistema può operare un controllo sulla validità dei dati in ingresso.

92

In Access si specificano i vincoli nelle proprietà del campo

93

94

Criteri di progetto: 6. creazione di viste
Consente di trasformare i dati del database in informazioni utili all’utente. Le viste sono semplicemente collezioni di dati resi accessibili in un certo modo. Una vista potrebbe essere un sottoinsieme dei dati delle tabelle. Ad esempio, nel database degli impiegati il nome ed il numero di telefono potrebbero essere una vista per una interrogazione che ricerca il numero di telefono di un impiegato. Risponde alla domanda senza includere informazione inutile come altri dati personali o privati. In altri casi una vista può raccogliere dati da più tabelle e condensarli insieme. Ad esempio i dati delle tabelle Corsi e Studenti potrebbero essere usati per fornire una lista aggiornata degli studenti in ciascun corso.
95

Criteri di progetto: 7. implementazione del progetto
Il progetto è condotto fino a questo punto senza considerare il particolare software da utilizzare per realizzare il database. Il criterio di base che guida la scelta è la possibilità di realizzare con una data soluzione software il database di cui si ha bisogno. Alcune tra le scelte possibili sono:
⌧Microsoft Access, lo standard di fatto per Windows; ⌧Microsoft SQL Server, database professionale; ⌧MySQL, prodotto free molto diffuso per applicazioni sul Web; ⌧Oracle, il leader in ambiente Unix. Richiede hardware e supporto costosi.

96

Normalizzazione
In qualunque libro che affronti il progetto di database dal punto di vista teorico viene sempre riservata una certa enfasi al problema della normalizzazione o decomposizione del database. In sostanza, la normalizzazione è un modo di analizzare e migliorare la stabilità ed integrità di un insieme di dati relazionali. Previene la possibilità di inconsistenze nei dati conseguenza di una cattiva progettazione.
97

Normalizzazione
Il processo di progettazione discusso è tale da verificare i requisiti di normalizzazione per il progetto di database tipici. Il processo di normalizzazione è composto da più passi, ognuno dei quali rappresenta una forma normale (NF). Esistono 5 forme normali che possono essere applicate ad un database, ma di solito il progettista può accontentarsi di realizzare le prime tre (quindi il processo può arrestarsi alla 3NF).
98

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

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

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

Ogni campo deve essere unico
99

Prima forma normale (1NF)
Un database che soddisfa la 1NF ha una chiave primaria e non contiene campi dati ripetuti o gruppi di campi (si intende che queste proprietà devono essere soddisfatte da tutte le tabelle del database). Questo significa che tutti i record di una tabella nel database contengono lo stesso numero di campi dati distinti. Garantisce che ciascun record possa essere identificato in modo univoco, ed evita la duplicazione di campi base. Tutti i database visti soddisfano questa condizione.
100

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

Le tabelle non soddisfano la 1NF.

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

Prima forma normale (1NF)
Nell’esempio precedente la tabella Student ha una chiave univoca, ma è chiaramente composta da due entità distinte e dovrebbe pertanto essere divisa in due tabelle in relazione tra loro: una tabella di informazioni relative agli studenti; una tabella dei corsi. Una relazione molti a molti dovrebbe rappresentare i corsi seguiti dallo studente. Nella forma attuale si potrebbe avere un numero di campi per i corsi grande o piccolo rispetto a quelli effettivamente seguiti dallo studente. Lo stesso limite esiste per la tabella degli album. 102

Seconda e Terza forma normale (2NF, 3NF)
La 2NF si applica solo a database con chiavi composite. Una chiave composita è costituita da informazioni di due o più entità logiche distinte (chiave costituita da più campi). Di conseguenza: una tabella la cui chiave non è composita e che verifica la 1NF verifica anche la 2NF. Nella maggior parte dei casi progettare il database in modo da verificare la 2NF determina che anche la 3NF sia verificata. È la forma di normalizzazione finale applicata a database relazionali nella pratica di impiego comune.

103

Seconda forma normale (2NF)
Item Item number (component of key) Vendor name (component of key) Product name Product description Vendor contact name Vendor address Vendor phone number Unit price Unit cost

La tabella non soddisfa la 2NF

104

Seconda forma normale (2NF)
La tabella dell’esempio precedente non verifica i requisiti della 2NF. La chiave composita è costituita da informazioni che riguardano due distinte entità logiche, l’item ed il vendor:
il problema di questa soluzione è che quando il Vendor contact name è cambiato, tutti i record che contengono quella informazione devono essere cambiati altrimenti il database conterrà informazione errata; infatti, i record di questa tabella hanno alcuni campi (Vendor contact name, Vendor address, Vendor phone number) i cui valori dipendono dal valore di un componente della chiave composita (Vendor name).
105

Seconda forma normale (2NF)
Il processo di progetto definito in precedenza evitava questi problemi attraverso due accorgimenti: evitare l’uso di chiavi composite; entità logiche distinte, siano esse oggetti od eventi, richiedono tabelle dei dati distinte.

106

Terza forma normale (3NF)
Richiede che non esistano dipendenze transitive tra campi nelle tabelle dei dati:
una dipendenza transitiva si presenta quando un campo che non è la chiave primaria della tabella agisce come se fosse un’altra chiave primaria per parte o tutti i campi del record.

La tabella dell’esempio visto per la 2NF contiene sia dipendenze transitive che funzionali, poiché i campi Vendor name e Item number determinano ciascuno i valori di diversi record nella tabella. Nella maggior parte dei casi riprogettare il database in modo da verificare la 2NF determina che anche la 3NF sia verificata.
107

Normalizzazione
Riassumendo è possibile dire che i processi di base per verificare la 1NF, 2NF e 3NF, si possono tutti ricondurre ad un unico criterio: garantire che entità logiche distinte siano memorizzate in tabelle differenti. Come si è visto è possibile arrivare ad una buona progettazione semplicemente seguendo alcune regole di base.

108

ESEMPI DI PROGETTO

109

Esercizio di progetto - I
1. Definizione ed obiettivi. Personal Information Manager (PIM) - il principale obiettivo di questo database è di mantenere ed organizzare i dati per contattare le persone coinvolte nella vita personale e professionale. Per il momento la definizione non include il tipo particolare di dati da immagazzinare nel database, né il tipo di interrogazioni eseguite sui dati. 2. Ricerca del database corrente. Comprende la ricerca del modo in cui i dati sono attualmente raccolti e come quei dati sono
110

Esercizio di progetto - I
3. Progetto delle strutture dati. Assumiamo che il database contenga una sola tabella (Contacts) sia per contatti che riguardano il lavoro che privati. Una soluzione alternativa potrebbe essere quella di avere due tabelle separate per questi due tipi di contatti. Comunque il modo usuale di fare delle interrogazioni è quello di usare il cognome indipendentemente dal fatto che il soggetto cercato appartenga ai contatti di lavoro o privati. 4. Costruzione delle relazioni.
111

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

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

112

Esercizio di progetto - I
5. Regole e vincoli. Sono usate per garantire che le relazioni tra tabelle siano valide e che i dati in ingresso alle tabelle siano privi di errori. In questo caso non ci sono relazioni, ma la chiave primaria deve essere fissata. La sola regola necessaria è che ciascun record sia individuato da un numero intero univoco. Pertanto si assegna 1 al primo record e si incrementa il valore di uno per ogni record successivo. Si potrebbero definire dei vincoli al formato dei numeri telefonici per garantire una maggiore accuratezza.

113

Esercizio di progetto - I
6. Creazione di viste e reports. Una vista potrebbe essere quella per una query tipica che ricerca nome, indirizzo di posta elettronica e numero(i) di telefono. L’altra vista necessaria è quella che fornisce tutto il record del database. Un report utile è quello che presenta la lista ordinata alfabeticamente di tutti i contatti con numeri di telefono ed indirizzi. Un altro potrebbe essere una lista mensile di tutti i compleanni, o solo per il mese corrente. 7. Implementazione del progetto.
114

Esercizio di progetto - I
Due possibili alternative alla soluzione vista. Due tabelle distinte. Si potrebbero avere due tabelle separate, una per i contatti personali e una per quelli di lavoro. Un vantaggio di questa scelta è che i campi relativi ad un solo tipo di contatto devono essere posti solo nella tabella corrispondente. Ad esempio il campo compleanno potrebbe essere rilevante solo per i contatti personali. Le queries potrebbero essere più efficienti. Potrebbe però generare problemi se un contatto viene inserito in entrambe le tabelle
115

Esercizio di progetto - I
Tabella primaria con due sottotabelle. Un progetto più relazionale potrebbe consistere di una tabella primaria con tutte le informazioni costanti sull’individuo (nome, data di nascita, etc.) e due tabelle addizionali che mantengano i contatti personali e di lavoro. Queste sottotabelle addizionali sono collegate a quella principale da una relazione uno-a-uno, ottenuta semplicemente attraverso la chiave primaria della tabella principale. Questa, dal punto di vista del progetto, è la soluzione più corretta.
116

Esercizio di progetto - II
1. Definizione ed obiettivi. Media File Database - l’obiettivo di questo database è di consentire la gestione di diversi media files e di permettere il loro uso per costruire in modo dinamico il contenuto di un sito Web. 2. Ricerca del database corrente. In questo caso il database corrente è quello costituito dalle informazioni che riteniamo utili. Inoltre è necessario capire come il database verrà utilizzato. Un modo ovvio è di cercare media files rapidamente e facilmente. Un altro possibile utilizzo è la pubblicazione dinamica del contenuto sul Web. Es. per creare un catalogo online per la vendita. 117

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

Fieldname

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

Esercizio di progetto - II
3. Progetto delle strutture dati. In questo esempio è possibile individuare più oggetti: i files video, audio e di immagini. In aggiunta è possibile considerare un oggetto corrispondente a files di testo con le informazioni descrittive utili per realizzare una pubblicazione dinamica sul Web. Una tabella può essere impiegata per mantenere la descrizione testuale e il nucleo di informazioni comuni ai vari files (es. nome, dimensione e lista di keywords). Questa tabella è collegata a quella dei singoli media, che ne riportano le informazioni specifiche (una tabella separata per audio, video ed
119

Files Data Table Fieldname
Filename Filesize FileType FileChanges LastModification DescriptiveText FileKeywords

Esercizio di progetto - II
Notes

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

Images Data Table Fieldname
ImageHeight Image Width ImageColor depth ImageCompressionLevel ImageScannedResolution

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

Esercizio di progetto - II
Sounds Data Table Fieldname
SoundSamplingRate SoundClipLength

Notes

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

Videos Data Table Fieldname
Height Width VideoColorDepth VideoCompressionLevel VideoSamplingRate FrameRate Codec VideoLength

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

Esercizio di progetto - II
Possiamo considerare altre due tabelle utili. Dato che una particolare sorgente può fornire un numero di media diversi, è meglio utilizzare una tabella separata per questa informazione. Le sorgenti possono essere compagnie o singoli individui; altre sorgenti sono libri, riviste o altri media tradizionali digitalizzati. L’ultima tabella contiene l’insieme di progetti in cui questi media files sono attualmente utilizzati.

122

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

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

Projects Data Table Fieldname
ProjectName Contact ProjectsNotes

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

123

Esercizio di progetto - II
4. Costruzione delle relazioni. Il primo problema è la definizione delle chiavi per ogni tabella. Le chiavi sono poi utilizzate per stabilire le relazioni.
⌧Per la tabella dei Files il campo FileName può contenere duplicati. Come chiave primaria si assegna un intero in un campo FileID. ⌧La tabella dei Files è legata alle tabelle Images, Videos e Sounds da relazioni uno-a-uno, in quanto ciascuna di queste rappresenta una sottotabella per la tabella dei Files. Per creare la relazione è sufficiente porre la chiave FileID della tabella Files nelle sottotabelle come chiave esterna. Le sottotabelle possono usare la chiave esterna come chiave primaria, in quanto consente di identificare in modo univoco

124

F ile ID 101 102 103 104 105 106

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

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

Files Table

FileID 101 103 104

Height 20 10 110

Width 80 60 75

FileID 102 106

Height 400 400

Width 300 300

Length 26.1 240.0

Videos Table

Images Table

FileID SoundSamplingRate SoundClipLength 105 44.1 30 Sounds Table
125

Esercizio di progetto - II
⌧La relazione tra la tabella Files e la tabella Sources è invece una relazione uno-a-molti tra Sources (uno) e Files (molti). Infatti, ciascun record nella tabella Files è legato ad un solo record della tabella Sources (ogni file può avere una sola sorgente), mentre ogni record in Sources può essere legato ad uno o più record in Files (ogni sorgente può produrre più file diversi). È quindi necessario inserire la chiave primaria della tabella “uno” come chiave esterna nella tabella “molti”. Alla tabella Sources è assegnata come chiave primaria un intero identificato con il campo SourceID, e questa chiave è aggiunta anche alla tabella Files dove rappresenta una chiave esterna.
126

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

Files Table

many

one Sources Table
Davi d

SourceID 001 002 003 004

Source Personal BBC Library Mega Studios David Rides

Copyright Yes No No Yes
127

Esercizio di progetto - II
⌧L’ultima relazione è tra la tabella Projects e la tabella Files. Un singolo progetto può comprendere un certo numero di files, ed un singolo file può essere parte di più progetti. La relazione tra le due tabelle è quindi molti-a-molti. Alla tabella progetti è assegnata una chiave primaria ProjectID costituita da un numero intero. La relazione è stabilita attraverso una nuova tabella in cui sono riportate le chiavi primarie dalle tabelle Files e Projects per i records che devono essere posti in relazione. La tabella di collegamento è identificata con Projects_Files.

Nella sua versione finale il database comprende quindi 7 tabelle, 3 relazioni uno-a-uno, 1 relazione uno-a-molti e 1 relazione molti-a-molti.

128

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

ProjectID 2567 2568 2569

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

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

Files Table

Projects_Files Table

ProjectID 2567 2569 2568 2567 2569 2569

FileID 101 102 103 104 105 106

129

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

uno
Projects

molti uno

uno uno uno

Images Sounds Videos

Files

molti molti
Project_Files

130

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

Notes

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

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

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

Sounds Data Table Fieldname
SoundID SoundSamplingRate SoundClipLength

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

132

Videos Data Table Fieldname
VideoID Height Width VideoColorDepth VideoCompressionLevel VideoSamplingRate FrameRate Codec VideoLength

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

Sources Data Table Fieldname
SourceID OriginalSource SourceNotes SourceKeywords

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

133

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

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

Projects_Files Table Fieldname
FileID ProjectID

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

134

Esercizio di progetto - II
5. Regole e vincoli. Diversi campi per le sottotabelle Images, Sound e Videos, sono soggetti a vincoli. Ad esempio un file audio può essere campionato sia in modalità mono che stereo. La frequenza di campionamento è normalmente limitata ad un insieme di frequenze, che includono 11, 22, 32, 44.1 e 48KHz. Inoltre possono essere stabilite delle regole per i nomi dei files. Ad esempio tutti con lettere minuscole senza spaziature o altri caratteri di punteggiatura.

135

Esercizio di progetto - II
6. Creazione di viste e reports. Le viste essenziali da creare sono quelle che combinano i dati dalla tabella dei Files con quelli dei singoli media. Le informazioni dai records collegati possono essere ottenute attraverso la chiave che definisce la relazione. Un report di interesse potrebbe essere quello che produce la lista di files che verificano una qualche combinazione di keyword, size, type e/o filename. Ad esempio, tutte le immagini con dimensione maggiore di una soglia data. Oppure la lista dei files forniti da ciascuna sorgente. Infine, una lista dei file impiegati in ogni progetto. 136

Introduzione:

Breve storia del linguaggio HTML

7

Breve storia del linguaggio HTML
Le origini dell’HTML possono essere fatte risalire ad un’idea di Vannevar Bush che descrisse un sistema per collegare in modo associativo le informazioni. Bush definì questo sistema memex (memory extension), e lo propose come mezzo per aiutare la mente umana a far fronte ad un sempre più crescente numero di informazioni.

8

Breve storia del linguaggio HTML
Nel 1965, Ted Nelson coniò il termine ipertesto per descrivere un testo che seguisse le idee di Bush. L’ipertesto, come descritto da Nelson, avrebbe dovuto collegare dei documenti per creare una rete di relazioni con l’intento di estendere ed accrescere il significato di un testo "piatto" con collegamenti ad altri testi.

9

Breve storia del linguaggio HTML
Le idee di Vannevar Bush e di Ted Nelson furono riprese in un progetto del 1989 da Tim BernersLee, un ricercatore del CERN di Ginevra, che propose un sistema basato sull’ipertesto per permettere una più efficiente condivisione delle informazioni tra i membri della comunità scientifica dell’istituto per cui lavorava.

10

Breve storia del linguaggio HTML
La proposta di Berners-Lee (il cui titolo era "HyperText and CERN") aveva come obiettivi:
• la creazione di un’interfaccia utente che potesse essere consistente su tutte le piattaforme, per permettere all’utente di accedere alle informazioni da diversi computer; • uno schema per quest’interfaccia che permettesse di accedere ad una grande varietà di tipi di documenti e di protocolli di informazione; • la predisposizione per un "accesso universale", che avrebbe permesso ad un qualunque utente della rete di accedere ad un qualunque tipo di informazione

11

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

12

Breve storia del linguaggio HTML
Dal 1994 tutte le modifiche ad HTML sono avvenute sotto l’egida del World Wide Web Consortium (W3C) consorzio nato grazie agli sforzi del MIT e del CERN. Il consorzio comprende i più importanti centri di ricerca e le principali aziende del settore informatico che stanno guidando l’HTML nella sua evoluzione verso la definizione di uno STANDARD per lo sviluppo della rete.

13

Terminologia
Ipertesto: documento testuale in formato elettronico “non sequenziale”

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

14

Il Web
Al livello di descrizione più elementare il Web è un mezzo per condividere informazioni. L’informazione è memorizzata in un formato standard che include sia gli effettivi dati testuali e/o numerici, sia i controlli per la loro formattazione. Questa informazione è memorizzata in un computer remoto connesso alla rete, che rende accessibile questa informazione a chiunque sia connesso alla rete.

15

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

Concetti base del linguaggio HTML

17

Concetti base del linguaggio HTML
HTML e' l'acronimo di HyperText Markup Language, ovvero un linguaggio di formattazione basato su marcatori che consentono di specificare l'aspetto di un documento e le relazioni o i collegamenti con altri documenti.

18

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

19

Concetti base del linguaggio HTML
La definizione del contenuto di un documento HTML avviene attraverso appositi marcatori definiti TAG. I TAG rappresentano gli elementi o identificatori che costituiscono il linguaggio HTML e sono delimitati da parentesi angolari:
Es.
<HTML>

20

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

21

HTML
<P> <FONT SIZE="+1"><STRONG>HTML: All form and no substance</STRONG></FONT><BR> HTML is a language designed to &quot;talk about&quot; documents: headings, titles, captions, fonts, and so on. It's heavily document structure- and presentation-oriented.

22

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

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

23

XML

Concetti base del linguaggio XML

24

Concetti base del linguaggio XML
XML è l’ eXtensible Markup Language è extensible a differenza dell’HTML che è fisso. E’ un metalinguaggio: può definire nuovi linguaggi di markup

25

Concetti base del linguaggio XML
E’ una specifica ufficiale del World Wide Web Consortium (W3C). W3C lo definisce come: "a common syntax for expressing structure in data."

26

Concetti base del linguaggio XML
Lo scopo di XML è quello di separare la definizione dei dati dalla loro rappresentazione, per consentire lo scambio di documenti strutturati sul web. HTML specifica come un documento deve essere mostrato, non descrive che tipo di informazione è contenuta e come è strutturata.

27

Concetti base del linguaggio XML
XML consente agli autori di un documento di organizzare l’informazione in un modo standard. Uno degli scopi principali di XML è di consentire lo scambio di dati tra sistemi potenzialmente incompatibili.

28

Concetti base del linguaggio XML
XML è basato su file di testo (come HTML), può essere usato su qualsiasi piattaforma. E’ nato per essere usato su Internet, ma va bene ovunque. E’ un sub-set di SGML (Standard Generalized Markup Language)

29

Concetti base del linguaggio XML
Def.: SGML: Metalinguaggio per la definizione di linguaggi di markup. Standard ISO SGML si basa sull’idea che i documenti hanno elementi strutturali e semantici che possono essere descritti senza tenere conto di come devono essere visualizzati.

30

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

31

Concetti base del linguaggio XML
SGML è usato per lo scambio di dati e documenti dal Dipartimento della Difesa degli Stati Uniti, dalle industrie aerospaziali e delle telecomunicazioni, etc. XML è nato per portare SGML sul web

32

Concetti base delle pagine HTML

33

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

Dove l’elemento <html> è la dichiarazione di linguaggio e <head> è l’area che contiene ciò che apparirà nella barra superiore del browser (<title>) più eventuali script e META tag per i motori di ricerca

34

Concetti base delle pagine HTML
<html> <head> <title>Titolo della finestra</title> </head> <body> All’interno del tag <body> andrà inserito il contenuto della pagina HTML Alla fine della pagina dovranno essere presenti i tag di chiusura </body> </html>
Vedi la pagina HTML 35

HTML
La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico: es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

36

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

37

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

38

Aggiungere intestazioni e paragrafi

39

Aggiungere intestazioni e paragrafi
In HTML esistono sei livelli di intestazioni. H1 è il più importante, H2 è leggermente meno importante, e così via fino ad H6, il meno importante di tutti. Ecco come aggiungere un'intestazione importante: <h1>Un'intestazione importante</h1> ed ecco un'intestazione leggermente meno importante: <h2>Un'intestazione leggermente meno importante</h2>

Vedi la pagina HTML 40

Aggiungere intestazioni e paragrafi
Ogni paragrafo che scrivete dovrebbe cominciare con il marcatore <p> e chiudere con </p>.
<p>Questo è il primo paragrafo.</p> <p>Questo è il secondo paragrafo.</p>

E’ possibile anche creare interruzioni di riga con il tag <br>
<p>Questo è il terzo paragrafo.<br>Adesso siamo a capo di una riga </p>

Vedi la pagina HTML 41

Aggiungere enfasi al testo

42

Aggiungere enfasi al testo
Potete enfatizzare una o più parole grazie ad appositi marcatori. <strong> o <b> rende il testo grassetto <em> o <i> rende il testo corsivo

43

Aggiungere enfasi al testo
Esempio:
<p>Con il testo in grassetto, <strong>voglio attirare l'attenzione</strong> mentre di seguito faccio una citazione <em>”Thinking HTML”</em></p>

Vedi la pagina HTML 44

Aggiungere immagini

45

Aggiungere immagini
Le immagini possono essere usate per aiutarvi a veicolare il messaggio che intendete comunicare. Il modo più semplice di aggiungere un'immagine è usare il marcatore <img>. Poniamo che vi sia un file immagine chiamato ”libro.jpg" nella stessa directory del vostro file HTML. Esso misura 200 pixel di larghezza per 150 di altezza.

46

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

L'attributo src richiama il file immagine. L'attributo alt serve per le persone che non possono vedere l'immagine ed hanno bisogno di una descrizione da leggere in sua assenza.

Vedi la pagina HTML 47

Aggiungere collegamenti ad altre pagine

48

Aggiungere collegamenti ad altre pagine
Ciò che rende il Web così efficace è la capacità di definire collegamenti da una pagina ad un'altra, sia all’interno dello stesso sito che verso altri siti. I collegamenti (o link) sono definiti per mezzo del marcatore <a> (anchor).

49

Aggiungere collegamenti ad altre pagine
Creiamo ora un collegamento alla pagina ”libro.html":
<p>Questo è un collegamento <a href=”libro.html">alla pagina del libro</a></p>

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

Aggiungere collegamenti ad altre pagine
Per fare un collegamento ad una pagina su un altro sito Web è necessario fornire l'indirizzo Internet completo (comunemente chiamato URL), per esempio per creare un collegamento a www.w3c.org dovete scrivere:
<p>Questo è un link al <a href="http://www.w3.org/">W3C</a></p>

Vedi la pagina HTML 51

Usare vari tipi di liste

52

Usare vari tipi di liste
L'HTML supporta tre tipi di liste. Il primo tipo è l'elenco puntato, definito spesso lista non ordinata. Esso usa i marcatori <ul> e <li>

53

Usare vari tipi di liste
Per esempio:
<ul> <li>il primo elemento della lista</li> <li>il secondo elemento della lista</li> <li>il terzo elemento della lista</li> </ul>

Notate che è necessario chiudere sempre la lista con il marcatore finale </ul>.

Vedi la pagina HTML 54

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

55

Usare vari tipi di liste
Per esempio:
<ol> <li>il primo elemento della lista</li> <li>il secondo elemento della lista</li> <li>il terzo elemento della lista</li> </ol>

Così come per gli elenchi puntati, occorre sempre chiudere la lista con il marcatore finale </ol>,

Vedi la pagina HTML 56

Usare vari tipi di liste
Il terzo ed ultimo tipo di lista è l'elenco di definizioni, che vi consente di elencare dei termini e le relative definizioni. Questo tipo di lista è aperta con il marcatore <dl> ed è chiusa con </dl>. Ogni termine comincia con un marcatore <dt> ed ogni definizione con un <dd>.

57

Usare vari tipi di liste
Per esempio:
<dl> <dt>il primo termine</dt> <dd>la sua definizione</dd> <dt>il secondo termine</dt> <dd>la sua definizione</dd> <dt>il terzo termine</dt> <dd>la sua definizione</dd> </dl>

Vedi la pagina HTML 58

Inserire contenuti multimediali

59

Inserire contenuti multimediali
Dobbiamo prima di tutto distinguere tra due tipi di contenuto multimediale: il contenuto “interno” ed il contenuto “esterno”. Il contenuto interno è quello che è fruibile direttamente attraverso il browser, mentre quello esterno richiede del software che non è parte integrante del browser.

60

Inserire contenuti multimediali
Un tipico contenuto interno è ad esempio una semplice animazione come una gif animata, una applet Java o un controllo ActiveX. Per contenuto esterno si può far riferimento ad un filmato mpeg o una sorgente RealAudio ( che comportano l'apertura dell'apposito lettore)

61

Inserire contenuti multimediali
Iniziamo a trattare l'inserimento del contenuto esterno che risulta un procedimento piuttosto semplice: l'operazione da effettuare è la scrittura di un link che punti al file multimediale che si desidera mandare in esecuzione.

62

Inserire contenuti multimediali
Ad esempio per inserire il filmato ”libro.mpeg" nella propria pagina è necessario scrivere :

<A href=”filmato.mov"> Vedi il Filmato </A>

vedi la pagina web

63

Inserire contenuti multimediali
E' consigliabile inserire nel testo allegato ai contenuti multimediali anche qualche informazione riguardo alle dimensioni del file e ai tempi di caricamento es.: Tempo richiesto per il download

64

Inserire contenuti multimediali
si può anche collegare il filmato ad una immagine o frame significativo.

Vedi la pagina web

65

Inserire contenuti multimediali “interni”

66

Inserire contenuti multimediali “interni”
L'inserimento di contenuti interni è invece leggermente più complesso e richiede l'uso di appositi tag come <OBJECT>. Conviene focalizzare l’attenzione solo sul tag <OBJECT> che è quello raccomandato dal W3C.

67

Inserire contenuti multimediali “interni”
Per inserire una animazione Macromedia Flash all’interno della pagina HTML, andrà usato il tag <OBJECT> corredato dagli appositi parametri. Ogni plug-in, secondo le specifiche del produttore, usa i propri parametri.
Vedi la pagina HTML

68

Concetti ulteriori delle pagine HTML

69

Concetti ulteriori delle pagine HTML
⌧Testo preformattato

Uno dei vantaggi del Web è che il testo slitta automaticamente su più righe per adattare i margini alla grandezza della finestra corrente. A volte però potreste voler disabilitare questo comportamento. Per esempio quando state inserendo esempi di codice di programmazione. Potete fare ciò utilizzando l'elemento pre. Ad esempio: vedi la pagina web

70

Aggiungere mappe immagine
L'elemento area ha la funzione di definire una regione dell'immagine e di collegarla a un indirizzo Internet. L'attributo shape può assumere i valori "rect", "circle" o "poly". L'attributo "coords" specifica le coordinate per una regione a seconda della forma.
• rect: sinistra-x, alto-y, destra-x, basso-y • circle: centro-x, centro-y, raggio • poly: x1,y1, x2,y2, ... xn,yn

Vedi la pagina HTML 71

Usare tabelle
Le tabelle sono utilizzate sia per fornire informazioni sia a fini di presentazione. Potete allargare le tabelle fino a farle coincidere con i margini della pagina, specificare una larghezza fissa o lasciare che sia il browser a dimensionare la tabella per adattarla ai contenuti.

72

Usare tabelle
Esempio:
<table border="1"> <tr><th>Anno</th><th>Vendite</th></tr> <tr><td>2000</td><td>$18M</td></tr> <tr><td>2001</td><td>$25M</td></tr> <tr><td>2002</td><td>$36M</td></tr> </table>

Vedi la pagina HTML 73

Spaziatura interna delle celle
Potete incrementare per tutte le celle della tabella la spaziatura interna [distanza tra il margine esterno della cella e l'inizio del contenuto] usando l'attributo cellpadding dell'elemento table. Per esempio, per impostare la spaziatura interna a 10 pixel:
<table border="1" cellpadding="10">

Vedi la pagina HTML 74

Aggiungere attributi alle tabelle
Per contro, l'attributo cellspacing determina lo spazio tra le celle. Ecco come impostare la spaziatura tra le celle a 10:
<table border="1" cellpadding="10" cellspacing="10">

Vedi la pagina HTML 75

Allineamento del testo nelle celle
Per impostazione predefinita i browser centrano le intestazioni delle celle (th) ed allineano a sinistra i dati (td). Potete modificare l'allineamento usando l'attributo align, che può essere aggiunto ad ogni cella o alla riga (elemento tr). E' usato con i valori "left", "center" o "right":

Vedi la pagina HTML 76

XML

XML vs. HTML

77

XML vs. HTML
Non separa il contenuto dalla presentazione Fornisce una sola “vista”: è estremamente difficile scrivere pagine dinamiche che si riadattino al sistema usato dall’utente Non ha praticamente struttura semantica: non c’è indicazione sul significato dei dati di una pagina HTML

78

XML vs. HTML
Originariamente l’HTML prevedeva di contrassegnare l’informazione secondo il suo significato, indipendentemente da come il browser l’avrebbe resa: <TITLE>Questo è un titolo di pagina</TITLE> <STRONG>Summary</STRONG> <H2>Header<H2>

79

XML vs. HTML
La tendenza è invece quella di specificare precisamente l’apparenza dei dati: <font size="-1" face="Arial, Helvetica, Sans-serif">

80

XML vs. HTML
Un metodo per separare la resa grafica dai contenuti è usare i CSS (Cascading Style Sheets), ma non sono ancora standardizzati nei browser di ultima generazione. W3C raccomanda l’uso di CSS Anche le regole di accessibilità

81

XML vs. HTML

82

I CSS consentono di separare la rappresentazione dei dati dalla loro struttura Consentono di specificare la presentazione grafica in modo più preciso che con i tag HTML Basta cambiare il CSS e la rappresentazione del sito cambia

83

XML vs. HTML
Gli editor HTML spesso usano tag per in base alla resa grafica che forniscono anziché al loro significato semantico: es. <UL> per l’indentazione anziché per le liste non numerate

84

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

85

XML vs. HTML
La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico: es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

86

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

87

XML vs. HTML
È più facile creare viste diverse degli stessi dati

88

XML - standard associati
Modeling Rules (DTD, Schema) Stylesheets (XSL) Linking (XLink, XPointer)

89

XML

Regole base di XML Esempio DTD

90

HTML - esempio di pagina
<HTML> <HEAD> <TITLE>Lime Jello Marshmallow Cottage Cheese Surprise</TITLE> </HEAD> <BODY> <H3>Lime Jello Marshmallow Cottage Cheese Surprise</H3> My grandma's favorite (may she rest in peace). <H4>Ingredients</H4> <TABLE BORDER="1"> <TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR> <TR><TD>1</TD><TD>box</TD><TD>lime gelatin</TD></TR> <TR><TD>500</TD><TD>g</TD><TD>multicolored tiny marshmallows</TD></TR> <TR><TD>500</TD><TD>ml</TD><TD>cottage cheese</TD></TR> <TR><TD></TD><TD>dash</TD><TD>Tabasco sauce (optional)</TD></TR> </TABLE> <P> <H4>Instructions</H4> <OL> <LI>Prepare lime gelatin according to package instructions...</LI> <!-- and so on --> </BODY> </HTML>

91

HTML - esempio di pagina

92

HTML - esempio di pagina
Il significato degli elementi della pagina precedente non è reso dall’HTML: gli elementi della prima colonna NON sono quantità, sono solo testo libero è molto difficile fare un parsing automatico dei contenuti della pagina

93

XML - esempio di file
<?xml version="1.0” ?> <Recipe> <Name>Lime Jello Marshmallow Cottage Cheese Surprise</Name> <Description> My grandma's favorite (may she rest in peace). </Description> <Ingredients> <Ingredient> <Qty unit="box">1</Qty> <Item>lime gelatin</Item> </Ingredient> <Ingredient> <Qty unit="g">500</Qty> <Item>multicolored tiny marshmallows</Item> </Ingredient>

<Ingredient> <Qty unit="ml">500</Qty> <Item>Cottage cheese</Item> </Ingredient> <Ingredient> <Qty unit="dash"/> <Item optional="1">Tabasco sauce</Item> </Ingredient> </Ingredients> <Instructions> <Step> Prepare lime gelatin according to package instructions </Step> <!-- And so on... --> </Instructions> </Recipe>
94

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

95

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

96

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

97

Nomenclatura XML

98

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

99

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

100

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

101

Well-formed: il documento segue le regole dell’XML valido: il documento segue anche le regole del DTD

102

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

103

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

104

Un parser XML che valida un documento legge il documento ed il DTD, e controlla la corrispondenza nei confronti del DTD. I validatori per HTML fanno un lavoro simile. I browser HTML sono molto liberali...

105

DTD
I DTD danno l’estendibilità dell’XML Usano una sintassi diversa dai documenti XML gli “schema” dovrebbero essere documenti XML con funzioni di DTD. XML Schema è adesso al livello Recommended di W3C

106

DTD - esempio
<!-- DTD per le ricette --> <!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Description (#PCDATA)> <!ELEMENT Ingredients (Ingredient)*> <!ELEMENT Ingredient (Qty, Item)> <!ELEMENT Qty (#PCDATA)> <!ATTLIST Qty unit CDATA #REQUIRED> <!ELEMENT Item (#PCDATA)> <!ATTLIST Item optional CDATA "0" isVegetarian CDATA "true"> <!ELEMENT Instructions (Step)+>

107

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

108

“?” significa che l’elemento è opzionale e può apparire 1 o 0 volte “+” significa 1 o più “*” significa 1,0 o più volte

109

<!ELEMENT Name (#PCDATA)> L’elemento può contenere solo caratteri e nient’altro (parsed character data). Non può avere figli.

110

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

111

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

112

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

113

XML

Esempio: RSS

114

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

115

116

Un programma può aggregare informazione da diversi siti usando RSS

117

XHTML

118

XHTML
È il successore di HTML Si basa sul rigore di XML applicandolo alle funzioni di formattazione di HTML Un documento XML deve essere well formed

119

I tag devono essere scritti in minuscolo ! La rappresentazione grafica dovrebbe usare solo CSS (strict) In alternativa si possono mettere tag di presentazione anche nel codice XHTML (transitional)

120

Come funziona il web

Architettura client-server

121

Come funziona il web
L’architettura del WWW prevede una parte client e una server un programma client (browser) è in grado di visualizzare documenti testuali, grafica, informazioni multimediali ricevute dal server con cui comunica tramite HTTP HyperText Transfer Protocol: protocollo standard utilizzato per la trasmissione delle informazioni

122

Come funziona il web
La pagina inviata dal server è in formato HyperText Markup Language file ASCII con informazioni di controllo per l’impaginazione del testo, per la definizione dei link, etc.
⌧link è formato dall’indirizzo di rete del server e l’identificativo del file contenente la pagina associata al link (nascosto)

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

123

Come funziona il web
URL (Uniform Resource Locator): indirizzo per ogni tipo di risorsa residente sui vari computer collegati alla rete
tipo://host.dominio/path/filename

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

124

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

125

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

Browser – server web
Le operazioni da compiere per consultare siti Internet navigando tra i computer e le pagine presenti nel WWW: Collegarsi all’ISP, fornitore della connessione a internet, componendo il numero telefonico (tramite modem). Entrati nella rete (Login e Password) attivare il browser: digitare l’URL di un sito nella casella dell’indirizzo.

127

Browser – server web (2)
La richiesta dell’utente percorre la rete fino ai server interessati, seguendo il percorso più efficiente tra le migliaia disponibili che collegano tra loro i server che costituiscono i nodi della rete.
⌧L’instradamento viene effettuato dai router ⌧Sono usati i protocolli TCP e IP

128

Browser – server web (3)
Il server esamina la richiesta e trasmette i dati richiesti al computer dell’utente usando un testo scritto con il linguaggio HyperText Marked Language, contenente codici che sono interpretabili dal browser. Il messaggio di ritorno può seguire anche percorsi diversi sui nodi della rete, secondo il criterio del percorso più efficiente.

129

Browser – server web (4)
Quando i dati trasmessi raggiungono il computer dell’utente, il browser trasforma il codice HTML in una pagina grafica e la visualizza sul monitor. Le fasi dalla 2 alla 4 si ripetono spostandosi tramite i link.

130

Programmazione client-side
In realtà, esiste la possibilità di incorporare elementi dinamici nei documenti HTML, che possono essere interpretati direttamente dal browser: JavaScript e VBScript sono linguaggi che possono essere racchiusi direttamente nel documento HTML. Entrambi sono “guidati dagli eventi” (click del mouse o entry da tastiera), e sono in grado di manipolare gli elementi di un documento Web attraverso il browser;
⌧eventi sono il click del mouse su particolari elementi della pagina, così come il caricamento di una pagina.
131

Programmazione client-side
Questi linguaggi di script sono relativamente semplici da usare, ma non particolarmente potenti: il maggior vantaggio è che consentono alla pagina di variare dinamicamente alle condizioni o cambiamenti del browser, senza la necessità di fare accesso al server; lo script è eseguito (interpretato) direttamente nel browser; in questo modo il numero di accessi al server è ridotto e la velocità incrementata.
132

Programmazione client-side
Un tipico impiego è quello di usare un semplice script per cambiare lo stato di una piccola immagine usata per un bottone in una pagina web, quando passa da uno stato on ad uno off. L’uso più rilevante è per la validazione degli ingressi: ad esempio un text-box usato per un codice postale potrebbe prevedere una lunghezza massima di 5 cifre. Lo script potrebbe verificare la congruenza del dato immesso ed eventualmente notificare all’utente l’errore, prima di inviare il dato al server. In questo modo si svincola il server dall’operazione di controllo e si evita l’invio di dati errati.

133

Come funziona il web

Web server Programmazione server side

134

Web server
Il compito principale di un web-server è quello di ricevere, interpretare e rispondere alle richieste di un web-client. I servers sono i responsabili della maggior percentuale di traffico sulla rete. Il termine web-server è spesso usato in due modi distinti: a livello base il web-server è un programma che ascolta attivamente un particolare canale di comunicazione per intercettare le richieste HTTP dei client. Alcuni tra i più comuni server web sono Microsoft IIS (Internet Information Server) in ambiente Windows, e Apache server disponibile per Linux e Windows (consigliato l’uso della release 2).

135

Web server
Spesso il termine web-server è utilizzato anche per indicare una particolare macchina fisica dedicata al compito specifico di eseguire il software di un particolare web-server:
⌧in questo caso non esiste una reale distinzione tra la macchina ed il software eseguito; ⌧in altri casi il software del server web può essere eseguito su di una macchina condivisa per le normali operazioni. La soluzione dedicata è di solito preferibile.

136

Programmazione server-side
La capacità di rispondere alle richieste degli utenti è stata introdotta nel software dei server web per trattare i dati introdotti attraverso form HTML. L’informazione fornita dal web client è elaborata da un programma eseguito sul server che può re-indirizzare il client ad un URL basandosi sul risultato della elaborazione, o generare in modo automatico una nuova pagina web come risposta all’ingresso. Il modo più diretto per elaborare richieste dal Web è rappresentato dalla Common Gateway Interface (CGI).

137

Programmazione server-side
In una applicazione tipica, un form HTML è inviato al server, e qui è passato attraverso il protocollo CGI ad un programma di elaborazione. I CGI forniscono anche l’accesso ad un insieme standard di informazioni riguardo il web client, come ad esempio il tipo di browser utilizzato. La programmazione server-side è essenziale per ogni applicazione orientata all’utilizzo di database sul Web: i CGI forniscono un modo per accedere a programmi sul server, ma sono relativamente lenti (di solito scritti in Perl). una soluzione alternativa utilizza le Application Programming Interfaces (APIs).

138

Server Side Scripting
La necessità di linguaggi di scripting server side inclusi nel codice HTML si è resa evidente per superare i limiti posti dal solo HTML e dagli script client side, in particolare per la costruzione di pagine dinamiche e l’accesso a database. Il concetto alla base di tutti i linguaggi di script server side è che il loro codice, inserito all’interno di una pagina HTML, è interpretato ed eseguito dal web server: il server sostituisce il codice dello script con il risultato della sua esecuzione, ed invia la pagina HTML così ottenuta al browser che ne ha fatto richiesta.

139

Server Side Scripting: PHP
Il PHP (Personal Home Page) è nato nell’autunno del 1994 ad opera di Rasmus Lerdorf. È un progetto open source che negli ultimi anni si è affermato come una delle soluzioni più versatili e diffuse sul web come linguaggio di scripting server-side. Attualmente si stima che sia attivo su oltre 5 milioni di siti nel mondo: in termini di diffusione è leggermente superiore rispetto ad un prodotto antagonista come ASP in combinazione con il web server Internet Information Server di Microsoft.
140

Server Side Scripting: PHP
La sua diffusione è dovuta anche al fatto che è multipiattaforma, per cui è possibile trovare l’interprete PHP per i più diffusi sistemi operativi (Windows, Linux, Unix, etc.). Inoltre rispetto ai CGI gode di alcuni vantaggi: il PHP è un linguaggio embedded nel codice HTML, e non necessita quindi di ulteriori file esterni per essere eseguito; uno script PHP non ha bisogno di risiedere in una particolare directory, come avviene per la directory cgi-bin dei CGI.

141

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

<title>Example</title>

Cos’è il PHP
Se la pagina precedente (esempio0.php) è aperta dal browser come file (nel location box del browser compare l’indirizzo c:\path\file.php), il risultato prodotto è il seguente:

La pagina è vuota perché il browser non è in grado di interpretare il codice PHP. La pagina è visualizzata esclusivamente in base alla formattazione HTML.
143

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

È infatti il server web che usa l’interprete PHP per eseguire lo script, e restituisce al browser la pagina HTML creata “on the fly”.
144

Cos’è il PHP
Se dal browser visualizziamo il codice HTML della pagina si ottiene il risultato seguente:

Si osserva che i tag del PHP non compaiono nella pagina finale, che comprende solo i tag HTML e la scritta “A PHP script” inserita nel file HTML tramite il comando echo del PHP: echo produce come risultato la stampa nella pagina HTML 145

Come funziona il web

Web e database

146

Tecnologia del Web
Nella prospettiva di collegare le componenti web con un database, tre sono le componenti base per qualsiasi applicazione: la tecnologia del Web (lato server e lato client); la tecnologia del database: la tecnologia per il collegamento client/server e tra le componenti Web ed il database. La tecnologia impiegata nell’ultimo punto va sotto il nome di middleware, in quanto si situa tra l’applicazione e la rete.
147

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

Web
JavaScript

Web Server APIs CGI Application Servers

Middleware
ODBC
jsp, php, asp

Database
SQL

Native Database Gateways
148

Web side
La struttura base del processo di accesso alle informazioni sul Web comprende le seguenti fasi: un utente usando un web browser richiede un file da un computer remoto ad un certo indirizzo; il web browser invia la richiesta in rete utilizzando il protocollo HTTP; il web-server sul computer remoto all’indirizzo indicato riceve la richiesta e la elabora; se il file esiste ed è accessibile sul computer remoto, questo invia il file al web-server; il web-server gira il file al web browser (client) che ha fatto la richiesta: il web browser interpreta i comandi di formattazione presenti nel file e presenta la pagina all’utente.

149

Struttura client/server sul Web
Web Server
3. Il Web server processa la richiesta 4. Il file è ritrovato dal Web server 2. richiesta HTTP 5. risposta HTTP

Remote Computer
(server)

6. Output HTML formattato

Web Browser
1. L’utente richiede il file

User
(client)

150

Accessibilità

151

ACCESSIBILITÀ
I siti Web devono devono essere progettati in modo da garantire la consultazione anche da individui affetti da disabilità motorie (controllo arti) o sensoriali (vista e udito), o cognitive, o condizionati dall’uso di strumenti con prestazioni limitate o da condizioni ambientali sfavorevoli Opportunità legate alla possibilità di tradurre l’informazione in formato elettronico in diverse modalità percettive Un sito accessibile fornisce vantaggi anche alla generalità degli utenti
152

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

L’accessibilità di siti e documenti disponibili nel Web significa garantire la possibilità di:

orientarsi e navigare all’interno di un sito leggere i contenuti delle pagine interagire con le procedure che prevedono scelte, immissione di dati
I contenuti e le procedure devono essere fruibili da utenti dotati di browser con diverse configurazioni

154

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

[Priorità 3]

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

155

Linee guida W3C: Conformità
SI definiscono tre livelli di conformità per un sito web

Conformità di livello A
⌧Sono stati rispettati tutti i check point di Priorità 1

Conformità di livello AA
⌧Sono stati rispettati tutti i check point di Priorità 1 e 2

Conformità di livello AAA
⌧Sono stati rispettati tutti i check point di Priorità 1,2 e 3

156

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

Bobby effettua un’analisi automatica, le sue indicazioni devono essere controllate

157

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

Link testuali per ogni regione di una image-map

[Priorità

158

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

Checkpoints
Assicurarsi che ogni tipo di informazione legata al colore sia comprensibile anche in assenza di colori attraverso il contesto o il markup [Priorità 1] Assicurarsi che la combinazione di colori di sfondo e quelli di primo piano realizzino un adeguato contesto [Priorità 2 per le immagini, Priorità 3 per il testo]

159

Linee guida
Guideline 3. Usare markup e fogli di stile e farlo in modo appropriato Checkpoints
Se esiste uno specifico linguaggio di markup per il contenuto deve essere usato ( Ad esempio usare MathML per equazioni e formule) [Priorità 2] Usare fogli di stile per controllare il layout e la presentazione [Priorità 2] Usare gli header in accordo con la struttura del documento e non per ottenere effetti sui font [priorità 2] …..

160

Linee guida
Guideline 4. Rendere chiaro l’uso di linguaggio corrente
Usare markup che facilitino l’interpretazione di abbreviazioni e di parole straniere

Checkpoints
Identificare il linguaggio primario di un documento. In HTML settare l’attributo “lang” nell’elemento HTML [Priorità 3] Specificare l’espansione di ogni abbreviazione [Priorità 3] …..

161

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

Checkpoints
Per tabelle di dati specificare l’intestazione di riga e di colonna. In HTML usare sempre TD per le celle e TH per l’header [Priorità 1] Per tabelle di dati che hanno due o più livelli logici di intestazione di riga o di colonna. Ad esempio in HTML, usare THEAD, TFOOT, e TBODY per raggruppare le righe, COL e COLGROUP per raggruppare le colonne, e gli attributi "axis", "scope", and "headers" per descrivere le relazioni tra i dati [Priorità 1]

162

Linee guida
Guideline 6. Assicurarsi che le pagine contenenti nuove tecnologie si trasformino in maniera adeguata Assicurarsi che le pagine siano accessibili anche quando le nuove tecnologie non sono disponibili (Es. nuovi Plug-in) Checkpoints Organizzare la pagina in modo che possa essere letta correttamente anche senza fogli di stile [Priorità 1] Assicurarsi che il il contenuto equivalente per contenuto dinamico si aggiorni quando il contenuto dinamico cambia [Priorità 1] Assicurarsi che la pagina sia leggibile anche quando script, applett o altri oggetti non siano disponibili o disabilitati. Se non fosse possibile usare la pagina senza script rendere disponibile una pagina testo equivalente o usare scripting server side al posto di scripting client side [Priorità 1]

163

Linee guida
Guideline 7. Assicurarsi che l’utente abbia il controllo di contenuti mutevoli nel tempo possano essere
Assicurarsi che oggetti che lampeggiano, si muovono o si auto aggiornano possano essere messi in pausa o stoppati

Checkpoints
Evitare lo sfarfallio dello schermo [Priorità 1] …

164

Linee guida
Guideline 8. Assicurare l’accessibilità alla interfaccia utente
Assicurarsi che l’interfaccia utente segua principi di design accessibile: accesso indipendente dal mezzo

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

165

Linee guida
Guideline 9. Design indipendente dall’interfaccia
Usare funzionalità che permettano l’attivazione 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 l’attributo “accesskey” [Priorità 3]…..

166

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

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

167

Linee guida
Guideline 11. Usare tecnologie e linee guida W3C Checkpoints
Se , nonostante gli sforzi non si riesce a creare una pagina accessibile, rendere disponibile un link ad una pagina alternativa che usi le tecnologie e le linee guida W3C con informazione equivalente e stessa frequenza di aggiornamento [Priorità 1] Non usare funzionalità deprecate dal W3C [Priorità 2] ….

168

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

169

Linee guida
Guideline 13. Rendere disponibile un chiaro meccanismo di navigazione Checkpoints
Identificare chiaramente il target di ogni link. In HTML scrivere “informazioni su W3C” invece di “clicca qui” [Priorità 2] Usare metodi meccanismi di navigazione in modo consistente [Priorità 2] Usare barre di navigazione del sito [Priorità 3]

170

Linee guida
Guideline 14. Assicurare che il documento sia chiaro e semplice Checkpoints
Usare il linguaggio più semplice e adeguato per il contenuto del sito [Priorità 1] Creare uno stile di presentazione che sia coerente in tutto il sito [Priorità 3]

171

Sintesi raccomandazioni
Trattare separatamente, il contenuto, la struttura e la presentazione di una pagina, facendo uso di "fogli di stile" Non usare il colore come unico veicolo di informazione Usare grandezze relative per indicare le dimensioni e la posizione delle componenti di una pagina Creare documenti "scalabili” che non dipendono da un solo tipo di hardware

172

Sintesi raccomandazioni
Fornire testo equivalente a immagini, video e contenuto multimediale
corredare le immagini di descrizioni testuali (es. "alt" di HTML) per indicare la funzione dell’immagine o la descrizione del contenuto (es. "longdesc" o "description link" in HTML) quando è importante per la comprensione del documento

Corredare le componenti sonore di segnalazioni alternative visive

173

Sintesi raccomandazioni
Usare parole o brevi frasi di chiaro e univoco significato anche fuori del contesto Seguire la stessa regola anche per la didascalia alternativa di collegamenti realizzati con immagini o simboli grafici Prevedere procedure alternative a script, applet …. nel caso che non siano gestibili con i comuni ausili usati dagli utenti disabili. Prevedere un messaggio di avvertimento di apertura di una finestra.

174

Sintesi raccomandazioni
Limitare l’uso di frame ai casi di vera utilità Una presentazione ristretta ad una porzione di schermo può creare problemi alle persone ipovedenti che preferiscono sfruttare tutta la larghezza dello schermo per la lettura con caratteri ingranditi, evitando più che è possibile lo scorrimento orizzontale del testo Limitare l’uso di tabelle ai casi di vera utilità Assicurarsi che il contenuto e la struttura delle tabelle risultino chiari anche quando la tabella stessa viene letta cella dopo cella e una riga alla volta
175

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

176

Immagini bitmap e vettoriali

Bitmap vs. Vettoriale
Immagine bitmap: immagine formata da una matrice di punti (colorati) Immagine vettoriale: immagine definita da linee e curve (vettori), che racchiudono anche proprietà relative al colore e alla posizione.

L’immagine vettoriale mostrata prima è memorizzata come istruzione di disegno (es. circolo, ellissi, spline) con relativi parametri
per ruotarla, ingrandirla o ridurla cambio i parametri e ricalcolo il risultato

Nel caso di un’immagine bitmap devo agire sui punti (pixel) che compongono l’immagine
in molti casi mi devo “inventare” i pixel che fanno parte dell’immagine ingrandita, ruotata etc.

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 l’accuratezza 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 all’altro.

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 l’informazione sulla luminosità da quella sulla cromaticità.
Si sottocampiona l’informazione 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

Nell’esempio 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 un’immagine dipende dal numero di bit assegnati ai vari canali di ogni pixel
Es. 8 bit ad ogni canale (256 valori diversi) per 3 canali: 24 bit = 16 milioni di colori

Es.: le immagini GIF assegnano un byte ad ogni pixel => un’immagine GIF può avere al max. 256 colori
Es.: 11111111 in binario = 255 in decimale ( 1*20 + 1*21 + 1*22 + …) = ( 5*100 + 5*101 + 2*102)

Maggiore è il numero di bit usati per rappresentare il colore maggiore è la precisione ed il numero di sfumature disponibili
maggiore è la memoria necessaria a memorizzare l’immagine...

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 dell’immagine (i.e. distanza dall’osservatore)

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 l’informazione sul colore, poi l’algoritmo 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 l’immagine (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 all’interno 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 all’interno della stessa casella (contrassegnata da un triangolino in basso a sx)
Si deve tenere premuto il pulsante per vedere tutti gli strumenti disponibili

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 l’immagine finale è pronta si possono riunire tutti i layer in uno solo

Un’immagine è 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 l’area su cui si vuole lavorare e si preme nella toolbox Posso creare un livello-maschera

Ingrandimento e riduzione

Se si ingrandisce o riduce un’immagine 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 dell’immagine, a maschere o layer

Alcuni filtri hanno parametri modificabili

Molti filtri sono basati su operazioni di convoluzione
Es. smoothing (blurring) o sharpening

La convoluzione è un’operazione matematica in cui i valori di due matrici sono usati per produrre una terza matrice
Tipicamente i valori di una matrice vengono moltiplicati con i corrispondenti di una seconda matrice e sommati tra loro

Il filtro di blurring gaussiano di Photoshop è fatto usando una convoluzione

σ = 1.4

Il σ visto prima è chiamato Radius in Photoshop

Sign up to vote on this title
UsefulNot useful