[eBook Ita] Corso Di Fondamenti Di Informatica

Post on 26-Dec-2015

55 views 6 download

description

manuale completo e esaustivo di informatica .

transcript

FONDAMENTI DI INFORMATICA

Marco BertiniUniversità degli Studi di Firenze

Facoltà di ArchitetturaCorso 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 softwareEseguono 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 caseMicroprocessore (chip)Chip di memoriaScheda 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 floppyUnità a disco fissoUnità CD-ROM

Hardware di output

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

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

- Monitor

- Stampante- Scheda audio

- Casse acustiche- Scheda video

Hardware di comunicazione

Modem

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

Software

Software di sistema- Esegue operazioni fondamentali- Consente 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, PowerPCdella 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 radialmentedall’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’hostvel. max. 12 Mbpsogni dispositivo può richiedere un max di 6 MbpsUSB 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 persupportare 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’A4Sheet-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 deviceConverte 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 CathodeFluorescent 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 filtroNormalmente 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 scannerIl true color richiede 24 bit, molti scanner sono in grado di elaborare 30/36 bit di colore tra cui però scelgono i colori più adatti

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

BIOS e POST

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

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

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

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

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

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

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

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 spengimentorichiederà 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 oraSi può modificare data e ora anche dal S.O.L’orologio si sincronizza anche via Internet con l’Istituto Galileo Ferraris (o altri orologi atomici)

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 busmodemhard-drivesound-cardgraphic-card (più vecchie)controller-cardscanner

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 identificarsiControlla che per ognuno sia presente una configurazione in ESCD, se non presente il BIOS assegna alcune risorse (IRQ, memoria etc.)Il S.O. fa il boot, controlla BIOS e PnP e se trova qualcosa di nuovo installa il driver

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 CPUpiù PCI su stesso computer64 bit / 66 MHzPCI-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 bootpresente nella memoria CMOS

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

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

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

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 PCIl suo ruolo ricopre sei tipologie di operazioni:

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

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, MacOSconsentono 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

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

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

IDE

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

IDE

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

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

SCSI

Normalmente usato su PC di fascia alta

E’ veloce: fino a 160 MBps.

Permette di connettere più dispositivi su un solo bus

SCSI

In un sistema SCSI ci sono tre componenti:

- controller:

- dispositivo

- cavo

SCSI

SCSI

controller :

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

- viene chiamato anche host adapter

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

SCSI

dispositivo :

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

SCSI

cavo :

- può essere interno o esterno

Tipi di SCSI:

- Fast è legato al clock

- Wide all’ampiezza del bus

- Ultra è legato alla terza versione dello standard

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

SCSI

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

- dischi collegati tra loro e considerati come 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 spengiamoConsente a tutti i programmi applicativi di essere eseguitiConsente 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 virtualeSistema operativoInterfaccia utenteSoftware di utilitàSoftware di comunicazione

Software applicativo

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

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

In pratica:

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

Funzioni svolte dal S.O.

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

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 remotaCaricamento 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 menuWindows 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 perifericheUn 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

desktop

cursore

icone

finestra

traytaskbaravvio rapido

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

Gestione dellamemoria secondaria

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

dove

File: sequenza di byte che rappresentano una informazione omogenea

Biblioteca Memoria di massa

Armadi Cartelle o Directory

Scaffali Sottodirectory

Libri File

Una struttura ad albero

Radice

File1 Cartella1 Cartella2

File1.1 Cartella1.1 Cartella2.1

FileB

FileB

FileA FileACartella1.1.A

Cartella1.1.A.1

Esempio

RADICERADICE

GIOCHIGIOCHIESERCIZIESERCIZI

LEZIONILEZIONILETTERELETTERE

DOCUMENTIDOCUMENTI

•Solitario.exe

•FreeCell.exe

VARIEVARIE

•Mialett.txt

•Curric.doc

•Lab.ppt

•so1.ppt

•Ricette.txt

DWDW EXCELEXCEL

•ES1.html

•ES2.html

•ES3.html

•EX01.xls

•EX02.xls

Esempio Windows

Unità a disco tipiche (Windows)

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

Man mano che si aggiungono dischi si usano le altre lettere

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

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

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 WindowsFATFAT32

EXT2 LinuxEXT3

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

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

file

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

C:\Giochi\FreeCell.exeC:\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 datiDoppio click sull’icona del file: Windows usa l’estensione per riconoscere quale programma apre il file

Cancellare un file

Si trascina il file sul cestinoMenu contestuale del file > eliminaSelezione 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 programmiFile di dati

ASCIIImmaginitestiAudioAnimazioni 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 postaUn 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.htmlper 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…

ZipRarArjGzip (tipico Unix)

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

JpegMpegDivX

Utility

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

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

Protezione antivirusCompressione fileGestione fileGestione e manutenzione S.O.

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 miglioranoNON è 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 sappiaBoot, file, macro virusWorm: simile ad un virus ma non ha bisogno di infettare altri programmi. Si propaga via rete

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

Per informarsi…

È bene informarsi sui virus attivi ed i loro effetti:

Symantec:http://securityresponse.symantec.com/McAfeehttp://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 antivirus2. TENERLO AGGIORNATO3. Non eseguire programmi in attach NON

richiesti4. 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 datiQuelli 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 CDcopiare su altro PCcopia 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 datiTipi di reti…WAN, MAN e LAN

Motivazioni

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

Terminologia

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

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

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

Terminologia

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

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

WAN/MAN

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

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

Topologie (1/2)

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

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

Topologie (2/2)

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

Reti a stella

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

Reti ad anello

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

Reti a bus

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

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 binarioCodici

• Codice ASCII per i caratteri

01001101

01000001

A

77

Trasmissione digitale dati

Avviene solitamente in modo seriale (un bit alla volta)

01001101

Larghezza di banda

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

0 8

0 8

tempo (s)

tempo (s)

1 bit/s

2 bit/s

Traffico dati

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

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

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

LAN

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

LAN

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

elettronica

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

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 utentiMandare messaggiCondividere databaseAmministrare programmi

LAN: componenti

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

Client/Server Computing

Client(computer+SW)

Middleware(software)

Server(computer+SW)

Servizi richiesti daclient

filedatipagine webapplicazioni

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

Initiator Facilitator Passive provider

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

Peer to Peer Networking (P2P)

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

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 reteDovuto ai tempi di trasmissione del segnale

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

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

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 Ethernetin più sottoreti

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

Switch (1/2)

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

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: reteSi 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 accessoUna connessione fisicaUn Provider Internet (ISP)

56 Kbit/sModem telefonicoVELOCITÀ MAX.SERVIZIO

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

Modem telefonico

a bassa velocitàma economico e disponibile ovunque

Modem

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

Segnali e modem

Linee telefoniche ad alta velocità

ISDN (Integrated Services DigitalNetwork)

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

Linee telefoniche ad alta velocità

xDSL (Digital Subscriber Line)

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

Spesso un dispositivo xDSL funziona anche come Hub

Linee telefoniche ad alta velocità

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

Linea T3Trasmette a 43 Mbit/sCosti molto elevati

Modem via cavo

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

Sistemi wireless

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

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

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 retiInterconnessione universaleProtocolli per l’indirizzamento e la trasmissione dei dati

IPTCPUDP

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

L’indirizzo viene dato da:ISPAmministratore di rete

Può essere sia variabile che fisso

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 ottimaleforwarding: spostare un pacchetto da una porta all’altra del router

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

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

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 IPSoluzione: assegnazione di nomi alle macchine (e alle reti)Sorge un nuovo problema, ovvero la gestione dei nomi: chi conosce i nomi di tutti i computer su internet ?

Domain Name Service (2/4)

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

Domain Name Service (3/4)

. (root)

edu com org

mit

it

unifi

dsi

pippo

www

pippo.dsi.unifi.it

www.mit.edu

Domain Name Service (4/4)

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

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

affidabilesequenzialecompletosenza duplicati

Il protocollo UDP

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

Es.: usato per lo streaming audio o video

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

ipertestuali

Uso del WWWInformazioneIntrattenimentoCommercio elettronicoPosta elettronica

Perché il WWW è interessante e facilmente navigabile

Formato multimedialeUso degli ipertesti

Termini per il Web

Siti WebPagine WebBrowserURLPortali Web

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

Il domain name segue le regole del DNS

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

È la home page

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

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

Indirizzo di posta elettronica

Mario_Rossi@dsi.unifi.it

Nome utente Nome di dominio

Dipartimento Dominio (TLD)

Posta elettronica e IM

Allegati Messaggi istantanei

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

Netiquette

Consultare le FAQEvitare le flameNon urlareEvitare erroriNon inviare grossi allegati

Quotare solo le parti rilevanti del messaggio originarioEvitare gli spam

Invio di posta elettronica

Ricezione di posta elettronica

Rispondere a un messaggio di posta elettronica

Allegati

6

Funzioni degli applicativi da ufficio più comuni:

Gestione testiCalcoloGestione archiviCreazione presentazioni

7

I programmi che svolgono questi lavori sono spesso integrati

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

8

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

È la gallina dalle uova d’oro di Microsoft

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

9

Nel seguito tratteremo gli strumenti Microsoft

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

10

I programmi principali di MS Office sono:

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

11

Per iniziare a lavorare:

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

12

Cos’è un foglio di calcolo

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

GraficiLinguaggio di programmazione

13

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

Ci sono 256 colonne.

Le righe sono identificate da numeriCi sono 65536 colonne

14

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

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

15

Barra del titoloBarra dei menu

Barra Standard

Barra formattazione

Barra della formula

Elenco dei fogli Barra di stato

Barre di scorrimento

256 colonne

65.5

36 ri

ghe

16

Cella D5

17

Zona B3:D10

18

Selezione celle

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

Oppure trascinando il mouse con il pulsante premuto

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

19

20

Contenuto celle

All'interno delle celle posso scrivere tre cose:

del testo⌧Tutto quello che contiene almeno un carattere

non numerico o separatore numerico

dei numeri⌧Date e ore sono numeri

delle formule

21

Cancellazione ed eliminazione

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

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

22

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

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

23

24

25

Copia e inserimento

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

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

26

27

28

Inserimento serie dati

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

29

Importare dati Excel in Word

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

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

I dati sono copiati come tabella di Word

30

31

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

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

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

32

33

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

34

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

35

OLE

La condivisione di dati tra applicazioni vista prima è detta OLE

object linking and embedding

36

Formule e funzioni

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

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

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

37

Tutte le formule iniziano con un =

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

38

Operatori

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

potenza= inizio di ogni formula( ) parentesi

39

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

& concatenastringhe

; unione

spazio intersezione

40

Indirizzamento relativo delle celle

cella contenente la formula

celle utilizzate nella formula

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

B1 diventa E2, B3 diventa E4

A4 diventa D5

la formula in D3 è =E2+E4+D5

41

Indirizzamento assoluto delle celle

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

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

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

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

42

Blocco riquadri

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

Per mantenere visibili le intestazioni si blocca un riquadro

43

Riga blocco riquadri

Le colonne da C a F sono nascoste

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

44

Formato dati

Formattazione grafica

45

Una tabella di dati può essere formattata automaticamente

46

Formattazione dei dati

Es. valuta, data, percentuale, …

47

48

Funzioni

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

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

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

49

Sintassi:=parolachiave(argomenti)

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

Più argomenti sono separarti da ;

Non devono essere utilizzati spazi nella digitazione di funzioni

50

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

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

51

La funzione somma è molto comune

Excel la calcola al volo sulle selezioni di celle

Si possono scegliere anche altre formule

Il valore di questi calcoli NON è memorizzato in nessuna cella

