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


Appunti di informatica, Appunti di Elementi di Informatica

Appunti di informatica del primo anno

Tipologia: Appunti

2019/2020

Caricato il 21/02/2023

halmilla-silva
halmilla-silva 🇮🇹

3 documenti

1 / 82

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
1 settimana
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
pf50
pf51
pf52

Anteprima parziale del testo

Scarica Appunti di informatica e più Appunti 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

 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

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

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

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

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

  Contenere una base-dati   Servire il maggior numero di necessità

Soluzione : il linguaggio di tipo markup.

Linguaggi Markup

 L’oggetto di lavoro è un documento di testo

◼ TeX ◼ LateX

Esempio: Latex serve a rappresentare visivamente documenti scientifici con testo e formule

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:

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

  • ASPETTI GENERALI DELL’INFORMATICA E OLAP

INFORMATICA: scienza che ha come oggetto l’informazione per quanto riguarda la sua

 Acquisizione  Elaborazione  Memorizzazione  Trasmissione  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.

CREATE TABLE CAPISQUADRA(

ID_CAPO INTEGER,

ID_SOTTOPOSTO INTEGER,

PRIMARY KEY(ID_CAPO, ID_SOTTOPOSTO),

FOREIGN KEY(ID_CAPO) REFERENCES DIPENDENTI (MATRICOLA),

FOREIGN KEY(ID_SOTTOPOSTO) REFERENCES DIPENDENTI (MATRICOLA)

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

  • A un sottoposto di essere dipendente di più capi
  • A un capo di essere a sua volta sottoposto di qualche altro dipendente

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, altezzaGli 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)

Algoritmo e Diagrammi di Flusso

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

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