Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Informatica appunti ed esercizi, Formulari di Elementi di Informatica

Appunti ed esercizi di informatica del primo anno

Tipologia: Formulari

2019/2020

Caricato il 21/02/2023

halmilla-silva
halmilla-silva 🇮🇹

3 documenti

1 / 79

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Appunti di Informatica
1 settimana
DATABASE RELAZIONALI E XML
> esercizio nuvolos
2 settimana
ASPETTI GENERALI DELL’INFORMATICA E OLAP
3 settimana
INTRODUZIONE ALLA PROGRAMMAZIONE
> esercizi SQLite nuvolos
4settimana
DOMANDE DI AUTOVERIFICA + esercizi
5 settimana
PROGRAMMAZIONE R FONDAMENTI
6 settimana
QUIZ PROGRAMMAZIONE + esercitazione
7 settimana
ESERCITAZIONI INTERMEDIE nuvolos
8 settimana
FUNZIONI DI R 1
9 settimana
FUNZIONI DI R 2 + esercizi nuvolos
10 settimana
GRAFICI R E APPLICAZIONI 1
11 settimana
APPLICAZIONI CON R 2 + nuvolos
12 settimana
ELEMENTI DI EXCEL + excel
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f

Anteprima parziale del testo

Scarica Informatica appunti ed esercizi e più Formulari in PDF di Elementi di Informatica solo su Docsity!

Appunti di Informatica

1 settimana

  • DATABASE RELAZIONALI E XML

    esercizio nuvolos 2 settimana

  • ASPETTI GENERALI DELL’INFORMATICA E OLAP 3 settimana
  • INTRODUZIONE ALLA PROGRAMMAZIONE

    esercizi SQLite nuvolos 4settimana

  • DOMANDE DI AUTOVERIFICA + esercizi 5 settimana
  • PROGRAMMAZIONE R FONDAMENTI 6 settimana
  • QUIZ PROGRAMMAZIONE + esercitazione 7 settimana
  • ESERCITAZIONI INTERMEDIE nuvolos 8 settimana
  • FUNZIONI DI R 1 9 settimana
  • FUNZIONI DI R 2 + esercizi nuvolos 10 settimana
  • GRAFICI R E APPLICAZIONI 1 11 settimana
  • APPLICAZIONI CON R 2 + nuvolos 12 settimana
  • ELEMENTI DI EXCEL + excel

1 settimana

  • DATABASE RELAZIONALI E XML

    esercizio nuvolos DEFINIZIONI:

  • 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. RDBMS 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 Ø Estrazione dati (query) PERCHÈ UTILIZZARE DB
    • Ottimizzazione dello spazio e velocità
    • Facilità di interrogazioni complesse (queries)
    • Consistenza, integrità e sicurezza dei dati

Scomposizione delle informazioni

Ø 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

Normalizzazione

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.

Prima Forma Normale

  • “In corrispondenza di ogni cella nella tabella deve essere presente

un singolo valore e mai un elenco di valori.”

Ø Non è ad esempio possibile disporre di un campo denominato “materia” in cui, per un determinato record, vengono inserite più materie.

Seconda Forma Normale

  • “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.” Integrità dell’entità : In questa colonna (chiave primaria) non possono esservi celle vuote. Integrità referenziale : se viene cancellata una riga viene violata l’entità referenziale, poiché una chiave esterna perderebbe il riferimento alla chiave primaria.

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).

Terza Forma Normale

  • “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

Linguaggio SQL

E’ costituito dalle seguenti componenti:

  • DDL (data definition language): comandi per la costruzione e strutturazione di tabelle e relazioni
  • DML (data manipulation language): comandi per l’aggiunta/eliminazione/modifica dati presenti nelle tabelle
  • DCL (data control language): comandi per la gestione dei permessi di accesso al dabase
  • QL (query language): comandi per l’interrogazione del database

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

Relazione “Uno a Molti”

  • 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

Relazione “Molti a Molti”

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})

XML

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 Ideale di Interscambio

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

  • o Contenere una base-dati
  • o Servire il maggior numero di necessità Soluzione : il linguaggio di tipo markup.

Linguaggi Markup

  • L’oggetto di lavoro è un documento di testo
  • Lo scopo è dare un senso a porzioni del documento
  • L’obiettivo è ottenuto identificando, con speciali elementi, i marcatori, alcune porzioni del testo
  • Fatto ciò il documento di testo “marcato” può essere salvato oppure trasmesso Chi compone il files di testo “marcato”?

Linguaggi Markup “Descrittivi”

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)

HTML

  • 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

  • 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 e Semantica

  • 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.

Regole per i Tag

  • 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:

Documenti “ben formati”

  1. Deve essere presente un tag di tipo “root”
  2. I tag devono essere sempre chiusi
  3. I tag devono essere coerenti fra loro a livello di maiuscole/minuscole
  4. I tag devono essere annidati correttamente
  5. Gli i valori degli attributi devono essere racchiusi fra virgolette “ ” Il fatto che un documento sia “ben formato” non preclude che contenga errori sostanziali. Ad esempio un attributo “voto” potrebbe essere impostato su un valore illogico (ad es voto=“zcxyht”. E’ necessario un ulteriore strumento che indichi con maggior dettaglio la struttura che il documento XML deve rispettare: il Document Type Definition (DTD) oppure lo XML Schema.

2 settimana

  • ASPETTI GENERALI DELL’INFORMATICA E OLAP INFORMATICA: scienza che ha come oggetto l’informazione per quanto riguarda la sua o Acquisizione o Elaborazione o Memorizzazione o Trasmissione o Presentazione mediante strumenti elettronici.

Definizioni

  • 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)