52

53

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

54

quando si preme il tasto Incolla funzione

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

55

Seconda finestra dialogo Autocomposizione funzioni

Descrizione Risultato Argomenti

56

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

57

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

TEST(analisi)

Azione da eseguire se il test è VERO

Azione da eseguire se il test è FALSO

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

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

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

58

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

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

Test1

val1Test2

val2 val3

vero falso

vero falso

59

Test1vero falso

Test2

val2 val3

val1vero falso

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

60

Esempio

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

61

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

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

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

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

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

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

62

Esempio

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

63

64

Funzioni “condizionali”

CONTA.SE(intervallo;criteri)

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

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

65

Esempio

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

66

Alcune funzioni matematiche e trigonometriche

SEN(angolo) seno di un angolo espresso in radianti

COS(angolo) coseno di un angolo espresso in radianti

PI.GRECO() valore di π

LN(numero) logaritmo di un numero in base naturale

LOG10(numero) logaritmo di un numero in base 10

EXP(numero) esponenziale

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

SOMMA(zona) somma di una zona di celle

RADQ(numero) radice quadrata di un numero

FATTORIALE(num) num!

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

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

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

67

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

MEDIANA(zona) mediana dei valori della zona

MODA(zona) moda dei valori della zona

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

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

MIN(zona) valore minimo della zona

MAX(zona) valore massimo della zona

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

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

presenti nell’elenco degli argomenti

68

Esempio

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

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

69

Alcune funzioni di ricerca e riferimento

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

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

RIGHE(zona) COLONNE(zona)

restituiscono il numero di righe o di colonne di una zona

CERCA.VERT(valore;matrice;indice)

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

VAL.VUOTO(cella)

restituisce il valore VERO se il contenuto della cella è vuoto

70

Esempio

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

71

Alcune funzioni matricialiMatr.inversa(matrice) (*)

calcola la matrice inversa di una matrice assegnata

Matr.determ(matrice)

calcola il determinante di una matrice assegnata

Matr.prodotto(matrice1;matrice2) (*)

calcola il prodotto tra due matrici assegante

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

CTRL+SHIFT+INVIO

72

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

73

Tabelle pivot

Servono a estrarre e visualizzare dati senza impostare formule complicate

Sono uno strumento di analisi

Es. creare una tabella riassuntiva di un inventario di dischi

74

75

76

77

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

78

Si nota come le date siano già state riunite

79

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

80

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

81

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

La tabella pivot si riadatta immediatamente alle selezioni

82

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

Es. esaminare incidenza IVA sui totali

83

Si trascina l’IVA nella sezione dei dati

I risultati del pivot possono essere usati in altre celle

84

Grafici

I tipi di grafico che si possono realizzare sono diversi:

1) Istogramma 8) Radar

2) Barre 9) Superficie

3) Linee 10) Bolle

4) Torta 11) Azionario

5) Dispers.(XY) 12) Cilindri

6) Area 13) Coni

7) Anello 14) Piramidi

85

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

1) Selezione oggetto

2) Scelta comando grafico

L’oggetto è la zona contenente i dati.

Suggerimenti:

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

• inserire le etichette di descrizione

86

Costruzione di un grafico, prima finestra

Al primo passaggio si scelgono tipo e sottotipo di grafico

87

Costruzione di un grafico, seconda finestra

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

Interventi sulle serie (descrizioni e numeri)

88

Costruzione di un grafico, terza finestra

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

89

Costruzione di un grafico, quarta finestra

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

90

Costruzione di un grafico, risultato finale!

91

Titolo del grafico

Pareti

Serie

Legenda

AssiArea del grafico

92

Aggiunta retta di regressione

93

94

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

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

⌧Si deve scegliere l’ordine giusto

95

96

Imposta pagina

97

Stampa

98

Stampa

È importante regolare l’aspetto del foglio in stampa

Usate anteprima di stampa ed il pulsante “Imposta”

99

L’impostazione margini è simile a quella di Word

In più si può centrare la tabella

100

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

101

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

in Word sono invece parte del documento

102

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

103

Per non stampare la griglia delle celle:

104

Modalità di esecuzione di calcoli su date e ore

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

105

Esempio

=G7+H7=G7+H7

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

106

Tecniche avanzate

Formattazione condizionale

Etichette

Ricerca obiettivo

Archivi

107

Formattazione condizionale

108

109

Etichette

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

110

Ricerca obiettivo

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

111

112

Archivio in Excel

In Excel archivio (database) vuol dire tabella.Per garantire il corretto funzionamento dei comandi di database la tabella di dati deve essere costruita secondo alcune regole:una prima riga della tabella deve contenere

l’intestazione, cioè il nome del campo vanno evitate righe vuote, anche tra intestazione e

righe successivela tabella deve essere isolata, cioè separata da almeno

una riga o colonna vuota da formule, funzioni, ecc.

113

Tipico database di Excel

campi

record

114

Ordinamento di un database

115

Ordinamento di un database, risultato finale

116

Selezione mediante filtriSelezionare la tabella

Selezionare Filtro Automatico dal menu Dati: Excel posiziona delle caselle di selezione a fianco di ogni nome di campo

Cliccando su una freccia appare una lista con tutti i contenuti del campo

Scegliendo una voce della lista, Excel estrae tutti i record contenenti quel valore.

Cliccando su una freccia appare anche un’opzione molto utile: Personalizza.

Questa opzione permette di estrarre dati anche secondo intervalli di valori o confrontando stringhe di testo.

117

Personalizza filtro automatico

118

Errori

#DIV/0 divisione per zero###### colonna troppo stretta per i dati#NOME? Excel non riconosce un nome#NUM! qualche problema con la

gestione di un numero#RIF! non è possibile risolvere un

riferimento (es. cella cancellata)#VALORE! tipo errato in un operandoRif. circolari es. in C7 =SOMMA(C4:C7)

7

Introduzione:

Applicazioni dei database sul Web

8

Nella scorsa lezione si è visto come gestire un semplice archivio con Excel

Per gestire grandi archivi servono programmi specifici:

DBMS Data Base Management System

9

Cosa hanno in comune due siti web come:

Amazon: grande magazzino virtuale

WebMonkey: rivista di design per il web

?????

Usano tutti e due un database…

10

11

12

Perché usare un database sul Web

Due premesse:il Web è un ottimo mezzo per la diffusione delle informazioni;i database sono il mezzo idoneo per immagazzinare ed organizzare dati da cui estrarre informazioni.

È possibile raggruppare i diversi modi in cui i database sono impiegati sul Web, in tre tipi di applicazioni:

creazione dinamica di contenuto;transazione di informazioni;memorizzazione ed analisi di dati.

13

Creazione dinamica di contenuto sul Web

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

14

Nome prodottoImmagine

Descrizione

Numero di telefono per ordinarescritta

Codice prodottoPrezzoOpzioni

Creazione dinamica di contenuto sul Web

Una pagina di un catalogo online può rappresentare un esempio.

15

Creazione dinamica di contenuto sul Web

Una soluzione efficiente che semplifica drasticamente il processo di editing è quella di memorizzare il file immagine e le descrizioni testuali in un database e “lasciare” che sia un programma, appositamente creato ed eseguito in corrispondenza alla chiamata di una pagine web, a riempire i campi del template.

È questa l’essenza della creazione dinamica di pagine Web.

16

Creazione dinamica di contenuto sul Web

ZZZZZZZZZ

yyyyyyyyyyyyyyyyyyyy

tel. 1-888-555-1122aperto 24 ore

Codice prodotto: X-2135Prezzo: 500 Opzioni: rotondo, quadratoItemNum Filename ItemName Options Price Description

X-2135 img10.jpg zzzzzzzzz rotondo,quadrato

500 yyyyyyyyyyYyyyyyyyyy

17

DB

Creazione dinamica di contenuto sul Web

Un unico script sul server genera un numero arbitrario di pagine html tutte con lo stesso formato, il cui contenuto è letto da un database.

ImageID Nome Righe Colonne Bit per Pixel Risoluzione

……. …… ……. …… …… ……

14 chateau1.jpg

100 100 24 20

15 Fighting-forms.jpg

100 120 24 20

……. …… ……. …… …… ……

Tabella ImmaginiMiddleware (php,cgi,asp)

18

Creazione dinamica di contenuto sul Web

Le pagine Web create dinamicamente attraverso un database, ed il template usato per generare il codice HTML offrono una serie di vantaggi:

il sistema cresce con semplicità. Ad esempio se un catalogo online comprende 1000 pagine, una modifica nel layout richiederebbe, nel caso di pagine statiche, l’editing di tutte le pagine.Elimina possibili erroriNel caso dinamico è sufficiente modificare il layout dell’unico template. Sulla base di questo tutte le pagine vengono generate nello stesso modo, applicando i dati nel database al nuovo template.

19

Creazione dinamica di contenuto sul Web

Un altro vantaggio della gestione dinamica delle pagine Web è il risparmio di memoria. Questo, più che ai fini del costo (ormai il costo della memoria di massa è relativamente basso), è importante in fase di manutenzione.

Inoltre, l’informazione memorizzata nel database è inserita una volta, ma può essere usata per molteplici scopi oltre a quello della pubblicazione sul Web.

20

Esempi: query

21

Esempi

Pagina dei risultati creata dinamicamente

22

Esempi

23

Esempi

24

Transazione di informazioni

In pratica, in ogni interazione tra cliente e fornitore è implicata una transazione di informazioni. Possibili transazioni per un tipico sistema di ordini via web potrebbe includere:

ordine di un prodotto - il cliente fornisce il numero del prodotto, la quantità, la descrizione, informazioni per la spedizione ed il pagamento. La transazione inserisce queste informazioni nei corrispondenti database.

Queste transazioni sono di solito eseguite riempendo un form HTML. Questo documento sul Web rappresenta l’ingresso per il database dell’azienda, utilizzato per gestire tutte le informazioni di una transazione.

25

Memorizzazione ed analisi di dati

È possibile pensare ad un browser sul Web come strumento di interfaccia per la visualizzazione e 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.

26

Concetti base e linee guida nel progetto

27

Dati e informazioni

Nel seguito affronteremo essenzialmente il problema di memorizzare ed organizzare dati.

Un dato è un qualunque tipo di valore statico. I suoi valori possono assumere forme diverse, da una semplice scelta si/no, ad un valore numerico, ad un blocco di testo.

Il problema di trasformare dati in informazioni è completamente diverso da quello di costruire dei “contenitori” per i dati.Comunque, esistono metodi per progettare la struttura del database che rendono questa elaborazione più facile da compiere.

28

Cos’è un database

Un database è fondamentalmente una collezione di registrazioni (records) che concernono qualche sorta di azione od oggetto.

Più formalmente, un database è qualsiasi collezione di “fatti” organizzati in modo sistematico.

Es. Le schede del catalogo di una biblioteca. Ogni scheda, fisica o virtuale, contiene fatti (autore, titolo, ISBN, etc.) che sono organizzati (alfabeticamente per titolo o autore, numericamente per ISBN) al fine di rendere la loro ricerca più semplice rispetto ad una scansione di tutti i libri della biblioteca.

29

Esistono diversi tipi di database:

Database gerarchiciDatabase a reteDatabase relazionaliDatabase a oggetti

Access, MySQL, SQL Server etc. sono database relazionali

30

Es. Scheda e Rappresentazione TabellareAutore Titolo Numero di

codice

Ashenfelter, John Choosing a Database foryour Web Site

5019BNA15

Botto, Francis Multimedia and InternetApplications

2212MKV26

Cintron, Dave Fast Track WebProgramming

