[eBook Ita] Corso Di Fondamenti Di Informatica
description
Transcript of [eBook Ita] Corso Di Fondamenti Di Informatica
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
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 "talk about" 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