Scarica Informatica primo anno e più Appunti in PDF di Informatica gestionale solo su Docsity!
DEFINIZIONI
ARITMETICA BINARIA: è una rappresentazione dei valori numerici, attraverso la nozione binaria ( o in base 2). si usa più comunemente la nozione decimale (o in base 10). Ogni posto rappresenta una potenza di 10. I valori numerici possono essere rappresentati usando meno simboli es. base 2 (0,1). es. 11001 = 25 questo perchè le potenze di 2 sono: 16-8-4-2- la somma di 16x1+8x1+0x4+0x2+1x1 = 25 Visto che i dati nei calcolatori sono rappresentabili facilmente in un sistema di tipo ON/OFF, risulta pertanto assolutamente naturale e connaturato al modo di immagazzinare le informazioni l'uso di un'aritmetica che utilizzi due sole cifre, quindi binaria. Allo stato ON viene associata la cifra 1, allo stato OFF la cifra 0. Nelle rappresentazioni decimali con una cifra si possono rappresentare 10 simboli, con due cifre 100 simboli e con 3 cifre 1000 simboli. Più in generale detta “b” la base della notazione, con N cifre in base “b” si possono rappresentare b N simboli. KILO MILLE 2 10 1024 MEGA MILIONE 220 1,048, GIGA MILIARDO 230 1,073,741, TERA BILIARDO 240 1,099,511,627, PETA MILIONE DI MILIARDI 250 1,125,899,906,842, Inoltre, vista l'importanza nel mondo dei calcolatori della numerazione in base 2, ad alcuni elementi di essa, sono stati assegnati dei nomi specifici:
- il BIT, è la più piccola quantità di informazione non divisibile, memorizzabile su un elaboratore.Corrisponde a una cifra binaria, può assumere il valore 0 o 1.
- il BYTE, insieme di 8 bit, è inceve la quantità di dati minima accessibile o utilizzabile da un programma. La più famosa tabella di conversione è l'ACII che consente di rappresentare lettere, numeri, segni di interpunzione oltre a simboli speciali tramite 7 bit. Quindi 1 Byte è sufficiente a rappresentare tutti i caratteri alfanumerici. La velocità delle reti di calcolatori per convenzione si misura in bit al secondo. Lo spazio disco o le dimensioni di file di dati sono invece misurati in Byte. Il CONCETTO DI DEFAULT è un valore preimpostato per variabili, criteri, azioni, scelte, da utilizzare in assenza di altre indicazioni o di indicazioni ambigue.
PANORAMICA HARDWARE
La parola Hardware in informatica indica generalmente tutti gli apparati, le parti fisiche ed i componenti elettronici che costituiscono un elaboratore. Un calcolatore può essere ricondotto a questi componenti: 1- un unità di elaborazione centrale (CPU); 2- una memoria centrale volatile (RAM); 3- un sistema di archiviazione persistente (HD); 4- un sistema di periferiche di input/ouput (I/O). CPU: (Central Processing Unit), è la parte centrale, considerata il cuore o il cervello del calcolatore. È composta da un numero altissimo di circuiti stampati estremamente miniaturizzati. Compie costantemente operazioni con seguenti caratteristiche:
- sono semplici e “atomiche” paragonabili a somme, sottrazioni e movimenti di dati tra celle di memoria;
- sono numericamente tantissime ed eseguite in tempi brevissimi;
- sono eseguite sequenzialmente, ossia, solamente un'operazione alla volta. L'operatività della CPU viene qualificata in “tempo macchina” che viene in genere:
- condiviso tra le attività del sistema operativo e le attività richieste dagli utenti;
- suddiviso in unità fondamentali e assegnato con opportune strategie ai singoli precessi software e a tutte le periferiche in I/O che lo richiedono. Le prestazione della CPU sono misurate in “velocità”: numero operazioni al secondo. I calcolatori, a seconda delle loro prestazioni (e del loro prezzo) possono essere dei sistemi:
- monoprocessore: dotati di una sola CPU;
- Multiprocessore: dotati di più CPU (generalmente 2 o 4) che condividono il carico computazionale. RAM: è il luogo usato dalla CPU per l'esecuzione delle sue operazioni. Esse prevedono che il dato su cui occorre operare sia:
- portato dalla memoria di massa (HD) ad un'area di memoria centrale (RAM) riservata al processo software in esecuzione;
- da qui, acceduto o portato in aree di memoria centrale riservate alla CPU;
- utilizzato dalla CPU;
- riportato “indietro” una volta terminata l'operazione. Pertanto la RAM viene suddivisa in aree dedicate:
- ai processi;
- al sistema operativo perchè operi su qiesto. La sua dimensione può essere estesa oltre la sua dimensione fisica, tramite il concetto di memoria virtuale. La RAM ha come esigenza quella di memorizzare informazioni numeriche. Si ha l'implementazione di un apparato che sia in grado di rappresentare due differenti modi di essere (stati). Si ha la realizzazione di sistemi che tramite un circuito ed un campo elettrico possono rappresentare due stati fisici stabili, riconoscibili. In assenza di campo elettrico (spegnimento) lo stato fisico si annullerà. MEMORIE DI MASSA: sono apparati adibiti a immagazzinare dati, anche quando il
Il file system è il sistema con cui il calcolatore archivia in modo persistente le informazioni. L'unità fondamentale dei dati che vengono archiviati è il FILE che al suo interno può contenere sia dati che istruzioni di un programma. Il file system utilizza dispositivi hardware che consentono di mantenere le informazioni ancje quando il calcolatore è spento. Tali dispositivi sono detti memorie secondarie non volatili. Tipicamente si tratta di Hard Disk ma alcuni calcolatori utilizzano anche memorie allo stato solido o schede di memoria. Il file system è totalmente gestito dal Sistema Operativo, è quest'ultimo che decide come e dove le informazioni (file) debbano essere fisicamente archiviate sul dispositivo di memoria secondaria attraverso il file system. È molto frequente che un SO abbia la necessità di aggiungere o cancellare un file oppure aumentarne o diminuirne la dimensione, questo potrebbe generare alcuni problemi della gestione delle risorse disponibili. Infatti, un file cancellato lascia delle pagine “vuote” oppure nel caso in cui il secondo file è più lungo del precedente ci potrebbe essere la richiesta di pagine aggiuntive già occupate da altri file. Per superare questo problema si può pensare a un dispositivo di memoria secondaria come fosse un quaderno ad anelli, in cui le pagine possono essere spostate senza creare problemi di spazio e senza limitazioni sulla crescita delle dimensioni di un file. Si utilizza un INDICE, le pagine del quaderno devono essere numerate e per potere ricostruire il contenuto del file, l'indice deve contenere (nel corretto ordine) tutti i numeri delle pagine su cui è stato scritto il file. Il SO deve anche fornire una versione astratta dei file presenti sulla memoria secondaria in quanto l'utente deve sempre avere la possibilità di:
- avere a disposizione un insieme di operazioni ad alto livello per poter lavorare sui file;
- identificare i file con un nome indipendentemente dalla sua posizione e dispersione nella memoria secondaria. Questi obiettivi si raggiungono tramite l' organizzazione gerarchica dei file , implementata dal file system e gestita dal sistema operativo, consiste nel:
- raggruppare i file in sottoinsiemi memorizzati all'interno di contenitori detti DIRECTORY (cartelle);
- usare nomi di file astratti o univoci all'interno delle directory. La struttura gerarchica può essere rappresentata da una struttura ad “albero”. Questo modello è utile a capire perchè il file system permette che coesistano due file con lo stesso nome purchè in due cartelle diverse. Questo percorso che dalla radice porta al file prende il nome di PATHNAME. Nei sistemi multi-utente devono esserci dei meccanismi di protezione dei file in termini di accesso, modifica o cancellazione. Per gestire questa necessità, il file system conserva, per ciascun file archiviato, un insieme di informazioni aggiuntive. Il file system è in grado di riconoscere l'autore del file tramite i “PRIVILEGI” che l'autore ha deciso di concedere a tutti gli altri utenti. IL SOFTWARE
Il software è necessario per far fungere un calcolatore. È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (hardware) in un oggetto in grado di svolgere delle funzioni utili e di natura diversa. Il Software per poter usare direttamente i circuiti elettronici di un calcolatore deve :
- conoscere tutti i dettagli costruttivi dell' hardware;
- fornire al calcolatore delle istruzioni scritte in un linguaggio a lui comprensibile (linguaggio macchina) fatto da lunghe sequenze di bit 0 e 1. Inoltre l'utente deve essere in grado di:
- usare nello stesso modo calcolatori diversi del punto di vista dell'hardware;
- avere un semplice linguaggio d'interazione con il calcolatore;
- avere un insieme di strumenti applicativi per svolgere compiti utili e diversi. Nei moderni calcolatori, tutti questi obliettivi vengono raggiunti attraverso la definizione di MACCHINE VIRTUALI, oggetti che vengono realizzati al di sopra della macchina hardware reale. Questa macchina si definisce virtuale in quanto essa non esiste fisicamente ma viene rrealizzata mediante il suo software di base al di sopra della macchina fisica racchiudendo in se tutte le caratteristiche specifiche dell'hardware su cui è costruita. Quando l'utente deve interagire con l'hardware del calcolatore invia dei comandi attraverso un opportuno linguaggio alla macchina virtuale. Quest'ultima si preoccupa della traduzione di ogni comando impartito dall'utente nella specifica sequenza di istruzioni riconosciute dalla macchina fisica sottostante. Si può dire che la macchina virtuale è un software che consente di gestire le risolrse fisiche e interagire con il calcolatore in modo semplice. Si può fare riferimento a SO. I compiti svolti con l'ausilio del calcolatore sono chiamati APPLICAZIONI e i programmi usati per realizzarli sono detti PROGRAMMI APPLICATIVI. All'interno del calcolatore, il software applicativo si stratifica sopra la macchina virtuale per poter svolgere molte azioni ricorrenti indipendentemente dall'hardware. Esampi di programmi applicativi sono:
- videoscrittura: microsoft (W-Word-Publisher), openoffice (Writer);
- fogli elettronici: microsoft (Exel), openoffice (Calc);
- presentazioni: microsoft (PowerPoint), openoffice (Impress);
- browser per internet: Google, Safari, Opera, Mozilla firefox...
- strumenti di disegno: Paint, Draw, Autocad (disegni tecnici). Il software applicativo deve generalmente essere installato successivamente all'acquisto del calcolatore. Solitamente è distribuito su CD o DVD autoinstallanti. Il programma ha il compito di copiare tutti i file necessari sul disco fisso in funzione della macchina virtuale presente sul calcolatore. Quando il software applicativo non serve più può essere disinstallato. Le case produttrici di software aggiornano i loro programmi applicativi con cadenza regolare. Gli aggiornamenti includono correzioni di bug (errori) e/o nuove funzionalità. Il programma applicativo, quando viene avviato, verifica la disponibilità in rete di una versione più aggiornata, quando la trova la scarica automaticamente chiedendo il permesso all'utente. I SISTEMI OPERATIVI È l'anima del calcolatore. È un insieme di software e serve a coordinare ed
Un solo processo può essere fisicamente in esecuzione sulla CPU, tutti i processi rimanenti vengono iberanati nell'attesa che la CPU sia nuovamente disponibile. I processi sono attivi contemporaneamente sul calcolatore (sistemi multiprocessing). Il modo in cui un SO si presenta al proprio utilizzatore viene definito con il termine di “INTERFACCIA”. È il modo in cui il sistema rende disponibili e utilizzabili le proprie funzionalità verso l'esterno. Nei calcolatori più semplici, o più vecchi, esisteva un solo tipo di interfaccia di SO. Era rappresentata visivamente da un interprete dei comandi che si aspettava dei comandi testuali (script di “shell”), forniti tramite una tastiera e visualizzati su uno schermo, era un interfaccia detta “a carattere”. Nel tempo sono diventate interfacce “grafiche”, gestite con un mouse, presentano icone (rappresentazione visiva dei programmi) raggruppate nel desktop. Le più conosciute e diffuse sono MacOS di Apple e Windows di Microsoft. Le interfacce possono coesistere contemporaneamente anche con altre interfacce grafiche purchè non attive nello stesso momento. LINGUAGGI DI PROGRAMMAZIONE ALGORITMO: regole e prescrizioni da compiere per risolvere un problema. PROGRAMMAZIONE: insieme di tecniche che consentono di descrivere degli algoritmi in modo da poter essere riconosciuti ed eseguiti da un calcolatore. Un calcolatore è in grado solo di eseguire istruzioni codificate, al limite può simulare dell'iniziativa, purchè in precedenza sia stata già scritta. Quindi, un programma è la descrizione, in un lingiaggio noto al computer, dei processi sequenziali necessari per operare delle traformazioni di stato di alcuni oggetti. LINGUAGGIO DI PROGRAMMAZIONE: è il sistema che consente di formalizzare gli algoritmi in un linguaggio comprensibile dal calcolatore per fornire ad un computer le istruzioni da compiere per completare un processo. LINGUAGGIO MACCHINA: insieme di istruzioni estremamente elementari che un particolare computer è in grado di seguire. LINGUAGGIO DI ALTO LIVELLO: insieme di direttive e istruzioni indipendenti dal particolare computer si cui vengono eseguite. È nato successivamente al linguaggio macchina e si struttura con istruzioni simili a verbi. I linguaggi ad alto livello sono troppo complessi per essere compresi ed eseguiti direttamente dal processore (CPU), pertanto:
- contro: necessità di traduzione da linguaggio di alto livello a linguaggio macchina, quindi necessità di programmi intermedi (compilatori e assemblatori);
- pro: nasce il concetto di indipendenza hardware e portabilità di un programma. I passaggi per scrivere un programma sono:
- Definizione di un algoritmo, per mezzo di una rappresentazione simbolica.
- Sua scrittura in un linguaggio di alto livello, scrittura si programma sorgente.
- Compilazione/assemblamento del programma sorgente nel corrispondente linguaggio macchina, quindi creazione del programma eseguibile.
- Esecuzione del programma eseguibile. I linguaggi interpretati sono nati da esigenze diverse da quelle che hanno condotto alla nascita dei linguaggi di alto livello, ad esempio:
- per la gestione e l'interazione con il SO;
- per attività marginali o di manutenzione del Sistema;
- per fornire ambienti semplici di programmazione. In questi tipi di linguaggi:
- non esiste la fase di compilazione/assemblamento;
- le istruzioni del programma sorgente vengono lette, una per una, e subito eseguite, grazie ad un particolare programma detto INTERPRETE;
- l'esecuzione dei programmi (script) può essere costosa in termini di “tempo di esecuzione”. Questo perchè i linguaggi interpretati sono particolarmente poco efficienti. es. BASIC= sviluppato negli anni '60 per lo sviluppo di giochi e app; DOS= i programmi dos vengono inseriti in un filee mandati in esecuzione con RUN; SHELL= usato per le attività di gestione degli elaborati; PERL= nato per gestire “regular expressions” ma anche elaborazioni su file; PHP= nato per la scrittura dinamica di pagine web. Se si vogliono massimizzare le prestazioni occorrerà ricorrere a linguaggi compilati, mentre se si vuole massimizzare la portabilità occorrerà far uso di linguaggi interpretati. L'interprete può essere sia una parte del SO, sia un programma differente e installato successivamente sul calcolatore es (Java Virtual Machine). Tutti i sistemi operativi correnti hanno almeno un interprete ed un linguaggio di comando con cui realizzare degli script di SO. LINGUAGGI AD OGGETTO: la programmazione è astratta, pensando il software come oggetti che hanno delle proprietà, delle funzioni e che si possono passare dei messaggi. La classe può in sintesi essere considerata come uno “stampo” per creare oggetti. RETI DI CALCOLATORI La rete offre all'utnete:
- l'accesso a informazioni remote;
- internet, l'e-commerce, le biblioteche digitali ecc...
- la comunicazione elettronica (e-mail)
dimensioni ridotte. Si possono ulteriormente classificare a seconda della tipologie che assumono (punto a punto...) o delle regole (protocollo) con cui i nodi comunicano. ETHERNET: è il tipo di rete locale più diffuso. Qualsiasi computer prevede sempre la possibilità di connettersi ad una rete locale ethernet (attraverso una scheda harware). La velocità di trasmissione di una comunicazione tra due nodi è di 10,100,1000 Mb/sec. I nodi a cui è collegata una risorsa hardware condivisa sono detti Server; i nodi che invece la utilizzano sono detti Client. MAN- metropolitan area network: è una rete metropolitana. Può coprire un gruppo di uffici, aziende diverse o una città. Può essere pubblica o privata. WAN- wide area network: copre una grande area geografica un esempio di rete wan è la rete GARR che collega tutte le università italiane. Nella maggior parte delle reti wan le sottoreti di comunicazione sono formate da: linee di trasmissione; elementi di commutazione (router), ossia, nodi specializzati usati per collegare due o più linee di trasmissione. RETI SENZA FILO (wireless): sono in genere delle piccole sottoreti in cui i nodi comunicano tra di loro senza essere collegati da dei veri e propri cavi. L'architettura più riccorente consiste in un insieme di nodi periferici (client) che si collegano “wireless” ad un nodo centrale (server o access point). Attraverso tale connessione, i client accedono alla vera e propria rete aziendale o domestica, avendo a disposizione tutti gli eventuali servizi di rete (internet, e-mail, stampanti di rete...). Gli standard più usati per la comunicazione wireless sono WI-FI e Bluetooth. Nelle reti locali, la comunicazione tra due nodi passa su cavi dedicati adatti per la trasmissione delle comunicazioni attraverso un segnale elettronico digitale (bit 0 o 1). per le comunicazioni su lunga distanza, si cerca invece di sfruttare le reti di comunicazione esistenti, come la rete telefonica. Sono necessari dispositivi hardware (modem) per poter utilizzare la rete telefonica come mezzo di comunicazione tra nodi. MODEM: è usato soprattutto per le comunicazioni private, hanno velocità di 56 Kb/sec. Esistono modem più performanti come ISDN (128 Kb/sec) e ADSL (da 640 Kb/sec). SICUREZZA INFORMATICA Per sicurezza informatica si intende l'insieme di politiche implementate per proteggere i dati e i servizi del calcolatore. Si distinguono due livelli:
- l'insieme di azioni messe in atto per prevenire il danneggiamento dei dati;
- l'insieme di attività svolte per ripristinare i dati e i servizi del calcolatore una volta occorso il danneggiamento. Esistono numerose categorie di minacce:
- eventi catastrofici, naturali e non (incendi, terremoti);
- incidenti che coinvolgono le infrastrutture, casuali o intenzionali;
- veri e propri attacchi alla sicurezza del calcolatore. Un primo livello di sicurezza è in genere rappresentato dal sistema operativo che viene utilizzato per definire a quali risorse può accedere ogni utente, proteggendo le altre risorse da eventuali accessi non autorizzati. Inolte, offre sempre un meccanismo di identificazione (username, password) che consente di verificare l'identità di ciascun utente limitando la possibilità di usi impropri o fraudolenti. BACKUP: con questo termine si identifica in genere una copia dei dati destinata all'archiviazione. La copia può essere utilizzata nel caso di un errore prodotto:
- dal software, causato da un intervento sbagliato dell'utente o dell'amministrazione, oppure, provocato da un virus o da altri tipi di attacco alla sicurezza del sistema;
- dall'hardware, dovuto ad un malfunzionamente intrinseco dei componenti (rottura dell'HD), oppure, da eventi esterni che provocano danni all'hardware, come allagamente o fulmini. In tutti questi casi attraverso la copia di backup è possibile ripristinare lo stato precedente all'errore. L'operazione di ripristino è detta “Restore”. Il backup è tipicamente un'azione lunga, per questo esistono metodologie di stratificazione delle copie che consentono di effettuare salvataggi parziali. Si parla di:
- backup completo : quando i dati vengono copiati interamente, per ripristinarli occorre semplicemente effettuare la copia in senso inverso (dal backup al supporto originale);
- backup incrementale : quando vengono copiati i file creati o modificati dall'ultimo backup completo o incrementale. La procedura di restore deve quindi prevedere una ricostruzione stratificata a partire dall'ultimo backup completo passando attraverso tutti i backup incrementali effettuali;
- backup differenziale : quando vengono copiati i file creati o modificati dall'ultimo backup completo. Qualora si faccia un successivo backup differenziale, questo farà riferimento all'ultimo backup completo e non al backup differenziale precedente. Questa procedura è un po' più lenta rispetto a quella incrementale. Il restore è però più semplice e veloce in quanto prevede il recupero dell'ultimo backup completo e di un solo backup differenziale. Un altro meccanismo di conservazione e ripristino dei dati molto efficace consiste nel memorizzare un'immagine precisa del disco fisso, settore per settore, e nel riversarla su un diverso supporto di memoria di massa. In caso di errore è possibile ricostruire la situazione iniziale invertendo il processo di copia. RAID: è un complesso meccanismo di memorizzazione che utilizza più dischi fissi con l'obiettivo di aumentare l'affidabilità della memoria di massa. Le diverse tipologie raid combinano alcuni meccanismi base: MIRRORING: in cui ogni disco viene duplicato, e dunque esiste una copia di sicurezza
Per la legge italiana l'autore ha il diritto esclusivo di:
- riprodurre, tradurre, adattare, trasformare il software parzialmente o totalmente;
- distribuirlo pubblicamente con qualsiasi modalità. L'acquirente legittimo ha il diritto di:
- riprodurre il programma, ma modificarlo solo se necessario al suo utilizzo;
- fare una copia di riserva, se necessario;
- valutare il programma e provarne il suo funzionamneto. Esistono molte tipologie di contratto di licenza con vincoli diversi:
- software proprietario : venduto solo per scopi dichiarati, nessun accesso ai programmi sorgente, vincoli di tempo e di modalità d'uso;
- trial version (DEMO) : software ceduto gratuitamente con vincoli funzionali, temporali o sul numero di cicli di utilizzo;
- shareware : software ceduto con richiesta di contributi economico di bassa entità;
- freeware : software ad uso gratuito, ma senza rilascio del codice sorgente;
- ad-ware : software rilasciato ad uso gratuito in cambio di visualizzazione di messaggi pubblicitari o di raccolta di informazioni personali dell'utente per azioni di marketing personalizzato;
- open source : software rilasciato gratuitamente con accesso completo ai programi sorgente ed eventuali vincoli sulle modifiche. Consente di distribuire il software completo di programmi sorgente e diritti di modifica. Vieta ogni possibilità di commercializzazione del prodotto originale e dei relativi derivati. Fa ereditare libertà e vincoli alle eventuali modifiche o integrazioni. Licenza fondamentale: GPL, gnu public license. INTERNET È l'insieme di tutte le reti globali. Una macchina è in internet se utilizza il protocollo TCP/IP, ha un suo indirizzo IP ed ha la capacità di spedire e ricevere pacchetti IP a tutte le altre macchine su internet. È possibile essere in internet anche in modo temporaneo chiamando un fornitore di servizi internet. La comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono il nome di Protocollo. Un protocollo fornisce delle funzionalità per:
- indirizzamento (addressing);
- instradamento (routing);
- gestione di eventuali errori di trasmissione (error detection);
- gestione della velocità di comunicazione (flow control). Per ridurre la complessità di progettazione la maggior parte dei protocolli è organizzata come una serie di livelli. COMUNICAZIONE MULTILIVELLO: il livello “n” di un calcolatore comunica con il livello “n” di un altro calcolatore. In realtà nesun dato viene trasferito da un livello n ad un altro ma passa ad un livello sottostante. Per ogni coppia di livelli adiacenti esiste un interfaccia. Le convenzioni usate nella conversazione sono il protocollo. Si tratta di un
accordo tra i partecipanti sucome deve avvenire la comunicazione. Al di sotto del livello più basso c'è il mezzo fisico che serve per il trasferimento dei dati. LA FAMIGLIA DI PROTOCOLLI TCP/IP: si tratta di protocolli organizzati in livelli concettuali, ad ogni livello corrispondono determinate funzioni:
- application ( servizi per l'utilizzo della rete);
- transport, comunicazione end-to-end;
- network, indirizzamento routing tra reti;
- physical, diviso in due livelli, il livello fisico e il livello di accesso alla rete. Internet può essere visto come una collezioni di sottoreti diverse (eterogenee) connesse insieme, quello che tiene insieme le varie sottoreti è il protocollo, che permette di traportare i dati dalla sorgente alla destinazione. La strategia è di tipo packet switching. Il servizio è connectionles, ogni datagram è gestito indipendentemente da tutti gli altri. Ogni calcolatore collegato ad internet possiete un indirizzo IP (32bit). NetID: identifica la rete in cui il calcolatore è fisicamente collegato; HostID: identifica il calcolatore. Gli indirizzi IP devono essere univoci per questo motivo è stata istituita un'organizzazione, Internet Assigned Number Authority, preposta ad assegnare indirizzi IP garandendone l'univocità. TRANSPORT LAYER: è il cuore di tutta la gerarchia di protocolli. Fornisce un trasporto affidabile dall'host di orgigine a quello di destinazione. In Internet il protocollo di questo livello è il Transmission Control Protocol (TCP). DEMAIN NAME SYSTEM (DNS): gli indirizzi IP numerici sono difficili da ricordare. Si usano quindi degli indirizzi simbolici che vengono tradotti in indirizzi IP numeerici dal Demail name system. Sono costruiti a partire da uno schema gerarchico di nomi basati sul concetto di dominio. Ogni dominio deve essere in grado di “risolvere i nomi” dei calcolatori di sua competenza. Si usano i NAME SERVER che gestiscono la corrispondenza tra nomi simbolici e indirizzi IP numerici. Quando un'applicazione deve collegarsi ad una risorsa di cui conosce il nome logico invia una richiesta al suo name server locale. Quest'ultimo, se conosce la risposta, la invia direttamente al richiedente. Altrimenti interroga il name server di top level. Questo può conoscere l'indirizzo oppure inoltrare l'interrogazione ai suoi figli nella gerarchia. Quando l'applicazione riceve una risposta crea una connessione TCP con la destinazione, usando l'indirizzo IP appena ricevuto. APPLICATION LAYER: livello nel quale viene svolto il lavoro utile per l'utente. Qui si trovano diversi protocolli:
- SMTP, simple mail transfer protocoll
- FTP, file transfer protocoll
- HTTP, hyper text transfer protocoll. Questi protocolli sono basati sul modello di interazione client/server. Per usare i servizi di questi protocolli bisogna contattare un server:
- tutte le volte che usare i browser e richiedete delle pagine HTML di un sito, di fatto state contattando un webserver remoto;
- tutte le volte che inviate una mail, di fatto, il mail server del vostro provider contatta il mail server del provider destinatario.
- lettura associativa: seguendo legami associativi. MARKUP: in un documento è il codice che contiene le informazioni per la sua formattazione, visualizzazione e navigazione. I LINGUAGGI DI MARKUP sono i linguaggi con cui tali informazioni possono essere aggiunte ai testi. Per visualizzare un testo con questo linguaggio occore un EDITOR. Per gli editor un testo è costituito da due parti:
- il contenuto vero e proprio;
- le istruzioni che specificano come il contenuto deve essere rappresentato. Le istruzioni sono chiamate TAG e in genere racchiudono il testo vero e proprio. HTML: è un linguaggio di Markup con cui vengono scritti gli ipertesti. Sono semore dei file in formato testo (codice ASCII). I browser leggono i documenti HTML e ne interpretano le specifiche di formattazione e navigazione in modo sequenziale. I colori negli attributi: vengono codificati da numeri compresi da 0 a 255 che rappresentano le quantità di rosso, verde, blu presenti nel colore stesso (Red,Green, Blue RGB). I numeri vengono trasformati nella rappresentzione decimale (in base 16) corrispondente. Le tabelle si usano per organizzare gli elementi in una pagina. Esistono latre strutture oiù astratte: i FRAME, i CONTAINER, i BOX... I Frame servono per suddividere il browser in parti indipendenti all'interno delle quali si possono caricare documenti HTML diversi. IL MODELLO ER Le basi di dati sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi. L'obiettivo è quello di memorizzare gradi quantità di informazioni, rendendone disponibili anche le operazioni di modifica e reperimento. Si usa per raccogliere, organizzare, conservare e gestire dati omogenei e strutturati. PROGETTAZIONE DI UNA BASE DI DATI:
- Analisi dei requisiti;
- Progettazione (concettuale, logica e fisica);
- Collaudo L'analisi dei requisiti è la racconta e studio delle funzionalità che il sistema dovrà aver. Comporta l'interazione con gli utenti del sistema e si conclude in una descrizione informale dei suoi requisiti. La progettazione concettuale ha lo scopo di rappresentale la realtà di interessa in termini di una descrizione precisa e completa ma indipendente dai criteri di rappresentazione usati dal sistema informatico scelto per gestire la base di dati (rappresentazione astratta). La progettazione logica ha lo scopo di rappresentare la realtà d'interesse in termini di una descrizione ancora indipendente dai dettagli fisici, ma concreta. Lo schema
concettuale viene tradotto nello schema logico. La progettazione fisica: lo schema logico viene completato dai parametri fisici di memorizzazione dei dati. Si definisce lo schema fisico dei dati che dipende dal sistema di gestione di basi di dati scelto. MODELLO ENTITÀ-RELAZIONI (E-R): consente di rappresentare la realtà di interesse tramite un insieme di costrutti. Le entità sono classi di oggetti, che hanno tutti le stesse proprietà ed esistono in modo autonomo; ogni entità è quindi un insieme di oggetti, detti anche istanze o occorrenze. Le relazioni sono legami logici tra due o più entità. Gli ATTRIBUTI descriziono le proprietà elementari di Entità e Relazioni. Ogni attributo assume dei valori all'interno di un insieme di valori ammissibili detto dominio. CARDINALITÀ DELLE RELAZIONI: per ogni entità che partecipa ad ogni relazione è possibile indicare il numero min. e max. di legami che le sue istanze possono avere con istanze delle altre enrità partecipanti alla stessa relazione. Se la cardinalità minima è 0 si dice che la partecipazione dell'entità relativa è OPZIONALE, se la cardinalità minima è maggiore o ugualr a 1, la partecipazione è OBBLIGATORIA. Se la cardinalità massima è 1 la partecipazione all'entità può essere vista come una funzione che associa ad una occorrenza di una entità una sola occorrezza di un'altra entità. Se la cardinalità massima è “N” esiste unassociazione con un numero arbitrario di occorrenze dell'altra entità. ASSOCIAZIONI A MOLTE ENTITÀ: le associazioni possono collegare più di due entità,. IDENTIFICATORI (chiavi): ogni entità è un insieme di oggetti aventi le stesse proprietà. È necessario poter identificare in modo univoco ciascuna istanza di un'entità. IDENTIFICATORE INTERNO: sottoinsieme di attributi che costituiscono una chiave per l'entità. IDENTIFICATORE ESTERNO: quando non è sufficiente utilizzare un sottoinsieme di attributi ma l'entità participa a una relazione con cardinalità (1,1), isuoi elementi possono essere identificati tramite tale relazione. GENERALIZZAZIONI: rappresentano legami logici tra una entità E della padre e più entità dette figlie E 1 , E2.... L'entità E è più generale e comprende le entità figlie. È una strattura gerarchica ad albero. MODELLO RELAZIONALE Si basa sul concetto matematico di relazione e sul concetto intuitivo di tabella e permette di costruire un modello di dati. Queati ultimo sono ocntenuti in un insieme di tabelle T. ogni tabella è una relazione in senso matematico. Gli elementi del piano cartesiano sono detti ENNUPLE o TUPLE.
- gli attributi dell' associazione diventano attributi della relazione;
- si introducono gli identificatori delle entità coinvolte per mantenere il legame. Devono, inoltre, essere aggiunti opportuni vincoli di integrità referenziale fra gli attributi della relazione che traduce l'associazione e gli attributi delle entità con cui si vuole mantenere il legame. ASSOCIAZIONE UNO A MOLTI: in questo caso ci sono due possibilità:
- si procede come le associazioni molti a molti;
- si osserva che alcune relazioni condividono la stessa chiave primaria (1:1). Queste relazioni possono essere riunite in un a sola, aggiungendo però degli attributi per mantenere il lewgame con le altre entità. ASSOCIAZIONE UNO A UNO, ci sono più possibilità:
- si procede come nel caso precedente con un numero maggiore di possibilità di scelta della relazione cui associare l'associazione
- nel caso di associazioni con partecipazione opzionale si costruisce una nuova relazione per l'associazione. L'SQL SQL (Structured Query Language): è il linguaggio attraverso cui è possibile interagire con i DBMSe quindi implementarne la progettazione fisica. È possibile creare oggetti, utenti e gestirne le autorizzazioni; inserire, aggiornare, eliminare i record della base di dati; interrogare la base di dati. Le istruzioni fondamentali sono: CREATE DATABASE; CREATE TABLE; INSERT INTO; SELECT; DELETE; UPDATE; DROP DATABASE. Crezione ed eliminazione delle tabelle:
- Vincoli di colonna (primary key, unique, not null, references).
- Inserimenti (insert), inserimenti delle ennuple della tabella
- Interrogazioni (select), si specificano gli operatori da applicare. Ci sono tre clausole principali (nucleo): select, where, from.
- SELECT: proiezioni, ridenominazioni, elim,duplicati
- WHERE: selezioni;
- FROM: tabelle da cui prelevare i dati, join, prodotti cartesiani;
- CLAUSOLA ORDER BY: specifica ordinamenti finali negli attributi;
- CANCELLAZIONI (deletete), elimina dalla tabella tutte le ennuple;
- AGGIORNAMENTI (update), aggiorna il valore dell'attributo di tutte le ennuple. DBMS I DBMS permettono di definire in modo semplice la struttura della base di dati e forniscono dei comandi per l'accesso alle informazioni. In genere si usano per: inserire dati; rimuovere dati; aggiornare dati; effettuare operazioni di ricerca. I moderni DBMS forniscono la possibilità di accesso simultaneo ai dati garandendone la
consistenza. Normalmente le applicazioni accedono a dati locali gestendoli attraverso file, che sono proprietà delle applicazioni stesse. Un DBMS (DataBase Management System) è un sistema software che si interpone fra le applicazioni e la memoria di massa in cui si trovano collezioni di dati, per consentirne la gestione, in modo indipendente, dalle applicazioni stesse. Deve garantire affidabilità, privatezza dei dati, efficienza e efficacia. AFFIDABILITÀ: un DBMS deve garantire di poter mantenere intatto il suo contenuto, anche in caso di malfunzionamento. L'integrità dei dati è affidata a procedure di backup e recovery dei dati, o alla loro duplicazione in casi critici. PRIVATEZZA DEI DATI: ogni utente autorizzato può accedere ad insiemi limitati di dati e compiere solo certe operazioni su di essi. EFFICIENZA: un DBMS deve operare e fornire risposte agli utenti in tempi accettabili, usando una quantità più possibile limitata di risorse. Dipende dalle tecniche usate per la sua implementazione e dalla buona progettazione della base di dati. EFFICACIA: capacità di un DBMS di rendere produttive le attività degli utenti, cioè consentire la realizzazione di una base di dati che risolvano i problemi degli utenti. I DBMS si classificano in base al modello di dati che utilizzano. Un modello di dati è costituito dai concetti sulla base dei quali i dati sono strutturati e codificati. RELAZIONALE: basato su un modello tabellare dei dati. GERARCHICO: basato su strutture ad albero. RETICOLARE: basato su grafi: A OGGETTI: basato su paradigmi di programmazione a oggetti. L’amministratore della base di dati è il responsabile della progettazione, controllo e manutenzione della base di dati. I progettisti e/o programmatori realizzano i programmi che accedono alla base di dati. Gli utenti: FINALI: accedono alla base di dati frequentemente e attraverso procedure predefinite; CASUALI: interrogano e aggiornano la base di dati con procedure e modalità variabili usando i linguaggi forniti dal DBMS. TRANSAZIONE: sequenza di operazioni effettuate da una applicazione sulla base di dati. I vantaggi del DBMS sono: disponibilità dei dati a tutta una comunità; modello unificato e preciso della realtà di interesse; controllo centralizzato dei dati; condivisione; indipendenza dei dati. Svantaggi del DBMS: sono molto costosi; forniscono un numero elevato di funzionalità defficilmente usate dall'utente. Alcuni esempi di DBMS sono: IBM DB2, Oracle, Microsoft SQL Service, MySQL... “EDITOR” DI TESTI Un documento elettronico di testo è la rappresentazione di un documento. È un insieme di dati che hanno una correlazione di tipo logico e/o semantico. È un insieme di dati binari. In genere rappresentato da file. La redazione di un documento di testo viene chiamata EDITING. I programmi vengono chiamati EDITOR DI TESTO,oppure,