7682QYT91

Ashenfelter, John 5019BNA15

Choosing a Database for your Web Site

John Wiley & Sons, Inc.

1st printing 1998

31

Terminologia

Un certo numero di termini descrivono le parti di un database. Sono termini standard, indipendenti dal particolare software con cui è implementato il database.

Campo - è l’unità strutturale di base del database. È il contenitore per un dato o per ogni sua parte logica. Ad esempio, un indirizzo di posta potrebbe essere il campo ma, in un diverso contesto, potrebbero essere campi separati la via, il numero civico, la città, lo stato ed il codice postale.

32

Terminologia

Record - è un insieme di campi che descrivono un’unità più grande. È detto anche riga. I campi in un record forniscono una descrizione completa di ogni elemento in una collezione. Un record è un’istanza unica di dati che riguardano un oggetto o un evento.

Tabella - è il nome formale dato ad un gruppo di records che contengono gli elementi di una collezione. Di norma una tabella rappresenta un oggetto distinto (es. tabella libri in una biblioteca) o un evento (es. tabella degli ordini per un prodotto).

33

Terminologia

Chiave - è un identificatore univoco per ogni riga (record) in una tabella di dati. Anche se un record singolo rappresenta una porzione separata dei dati, alcuni di questi records possono apparire identici. La chiave rappresenta un modo non ambiguo per identificare records distinti e serve come puntatore ad un particolare record della tabella. ⌧Es.: ogni cittadino italiano è univocamente identificato dal

codice fiscale.⌧In molti casi, le chiavi per le tabelle dei dati sono costruite

semplicemente aggiungendo un campo al record con funzione di chiave.

34

Key Field

Record

Tabella indirizzi

TerminologiaID LastName FirstName Address City State Zip

2231 Adamson Robert 1021 BWheatley

Lawrence NY 11559

2232 Anderson John 1024Santee St.

Owings Mill MD 21117

2233 Atget Eugene 103 NMarket

Cleveland OH 44135

2234 Baldus Denis 1031-1 SDolfield

Los Angeles CA 90015

35

Terminologia

Spesso utenti diversi vogliono guardare ai dati di una stessa o di più tabelle in modi diversi.

⌧Ad esempio, se fornitori e merce sono due tabelle in un database, può essere utile avere una vista di quali merci sono fornite da un certo fornitore. Questo dato può essere ottenuto dalle due tabelle e combinato in una tabella virtuale.

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

36

Terminologia

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

37

Tipi di Database

Esistono diversi modi in cui i database sono implementati. Si possono individuare tre categorie di base:

database flat-filedatabase relazionali database orientati agli oggetti

38

Database Flat-File

È il tipo più elementare di organizzazione dei dati in un database. La caratteristica base di un flat-file è che tutti i dati sono memorizzati insieme in una singola tabella. La maggior parte dei database cartacei appartengono a questa categoria.

Caratterizzati da semplicità di progetto e implementabili in modo diretto. Un semplice file di testo con dati organizzati può rappresentare un flat-file.È il tipo di organizzazione meno efficiente e più problematica. Il maggior svantaggio è dovuto al fatto che parte dei dati inseriti possono essere ridondanti o inconsistenti.

39

Flat-File: database di ordiniOrderID CustID Name Shipping Address ItemCode Quantity Price

23455 1521 VelioCooper

152 W Waterloo StAustin, TX 78752

ZD-552 1 8.95

23456 1567 FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-211 2 16.50

23457 1567 FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-212 2 22.00

23458 1765 JaneCarroll

1551 WestwoodBlvd Ocilla, GA31774

CC-48 15 225.15

23459 0021 JodyHawes

2664 Woodhill RdBronx, NY

A-567 1 19.99

23460 1235 DavidHill

742 HearneCleveland, OH44104

XD-234 1 49.95

40

Database Flat-File

Il database dell’esempio precedente ha un evidente problema di progetto: ogni record è relativo all’ordine di un solo prodotto per un dato cliente.

Se un cliente ordina prodotti diversi, si avranno tanti records per il cliente quanti sono gli ordini (come mostrato per il cliente con CustID=1567)

questo porta alla duplicazione dei dati relativi al cliente (Name, Shipping Address) in ognuno di questi record.

41

Database Flat-File

In maniera alternativa, il problema potrebbe essere risolto aggiungendo alla tabella un altro insieme di campi (colonne della tabella) ItemCode, Price e Quantity, numerandoli in sequenza (così da distinguere i campi per il primo prodotto da quelli del secondo e dei successivi).

Name Shipping Address ItemCode1 Quantity1 Price1 ItemCode2 Quantity2 Price2

VelioCooper

152 W Waterloo StAustin, TX 78752

ZD-552 1 8.95

FrancisCioni

1445 E DelavanAve Laredo, TX78043

XT-211 2 16.50 XT-212 2 22.00

42

Database Flat-File

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

43

Database relazionali

Sono stati sviluppati con l’obiettivo di prevenire una non necessaria duplicazione dei dati nel database.

Il problema, nell’esempio del database di ordini, nasce dal fatto che nella tabella sono rappresentate due entità logicamente distinte:

il cliente e i dati ad esso relativi;l’insieme di prodotti che sono stati ordinati.

In un database relazionale ogni entità logicamente distinta dalle altre è rappresentata in una differente tabella del database.

44

Database relazionali: database di ordini

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

45

Database relazionali: database di ordini

OrderID CustID Name Shipping Address

23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

23460 1235 David Hill 742 Hearne Cleveland, OH 44104

One

Tabella ordini

OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

Many

Tabella prodotti

46

Database relazionali

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

47

Database relazionali

Ogni tabella ha la propria chiave primaria per identificare i suoi elementi.

Notare che la chiave OrderID della tabella degli ordini è inserita nella tabella dei prodotti per ogni prodotto che è stato ordinato da un cliente.

Ogni prodotto che è stato ordinato può essere legato al cliente appropriato cercando tutti i records della tabella prodotti che hanno un particolare valore nel campo OrderID.

48

Database relazionali: relazione uno-a-molti

Nella tabella dei prodotti OrderID non è un valore univoco.

La relazione tra la tabella degli ordini e quella dei prodotti è detta relazione uno-a-molti in quanto un record nella tabella degli ordini è legato ad un numero variabile di records nella tabella dei prodotti.

OrderID serve come chiave esterna nella tabella dei prodotti, in quanto il valore della chiave viene da una diversa tabella (dove i valori sono univoci).

49

Database relazionali: database degli ordini

Nota: per evitare la duplicazione degli indirizzi di un cliente tra più ordini successivi sarebbe conveniente creare una ulteriore tabella dei clienti, con solo i dati relativi al cliente, e legarla con una relazione uno-a-molti, stabilita attraverso il CustID, con la tabella degli ordini.

In questo modo ogni cliente può effettuare più ordini ed ogni ordine può comprendere più prodotti.

50

Database relazionale: database di ordiniCustID Name Shipping Address

1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

1235 David Hill 742 Hearne Cleveland, OH 44104

Tabella clienti

OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

Tabella prodottiOrderID CustID Date

23455 1521 2002.02.25

23457 1567 2002.02.13

23458 1765 2002.01.19

23459 1521 2002.02.13

23460 1235 2001.12.21

Tabella ordini

51

Database relazionali: tipi di relazioni

Oltre alla relazione uno-a-molti esistono altri due modi possibili per relazionare due tabelle del database:

relazione uno-ad-uno;

relazione molti-a-molti.

52

Database relazionali: relazione uno-a-uno

In una relazione uno-a-uno ogni record in una tabella è collegato ad uno ed uno solo dei record in 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.

53

Relazione uno-a-uno: database delle risorse umane

EmployeeID LastName FirstName Address Phone77620 Southworth Jerry 496 Laguardia Place 555-222277621 Talbot Gina 426 Lake St 555-826777622 Russell David 318 W 39 Th St 555-444577623 Thompson Linda 2427 Broadway 555-156877624 Albertson Steve 224 Lawrence Ave 555-987277625 Davis Russell 224 Lawrence Ave 555-1213

Tabella

impiegati

EmployeeID Rate Hours77620 7.78 3077625 13.55 40

Tabella impiegati a ore

EmployeeID Salary 401 Health77621 41,000 5 BC77622 55,755 2 BC77623 22,155 N/A QS77624 18,975 2 N/A

Tabella impiegati salariati

54

Database relazionali: relazione uno-a-uno

La tabella degli impiegati ha un record per ogni impiegato dell’azienda ed usa EmployeeID come chiave primaria per identificarli in modo univoco.

Supponiamo che l’azienda preveda due tipi di impiegati: salariati;a ore.

La tabella impiegati contiene solo i dati di base relativi ad entrambe le categorie: nome, cognome, indirizzo e numero telefonico.

55

Database relazionali: relazione uno-a-uno

Dato che per le due categorie di impiegati devono essere mantenuti dati diversi, questi sono inclusi in due tabelle ausiliarie:

la tabella degli impiegati a ore. Mantiene solo i dati aggiuntivi che li riguardano, come il costo orario e le ore lavorate;la tabella degli impiegati salariati. La tabella mantiene solo i dati specifici per questa categoria, come il salario complessivo e l’informazione sanitaria.

Per entrambe le tabelle ausiliarie la chiave primaria è rappresentata da EmployeeID.

56

Database relazionali: relazione uno-a-uno

Ogni impiegato può apparire una sola volta nella tabella impiegati, ed un record nella tabella degli impiegati a ore rappresenta un solo impiegato. Lo stesso vale per la tabella degli impiegati salariati.

L’uso della relazione uno-a-uno tra la tabella principale e ciascuna delle due tabelle ausiliarie ha permesso di separare i dati che riguardano solo sottoinsiemi di records nella tabella principale. In questo modo non è stato necessario inserire campi aggiuntivi nella tabella principale con conseguente risparmio di memoria.

57

Database relazionali: relazione molti-a-molti

La caratteristica distintiva di una relazione molti-a-molti tra due tabelle è che una terza tabella è necessaria per rappresentare la relazione.

La tabella che descrive la relazione semplicemente mantiene la chiave primaria da una tabella, con la chiave primaria dei record ad essa collegati nella seconda tabella, insieme con ogni altra informazione che contraddistingue la relazione.

58

Database relazionali: relazione molti-a-molti

La relazione molti-a-molti permette di rappresentare relazioni in casi in cui più records in una tabella sono in relazione con più records in 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.

59

Relazione molti-a-molti:database impiegati e progetti

EmployeeID LastName FirstName77620 Southworth Jerry77621 Talbot Gina77622 Russell David77623 Thompson Linda77624 Albertson Steve77625 Davis Russell

ProjectID Manager Deadline22356 Jones 4/927685 Lewis 12/2233564 Albertson 8/17

Tabella impiegatiTabella progetti

EmployeeID ProjectID77620 2235677621 2768577624 2768577622 3356477624 3356477622 22356

Tabella relazione

impiegati-progetti

60

Relazione molti-a-molti

Database di progetti che tiene traccia degli impiegati che lavorano su ciascun progetto.Ogni impiegato dell’azienda lavora a molti progetti, ed ogni progetto ha molti impiegati dedicati al suo svolgimento.Sono individuate due tabelle per rappresentare le due entità distinte:

tabella impiegati;tabella progetti.

È necessaria un’ulteriore tabella per rappresentare la relazione molti-a-molti tra impiegati e progetti.

61

Relazione molti-a-molti

La tabella di relazione tra impiegati e progetti è costruita usando le chiavi primarie delle tabelle impiegati e progetti.