Hardware: scheda madre

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).

Hardware: componenti principali

  • 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)

OLAP

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

  • 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.

Soluzione: Versione 2

CREATE TABLE DIPENDENTI(

MATRICOLA INTEGER,

COGNOME TEXT,

NOME TEXT,

PRIMARY KEY(MATRICOLA)

CREATE TABLE CAPISQUADRA(

ID_CAPO INTEGER,

ID_SOTTOPOSTO INTEGER UNIQUE ,

PRIMARY KEY(ID_CAPO, ID_SOTTOPOSTO),

FOREIGN KEY(ID_CAPO) REFERENCES DIPENDENTI(MATRICOLA),

FOREIGN KEY(ID_SOTTOPOSTO) REFERENCES DIPENDENTI(MATRICOLA)

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) Progettazione di database “Tabelle di dettaglio” 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?)

Soluzione

CREATE TABLE DIPENDENTI(

MATRICOLA INTEGER,

COGNOME TEXT,

NOME TEXT,

PRIMARY KEY(MATRICOLA)

CREATE TABLE OPERAI(

MATRICOLA INTEGER,

PESO REAL,

ALTEZZA REAL,

PRIMARY KEY(MATRICOLA),

FOREIGN KEY(MATRICOLA) REFERENCES DIPENDENTI(MATRICOLA)

CREATE TABLE IMPIEGATI(

MATRICOLA INTEGER,

DIOTTRIE REAL,

PRIMARY KEY(MATRICOLA),

FOREIGN KEY(MATRICOLA) REFERENCES DIPENDENTI(MATRICOLA)

Le tabelle OPERAI e IMPIEGATI sono tabelle in cui la chiave primaria (MATRICOLA) è anche una chiave esterna (che si riferisce a DIPENDENTI.MATRICOLA).

Si viene quindi a instaurare una relazione di tipo UNO A UNO fra OPERAI e

DIPENDENTI e fra IMPIEGATI e DIPENDENTI. Questo tipo di struttura consente di «specializzare» le informazioni suddividendole in tabelle differenti. In questo caso per i dipendenti «operai» è possibile inserire dati quali peso e altezza, mentre è del tutto inutile farlo per gli impiegati (discorso opposto per quanto riguarda le diottrie). In alternativa a questo tipo di struttura si sarebbe potuto creare un’unica tabella DIPENDENTI con tutte le colonne di dettaglio (peso, altezza, diottrie) tuttavia sarebbe stata destinata ad accogliere per definizione molti dati mancanti a seconda che il dipendente fosse stato operaio o impiegato.

Implementazione

L’ implementazione costituisce il momento di passaggio dall’algoritmo alla codifica tramite uno specifico linguaggio di programmazione. Riassumendo, si hanno i seguenti passaggi fondamentali

  1. Problema
  2. Identificazione/realizzazione dell’ algoritmo di soluzione
  3. Formalizzazione tramite diagramma di flusso (opzionale) 4. Implementazione dell’algoritmo tramite uno specifico linguaggio di programmazione

Il Coding

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

Linguaggi Compilati

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.

Linguaggi Interpretati (di scripting)

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.

Linguaggi Pseudo-Compilati

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 L’obiettivo è duplice Ø Portabilità fra piattaforme diverse dello stesso bytecode (deve essere disponibile una virtual machine per le varie piattaforme) Ø Velocità nel passaggio bytecode - codice macchina
  • Uno pseudo-compilatore produce codice compilato intermedio “bytecode”: ad es. Java, linguaggi .NET
  • Il bytecode viene eseguito da un applicativo (virtual machine) che si frappone quindi fra la macchina e il sorgente
  • Tale applicativo compila “just in time” il bytecode ogni volta che viene lanciato il codice
  • Molti linguaggi nella classe dei “compilati”, per sintassi e mancanza di capacità interattive compilano in un bytecode intermedio (es. Java)
  • Altresì molti linguaggi, per loro natura appartenenti a linguaggi puramente interpretati, sono in grado di produrre bytecode intermedio (es. Python, R). Questo rende le operazioni che l’interprete deve eseguire più rapide ed efficienti.

Linguaggi di Scripting

La classe dei linguaggi di scripting comprende i linguaggi puramente interpretati e i linguaggi che consentono alta interazione e che eventualmente possono anche produrre bytecode. Mentre in passato presentavano molti limiti in termini di velocità e possibilità, gli attuali linguaggi di scripting sono rapidi e con capacità notevoli. Quindi vengono spesso preferiti ai linguaggi compilati in quando rapidamente è possibile portare a termine un progetto con minor risorse Molti di questi operano come “glue-languages” consentendo di integrare diversi linguaggi. Spesso delegano compiti intensivi a porzioni di codice compilato