










































































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 informatica del primo anno
Tipologia: Appunti
1 / 82
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!











































































1 settimana
esercizio nuvolos
2 settimana
3 settimana
esercizi SQLite nuvolos
4settimana
5 settimana
6 settimana
7 settimana
8 settimana
9 settimana
10 settimana
11 settimana
12 settimana
1 settimana
esercizio nuvolos
Database (DB): insieme organizzato di informazioni, rappresentanti un fatto o un processo. Può essere fisico, ad es. uno schedario, o elettronico, cioè realizzato con strumenti software, noti come DataBase Management Systems ( DBMS ).
DATABASE ELETTRONICI
Inizialmente costituiti da semplici documenti di testo
O n L ine T ransaction P rocessing (OLTP): informazioni aggiornate in tempo reale
DB gerarchici
DB reticolari
A oggetti
DB Relazionali (RDMS): eliminazione ridondanze, garanzia di integrità dei dati
O n L ine A nalytical P rocessing (OLAP): utilizzati per sintesi statistiche, operanti su grosse mole di dati, aggiornamenti non disponibili in tempo reale.
NoSQL: database senza una struttura rigida nell’organizzazione dei dati.
Sono disponibili vari software per gestire DB relazionali, noti come Relational Database Management Systems (RDBMS) : MS Access, MySql, Oracle, PosgreSQL, SQL Server, SQLite, ... Ognuno ha propri vantaggi e peculiarità.
Tutti i DBMS utilizzano, sotto svariate forme, il linguaggio SQL (structured query language) per le operazioni di:
Creazione DB
Modifica DB
Una relazione èun’associazione fra due o più tabelle. Le relazioni sono espresse nei valori delle chiavi primarie ed esterne. Chiave primaria : è una colonna, o un insieme di colonne, che indentificano univocamente una riga nella tabella. Può anche essere artefatta, ad es. un numero progressivo
Chiave esterna : è una colonna, o un insieme di colonne, i cui valori sono gli stessi della chiave primaria di un’altra tabella. Integrità: Dell’entità : il valore di una chiave primaria non può mai essere vuoto (NULL) Referenziale : ogni valore appartenente ad una chiave esterna deve trovare controparte in un valore nella associata chiave primaria, oppure deve essere impostato su NULL
Scopo della normalizzazione del database è la suddivisione corretta delle informazioni fra le tabelle. I vantaggi principali sono
Chiarezzainterpretativadellastruttura-dati
Riduzione/eliminazione di ridondanze presenti nelle tabelle.
Sono previste 5 livelli di forme normali , criteri soddisfatti i quali, i dati si possono ritenere sufficientemente allocati fra le tabelle senza ridondanze e ripetizioni. Solitamente ci si limita alle prime 3 forme normali. Una frammentazione eccessiva complica la fase di interrogazione.
Non è ad esempio possibile disporre di un campo denominato “materia” in cui, per un determinato record, vengono inserite più materie.
Chiave primaria su colonne multiple “Matricola” ed “ID_materia” congiuntamente sono eleggibili a chiave primaria poiché identificano univocamente ogni esame.
Chiave primaria su singola colonna “Matricola” è eleggibile a chiave primaria poiché identifica univocamente ogni studente.
Integrità referenziale : se viene cancellata una riga viene violata l’entità referenziale, poiché una chiave esterna perderebbe il riferimento alla chiave
Integrità dell’entità : In questa colonna (chiave primaria) non possono esservi celle
“Ogni colonna non chiave dipende completamente dall'intera chiave primaria, non soltanto da una parte della chiave. Questa regola è applicabile in caso di chiave primaria costituita da più colonne.”
Descrizione materia dipende da ID materia , ma non da Matricola. Non dipende pertanto dall'intera chiave primaria. È necessario rimuovere “ Descrizione Materia ” dalla tabella esami, poiché appartiene a una diversa tabella (Materie).
“Le colonne non chiave devono essere reciprocamente indipendenti.”
Supponiamo di avere una soglia di voto oltre la quale scatta la promozione:
La colonna (non chiave) “Promozione” dipende da un'altra colonna non chiave, “Voto”. L'indipendenza delle colonne garantisce la possibilità di modificare qualsiasi colonna non chiave senza influire su altre colonne. Se si modifica un valore nel campo Voto, la promozione dovrà essere modificata di conseguenza violando così tale regola. In questo caso, la promozione deve essere spostata in un'altra tabella con chiave basata sul Voto.
Matricola Materia Voto Promozione 215845 Matematica 21 Si 628457 Finanza 26 Si 628457 Economia 18 Si 215845 Finanza 14 No
E’ costituito dalle seguenti componenti:
DDL (data definition language): comandi per la costruzione e strutturazione di tabelle e relazioni
Matricola ID_Materia Descrizione Materia Voto 215845 2 Matematica 21 215845 1 Economia 28 628457 3 Finanza 26 628457 1 Economia 18 215845 3 Finanza 14
Quando la chiave esterna non è unica, allora fra le tabelle si instaura una relazione “uno a molti”
CREATE TABLE prof ( ID_prof INTEGER, cognome TEXT, nome TEXT, PRIMARY KEY (ID_prof) )
CREATE TABLE incarico ( ID_prof INTEGER, ID_materia INTEGER, PRIMARY KEY (ID_prof, ID_materia), FOREIGN KEY (ID_prof) REFERENCES prof(ID_prof) )
Un professore può assumere molti incarichi
Richiede l’interposizione di una “tabella-ponte” fra due tabelle. Questo per permettere che vi siano due campi “non unici”
Ad esempio: uno studente può aver studiato molte materie e una materia può essere studiata da molti studenti comporta una relazione “molti a molti” (si veda la slide “DDL:esempio”)
Fra la tabella “studenti” e “materie” si viene a configurare una relazione molti a molti grazie alla tabella “esami” che permette di costruire vari incroci. Uno studente può effettuare esami in varie materie (es. studente 215845 => materie {2, 1, 3}) ma la stessa materia può essere affrontata da molti studenti (es materia 3 => studenti {215845, 628457})
Introduzione
I DB relazionali (di tipo OLTP) sono deputati ad ospitare dati in modo organizzato e a rispondere a queries di estrazione di parte di essi Un tipico problema, preponderante in ambito informatico, è lo scambio di informazioni
Per scambio di informazioni si intende in generale
Condivisione fra applicativi differenti (ad es. fra un DBMS e un altro) Condivisione fra terminali differenti
Tramite l’ausilio di supporti fisici: CD-ROM,... Tramite l’ausilio di comunicazioni di rete: email, web (http, ftp, ...)
L’attenzione verrà posta sullo standard emergente per la condivisione di dati ed informazioni. Le altre tematiche sullo scambio di dati (reti, protocolli,...) verrà trattata separatamente.
Il formato leggibile con maggior facilità in ambiti differenti anche a distanza di molto tempo è il formato testo.
Si è posto quindi il problema di come sfruttare al meglio un file di testo per
Contenere una base-dati Servire il maggior numero di necessità
Soluzione : il linguaggio di tipo markup.
L’oggetto di lavoro è un documento di testo
◼ TeX ◼ LateX
Esempio: Latex serve a rappresentare visivamente documenti scientifici con testo e formule
I linguaggi markup di tipo “descrittivo” si preoccupano solo di dare una struttura al documento di testo, delegando la modalità di rappresentazione visiva ad un software esterno (es un browser web). Il World Wide Web Consortium (W3C, fondato nel 1994 composto da oltre 400 membri quali Microsoft, Google, ...) ha emanato una serie di standard per la comunicazione fra server, PC e altri dispositivi. I principali protocolli:
HTTP (HyperText Transfer Protocol) HTML (HyperText Markup Language – primo linguaggio per il web) XHTML (eXtensible HyperText Markup Language) CSS (Fogli di stile a cascata) PNG (formato grafico) CGI (Common Gateway Interface) SOAP(Simple Object Access Protocol) XML (eXtensible Markup Language)
Hyper Text Markup Language Appartiene alla categoria dei linguaggi di tipo markup (descrittivi) E’ costituito da un insieme predefinito di tag atti a descrivere la rappresentazione grafica del contenuto di un documento di testo La rappresentazione è delegata successivamente ad un browser web
Lo scopo di XML è descrivere il contenuto del documento, non preoccupandosi di indicare la rappresentazione grafica
XML è un markup (meta) language e si estrinseca in un documento di testo (solitamente con estensione .xml) Può essere inteso come “base di dati” di tipo gerarchico
E’ basato su tag (marcatori) definiti dall’utente (in genere vengono definiti da comitati che rappresentano una categoria di utenti: revisori di bilancio, ...) I tag possono contenere attributi (anche questi definiti dall’utente) L’elenco dei tag e attributi nonché le regole che li riguardano sono specificate in un documento che può essere di due tipi
Document Type Definition XML Schema
Sulla base del problema da affrontare l’utente sceglie quali tag e attributi creare
XML, poiché non ha tag predefiniti, ma permette di crearne , è un metalinguaggio in quanto con esso vengono creati dei linguaggi di markup XML permette di attribuire una semantica (significato) al testo. Questo, a livello web, consentirà ad esempio ricerche più mirate da parte dei motori di ricerca XML è stato preceduto di parecchi anni da SGML, questo ha avuto meno successo per la difficoltà di utilizzo HTML , il linguaggio degli albori del web (anch’esso basato su TAG), èstato pensato per la rappresentazione visiva. I tag sono predefiniti. XHTML èbasato su XML ed è un’evoluzione dell’HTML in modo che sia consentito all’utente di aggiungere propri tag, a condizione che in un altro documento (di tipo CSS) venga indicato come rappresentarli visivamente XML invece èvolto essenzialmente al contenimento e trasporto dei dati , non si occupa della loro rappresentazione. I tag vengono definiti dall’utente.
L’XML è “case sensitive” La prima riga indica la versione di XML in uso e specifica la codifica ISO per la corretta interpretazione dei dati. I tag non possono iniziare con numeri o caratteri speciali e non possono contenere spazi Non sono consentiti errori di annidamento fra i tag E’ possibile definire tag vuoti I caratteri speciali (<,>,&,’,”,...) devono essere indicati opportunamente (< , > , & , ' , ") Commenti:
Quando un documento XML è ben formato e rispetta le regole del DTD a cui si riferisce si dice che è un documento XML valido.
Il DTD può essere
Specificato direttamente all’inizio di un documento XML Definito in un file esterno .dtd ed incluso successivamente in uno o altri documenti XML con la sintassi .
-----------------------ESERCIZIO NUVOLOS 1 --------------------
2 settimana
INFORMATICA: scienza che ha come oggetto l’informazione per quanto riguarda la sua
Acquisizione Elaborazione Memorizzazione Trasmissione Presentazione
mediante strumenti elettronici.
BIT (b): cifra che può assumere solo gli stati 0 e 1 (il computer al livello più basilare utilizza e memorizza le informazioni condensate in due soli stati: acceso/spento) BYTE (B): sequenza composta da 8 bit (es. 10010010)
La scheda madre èuna piastra (circuito stampato) che presenta degli alloggi e connessioni per ospitare componenti hardware interne (CPU, memoria RAM, Hard Disk, etc) connesse tramite bus, e componenti esterne (tastiera, mouse, etc).
Il computer moderno è tuttora basato sul modello di Von Neumann, in particolare distinguiamo i seguenti componenti principali :
SCHEDA MADRE : circuito stampato che gestisce la comunicazione fra i principali componenti del PC CPU : o “processore” è l’unità di elaborazione ed è integrata in un chip. La CPU presenta al proprio interno delle unità di memoria note come registri. I registri dei processori attuali possono essere a 32 bit o 64 bit. RAM : memoria temporanea “di lavoro” accessibile dalla CPU in lettura/scrittura è volatile (allo spegnimento del PC il contenuto viene perso) ROM : memoria accessibile in lettura che rimane inalterata dallo spegnimento del PC (non volatile)
O n L ine A nalytical P rocessing: OLAP
E’ un insieme di tecniche software che consentono di operare su grandi mole di dati.
“On Line”: capacità interattive
“Analytical Processing”: consente di evidenziare le relazioni multidimensionali presenti nei dati
L’obiettivo finale di un’applicazione OLAP è fornire risultati a supporto delle decisioni.
Gli utenti finali di un DB OLAP sono soggetti che prendono decisioni strategiche (o sono al loro servizio) in seno all’organizzazione a cui si riferisce il database.
Fra il db relazione e l’utente viene interposto un altro tipo di strumento, noto come “OLAP” che non presenta gli svantaggi menzionati.
Cubo OLAP : i dati per un certo problema vengono salvati in c.d. “cubi OLAP” tenendo conto della struttura a livello di dimensione/livelli/membri/misure.
NOTA: entrambi i campi di capisquadra (id_capo e id_sottoposto) sono foreign key che attingono a dipendenti.matricola (che si tratti di un capo o di un sottoposto, sono registrati nella stessa tabella «dipendenti»). Questo tipo di struttura consente
NOTA: rispetto alla versione 1 è stato introdotto il vincolo UNIQUE sul campo ID_SOTTOPOSTO. Perciò non si potranno mai verificare duplicati su questa colonna (quindi un dipendente comparendo una sola volta potrà avere al massimo un solo capo). Riferendoci all’esempio precedente, non sarà possibile che 123 compaia due volte in capisquadra.id_sottoposto (il rdbms impedisce la doppia immissione)
Il seguente esercizio richiede un pizzico di ingegno e volutamente vi richiede di sapere “andare oltre” ciò che è stato presentato a lezione.
I dipendenti di un'impresa hanno in comune i seguenti campi: matricola, cognome, nome. Tuttavia l'impresa ha due tipi di dipendenti: operai e impiegati
Gli operai hanno i seguenti campi aggiuntivi: peso corporeo, altezza Gli impiegati hanno i seguenti capi aggiuntivi: diottrie
Disegnate un database (con dati) in cui le informazioni comuni a operai e impiegati siano accorpate in un'unica tabella, aggiungendo le opportune tabelle di dettaglio per operai e impiegati
Suggerimento: sono sufficienti tre tabelle (che tipo di relazione intercorre fra esse?)
Un algoritmo ècostituito da una sequenza di semplici istruzioni ed è volto alla soluzione di uno specifico problema.
Esempi
Ricetta di preparazione di una certa torta
Calcolo del minimo comune multiplo
Ricerca di siti web collegati ad una certa parola-chiave
Gli algoritmi sono rappresentabili graficamente tramite diagrammi di flusso. Essi sono costituiti da un insieme di forme (note come «blocchi»), ciascuna associata a determinate azioni
Blocchi di inizio/fine algoritmo
Blocchi di lettura/scrittura
Blocchi di elaborazione
Blocchi di decisione
Tali blocchi sono collegati sequenzialmente da frecce
L’ implementazione costituisce il momento di passaggio dall’algoritmo alla codifica tramite uno specifico linguaggio di programmazione. Riassumendo, si hanno i seguenti passaggi fondamentali
Programmare significa
scrivere un “codice sorgente” (uno o più files di testo) secondo le regole sintattiche del linguaggio di programmazione scelto
Sottoporlo, sulla base del tipo di linguaggio a
o Un compilatore
o Un interprete
o Uno pseudo-compilatore
Il codice sorgente viene “compilato”, cioè tradotto immediatamente in codice binario, dopodichè pu ò essere eseguito ogni volta senza bisogno di altri strumenti.
Il codice binario è autosufficiente per l’esecuzione ogni volta che verrà richiamato.
Il codice sorgente viene tradotto (interpretato) ogni volta che deve essere eseguito, ad opera di un programma detto “interprete”
L’utente che riceve il sorgente deve possedere anche l’interprete.
Costituiscono un compromesso fra linguaggio compilato ed interpretato
Il codice viene compilato in un “bytecode” intermedio fra l’utente e il codice binario
Ogni volta che viene lanciato, il bytecode viene compilato al momento