Sia i valori della chiave per la tabella degli impiegati (EmployeeID), sia quelli della chiave per la tabella dei progetti (ProjectID), possono essere ripetuti più volte nella tabella della relazione.

62

Tabelle e relazioni in Access

Access ha un set di database pronti di esempio

63

Dal modello Access crea tabelle, relazioni e query

In alternativa si crea un database vuoto e si creano tabelle e relazioni manualmente o in modo guidato

64

65

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

66

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

67

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

68

69

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

70

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

71

72

73

Criteri di progetto di un database

I moderni software permettono di costruire in modo semplice un database, ma forniscono uno scarso supporto nel processo di progetto.

Infatti, il processo di progetto dovrebbe essere una fase completamente indipendente dalla scelta del particolare software realizzativo.

Spesso si è vincolati ad un particolare software; tuttavia delle buone scelte di progetto dovrebbero venire prima.

74

Criteri di progetto di un database

I passi base del processo di progetto sono:1. definizione del problema e degli obiettivi2. valutazione della soluzione corrente (se esiste)3. progetto delle strutture dati4. costruzione delle relazioni5. implementazione di regole e vincoli6. creazione di viste 7. implementazione del progetto.

Notare che l’implementazione con un particolare software è il passo finale. I passi precedenti sono indipendenti dalla realizzazione.

75

Criteri di progetto:1. definizione del problema

Il primo passo nel progetto di un database è quello di delineare chiaramente la natura dei dati che è necessario memorizzare, senza considerare le interrogazioni che verranno usate sul database per trasformare i dati memorizzati in informazioni.

Questo perché le domande possono cambiare nel tempo ed un database progettato solo per rispondere a domande specifiche diventerebbe inutile.

76

Criteri di progetto:1. definizione del problema

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

77

Criteri di progetto:2. valutazione della soluzione corrente

Nella maggior parte delle situazioni di progetto, qualche tipo di database esiste già, sia esso in forma cartacea o digitale.

Spesso rappresenta un punto di partenza per conoscere i dati che sono attualmente di interesse.

Nel caso si usi Access è bene esaminare i database di esempio

78

Criteri di progetto:3. progetto delle strutture dati

Un database è essenzialmente una collezione di tabelle che devono essere definite in base ai dati da rappresentare.

Ogni tabella dovrebbe rappresentare un soggetto o un oggetto fisico distinto.

Di solito, il modo migliore per determinare i dati che appartengono ad una stessa tabella è quello di fare una lista di tutti i campi di interesse per il problema in esame e determinare i raggruppamenti logici tra questi.

79

Criteri di progetto:3. progetto delle strutture datiSubjects FieldsBuildings AddressClassrooms Course DescriptionCourses Course NameEmployees Course NumberFaculty Members Courses TaughtPart-time Employee Date HiredStaff Funding Source

Home DepartmentHourly RateMeeting TimesNameNumber of SeatsPhone NumberPrerequisitesSalarySocial Security NumberTenure Status………….

80

Criteri di progetto:3. progetto delle strutture dati

Es. di campi individuati per un sistema di pagamento per l’Università.

Nella lista dei campi alcuni fanno chiaramente riferimento agli impiegati, come Name, Address, Phone Number, Social Security Number, e Date Hired.Altri campi come Courses Taught, Salary e TenureStatus sono parte di una struttura dati separata.I campi Hourly Rate, Founding Source e Home Department sono parte di una struttura per i Part-time Employees.

In questo modo è possibile raggruppare i campi secondo le entità cui appartengono.

81

Criteri di progetto:3. progetto delle strutture dati

Una volta che le tabelle sono state determinate e i campi sono loro assegnati, il passo successivo è la specifica dei campi.

Un campo perfetto dovrebbe essere:unico tra tutte le tabelle nel database, a meno che non sia usato come chiave;dovrebbe contenere un singolo valore;non dovrebbe essere possibile scomporlo in sottoparti componenti più piccole.

82

Criteri di progetto:3. progetto delle strutture dati

Deve essere stabilito anche il tipo di dati che devono essere posti in ciascun campo.

Esistono cinque tipi base per i campi (possono essere ulteriormente suddivisi per incrementare 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.

83

Criteri di progetto:3. progetto delle strutture dati

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

84

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

85

Criteri di progetto:3. progetto delle strutture dati

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

86

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

87

Criteri di progetto:4. costruzione delle relazioni

Un prerequisito alla costruzione delle relazioni è garantire che ogni tabella abbia una chiave univoca per identificare i singoli records della tabella.

Qualunque campo esistente contenente un valore univoco è un candidato accettabile per essere utilizzato come chiave.

88

Criteri di progetto:4. costruzione delle relazioni

Una soluzione migliore è quella di aggiungere un campo arbitrario ad ogni tabella con il compito specifico di fungere da campo chiave.

Tale campo deve contenere un valore univoco, anche senza un particolare significato per i dati contenuti nella tabella.

Il valore della chiave è tipicamente un intero assegnato ad ogni record inserito nella tabella e mai ripetuto.

Le relazioni tra tabelle possono essere costruite usando le chiavi delle singole tabelle.

89

Criteri di progetto:4. costruzione delle relazioni

Per una relazione uno-a-uno, la chiave primaria della tabella principale è inserita nella sottotabella:

la sottotabella utilizza la chiave esterna come chiave principale e non necessita di una propria chiave primaria in quanto gli ingressi nelle due tabelle sono univocamente collegati gli uni agli altri.

EmployeeID LastName FirstName Address Phone77620 Southworth Jerry 496 Laguardia Place 555-222277621 Talbot Gina 426 Lake St 555-826777622 Russell David 318 W 39 Th St 555-444577623 Thompson Linda 2427 Broadway 555-156877624 Albertson Steve 224 Lawrence Ave 555-987277625 Davis Russell 224 Lawrence Ave 555-1213

E m p lo y e e I D S a la r y 4 0 1 ( k ) H e a l t h7 7 6 2 1 4 1 , 0 0 0 5 B C7 7 6 2 2 5 5 , 7 5 5 2 B C7 7 6 2 3 2 2 , 1 5 5 N / A Q S7 7 6 2 4 1 8 , 9 7 5 2 N / A

90

Criteri di progetto:4. costruzione delle relazioni

In una relazione uno-a-molti, la chiave primaria della tabella con la relazione “uno”, è usata per identificare i record collegati nella tabella “molti:

il collegamento è fatto inserendo la chiave primaria della tabella “uno” come nuovo campo nella tabella “molti” dove rappresenta una chiave esterna.

OrderID CustID Name Shipping Address

23455 1521 Velio Cooper 152 W Waterloo St Austin, TX 78752

23457 1567 Francis Cioni 1445 E Delavan Ave Laredo, TX 78043

23458 1765 Jane Carroll 1551 Westwood Blvd Ocilla, GA 31774

23459 0021 Jody Hawes 2664 Woodhill Rd Bronx, NY

23460 1235 David Hill 742 Hearne Cleveland, OH 44104OrderID ItemCode Quantity Price

23455 ZD-552 1 8.95 23457 XT-211 2 16.50 23457 XT-212 2 22.00 23458 CC-48 15 225.15 23459 A-567 1 19.99 23460 XD-234 1 49.95

91

Criteri di progetto:4. costruzione delle relazioni

Una relazione molti-a-molti è la più complessa da costruire. Richiede una tabella aggiuntiva per rappresentare la relazione:

la tabella di relazione è creata riportando in essa le chiavi di una tabella con tutte le chiavi della seconda tabella che sono ad essa associate.

EmployeeID LastName FirstName77620 Southworth Jerry77621 Talbot Gina77622 Russell David77623 Thompson Linda77624 Albertson Steve77625 Davis Russell

ProjectID Manager Deadline22356 Jones 4/927685 Lewis 12/2233564 Albertson 8/17

EmployeeID ProjectID77620 2235677621 2768577624 2768577622 3356477624 3356477622 22356

92

Criteri di progetto:5. implementazione di regole e vincoli

Regole e vincoli conducono di norma ad una maggiore “pulizia” dei dati e a migliori informazioni nel loro uso.

Alcuni vincoli sono tipicamente imposti dalla natura stessa dei dati.Es.: un campo per il codice fiscale può essere dimensionato per contenere sempre 16 caratteri. Assicura che il dato sia corretto ed accurato. Il sistema può impedire l’inserimento di un codicecon un numero diverso di caratteri (in difetto o in eccesso).Altri dati possono assumere valori solo in uno specifico intervallo. Il sistema può operare un controllo sulla validità dei dati in ingresso.

93

In Access si specificano i vincoli nelle proprietà del campo

94

95

Criteri di progetto:6. creazione di viste

Consente di trasformare i dati del database in informazioni utili all’utente.

Le viste sono semplicemente collezioni di dati resi accessibili in un certo modo. Una vista potrebbe essere un sottoinsieme dei dati delle tabelle.

Ad esempio, nel database degli impiegati il nome ed il numero di telefono potrebbero essere una vista per una interrogazione che ricerca il numero di telefono di un impiegato. Risponde alladomanda senza includere informazione inutile come altri dati personali o privati.In altri casi una vista può raccogliere dati da più tabelle e condensarli insieme. Ad esempio i dati delle tabelle Corsi e Studenti potrebbero essere usati per fornire una lista aggiornata degli studenti in ciascun corso.

96

Criteri di progetto:7. implementazione del progetto

Il progetto è condotto fino a questo punto senza considerare il particolare software da utilizzare per realizzare il database.

Il criterio di base che guida la scelta è la possibilità di realizzare con una data soluzione software il database di cui si ha bisogno.

Alcune tra le scelte possibili sono:⌧Microsoft Access, lo standard di fatto per Windows;⌧Microsoft SQL Server, database professionale;⌧MySQL, prodotto free molto diffuso per applicazioni sul

Web;⌧Oracle, il leader in ambiente Unix. Richiede hardware e

supporto costosi.

97

Normalizzazione

In qualunque libro che affronti il progetto di database dal punto di vista teorico viene sempre riservata una certa enfasi al problema della normalizzazione o decomposizione del database.

In sostanza, la normalizzazione è un modo di analizzare e migliorare la stabilità ed integrità di un insieme di dati relazionali.

Previene la possibilità di inconsistenze nei dati conseguenza di una cattiva progettazione.

98

Normalizzazione

Il processo di progettazione discusso è tale da verificare i requisiti di normalizzazione per il progetto di database tipici.

Il processo di normalizzazione è composto da più passi, ognuno dei quali rappresenta una forma normale (NF).

Esistono 5 forme normali che possono essere applicate ad un database, ma di solito il progettista può accontentarsi di realizzare le prime tre (quindi il processo può arrestarsi alla 3NF).

99

Processo di Normalizzazione

Un database deve passare attraverso le normalizzazioni in sequenza:

un database in 3NF deve soddisfare anche i requisiti della 1NF e 2NF.

5NF No dipendenze ciclichein chiavi composite

Ogni campo deve essere unico1NF

Per chiavi composite, i campi non chiavedevono essere funzionalmente dipendentidalla chiave composita (non da sue parti)

2NF

No dipendenze transitive tra campi3NF

(BCNF)

No dipendenze multiple in chiavi composite4NF

100

Prima forma normale (1NF)

Un database che soddisfa la 1NF ha una chiave primaria e non contiene campi dati ripetuti o gruppi di campi (si intende che queste proprietà devono essere soddisfatte da tutte le tabelle del database).

Questo significa che tutti i record di una tabella nel database contengono lo stesso numero di campi dati distinti.

Garantisce che ciascun record possa essere identificato in modo univoco, ed evita la duplicazione di campi base.

Tutti i database visti soddisfano questa condizione.

101

Prima forma normale (1NF)

Le tabelle non soddisfano la 1NF.

Student Album_______________________________________________________________________________________

StudentID (key) AlbumID (Key)

Name Artist

Year Title

Period 1 class Track 1 name

Period 1 teacher Track 1 duration

Period 1 grade Track 2 name

Period 2 class Track 2 duration

Period 2 teacher Track 3 name

Period 2 grade Track 3 duration

Period 3 class Track 4 name

Period 3 teacher Track 4 duration

Period 3 grade (etc.)

(etc.)

102

Prima forma normale (1NF)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.

103

Seconda e Terza forma normale (2NF, 3NF)

La 2NF si applica solo a database con chiavi composite. Una chiave composita è costituita da informazioni di due o più entità logiche distinte (chiave costituita da più campi). Di conseguenza:

una tabella la cui chiave non è composita e che verifica la 1NF verifica anche la 2NF.

Nella maggior parte dei casi progettare il database in modo da verificare la 2NF determina che anche la 3NF sia verificata.

È la forma di normalizzazione finale applicata a database relazionali nella pratica di impiego comune.

104

Seconda forma normale(2NF)

Item

Item number (component of key)

Vendor name (component of key)

Product name

Product description

Vendor contact name

Vendor address

Vendor phone number

Unit price

Unit cost

La tabella non

soddisfa la 2NF

105

Seconda forma normale(2NF)

La tabella dell’esempio precedente non verifica i requisiti della 2NF.

La chiave composita è costituita da informazioni che riguardano due distinte entità logiche, l’item ed il vendor:

il problema di questa soluzione è che quando il Vendor contact name è cambiato, tutti i record che contengono quella informazione devono essere cambiati altrimenti il database conterrà informazione errata;infatti, i record di questa tabella hanno alcuni campi (Vendorcontact name, Vendor address, Vendor phone number) i cui valori dipendono dal valore di un componente della chiave composita (Vendor name).

106

Seconda forma normale(2NF)

Il processo di progetto definito in precedenza evitava questi problemi attraverso due accorgimenti:

evitare l’uso di chiavi composite;

entità logiche distinte, siano esse oggetti od eventi, richiedono tabelle dei dati distinte.

107

Terza forma normale (3NF)

Richiede che non esistano dipendenze transitive tra campi nelle tabelle dei dati:

una dipendenza transitiva si presenta quando un campo che non è la chiave primaria della tabella agisce come se fosse un’altrachiave primaria per parte o tutti i campi del record.

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

108

Normalizzazione

Riassumendo è possibile dire che i processi di base per verificare la 1NF, 2NF e 3NF, si possono tutti ricondurre ad un unico criterio:

garantire che entità logiche distinte siano memorizzate in tabelle differenti.

Come si è visto è possibile arrivare ad una buona progettazione semplicemente seguendo alcune regole di base.

109

ESEMPI DI PROGETTO

110

Esercizio di progetto - I

1. Definizione ed obiettivi.Personal Information Manager (PIM) - il principale obiettivo di questo database è di mantenere ed organizzare i dati per contattare le persone coinvolte nella vita personale e professionale.Per il momento la definizione non include il tipo particolare di dati da immagazzinare nel database, né il tipo di interrogazioni eseguite sui dati.

2. Ricerca del database corrente.Comprende la ricerca del modo in cui i dati sono attualmente raccolti e come quei dati sono trasformati in informazioni utili.

111

Esercizio di progetto - I

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

4. Costruzione delle relazioni.Esiste una sola tabella e quindi non ci sono relazioni.

112

Fieldname Notes

ID Campo numerico usato come chiaveLastName Limite a 40 caratteriFirstName Limite a 20 caratteriMailingAddress Campo testo a lunghezza variabileCity Limite a 30 caratteriState Limite a 2 caratteriZip 10 cifreCountry Limite a 20 caratteriDirections Campo testoHomePhone Memorizzato come campo testoWorkPhone Memorizzato come campo testoFax Memorizzato come campo testoEmail Limitato a 40 caratteriWebPage Home page URLBirthday Data in formato mm/dd/yyyy

Esercizio di progetto - I

113

Esercizio di progetto - I5. Regole e vincoli.

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

114

Esercizio di progetto - I

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

7. Implementazione del progetto.Realizzazione del database usando Access

115

Esercizio di progetto - I

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

116

Esercizio di progetto - I

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

117

Esercizio di progetto - II1. Definizione ed obiettivi.

Media File Database - l’obiettivo di questo database è di consentire la gestione di diversi media files e di permettere il loro uso per costruire in modo dinamico il contenuto di un sito Web.

2. Ricerca del database corrente.In questo caso il database corrente è quello costituito dalle informazioni che riteniamo utili. Inoltre è necessario capire come il database verrà utilizzato. Un modo ovvio è di cercare media files rapidamente e facilmente. Un altro possibile utilizzo è la pubblicazione dinamica del contenuto sul Web. Es.per creare un catalogo online per la vendita.

118

Fieldname NotesFilename Nome del media fileFilesize Può variare da pochi KB a molti MBFile type or format Deve essere flessibileImage dimensions Dimensione in pixelsColor depth In bit da 1 a 32Compression level Alcuni formati hanno diversi livelli di compressioneScanned resolution Immagini scannerizzate a diversi livelliFile manupulations Storia di come il file è stato editatoLast modification Data di ultima modificaSampling rate Per audio files. Frequenza di campionamentoVideo frame rate Per i video sono possibili diversi frame rateCodec used Video compressi con formati proprietariOriginal source Book, CD, videotape o altre sorgentiDescriptive text Descrive il tipo di media presenteKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)Length of sound clip Lunghezza del file audioPlug-in location Sito Web da cui scaricare il plug-in se necessarioVideo duration Durata del file video

