

























































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
Dispensa che contiene: - Teoria tratta dal volume "Informatica Generale" di U. Moscato - Risposta ai quesiti degli esami - esercizi dei vecchi esami svolti in Python - esercizi in sql Disclaimer: gli esercizi sono stati svolti da me, potrebbero contenere errori di copiatura o di battitura.
Tipologia: Dispense
1 / 65
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


























































(non a cura del docente) TEORIA:
1. INTRODUZIONE Cos’è l’informatica L’Informatica è una disciplina scientifica di origini antichissime che si è sviluppata nella seconda metà del ‘900. Alcuni sostengono che l’informatica sia più un’arte che una scienza, questo perché ormai essa abbraccia campi disparati, dal calcolo scientifico ingegneristico alla gestione aziendale, dall’intelligenza artificiale all’elaborazione di dati geografici ed ambientali. Possiamo definire l’informatica come la scienza della rappresentazione e dell’elaborazione dell’informazione. Questa impostazione consente di mettere in evidenza che il prodotto principale della tecnologia informatica è l’informazione, e che l’informatica come disciplina comprende non solo la tecnologia dei calcolatori, ma anche il modo in cui l’informazione viene strutturata ed elaborata. Un’importante associazione di professionisti e ricercatori informatici, ha definito l’informatica come lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione. Il concetto di algoritmo Un algoritmo è una sequenza precisa di operazioni comprensibili e perciò eseguibili da uno strumento automatica. È essenziale che un algoritmo sia comprensibile al suo esecutore. Nell’informatica c’è uno stretto legame tra algoritmi e calcolatori elettronici: infatti i calcolatori possono essere definiti gli esecutori di algoritmi. Gli algoritmi vengono descritti tramite programmi, cioè sequenze di istruzioni scritte in un opportuno linguaggio, comprensibile al calcolatore. Le due proprietà essenziali degli algoritmi sono:
Architettura dei sistemi informatici Un sistema informatico è un oggetto complesso, costituito da molte parti che interagiscono tra di loro. Studiare l’architettura di un sistema informatico significa individuare e capire come le varie parti interagiscono tra di loro. La prima grande suddivisione è tra hardware (componenti fisici) e software (programmi che vengono eseguiti) Hardware È composto da un insieme di elementi funzionali, presenti in ogni calcolatore anche se in vario numero e con caratteristiche diverse:
La memoria centrale è destinata a raccogliere dati di programmi su cui l’elaboratore opera, cioè sequenze di istruzioni. La Memoria centrale ha in genere di dimensioni ridotte rispetto la memorie di massa e può quindi accogliere solo una parte dell’informazione disponibile. Tuttavia essa è un passaggio obbligato: prima di poter essere elaborata l’informazione deve essere acquisita dalla memoria centrale. Da un punto di vista concettuale, la memoria centrale è una sequenza di celle di memoria; ciascuna cella contiene una parola. Le Parole sono sequenze di bit; ciascuna parola durante la compilazione assumerà un particolare valore in base alla sequenza di 0 e 1 che verrà inserita nella corrispondente cella di memoria. Ciascuna cella di memoria può essere indirizzata; con questo termine si indica la capacità dell’elaboratore di selezionare una particolare cella di memoria. Indirizzo di una cella di memoria semplicemente la sua posizione relativa rispetto alla prima cella di memoria che ha posizione 0. L’Indirizzamento della memoria avviene tramite un opportuno registro, detto registro indirizzi, che si trova nell’unità di elaborazione. In generale un registro è un dispositivo elettronico capace di memorizzare una sequenza di bit. È dunque possibile selezionare una specifica cella di memoria caricando il registro indirizzi con una sequenza di 0 e 1 , che indichi la posizione relativa della cella nella memoria. A questo punto, si possono effettuare due operazioni: lettura della memoria e scrittura in memoria. Entrambe le operazioni utilizzano un secondo registro della CPU, detto registro dati, che è lungo come una parola di memoria.
tal caso si dice che l’unità di elaborazione esercita ruolo di master e le altre unità funzionale assumono il ruolo di slave. Le linee vengono a loro volta funzionalmente suddivise in tre categorie a seconda del tipo di informazione trasportata:
Gestione dei processi Macchina fisica
o Modificare il contenuto della base di dati (inserimento, cancellazione, aggiornamento) Il modello relazionale Il modello relazionale è caratterizzato da una definizione estremamente compatta ed elegante: un database è una collezione di relazioni. Ciascuna relazione è una tabella caratterizzata da un numero fisso di colonne ( attributi ) e un numero variabile di righe ( tuple ); ciascuna colonna assume valori estratti da uno stesso dominio, cioè da un insieme predefinito di possibili valori. Definiamo grado di una relazione il numero di colonne e come cardinalità il numero di righe. Si dice schema di una relazione la descrizione della struttura di una relazione; esso consiste nel nome della relazione seguito dai nomi dei suoi attributi; a ciascun attributo è associato il suo dominio. Si dice istanza di una relazione l’insieme delle tuple presenti nel database in un determinato istante. Lo schema è una proprietà statica, mentre l’istanza è una proprietà dinamica i quanto le tuple possono essere aggiunte, tolte o modificate. Una chiave di una relazione R è un sottoinsieme K dei suoi attributi che garantisce due proprietà:
Se metto il riferimento ad un’altra tabella, questa deve già esistere. Inserire tuble nella base dati Ci sono due metodi per farlo:
FROM animali WHERE colore = ‘nero’ Aggiornare UPDATE nome_tabella SET operazione sul vecchio valore WHERE condizione UPDATE animali SET colore = ‘bianco a macchie’ WHERE tipo_animale = ‘cane’ Aggiungere una colonna ALTER TABLE nome_tabella ADD COLUMN (nome tipo) ALTER TABLE animali ADD COLUMN (razza varChar(40)) Cancellare una colonna ALTER TABLE nome_tabella DROP COLUMN nome ALTER TABLE animali DROP COLUMN provenienza Cancellare una tabella DROP TABLE nome_tabella ATTENZIONE: nel caso in cui ci fosse un vincolo di integrità, prima va eliminata la tabella che ha i riferimenti, poi l’altra. Elencare tutti i valori contenuti in una tabella SELECT * FROM tabella Elencare solo alcuni ATTRIBUTI
FROM world WHERE name LIKE ‘____’ ORDER BY name ES: voglio selezionare tutte le nazioni il cui nome è format da 4 o 5 caratteri SELECT name FROM world WHERE name LIKE ‘____’ OR LIKE ‘_____’ ORDER BY name ES: voglio selezionare tutte le nazioni il cui nome inizia e finisce con A SELECT name FROM world WHERE name LIKE ‘A%A’ ORDER BY name Selezione di un attributo creato ad hoc e non esistente SELECT name, population/area AS densita FROM world ORDER BY densita DESC SELEZIONARE IL MAX SELECT max(attributo) FROM tabella SELEZIONARE LA MEDIA SELECT avg(area) FROM tabella Contare tutte le tuple di una tabella SELECT count() AS ‘totale’ FROM tabella Contare tutte le tuple in cui un attributo e’ diverso da null SELECT count() AS ‘totale’, count(attributo) FROM tabella Selezionare le tuple in cui un attributo e’ nullo SELECT attributo FROM tabella WHERE isNULL (attributo) Selezionare le tuple in cui un attributo non e’ nullo SELECT attributo FROM tabella WHERE NOT isNULL (attributo) Riepilogo: operatori di aggregazione
Sono una serie di operatori che agiscono su:
La grande diffusione di massa dell’informatica e delle telecomunicazioni ha contribuito all’espansione delle reti. Fino a poco tempo fa si parlava di IT per indicare le tecnologie dell’informazione e per sottolineare la grande importanza che Hardware e Software avevano nel gestire le informazioni. Al giorno d’oggi si parla per lo più di ICT sottolineando l’importanza assunta anche dalle tecnologie delle comunicazioni, essenziali per scambiare informazioni. È in questo ambito che operano i sistemi distribuiti, sistemi caratterizzati da una rete di calcolatori che interagiscono tra loro. Mezzi e tecniche di trasmissione dati I principali mezzi utilizzati per la trasmissione dei dati sono:
Il modem è anche in grado di ricevere questi suoni e di convertirli nuovamente in bit, mediante un meccanismo inverso chiamato demodulazione. Grazio alla modulazione e demodulazione, due computer possono dialogare tra loro utilizzando una normale linea telefonica, purchè ciascuno dei due computer abbia un model. Reti di calcolatori Una rete è un insieme di apparati interconnessi tra loro. Esistono diversi tipi di reti, come, per esempio, la rete telefonica, in cui gli apparati sono le centraline telefoniche e i telefoni, mentre il mezzo di interconnessione sono i cavi della linea telefonica. In ambito informatico, una rete è utilizzata per collegare tra loro più computer, denominati host o nodi, con l’obiettivo di: