














Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti di tutte le lezioni di Gianluca Pozzato.
Tipologia: Appunti
1 / 22
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!















L’essere umano è in grado di fare certe operazioni ma preferisce farsi aiutare da una macchina in quanto fare una qualsiasi operazione è noioso, incline di errore e serve del tempo. La prima macchina nota di calcolo è l’abaco che risale al V millennio a.c. ed aveva lo scopo di assistere l’essere umano mentre fa i calcoli spostando le palline. L’abaco è un supporto perché la logica dell’operazione è di competenza dell’utente. La prima vera innovazione arriva nel XVII d.c. con la pascalina, la quale permette di fare delle somme e la logica sta all’interno, è cablata all’interno della macchina. Permetteva però di fare solo addizioni e sottrazioni. Le moltiplicazioni e le divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni ma così la logica dell’operazione torna all’utente. Anche se si modifica la macchina per gestire moltiplicazione e divisione, arriverà l’esigenza poi di usare la radice quadrata o il logaritmo e così i problemi si rimandano solo. La logica che governa le operazioni è “cablata” nella macchina calcolatrice. La soluzione è trattare tale logica come parte dell’input della macchina. Nel 1840 Charles Babbage introduce il primo esempio di macchina di calcolo programmabile, in grado di eseguire operazioni ma anche di essere in grado di ricevere come input la logica di controllo di una nuova operazione. Questo è simile al computer che è una macchina programmabile dove la logica dell’operazione può essere un input della macchina stessa. Alan Turing, padre dell’informatica e dell’intelligenza artificiale, introduce la macchina di Turing, non è una macchina fisica ma è un progetto teorico che raggiunge risultati clamorosi, lui ha tracciato a livello concettuale cosa si può fare con le macchine reali ovvero quali sono i problemi che il computer può risolvere e quali no. Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica. John von Neumann descrive un calcolatore effettivamente costruibile partendo dalla macchina di Babbage e passando per le idee di Turing; è importante perché è il modello concreto su cui si basano i computer moderni. Precisazione su termini: Informatica (informazione automatica) —> Information and Communication Technology , risvolti fisico-matematici e teorie e tecniche di comunicazione Computer science—>informatica come scienza basata su modellizzazione, formalizzazione e verifica sperimentale ( teoria degli atomi, logica formale, teoria del linguaggio ) Temi dell’informatica: sicurezza, strutture dei dati, basi di dati, sistemi operativi… INFORMATICA: informazione automatica, insieme dei processi e delle tecnologie che consentono di creare, raccogliere, elaborare, immagazzinare e diffondere l’informazione. Computer : elaboratore elettronico digitale—> elabora solo informazioni binarie Hardware : componente fisica sistema informatico Algoritmo : insieme delle operazioni per risolvere un problema Software : insieme di programmi che fanno funzionare l’hardware La rappresentazione delle informazioni Un elaborato elettronico o pc basa il suo comportamento o attività sulla necessità di gestire dei dati, elaborare o immagazzinare dati, che poi sono informazioni. Come il computer memorizza e gestisce al suo interno le informazioni. Ci sono informazioni di vario genere all'interno di un computer come immagini, suoni, testi. E' sufficiente che l'informazione sia rappresentabile in modo digitale. Il computer è un qualunque dispositivo classificato come elaboratore elettronico come il computer desktop, portatile, smartphone, smart tv.. Elaboratore elettronico DIGITALE. Il computer conosce solo due elementi che sono lo 0 e l'1. Posso assumere solo gli stati di ON/ OFF, acceso e spento. Tutto ciò che riusciamo ad esprimere con questi due simboli in modo digitale, è sufficiente perché qualunque informazione possa essere gestita ed elaborata all'interno della macchina. Noi essere umani a volte abbiamo a che fare con segnali analogici per esempio, cioè un insieme continuo di valori che trasmettono molte informazioni, sensibili alle interferenze. un segnale di questo genere deve essere rappresentato con i segnali 0 e 1. Segnali digitali —> insieme discreto di valori.
Quando ci sono due valori: segnale binario Vantaggi del digitale: sistema molto semplice, su due soli valori, non ambiguo (non sensibile alle interferenze), riproducibile senza errori. IL BIT. Binary Digit (cifra binaria) Ci sono tanti interruttori in un pc, ciascuno di questo è un bit, che possono essere accesi o spenti, che permette di rappresentare un segnale binario, un segnale discreto su due valori, 0 o 1, acceso o spento. Tutto ciò che viene rappresentato è una sequenza di valori a sua volta. A seconda della configurazione del bit, se ON o OFF, capiremo se si tratta di un immagine, un numero, o un carattere. Sistema binario perché è semplice, un bit all'interno del computer viene realizzato grazie alla presenza di questi piccoli interruttori. Elementi per realizzazione di un bit: presenza/assenza di carica elettrica, direzione di magnetizzazione, presenza/assenza di corrente/tensione, passaggio/ non passaggio di luce. es. quando circuito elettrico: quando corrente circola corrisponde a valore 1 del bit, quando non circola 2. Quindi all'interno della macchina, nei vari componenti ci sono questi interruttori, che a ciascun interruttore corrisponde una lampadina, quando è su 1 è accesa ON, se è spenta vale 0. Con un bit possiamo rappresentare due sole informazioni, avendo a disposizione un bit, quindi un interruttore e la corrispondente lampadina, per rappresentare delle informazioni possono assumere due funzioni: SI/NO, VERO/FALSO,... con un bit, basta stabilire una convenzione tra i due possibili valori e le due informazioni. All'interno di un pc utilizzando un solo bit posso rappresentare due informazioni diverse, corrispondenza tra i due valori e le due informazioni quindi. Es. questionario Con un bit non posso assumere più di due valori. Si possono utilizzare 2 bit con i quali ho 4 soluzioni, con 3 bit ho invece 8 soluzioni (tutte le possibile combinazioni). Con N bit si rappresentano 2N^ di informazioni Il K—> 1024 Se abbiamo a disposizione K informazioni quante bit abbiamo bisogno? Dobbiamo scegliere N in modo che 2N^ maggiore o uguale a K, se sono uguali ogni combinazione va bene, se 2N^ è maggiore di K alcune combinazioni non corrispondono a informazioni sono uno “spreco”, trovi il minimo. es. 2N> 61 —> 5 bit non sono sufficienti (32) occorrono almeno 6 bit (64) Riassumendo: -1 bit può assumere 2 valori e può rappresentare 2 informazioni -N bit possono assumere 2N^ valori, che permettono di rappresentare 2N^ informazioni Quindi: per rappresentare K informazioni, si devono usare N bit in modo che 2 N^ >K 8 bit formano un byte 8 bit—> 256 informazioni diverse. Il byte viene utilizzato come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea. RAPPRESENTAZIONE DEI NUMERO -Numero =concetto che rappresenta una quantità (quindici) -Numerale =simbolo che rappresenta una quantità (15)
- I numerali differenziano dai numeri come le parole si differiscono dai concetti che rappresentano. Sistema di numerazione decimale Decimale :alfabeto di 10 cifre base da 0 a 10 Numerale 245: 2 centinaia,4 decine,5 unità
Se chiediamo al computer di ordinare alfabeticamente le stringhe 3 e 20431, il computer mette prima il 20431. Con l’ASCII esteso sono insufficienti per alcuni sistemi si scrittura come quella giapponese. Non esiste un sono ASCII esteso, uno per ogni lingua, questo porta ad avere difficoltà. La soluzioni è di definire uno standard che utilizzi più bit e che comprenda tutti i sistemi di scrittura—> Unicode Utilizza fino a 4 byte per ogni carattere 8*4 bit= 32 bit per ogni carattere 232 oltre 4 miliardi possibili rappresentabili Attualmente sono rappresentati oltre 98000 caratteri UTF (unicode transformation format) definisce come codificare il numero di un carattere Unicode come sequenza bit. Unicode ha introdotto UTF8 e UTF16. Alcuni caratteri vengono codificati con 8 bit altri con 16 e pochi con 32. I caratteri codificati con 8 bit coincidono con i caratteri ASCII. Con UTF-16 alcuni caratteri vengono rappresentati con 16 bit altri con 32 bit. Codifica delle immagini Vi sono varie tecniche utilizzate per memorizzare in modo digitale, e poi elaborarla. Quando vuoi scannerizzare un documento in bianco e nero, lo scanner digitalizza l’informazione, definisce una sorta di griglia sull’immagine reale e poi va a vedere con un laser se in corrispondenza di ogni riga o colonna quel puntino è bianco o nero e in base al colore produce una sequenza di bit che corrispondono ai puntini in cui è suddivisa l’immagine. Questi puntini sono i pixel. L’idea è di suddividere un’immagine in una griglia formata da linee e distanze. Pixel—> Picture element Può essere codificato in binario con la convenzione che: 0 è un pixel bianco e 1 è il pixel nero. La griglia una volta analizzata diventa una griglia di bit. La sequenza di bit viene letta da sx a dx. Non sempre il contorno della figura coincide conte linee della griglia quindi digitalizzando dobbiamo approssimare. Come avere un immagine più fedele? Aumento la risoluzione ovvero aumentiamo il numero di pixel e si rimpiccioliscono i quadratini della griglia. La rappresentazione di un immagine mediante pixel si chiama bitmap. Con un solo bit per pixel si possono codificare solo 2 colori (bianco e nero). Per codificare più informazioni dobbiamo usare più bit. Se ho un immagine con tonalità di grigio:
Possiamo associare una rappresentazione binaria a ogni possibile colore di pixel? Il modello più usato è Truecolor e RGB, red, green, blu. Un’immagine è ottenuta mescolando vari livelli dei 3 colori primari. Ci sono 256 valori possibili per ogni colore primario. Per la codifica a colori per ciascun pixel ci sono 3 byte quindi 24 bit, 3 perché ciascun byte viene usato per rappresentare il livello di ciascun dei colori primari. Il pixel lo si ottiene attraverso una fusione di un certo livello di rosso, verde o blu. Quanti colori possiamo rappresentare? 2^24 colori= 16.777.216 colori Quanto spazio occupa un immagine a colori: Es. immagina 150x200 pixel occorrono 3 byte (24 bit) per pixel 150x200x3= 90.000 byte Per limitare l’utilizzo di spazio esistono tecniche di compressione delle immagini che consentono di ridurre le dimensione di spazio occupato. Per esempio si può abbreviare lo spazio della rappresentazione. Es: 0000000 o 7* È un esempio di Lossless, senza perdita di informazione, questa è identica all’originale. Formati compressi Lossless: gif, tiff, png.
Le tecniche lossy causano perdita di informazione, con lo scopo di risparmiare molto più spazio della lossless (jpeg). Codifica immagini in movimento Le immagini in movimento sono fotogrammi o frame, sequenze di immagini. Sono tante immagini. Una sequenza di immagini in movimento occupano ancora più spazio, sono memorizzate solo le differenze tra un fotogramma e l’altro. Esistono vari formati, soprattutto lossy: mpeg, divx, avi, quicktime; che memorizzano anche i suoni. Codifica dei suoni Il suono è uno dei mezzi principali di comunicazione, anche questi possono essere codificati in digitale. Un suono è un onda di pressione che si ha in presenza di un mezzo. Quando un suono viene rilevato dall’orecchio o da un microfono viene trasformato in uno stimolo o segnale elettrico. La durata, l’intensità e la variazione nel tempo della pressione dell’aria sono le quantità fisiche che rendono un suono diverso da ogni altro. Variando l’ampiezza nel tempo cambia il suono che viene prodotto, entrambi le grandezze sono analogiche. Bisogna passare a sequenza di 01. Per passare ad una rappresentazione digitale si deve approssimare. Per rappresentare il suono all’interno del computer si deve approssimare facendo campionamenti sull’onda, si va a prendere in considerazioni solo un numero di istanti di tempo. Invece di aere tutti gli infiniti stati di tempo e i rispettivi valori del suono, si campiona il suono. Rilevo quanto vale l’ampiezza. Il telefono usa 8000 campionamenti al secondo, numero di campionamenti fatta in un secondo. 8kHz—> unità di misura Hertz corrisponde a 1/secondo, numero di campionamenti ogni secondo. Quindi maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale. Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario. Si approssima anche il livello di ampiezza. Ci sarà un peggioramento ma non posso fare altrimenti. A ogni livello viene assegnata una sequenza binaria. Ogni campione viene approssimato al livello più vicino e quindi ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo. La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata, si ha una discretizzazione in tempo e una sul valore. Diversi formati: mov, wav, mpeg, avi, midi. Formato midi—> codifica lento e gli strumenti che devono eseguirle: solo musica Formato mp3—> tecnica lossy, molto diffusa e molto efficiente (tecnica di compressione) Una sequenza di bit non ha significato di per sé. Come fa il computer a riconoscere una sequenza di bit come immagine, numero, lettera, video o musica? Utilizza dei metadati, ad esempio il formato del file. Un metadati indica cosa si sta rappresentando. ESERCIZI -il numero binario 1000100100100100100010 è pari —> vero, indipendente da quanto è lungo il bit meno significativo (a destra) è zero quando il numero è pari -il numero binario 11111111111111111 è una potenza di due—> falso, non è una potenza ma è il massimo numero esprimibile con 17 bit -il numero binario 100000000000 è una potenza di due—> vero, perché tutte le potenze di due hanno questa forma -il numero binario 1111111111 è il più grande numero esprimibile in binario con 10 bit—> vero -a quale numero decimale corrisponde il numero binario 100101101-> 301 -a quale numero binario corrisponde il numero 202-> 11001010
-un suono campionato alla frequenza di 1024 Hz occupa 20 KB. La dimensione dei campioni è di 16 bit. Qual è la durata del suono? Durata del suono? Frequenza campione 1024 Spazio 20 KB Dimensione 16 bit Dimensione campione 2 byte, dimensione file 20KB(1024) Numero complessivo campioni—> 20KB/ 2 b= 1024x10= 10240 campioni 1024Hz= 1024 campioni al secondo; 10240/1024= 10 secondi -un secondo di suono campionato a 512 Hz occupa 1Kb. Quanti valori distinti possono avere i campioni? Dimensione del campione? Frequenza campione 512 Hz Durata del suono 1 secondo 512 campioni in totale Dimensione del file con il suono 1 KB Dimensione del singolo campione= 1024B (1 KB)/512= 2 byte-> 16 bit L’architettura dell’elaboratore La macchina di Von Neumann ha un nucleo fondamentale che è costituito da CPU e RAM. Sono presente i dispositivi di input/output e la memoria secondaria. La funzione della CPU è di elaborare i dati, è il processore che va ad eseguire le funzioni del computer. La RAM ha lo scopo di memorizzare per il momento e la memoria secondaria ha lo scopo di mantenere l’informazione. I dispositivi di input/output servono per interagire.
Dimensioni della memoria L’unita di misura della memoria è il byte. Si usano dei multipli: -Kilobyte= 1024 byte 2^10 byte -Megabyte= 1024 kilobyte 2^20 byte -Gigabyte= 1024 megabyte 2^30 byte RAM —> Random Acess Memory, memoria ad accesso casuale. Si chiama così perché si può accedere direttamente alle varie celle, una volta noto il loro indirizzo; il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella frequenza. Il termine “random” indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria. Caratteristiche:
Control unit Arithmetic Logic Unit Registri Control unit È la parte più importante, ha le funzioni di eseguire le istruzioni dei programmi, coordina le attività del processore e controlla il flusso delle istruzioni tra il processore e la memoria. Non ha il compito di controllare. Il processore di un computer esegue in modo ciclico le attività fetch-decode-execute
della prossima istruzione da eseguire
Velocità e costo
Il software di base coincide con il sistema operativo. Es. stampa di un file che si chiama “documento” A livello fisico questa operazione è complessa e richiede operazioni coordinate dalla CPU. Il sistema operativo fornisce all’utente un comando di stampa. Il sistema operativo esegue un comando seguendo i seguenti passi:
Parte dei programmi del sistema operativo devono sempre essere mantenuti in RAM per essere sempre pronti per l’esecuzione. All’avvio vengono identificati tutti i dispositivi di memoria secondaria e tutte le periferiche e vengono avviati i relativi programmi di gestione (driver). Alcuni sistemi verificano anche lo stato delle risorse hardware, per esempio lo stato dei dischi. Gestione dei processi I moderni sistemi operativi sono multitasking ovvero è possibile eseguire più programmi allo stesso tempo. Come possono eseguire più programmi contemporaneamente? Il sistema operativo alterna i programmi assegnando la CPU a turno:
Protocolli di comunicazione —> è necessario disciplinare la comunicazione sulla rete per evitare il caos. In una telefonata seguiamo un semplice protocollo: il chiamante conosce il numero del destinatario, il destinatario identifica il chiamante, gli interlocutori parlano la stessa lingua e parla un solo interlocutore per volta.
calcolatore destinatario, il destinatario identifica l’indirizzo del chiamante, i calcolatori parlano la stessa lingua e infine generalmente trasmette uno alla volta. Protocollo: insieme di regole che definisce in modo preciso tutto gli aspetti della comunicazione. Il protocollo definisce:
Il protocollo usato in internet e anche nella maggior parte delle altre reti è TCP/IP Transmission Control Protocol/ Internet Protocol. Come si connettono due computer tra di loro? Non è possibile collegare fisicamente e direttamente ogni computer a tutti i computer con cui comunica. Ci sono due tipologie di connessioni basate sul fatto che la connessione è indiretta attraverso nodi intermedi. Il collegamento indiretto ha due tecniche: commutazione di circuito o commutazione di pacchetto. La commutazione di circuito è la normale rete telefonica. Ogni telefono è collegato a un centrale la quale a sua volta è collegata ad altre centrali. Quando si telefono, la chiamata instauro un circuito: tutte le risorse necessaria vengono prenotate ad uso esclusivo all’inizio della connessione. Le centrali “costruiscono” un percorso tra chiamante e chiamato che dura tutto e solo il tempo della chiamata. Gli svantaggi sono: si verifica il circuito occupato anche se la banda non è usata interamente quindi gli altri calcolatori non possono utilizzare i collegamenti finché il circuito non viene rilasciato quindi c’è poca efficienza. I vantaggi sono la garanzia di servizio: dato che le risorse necessarie sono prenotate, la banda è costante e garantita. La commutazione di pacchetto è la tecnica usata per internet. La base è che si rinuncia alla garanzia di servizio per aumentare l’efficienza. Si fa il Best Effort delivery-> non abbiamo nessuna garanzia ma il servizio fa il meglio possibile a seconda della situazione. Non c’è garanzia di servizio ma il vantaggio è che abbiamo risolto il problema dell’efficienza. Il sistema organizza i dati in pacchetti che vengono buttati sulla rete e attraverso la rete raggiungono il destinatario; non ci sono risorse riservate alla comunicazione. Messaggi vengono suddivisi in pacchetti di dimensione fissa, ogni pacchetto contiene l’indirizzo del mittente e del destinatario ed è trasmesso separatamente. Ogni pacchetto può seguire un percorso diverso ed infine il destinatario riassembla i pacchetti per formare il massaggio. Quindi l’ordine dei pacchetti può non essere mantenuto durante la trasmissione infatti il destinatario attende tutti i pacchetti per ricomporre i messaggi. Ogni pacchetto occupa il mezzo trasmissivo per un breve tempo quindi si ha un effetto di parallelismo, per cui un elaboratore può essere coinvolto in più comunicazioni contemporaneamente. Pacchetto IP contiene lo spazio per scrivere: informazione, un numero progressivo per identificare e l’indirizzo IP del destinatario. Come fare arrivare i pacchetti a destinazione? Chi sceglie la strada da fare? Ogni nodo conosce i nodi vicini e in particolare sa come fare a smistare i pacchetti in arrivo. Ogni nodo ritrasmette i pacchetti ricevuti al nodo più vicino alla destinazione, questo processo si chiama instradamento. I nodi possiedono una tabella che indica per ogni destinazione a quale vicino trasmette il pacchetto. Inoltre la scelta del nodo di inoltro dipende anche da situazioni temporanee di carico della rete, guasti, alternative di inoltro… In caso di guasto i pacchetti passano da un altra parte, è presente una connettività maggiore. Cosa succede quando ci colleghiamo da casa? Dall’elaboratore di casa al provider è un atto di collegamento di commutazione di circuito, la linea risulta occupata. Dal provider a un altro punto sulla rete internet è in corso una commutazione di pacchetto. Ci sono due modo per classificare reti:
nodi, il segnale emesso da un nodo passa al successivo, finché non raggiunge il destinatario, viene trasmesso al nodo seguente
attraverso il nodo centrale, l’informazione trasmessa da un nodo viene smistata dal nodo centrale verso il nodo di destinazione
tutta la linea
diretta tra due nodi Esistono anche topologie miste.
una decina di metri, spesso sono wireless o usano bluetooth
singola organizzazione in un’area delle dimensioni di una città
Internet È la rete delle reti. Cioè, collega fra loro tutte le reti locali, metropolitane, geografiche e singoli computer di tutto il mondo. Internet con la i minuscola vuol dire reti locali collegare tra di loro grazie a protocolli TCP/IP. Internet con la i maiuscola specifica internet che collega fra di loro reti locali di tutto il mondo. È nata a partire dagli anni ’60 in ambiente accademico USA con finanziamenti militare; l’idea centrare era quella di collegare tra di loto reti indipendenti. Internet con la i minuscola è un modo per connettere due reti. Per connettere due sottoreti occorre un calcolatore che si possa collegare ad entrambe le sottoreti. Il calcolatore che si attacca alla due sottoreti deve essere in grado di far passare i pacchetti da una sottorete all’altra, quando chiesto. Questi calcolatori che intercorrono due o più sottoreti e che sono capaci di passare i pacchetti da una sottorete all’altra si chiamano internet gateaway o internet router; quando un router inoltra un pacchetto proveniente da una sottorete ad un’altra sottorete svolge IP forwarding. Le reti locali si collegano a internet tramite un dispositivo chiamato router. Applicando questa metodologia otteniamo internet con la i maiuscola. I computer connessi in rete sono host. Ogni elaboratore deve possedere un nome, altrimenti sarebbe impossibile comunicare con esso-> naming. Il nome si chiama indirizzo e viene usato per identificare l’elaboratore e per localizzare l’elaboratore nella rete. Un elaboratore possiede due tipi di indirizzi: IP e indirizzo logico. Gli indirizzi ip sono numerici e hanno attualmente un formato a 4 byte. Ad esempio 130.192.156.1 -> 130.192= identifica la rete dell’università di Torino -> .156= rete locale del dipartimento di informatica -> .1= identifica un elaboratore appartenente alla rete locale del Dipartimento di informatica Gli indirizzi IP permettono di localizzare un elaboratore, cioè di sapere a quale parte di internet è collegato in modo da recapitargli i messaggi. L’indirizzo IP in ciascun byte non si supera il 255 perché 2^8 fa 256. Se un indirizzo IP è comporto da 4 byte, quanti elaboratori possono essere collegati contemporaneamente? Con 32 bit possiamo rappresentare circa 4 miliardi di elaboratori. Gli indirizzi IP sono utilizzati dai programmi di comunicazione, ma sono ostici per gli umani quindi possono avere un nome logico, più semplice e intuitivo. Gli indirizzi logici sono composti da due o più parti separate da punti, ad esempio www.unito.it Specificano domini, sottodomini, sotto-sottodomini e così via fino a identificare il singolo elaboratore collegato in rete. I domini di primo livello possono essere:
dipartimento di informatica Per localizzare un elaboratore occorre conoscere il suo indirizzo IP. Il DNS è il servizio che gestisce la traduzione tra indirizzi logici e indirizzi IP. Internet offre servizi come: posta elettronica, Voice over IP, videogiochi, file sharing, Instant messanging e World Wide Web.
database è quello di memorizzare grandi quantità di informazioni in modo da facilitare la modifica e il reperimento. Prima soluzione: Il file System è una soluzione ma ha svantaggi come l’organizzazione dei file a carico dell’utente e quando sono tanti i dati i file diventano difficili da gestire. Seconda soluzione: foglio elettronico dove si trova una difficile condivisione tra più utenti ed è difficile reperire informazioni. Quindi l’unica soluzione è la base di dati ovvero database. I sistemi informativi organizzano e gestiscono le informazioni necessarie alle attività di un’organizzazione, inizialmente questi non erano automatizzati. I database sono adatti a memorizzare dati omogenei che devono essere strutturati come i dati all’anagrafe; sono gestiti da DBMS, database management System , sistema di gestione di basi di dati. Il DBMS è indispensabile. I vantaggi dei DBMS sono:
software, i dbms danno backup e recovery
autorizzazione
grande mole di dati. Quindi i dbms cercano di utilizzare meglio le risorse di spazio, memoria e tempo.
potenti e flessibili Gli utenti del database sono: l’amministratore della base dei dati che è responsabile della progettazione, controllo e amministrazione della base di dati; progettisti e programmatori di applicazioni e gli utenti. Per costruire i database vengono utilizzati dei modelli che è un insieme di concetti utilizzati per organizzare i dati di interesse e descrivere una struttura. Il modello logico dei dati viene adottato dei DBMS per l’organizzazione dei dati come ad esempio il modello relazionale. Questo modello è indipendente dal modo in cui i dati sono memorizzati internamente descrive i dati a livello intermedio tra ciò che vede l’utente a livello dell’implementazione. Il modello relazionale viene introdotto negli anni 70 e successivamente affermato negli anni 80, attualmente è il modello di CB più diffuso: probabilmente ogni DB che incontriamo è relazionale. Questo modello è basato sul concetto di relazione e di tabella, ci sono concetti di natura diversa ma riconducibili l’uno all’altro. La relazione è la rappresentazione di un’entità complessa tramite attributi. Graficamente, una relazione può essere rappresentata da una tabella. Come nei fogli elettronici, sono organizzati in tabelle. Le entità, ovvero i fatti, compongono le righe che si chiamano Record; le caratteristiche delle entità sono le colonne ovvero Attributi; il valore di un attributo per una specifica entità compone le celle ovvero Campi. Tutti i record di una tabella hanno lo stesso formato, cioè gli stessi attributi. In una tabella devono essere definiti uno o più attributi attraverso i quali è possibile distinguere sempre qualsiasi coppia di record di una stessa tabella —> chiave primaria I software prendono in input un entity relationship e sputano il modello relazionale. Il modello relazionale è basato su tabelle organizzate in base a relazioni e insiemi.
Dati due insiemi A [1,2,4] B [a,b] AxB= 1,a-1,b-2,a-2,b-4,a-4,b Una relazione su insieme A e B potrebbe essere: 1,a-1,b-4,b Lo schema relazionale è come è fatta la tabella, come è intestata, l’istanza sono i valori, le tuple. Negli schemi ci sono i vincoli che esistono nella realtà come ad esempio due studenti con stessa matricola. La chiave è l’insieme di attributi usato per identificare univocamente le tuple di una relazione. La chiave è una superchiave minimale. L’insieme di tutti gli attributi di una relazione è superchiave della relazione. Un altro vincolo è quello di integrità referenziale, è un vincolo che riguarda Modello di Entità- Relazioni (entity relationship) La progettazione si divide in 2 fasi:
Infine ci sono delle sedi descritte da città in modo univoco, e indirizzo composto da numero civico, via e cap. C’è una relazione di composizione tra il dipartimento e le sedi. C’è una relazione di partecipazione tra impiegato e progetto, la partecipazione viene descritta dalla data di inizio; la partecipazione è opzionale per gli impiegati perché 0,N; ogni progetto vede la partecipazione di almeno un impiegato perché 1,N. L’impiegato afferisce ai dipartimenti e quando iniziano il rapporto c’è una data, relazione impiegato- dipartimento, caratterizzata dalla data di affluenza. Il singolo impiegato può afferire ad un dipartimento e a uno solo 0,1; ad ogni dipartimento invece afferisce da 1 a infiniti impiegati 1,N. L’impiegato dirige il dipartimento, relazione impiegato-dipartimento. Un impiegato dirige un dipartimento 0,1; è un dipartimento ha uno e un solo dirigente fra gli impiegati 1,1. Il dipartimento compone una sede, relazione dipartimento-sede. Un dipartimento compone una ed una sola sede 1,1; la sede si compone minimo uno massimo N dipartimenti 1,N. Traduzione da E-R a Relazionale L’algoritmo riceve l’Input che è lo schema E-R e si trasforma in l’output è uno schema di database relazionale. L’algoritmo prevede due passi: la traduzione delle entità e la traduzione delle relazioni. 1 passo: traduzione entità -ogni entità genera una tabella -gli attributi diventano i campi della tabella -le identificazioni dell’entità sono chiavi della tabella -quando le identificazioni sono più di una, la chiave primaria sono i due attributi insieme -quando ci sono due chiavi, una è primaria l’altra è candidata es: matricola e codice fiscale. 2 passo: traduzione relazioni -si guarda la cardinalità delle relazioni -se la relazione è N:N-> si parte da E1(id1, attr1) e E2( id2, attr2) si traduce creando una nuova tabella R(id1, id2, attr), si mette la chiave della prima tabella, la chiave della seconda tabella e l’attributo della relazione. La chiave di questa nuova relazione è l’unione di id1 e id -bisogna aggiungere i vincoli a id1 e id2 perché nella nuova tabella nella parte id1 devono apparire valori che erano già presenti in id1 così come per id2. -se la relazione è 1:N-> si parte sempre da E1 e E2, ci sono due alternative che sono valide entrambe. 1. Si crea una nuova tabella R(id1, id2, attr) la chiave diventa soltanto id1, vuol dire che non dovrò mai ripetere i valori di E1. I vincoli sono come prima.
-se la relazione è 1:1-> si parte sempre da E1 e E2 e creo la nuova tabella R(id1, id2, attr). La chiave può essere sia id1 e id2, una è primaria e l’altra è candidata, si fanno poi partire i vincoli. Oppure possiamo modificare una tabella aggiungendo id2 facendola diventare chiave candidata, sia con una modello che con l’altro. ESERCIZI ESAME es. Dato questo schema bisogna costruire lo schema delle tabelle. Relazione molti a molti, N:N. 1 passo: traduzione entità Studente (matricola, nome cognome) Corso(codice, titolo, CFU) 2 passo: traduzione relazione Esame(matrStudente, codiceCorso, data, voto) es. Relazione uno a molti, 1:N