Esercizio di progetto - II

119

Esercizio di progetto - II

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

120

Esercizio di progetto - IIFieldname NotesFilename Nome del media fileFilesize Può variare da pochi KB a molti MBFileType Deve essere flessibileFileChanges Storia di come il file è stato editatoLastModification Data di ultima modificaDescriptiveText Descrive il tipo di media presenteFileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)

Files Data Table

Fieldname NotesImageHeight In pixelsImage Width In pixelsImageColor depth In bit da 1 a 32ImageCompressionLevel Alcuni formati hanno diversi livelli di compressioneImageScannedResolution Immagini scannerizzate a diversi livelli

Images Data Table

121

Fieldname NotesSoundSamplingRate Audio files possono essere campionati a diversi ratesSoundClipLength Lunghezza del file audio

Esercizio di progetto - IISounds Data Table

Videos Data TableFieldname NotesHeight In pixelsWidth In pixelsVideoColorDepth In bit da 1 a 32VideoCompressionLevel Alcuni formati hanno diversi livelli di compressioneVideoSamplingRate Campionamento per il videoFrameRate Per i video sono possibili diversi frame rateCodec Video compressi con formati proprietariVideoLength Lunghezza del file video

122

Esercizio di progetto - II

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

123

Esercizio di progetto - II

Fieldname NotesProjectName Nome del progettoContact Persona da contattare per il progettoProjectsNotes Note sul progetto

Projects Data Table

Fieldname NotesOriginalSource Book, CD, videotape o altre sorgentiSourceNotes Descrive il tipo di media presenteSourceKeywords Usate per la sorgente

Sources Data Table

124

Esercizio di progetto - II4. Costruzione delle relazioni.

Il primo problema è la definizione delle chiavi per ogni tabella. Le chiavi sono poi utilizzate per stabilire le relazioni.⌧Per la tabella dei Files il campo FileName può contenere

duplicati. Come chiave primaria si assegna un intero in un campo FileID.

⌧La tabella dei Files è legata alle tabelle Images, Videos e Sounds da relazioni uno-a-uno, in quanto ciascuna di queste rappresenta una sottotabella per la tabella dei Files. Per creare la relazione è sufficiente porre la chiave FileIDdella tabella Files nelle sottotabelle come chiave esterna. Le sottotabelle possono usare la chiave esterna come chiave primaria, in quanto consente di identificare in modo univoco ciascun record.

125

Esercizio di progetto - IIF ileID F ileType F ileS ize Keyw ords Descrip tion101 JPG 427 Bu lle t,square Hom epage bu lle t102 AVI 1592031 P lane F ly ing p lane103 G IF 85 L ine , red Red ru le104 JPG 5627 Canyon Copper canyon105 W AV 13220 D ing Doorbe ll106 M O V 22843612 Cry, baby Cry ing baby boy

FileID Height Width101 20 80103 10 60104 110 75

Images Table

FileID SoundSamplingRate SoundClipLength105 44.1 30

Sounds Table

FileID Height Width Length102 400 300 26.1106 400 300 240.0

Videos Table

Files

Table

126

Esercizio di progetto - II

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

127

Esercizio di progetto - II

SourceID Source Copyright001 Personal Yes002 BBC Library No003 Mega Studios No004 David Rides Yes

David

Sources Table

one

FileID SourceID FileType FileS ize Keywords Description101 001 JPG 427 Bullet,square Hom epage bullet102 001 AVI 1592031 Plane Flying p lane103 002 GIF 85 Line, red Red ru le104 004 JPG 5627 Canyon Copper canyon105 001 W AV 13220 D ing Doorbell106 002 M OV 22843612 Cry, baby Crying baby boy

Files Table many

128

Esercizio di progetto - II⌧L’ultima relazione è tra la tabella Projects e la tabella

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

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

129

Esercizio di progetto - IIF ile ID SourceID F ileType101 001 JPG102 001 AVI103 002 G IF104 004 JPG105 001 W AV106 002 M O V

ProjectID ProjectName Cantact2567 MegaSite Dave Nelson2568 Davis Presentation Cindy Raye2569 Monkey Movie Nell Smith

David

Files Table

Projects Table

ProjectID FileID2567 1012569 1022568 1032567 1042569 1052569 106Projects_Files Table

130

Esercizio di progetto - II

In uno schema entità-relazione il database può essere rappresentato nel modo seguente:

Sources

moltiuno

FilesProjectsuno

uno

unouno

Images

Sounds

Videosmoltimolti

Project_Files

131

Esercizio di progetto - II

Tenendo conto delle chiavi primarie e delle relazioni, le tabelle assumono la forma seguente:

Fieldname NotesFileID Chiave primariaSourceID Chiave esterna che collega alla Sources Data TableFileName Nome del media fileFileSize Può variare da pochi KB a molti MBFileType Deve essere flessibileFileChanges Storia di come il file è stato editatoLastModified Data di ultima modificaDescription Descrive il tipo di media presenteFileKeywords Usate per una ricerca rapida (es. albero, sinfonia, etc.)

Files Data Table

132

Esercizio di progetto - II

Fieldname NotesImageID Chiave esterna dalla Files Data TableImageHeight In pixelsImageWidth In pixelsImageColorDepth In bit da 1 a 32ImageCompressionLevel Alcuni formati hanno diversi livelli di compressioneImageScannedResolution Immagini scannerizzate a diversi livelli

Images Data Table

Fieldname NotesSoundID Chiave esterna dalla Files Data TableSoundSamplingRate Audio files possono essere campionati a diversi ratesSoundClipLength Lunghezza del file audio

Sounds Data Table

133

Esercizio di progetto - IIVideos Data Table

Fieldname NotesVideoID Chiave esterna dalla Files Data TableHeight In pixelsWidth In pixelsVideoColorDepth In bit da 1 a 32VideoCompressionLevel Alcuni formati hanno diversi livelli di compressioneVideoSamplingRate Campionamento per il videoFrameRate Per i video sono possibili diversi frame rateCodec Video compressi con formati proprietariVideoLength Lunghezza del file video

Fieldname NotesSourceID Chiave primariaOriginalSource Book, CD, videotape o altre sorgentiSourceNotes Descrive il tipo di media presentSourceKeywords Usate per la sorgente

Sources Data Table

134

Esercizio di progetto - II

Fieldname NotesProjectID Chiave primariaProjectName Nome del progettoProjectContact Persona da contattare per il progettoProjectsNotes Note sul progetto

Projects Data Table

Fieldname NotesFileID Chiave esterna dalla Files Data Table ProjectID Chiave esterna dalla Projects Data Table

Projects_Files Table

135

Esercizio di progetto - II

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

136

Esercizio di progetto - II6. Creazione di viste e reports.

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

7

Introduzione:

Breve storia del linguaggio HTML

8

Breve storia del linguaggio HTML

Le origini dell’HTML possono essere fatte risalire ad un’idea di Vannevar Bush che descrisse un sistema per collegare in modo associativo le informazioni.

Bush definì questo sistema memex (memoryextension), e lo propose come mezzo per aiutare la mente umana a far fronte ad un sempre più crescente numero di informazioni.

9

Breve storia del linguaggio HTML

Nel 1965, Ted Nelson coniò il termine ipertestoper descrivere un testo che seguisse le idee di Bush.

L’ipertesto, come descritto da Nelson, avrebbe dovuto collegare dei documenti per creare una rete di relazioni con l’intento di estendere ed accrescere il significato di un testo "piatto" con collegamenti ad altri testi.

10

Breve storia del linguaggio HTML

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

11

Breve storia del linguaggio HTML

La proposta di Berners-Lee (il cui titolo era "HyperText and CERN") aveva come obiettivi:

• la creazione di un’interfaccia utente che potesse essere consistente su tutte le piattaforme, per permettere all’utente di accedere alle informazioni da diversi computer;

• uno schema per quest’interfaccia che permettesse di accedere ad una grande varietà di tipi di documenti e di protocolli di informazione;

• la predisposizione per un "accesso universale", che avrebbe permesso ad un qualunque utente della rete di accedere ad un qualunque tipo di informazione

12

Breve storia del linguaggio HTML

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

13

Breve storia del linguaggio HTML

Dal 1994 tutte le modifiche ad HTML sono avvenute sotto l’egida del World Wide Web Consortium (W3C) consorzio nato grazie agli sforzi del MIT e del CERN.

Il consorzio comprende i più importanti centri di ricerca e le principali aziende del settore informatico che stanno guidando l’HTML nella sua evoluzione verso la definizione di uno STANDARD per lo sviluppo della rete.

14

Terminologia

Ipertesto: documento testuale in formato elettronico “non sequenziale”

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

15

Il Web

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

16

Introduzione

Concetti base del linguaggio HTMLConcetti base del linguaggio XMLConcetti base delle pagine HTMLAggiungere intestazioni e paragrafi Aggiungere enfasi al testo Aggiungere immagini Aggiungere collegamenti ad altre pagine Usare vari tipi di liste

17

Concetti base del linguaggio HTML

18

Concetti base del linguaggio HTML

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

19

Markup

Definizione di markup:

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

20

Concetti base del linguaggio HTML

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

21

HTML

E’ un linguaggio per la descrizione di come appaiono documenti all’interno di un browser.

Fornisce tag per titoli, paragrafi, font, link, immagini.

22

HTML

<P><FONT SIZE="+1"><STRONG>HTML: All form and no

substance</STRONG></FONT><BR>HTML is a language designed to &quot;talk about&quot; documents:

headings, titles, captions, fonts, and so on. It's heavily documentstructure- and presentation-oriented.

23

HTML

Non è estendibile: a meno di non essere il W3C o BillGates…

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

24

XML

Concetti base del linguaggio XML

25

Concetti base del linguaggio XML

XML è l’ eXtensible Markup Language

è extensible a differenza dell’HTML che è fisso.

E’ un metalinguaggio:

può definire nuovi linguaggi di markup

26

Concetti base del linguaggio XML

E’ una specifica ufficiale del World Wide Web Consortium (W3C).

W3C lo definisce come:

"a common syntax for expressing structure in data."

27

Concetti base del linguaggio XML

Lo scopo di XML è quello di separare la definizione dei dati dalla loro rappresentazione, per consentire lo scambio di documenti strutturati sul web.

HTML specifica come un documento deve essere mostrato, non descrive che tipo di informazione è contenuta e come è strutturata.

28

Concetti base del linguaggio XML

XML consente agli autori di un documento di organizzare l’informazione in un modo standard.

Uno degli scopi principali di XML è di consentire lo scambio di dati tra sistemi potenzialmente incompatibili.

29

Concetti base del linguaggio XML

XML è basato su file di testo (come HTML), può essere usato su qualsiasi piattaforma.

E’ nato per essere usato su Internet, ma va bene ovunque.

E’ un sub-set di SGML (Standard Generalized MarkupLanguage)

30

Concetti base del linguaggio XML

Def.: SGML:Metalinguaggio per la definizione di linguaggi di markup. Standard ISO

SGML si basa sull’idea che i documenti hanno elementi strutturali e semantici che possono essere descritti senza tenere conto di come devono essere visualizzati.

31

Concetti base del linguaggio XML

L’ Hypertext Markup Language (HTML), è un esempio di linguaggio basato su SGML.

C’è un document type definition (DTD) per l’HTML

Il DTD è un documento che definisce la grammatica di un linguaggio

Un linguaggio definito in termini di SGML si chiama applicazione di SGML.

32

Concetti base del linguaggio XML

SGML è usato per lo scambio di dati e documenti dal Dipartimento della Difesa degli Stati Uniti, dalle industrie aerospaziali e delle telecomunicazioni, etc.

XML è nato per portare SGML sul web

33

Concetti base delle pagine HTML

34

Concetti base delle pagine HTML

Ogni pagina HTML deve iniziare con i seguenti elementi:

<html><head><title>Titolo della finestra</title></head><body>

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

35

Concetti base delle pagine HTML

<html><head><title>Titolo della finestra</title></head><body>

All’interno del tag <body> andrà inserito il contenuto della pagina HTML

Alla fine della pagina dovranno essere presenti i tag di chiusura

</body></html>

Vedi la pagina HTML

36

HTML

La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico:

es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

37

HTML

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

38

HTML

Es.: dentro il body non devo rispettare l’ordine degli header H1, H2, H3.

Per motivi pratici i browser “perdonano” molti errori nel codice HTML

39

Aggiungere intestazioni e paragrafi

40

Aggiungere intestazioni e paragrafi

In HTML esistono sei livelli di intestazioni. H1 è il più importante, H2 è leggermente meno

importante, e così via fino ad H6, il meno importante di tutti. Ecco come aggiungere un'intestazione importante:

<h1>Un'intestazione importante</h1>ed ecco un'intestazione leggermente meno importante:

<h2>Un'intestazione leggermente meno importante</h2>

Vedi la pagina HTML

41

Aggiungere intestazioni e paragrafi

Ogni paragrafo che scrivete dovrebbe cominciare con il marcatore <p> e chiudere con </p>.

<p>Questo è il primo paragrafo.</p><p>Questo è il secondo paragrafo.</p>

E’ possibile anche creare interruzioni di riga con il tag<br>

<p>Questo è il terzo paragrafo.<br>Adesso siamo a capo di una riga </p>

Vedi la pagina HTML

42

Aggiungere enfasi al testo

43

Aggiungere enfasi al testo

Potete enfatizzare una o più parole grazie ad appositi marcatori.

<strong> o <b> rende il testo grassetto

<em> o <i> rende il testo corsivo

44

Aggiungere enfasi al testo

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

Vedi la pagina HTML

45

Aggiungere immagini

46

Aggiungere immagini

Le immagini possono essere usate per aiutarvi a veicolare il messaggio che intendete comunicare. Il modo più semplice di aggiungere un'immagine è usare il marcatore <img>.

Poniamo che vi sia un file immagine chiamato ”libro.jpg" nella stessa directory del vostro file HTML. Esso misura 200 pixel di larghezza per 150 di altezza.

47

Aggiungere immagini

Avremo quindi:

<img src=”libro.jpg" width="200" height="150” alt=“Il Dizionario Sabatini-Colletti”>

L'attributo src richiama il file immagine.

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

Vedi la pagina HTML

48

Aggiungere collegamenti ad altre pagine

49

Aggiungere collegamenti ad altre pagine

Ciò che rende il Web così efficace è la capacità di definire collegamenti da una pagina ad un'altra, sia all’interno dello stesso sito che verso altri siti.

I collegamenti (o link) sono definiti per mezzo del marcatore <a> (anchor).

50

Aggiungere collegamenti ad altre pagine

Creiamo ora un collegamento alla pagina ”libro.html":

<p>Questo è un collegamento <a href=”libro.html">alla pagina del libro</a></p>

Vedi la pagina HTML

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

51

Aggiungere collegamenti ad altre pagine

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

Vedi la pagina HTML

52

Usare vari tipi di liste

53

Usare vari tipi di liste

L'HTML supporta tre tipi di liste.

Il primo tipo è l'elenco puntato, definito spesso lista non ordinata.

Esso usa i marcatori <ul> e <li>

54

Usare vari tipi di liste

Per esempio:

<ul><li>il primo elemento della lista</li><li>il secondo elemento della lista</li><li>il terzo elemento della lista</li>

</ul>

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

Vedi la pagina HTML

55

Usare vari tipi di liste

Il secondo tipo di lista è l'elenco numerato, detto anche lista ordinata.

Usa i marcatori <ol> e <li>

56

Usare vari tipi di liste

Per esempio:

<ol><li>il primo elemento della lista</li><li>il secondo elemento della lista</li><li>il terzo elemento della lista</li>

</ol>

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

Vedi la pagina HTML

57

Usare vari tipi di liste

Il terzo ed ultimo tipo di lista è l'elenco di definizioni, che vi consente di elencare dei termini e le relative definizioni.

Questo tipo di lista è aperta con il marcatore <dl> ed è chiusa con </dl>.

Ogni termine comincia con un marcatore <dt> ed ogni definizione con un <dd>.

58

Usare vari tipi di liste

Per esempio:

<dl> <dt>il primo termine</dt> <dd>la sua definizione</dd> <dt>il secondo termine</dt> <dd>la sua definizione</dd> <dt>il terzo termine</dt> <dd>la sua definizione</dd> </dl>

Vedi la pagina HTML

59

Inserire contenuti multimediali

60

Inserire contenuti multimediali

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

61

Inserire contenuti multimediali

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

62

Inserire contenuti multimediali

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

63

Inserire contenuti multimediali

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

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

vedi la pagina web

64

Inserire contenuti multimediali

E' consigliabile inserire nel testo allegato ai contenuti multimediali anche qualche informazione riguardo alle dimensioni del file e ai tempi di caricamento

es.: Tempo richiesto per il download

65

Inserire contenuti multimediali

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

Vedi la pagina web

66

Inserire contenuti multimediali “interni”

67

Inserire contenuti multimediali “interni”

L'inserimento di contenuti interni è invece leggermente più complesso e richiede l'uso di appositi tag come <OBJECT>.

Conviene focalizzare l’attenzione solo sul tag<OBJECT> che è quello raccomandato dal W3C.

68

Inserire contenuti multimediali “interni”

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

Vedi la pagina HTML

69

Concetti ulteriori delle pagine HTML

70

Concetti ulteriori delle pagine HTML

⌧Testo preformattato

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

71

Aggiungere mappe immagine

L'elemento area ha la funzione di definire una regione dell'immagine e di collegarla a un indirizzo Internet. L'attributo shape può assumere i valori "rect", "circle" o "poly". L'attributo "coords" specifica le coordinate per una regione a seconda della forma.

• rect: sinistra-x, alto-y, destra-x, basso-y

• circle: centro-x, centro-y, raggio

• poly: x1,y1, x2,y2, ... xn,yn

Vedi la pagina HTML

72

Usare tabelle

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

73

Usare tabelle

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

Vedi la pagina HTML

74

Spaziatura interna delle celle

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

Vedi la pagina HTML

75

Aggiungere attributi alle tabelle

Per contro, l'attributo cellspacing determina lo spazio tra le celle. Ecco come impostare la spaziatura tra le celle a 10:

<table border="1" cellpadding="10" cellspacing="10">

Vedi la pagina HTML

76

Allineamento del testo nelle celle

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

Vedi la pagina HTML

77

XML

XML vs. HTML

78

XML vs. HTML

Non separa il contenuto dalla presentazioneFornisce una sola “vista”: è estremamente difficile scrivere pagine dinamiche che si riadattino al sistema usato dall’utente

Non ha praticamente struttura semantica: non c’è indicazione sul significato dei dati di una pagina HTML

79

XML vs. HTML

Originariamente l’HTML prevedeva di contrassegnare l’informazione secondo il suo significato, indipendentemente da come il browser l’avrebbe resa:

<TITLE>Questo è un titolo di pagina</TITLE><STRONG>Summary</STRONG><H2>Header<H2>

80

XML vs. HTML

La tendenza è invece quella di specificare precisamente l’apparenza dei dati:

<font size="-1" face="Arial, Helvetica, Sans-serif">

81

XML vs. HTML

Un metodo per separare la resa grafica dai contenuti è usare i CSS (Cascading Style Sheets), ma non sono ancora standardizzati nei browser di ultima generazione.

W3C raccomanda l’uso di CSS

Anche le regole di accessibilità

82

XML vs. HTML

83

I CSS consentono di separare la rappresentazione dei dati dalla loro struttura

Consentono di specificare la presentazione grafica in modo più preciso che con i tag HTML

Basta cambiare il CSS e la rappresentazione del sito cambia

84

XML vs. HTML

Gli editor HTML spesso usano tag per in base alla resa grafica che forniscono anziché al loro significato semantico:

es. <UL> per l’indentazione anziché per le liste non numerate

85

XML vs. HTML

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

86

XML vs. HTML

La struttura interna di un documento HTML è molto ridotta, per cui è possibile scrivere documenti corretti ma senza senso semantico:

es.: i titoli di un “paragrafo” possono essere sopra ai titoli di un “capitolo”

87

XML vs. HTML

XML consente di crearsi i propri tipi di documentiE’ facile scambiarsi dati: molti database accettano e producono file XMLE’ possibile validare una struttura datiI tag proprietari per avere una resa grafica più precisa diventano inutiliLe proprietà dei link sono molto più avanzate rispetto a quelle di HTML

88

XML vs. HTML

È più facile creare viste diverse degli stessi dati

89

XML - standard associati

Modeling Rules (DTD, Schema)

Stylesheets (XSL)

Linking (XLink, XPointer)

90

XML

Regole base di XMLEsempio DTD

91

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

92

HTML - esempio di pagina

93

HTML - esempio di pagina

Il significato degli elementi della pagina precedente non è reso dall’HTML:

gli elementi della prima colonna NON sono quantità, sono solo testo liberoè molto difficile fare un parsing automatico dei contenuti della pagina

94

XML - esempio di file<?xml version="1.0” ?><Recipe>

<Name>Lime Jello Marshmallow Cottage Cheese Surprise</Name><Description>

My grandma's favorite (may she rest in peace).</Description><Ingredients>

<Ingredient><Qty unit="box">1</Qty><Item>lime gelatin</Item>

</Ingredient><Ingredient>

<Qty unit="g">500</Qty><Item>multicolored tiny marshmallows</Item>

</Ingredient>

<Ingredient><Qty unit="ml">500</Qty><Item>Cottage cheese</Item>

</Ingredient><Ingredient>

<Qty unit="dash"/><Item optional="1">Tabasco

sauce</Item></Ingredient>

</Ingredients><Instructions>

<Step>Prepare lime gelatin according topackage instructions

</Step><!-- And so on... -->

</Instructions></Recipe>

95

XML - analisi

<?xml version="1.0"?>

Header

<Ingredient><Qty unit="box">1</Qty><Item>lime gelatin</Item>

</Ingredient>

96

XML - analisi

Non c’è descritto come deve essere mostrata la ricetta.

I tipi dei dati devono essere definiti in un DTD: document type definition

97

Esistono già vari DTD standard:

HL7 SGML/XML industria ospedalieraMathML matematicaXML/EDI elettronicaFDX scarpeWML 1.x wireless markup

language

98

Nomenclatura XML

99

XML - tag

In XML i tag seguono regole molto più rigide che in HTMLI documenti XML devono essere “well-formed”:

i tag devono essere chiusi, in HTML il seguente codice è accettabile:

<P>blah blah<P>blah2 blah2

100

XML - tag

I tag non possono sovrapporsi:<primotag> aaaaa <secondotag> bbbbbb</primotag> </secondotag>

la forma accettabile è:

<primotag> aaaaa <secondotag> bbbbbb</secondotag> </primotag>

101

XML - tag

I valori degli attributi sono racchiusi da: “”

in HTML possono anche essere “nudi”:

<TABLE BORDER=1>

102

Well-formed: il documento segue le regole dell’XML

valido: il documento segue anche le regole del DTD

103

<Ingredient><Qty unit="box">1</Qty><Qty unit=”g">5</Qty><Item>lime gelatin</Item>

</Ingredient>

Quale è la quantità giusta ??

104

DTD

Il DTD è la grammatica del linguaggio di markup definita dal disegnatore del linguaggio.

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.

105

Un parser XML che valida un documento legge il documento ed il DTD, e controlla la corrispondenza nei confronti del DTD.

I validatori per HTML fanno un lavoro simile.I browser HTML sono molto liberali...

106

DTD

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

107

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

isVegetarian CDATA "true"><!ELEMENT Instructions (Step)+>

108

<!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)>

<!ELEMENT...> definisce un tag di nome Recipe che contiene gli elementi tra parentesi.

109

“?” significa che l’elemento è opzionale e può apparire 1 o 0 volte

“+” significa 1 o più

“*” significa 1,0 o più volte

110

<!ELEMENT Name (#PCDATA)>

L’elemento può contenere solo caratteri e nient’altro (parsed character data). Non può avere figli.

111

<!ATTLIST Item optional CDATA "0" isVegetarianCDATA "true">

Il tag ha due possibili attributi con relativo valore di default

112

Un attributo può essere reso obbligatorio con #REQUIRED

Se un attributo non è richiesto allora si può indicare con #IMPLIED

113

I tipi di attributi possono essere:

stringhe (CDATA o character data)token (ID, IDREF, ENTITY, NMTOKEN)attributi enumerati

114

XML

Esempio: RSS

115

XML: esempio

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

È un file XML

116

117

Un programma può aggregare informazione da diversi siti usando RSS

118

XHTML

119

XHTML

È il successore di HTML

Si basa sul rigore di XML applicandolo alle funzioni di formattazione di HTML

Un documento XML deve essere well formed

120

I tag devono essere scritti in minuscolo !

La rappresentazione grafica dovrebbe usare solo CSS (strict)

In alternativa si possono mettere tag di presentazione anche nel codice XHTML (transitional)

121

Come funziona il web

Architettura client-server

122

Come funziona il web

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

123

Come funziona il web

La pagina inviata dal server è in formato HyperTextMarkup Language

file ASCII con informazioni di controllo per l’impaginazione del testo, per la definizione dei link, etc.⌧link è formato dall’indirizzo di rete del server e l’identificativo

del file contenente la pagina associata al link (nascosto)

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

124

Come funziona il web

URL (Uniform Resource Locator): indirizzo per ogni tipo di risorsa residente sui vari computer collegati alla rete

tipo://host.dominio/path/filenameEsempio: http://viplab.dsi.unifi.it/∼bertini/index.htm

125

Il Browser

Strumento per la navigazioneIl browser interpreta l’HTMLEsempi: Mosaic, Netscape Navigator, Internet ExplorerCosa Accade:

ConnessioneRichiestaRispostaTermine

⇔ Messaggio di errore

126

….continuaConnessione

Il client invia un richiesta di connessione al server: Connecting to…

RichiestaSe l connessione viene stabilita il client specifica al server il protocollo da applicare e l’oggetto richiesto

RispostaSe il server riesce a soddisfare la richiesta la transazione viene eseguita: status line

TermineLa connessione è chiusa e il browser mostra quanto ha recuperato: Document Done

127

Browser – server web

Le operazioni da compiere per consultare siti Internet navigando tra i computer e le pagine presenti nel WWW:

Collegarsi all’ISP, fornitore della connessione a internet, componendo il numero telefonico (tramite modem). Entrati nella rete (Login e Password) attivare il browser: digitare l’URL di un sito nella casella dell’indirizzo.

128

Browser – server web (2)

La richiesta dell’utente percorre la rete fino ai server interessati, seguendo il percorso più efficiente tra le migliaia disponibili che collegano tra loro i server che costituiscono i nodi della rete.

⌧L’instradamento viene effettuato dai router⌧Sono usati i protocolli TCP e IP

129

Browser – server web (3)

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

130

Browser – server web (4)

Quando i dati trasmessi raggiungono il computer dell’utente, il browser trasforma il codice HTML in una pagina grafica e la visualizza sul monitor.

Le fasi dalla 2 alla 4 si ripetono spostandosi tramite i link.

131

Programmazione client-side

In realtà, esiste la possibilità di incorporare elementi dinamici nei documenti HTML, che possono essere interpretati direttamente dal browser:

JavaScript e VBScript sono linguaggi che possono essere racchiusi direttamente nel documento HTML. Entrambi sono “guidati dagli eventi” (click del mouse o entry da tastiera), e sono in grado di manipolare gli elementi di un documento Web attraverso il browser;⌧eventi sono il click del mouse su particolari elementi della

pagina,così come il caricamento di una pagina.

132

Programmazione client-side

Questi linguaggi di script sono relativamente semplici da usare, ma non particolarmente potenti:

il maggior vantaggio è che consentono alla pagina di variare dinamicamente alle condizioni o cambiamenti del browser, senza la necessità di fare accesso al server;lo script è eseguito (interpretato) direttamente nel browser; in questo modo il numero di accessi al server è ridotto e la velocità incrementata.

133

Programmazione client-side

Un tipico impiego è quello di usare un semplice script per cambiare lo stato di una piccola immagine usata per un bottone in una pagina web, quando passa da uno stato on ad uno off.

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.

134

Come funziona il web

Web serverProgrammazione server side

135

Web server

Il compito principale di un web-server è quello di ricevere, interpretare e rispondere alle richieste di un web-client. I serverssono i responsabili della maggior percentuale di traffico sulla rete.

Il termine web-server è spesso usato in due modi distinti:a livello base il web-server è un programma che ascolta attivamente un particolare canale di comunicazione per intercettare le richieste HTTP dei client. Alcuni tra i più comuni server web sono Microsoft IIS (Internet Information Server) in ambiente Windows, e Apache server disponibile per Linux e Windows (consigliato l’uso della release 2).

136

Web server

Spesso il termine web-server è utilizzato anche per indicare una particolare macchina fisica dedicata al compito specifico di eseguire il software di un particolare web-server:

⌧in questo caso non esiste una reale distinzione tra la macchina ed il software eseguito;

⌧in altri casi il software del server web può essere eseguito su di una macchina condivisa per le normali operazioni. La soluzione dedicata è di solito preferibile.

137

Programmazione server-side

La capacità di rispondere alle richieste degli utenti è stata introdotta nel software dei server web per trattare i dati introdotti attraverso form HTML.

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

138

Programmazione server-side

In una applicazione tipica, un form HTML è inviato al server, e qui è passato attraverso il protocollo CGI ad un programma di elaborazione.

I CGI forniscono anche l’accesso ad un insieme standard di informazioni riguardo il web client, come ad esempio il tipo di browser utilizzato.

La programmazione server-side è essenziale per ogni applicazione orientata all’utilizzo di database sul Web:

i CGI forniscono un modo per accedere a programmi sul server, ma sono relativamente lenti (di solito scritti in Perl).una soluzione alternativa utilizza le Application ProgrammingInterfaces (APIs).

139

Server Side Scripting

La necessità di linguaggi di scripting server side inclusi nel codice HTML si è resa evidente per superare i limiti posti dal solo HTML e dagli script client side, in particolare per la costruzione di pagine dinamiche e l’accesso a database.

Il concetto alla base di tutti i linguaggi di script server side è che il loro codice, inserito all’interno di una pagina HTML, è interpretato ed eseguito dal web server:

il server sostituisce il codice dello script con il risultato della sua esecuzione, ed invia la pagina HTML così ottenuta al browser che ne ha fatto richiesta.

140

Server Side Scripting: PHP

Il PHP (Personal Home Page) è nato nell’autunno del 1994 ad opera di Rasmus Lerdorf.

È un progetto open source che negli ultimi anni si è affermato come una delle soluzioni più versatili e diffuse sul web come linguaggio di scripting server-side.

Attualmente si stima che sia attivo su oltre 5 milioni di siti nel mondo:

in termini di diffusione è leggermente superiore rispetto ad un prodotto antagonista come ASP in combinazione con il web server Internet Information Server di Microsoft.

141

Server Side Scripting: PHP

La sua diffusione è dovuta anche al fatto che è multipiattaforma, per cui è possibile trovare l’interprete PHP per i più diffusi sistemi operativi (Windows, Linux, Unix, etc.).

Inoltre rispetto ai CGI gode di alcuni vantaggi:il PHP è un linguaggio embedded nel codice HTML, e non necessita quindi di ulteriori file esterni per essere eseguito;uno script PHP non ha bisogno di risiedere in una particolare directory, come avviene per la directory cgi-bin dei CGI.

142

Cos’è il PHP

Il PHP (ufficialmente PHP: Hypertext preprocessor) rappresenta un linguaggio di scripting server-side, incluso nel codice HTML.

Il codice PHP è incluso tra i tags speciali di inizio e di fine (<?php e ?>), posti all’interno di una paginaHTML. I tag delimitano l’ingresso e l’uscita dal PHP. Ogni linea di codice PHP deve essere terminata da “;”.

<html><head> <title>Example</title></head><body><?phpecho “A PHP script”;

?></body>

<html>

143

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

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

144

Cos’è il PHPSe la stessa pagina è aperta dal browser facendo riferimento al server web (nelcaso particolareall’indirizzo localhost) si ottiene il risultato voluto:

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

145

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

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

echo produce come risultato la stampa nella pagina HTML della stringa o della variabile che segue.

146

Come funziona il web

Web e database

147

Tecnologia del Web

Nella prospettiva di collegare le componenti web con un database, tre sono le componenti base per qualsiasi applicazione:

la tecnologia del Web (lato server e lato client);la tecnologia del database:la tecnologia per il collegamento client/server e tra le componenti Web ed il database.

La tecnologia impiegata nell’ultimo punto va sotto il nome di middleware, in quanto si situa tra l’applicazione e la rete.

148

Tecnologia del WebLayout generico per le tre componenti con alcune delle tecnologie che le realizzano.

HTMLWeb

JavaScript

Application ServersMiddleware

jsp, php, asp

DatabaseSQL

ODBCNative DatabaseGateways

CGI

Web ServerAPIs

149

Web side

La struttura base del processo di accesso alle informazioni sul Web comprende le seguenti fasi:

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

150

Struttura client/server sul Web

User(client)

Web Browser1. L’utente richiede il file

6. Output HTML formattato

Web Server

2. richiestaHTTP

5. rispostaHTTP

Remote Computer(server)

3. Il Web server processa la richiesta

4. Il file è ritrovato dal Web server

151

Accessibilità

152

ACCESSIBILITÀ

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

153

Un utente potrebbe:non essere in grado di vedere, udire, muoversi o elaborare alcuni tipi di informazioneavere difficoltà a leggere o comprendere il testonon essere in grado di usare un mouse o una tastieraavere uno schermo che visualizza solo testo, un piccolo schermo o una connessione lenta ad Internetnon comprendere il linguaggio nativo del documentoavere una vecchia versione del browser, un diverso browser, un voice browser….

Limiti dell’utente

154

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

orientarsi e navigare all’interno di un sito

leggere i contenuti delle pagine

interagire con le procedure che prevedono scelte, immissione di dati

I contenuti e le procedure devono essere fruibili da utenti dotati di browser con diverse configurazioni

155

Ogni linea guida ha una serie di checkpoint che dettagliano come applicare la linea guida in tipici contesti di sviluppo di pagine webOgni check point ha un livello di priorità in base al suo impatto sull’acccessibilitàI livelli di priorità sono 3:

[Priorità 1] ⌧Una sito web deve osservare questi check point altrimenti l’informazione

non risulta accessibile a uno o più gruppi di utenti.[Priorità 2] ⌧Una sito web dovrebbe osservare questi check point altrimenti

l’informazione risulterà difficilmente accessibile a uno o più gruppi di utenti. Osservare questi check point riduce notevolmente le barriere di accesso al contenuto

[Priorità 3] ⌧Una pagina web può osservare questi check point altrimenti l’informazione

può risultare in qualche modo difficilmente accessibile a uno o più gruppi di utenti

Linee guida W3C: check point

156

SI definiscono tre livelli di conformità per un sito web

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

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

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

Linee guida W3C: Conformità

157

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

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

158

Guideline 1. Offrire informazione equivalente per contenuto uditivo o visivoCheckpoints

Contenuto testo equivalente per ciascun contenuto non testo ( es.”alt” per le immagini) [Priorità 1]

Link testuali per ogni regione di una image-map [Priorità 1]Prevedere testo equivalente per la descrizione di ogni contenutomultimediale [Priorità 1]

Linee guida

159

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

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

Linee guida

160

Guideline 3. Usare markup e fogli di stile e farlo in modo appropriatoCheckpoints

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

Linee guida

161

Guideline 4. Rendere chiaro l’uso di linguaggio correnteUsare markup che facilitino l’interpretazione di abbreviazioni e di parole straniere

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

Linee guida

162

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

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

Linee guida

163

Guideline 6. Assicurarsi che le pagine contenenti nuove tecnologie si trasformino in maniera adeguata

Assicurarsi che le pagine siano accessibili anche quando le nuove tecnologie non sono disponibili (Es. nuovi Plug-in)

CheckpointsOrganizzare la pagina in modo che possa essere letta correttamente anche senza fogli di stile [Priorità 1]Assicurarsi che il il contenuto equivalente per contenuto dinamico si aggiorni quando il contenuto dinamico cambia [Priorità 1]Assicurarsi che la pagina sia leggibile anche quando script, applett o altri oggetti non siano disponibili o disabilitati. Se non fosse possibile usare la pagina senza script rendere disponibile una pagina testo equivalente o usare scripting server side al posto di scripting client side [Priorità 1]

Linee guida

164

Guideline 7. Assicurarsi che l’utente abbia il controllo di contenuti mutevoli nel tempo possano essere

Assicurarsi che oggetti che lampeggiano, si muovono o si auto aggiornano possano essere messi in pausa o stoppati

CheckpointsEvitare lo sfarfallio dello schermo [Priorità 1]…

Linee guida

165

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

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

Linee guida

166

Guideline 9. Design indipendente dall’interfacciaUsare funzionalità che permettano l’attivazione degli elementi della pagina da diversi dispositivi di input

CheckpointsRendere disponibili image-map lato client piuttosto che lato server [Priorità 1]Creare shortcut da tastiera per link importanti. Ad esempio in HTML specificare gli shortcut attraverso l’attributo “accesskey” [Priorità 3]…..

Linee guida

167

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

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

Linee guida

168

Guideline 11. Usare tecnologie e linee guida W3CCheckpoints

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

Linee guida

169

Guideline 12. Rendere disponibili informazioni sul contesto e informazioni di orientamento Checkpoints

Assegnare un titolo ad ogni frame per facilitarne l’identificazione e la navigazione [Priorità 1]Dividere larghi blocchi di informazione in gruppi più appropriati [Priorità 2]….

Linee guida

170

Guideline 13. Rendere disponibile un chiaro meccanismo di navigazioneCheckpoints

Identificare chiaramente il target di ogni link. In HTML scrivere “informazioni su W3C” invece di “clicca qui” [Priorità 2]Usare metodi meccanismi di navigazione in modo consistente [Priorità 2]Usare barre di navigazione del sito [Priorità 3]

Linee guida

171

Guideline 14. Assicurare che il documento sia chiaro e sempliceCheckpoints

Usare il linguaggio più semplice e adeguato per il contenuto del sito [Priorità 1]Creare uno stile di presentazione che sia coerente in tutto il sito [Priorità 3]

Linee guida

172

Trattare separatamente, il contenuto, la struttura e la presentazione di una pagina, facendo uso di "fogli di stile"Non usare il colore come unico veicolo di informazione

Usare grandezze relative per indicare le dimensioni e la posizione delle componenti di una pagina

Creare documenti "scalabili” che non dipendono da un solo tipo di hardware

Sintesi raccomandazioni

173

Fornire testo equivalente a immagini, video e contenuto multimediale

corredare le immagini di descrizioni testuali (es. "alt" di HTML) per indicare la funzione dell’immagine o la descrizione del contenuto (es. "longdesc" o "description link" in HTML) quando è importante per la comprensione del documento

Corredare le componenti sonore di segnalazioni alternative visive

Sintesi raccomandazioni

174

Usare parole o brevi frasi di chiaro e univoco significato anchefuori del contesto

Seguire la stessa regola anche per la didascalia alternativa di collegamenti realizzati con immagini o simboli grafici

Prevedere procedure alternative a script, applet …. nel caso che non siano gestibili con i comuni ausili usati dagli utenti disabili.

Prevedere un messaggio di avvertimento di apertura di una finestra.

Sintesi raccomandazioni

175

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

Sintesi raccomandazioni

176

Browser alternativi

Browser disegnati specificamente per disabiliSpeech output, simple keyboard interface / standard graphical user interfaceSpeech output, supporto Braille, font su schermo specialiScreen readernavigation of the screen presented by the operating system, using speech or Braille output

Browser adattativiIngrandimento di porzioni di schermo o opzioni di navigazioneVoice browsersNavigazione voice-driven, (voice-in/ voice-out, accesso web via telefono).

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)YCrCbYIQ (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 parametriselezionando lo stesso pixel di partenzausando 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 trasparenzaAlcuni 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 losslessGIF è losslessTIFF 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 Fireworksconsentono 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 sottostanteSi decide quanto un layer è trasparente e come si “fonde” con quelli sottoPosso 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