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


Esercizi SQLite in R, Appunti di Elementi di Informatica

Esercizi di informatica del primo anno

Tipologia: Appunti

2019/2020

Caricato il 21/02/2023

halmilla-silva
halmilla-silva 🇮🇹

3 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA – R
Esercizi SQLite
db_esami.R
library(RSQLite)
setwd('/files/Database')
# CREA CONNESSIONE A DB SU DISCO (SE NON ESISTE VIENE CREATO)
mydb <- dbConnect(RSQLite::SQLite(), "/files/Database/db_esami.sqlite")
# dbSendQuery ESEGUE IL COMANDO RICHIESTO SU UN CERTO DATABASE
dbSendQuery(conn = mydb,
statement =
'CREATE TABLE studenti(
matricola INTEGER,
cognome TEXT,
nome TEXT,
PRIMARY KEY(matricola)
)'
)
dbSendQuery(conn = mydb,
statement =
'CREATE TABLE materie(
ID_materia INTEGER PRIMARY KEY AUTOINCREMENT,
denominazione TEXT
)'
)
dbSendQuery(conn = mydb,
statement =
'CREATE TABLE esami(
matricola INTEGER,
ID_materia INTEGER,
voto INTEGER,
FOREIGN KEY(matricola) REFERENCES studenti(matricola),
FOREIGN KEY(ID_materia) REFERENCES materie(ID_materia),
PRIMARY KEY(ID_materia, matricola)
)'
)
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Esercizi SQLite in R e più Appunti in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA – R

Esercizi SQLite db_esami.R library(RSQLite) setwd('/files/Database')

CREA CONNESSIONE A DB SU DISCO (SE NON ESISTE VIENE CREATO)

mydb <- dbConnect(RSQLite::SQLite(), "/files/Database/db_esami.sqlite")

dbSendQuery ESEGUE IL COMANDO RICHIESTO SU UN CERTO DATABASE

dbSendQuery(conn = mydb, statement = 'CREATE TABLE studenti( matricola INTEGER, cognome TEXT, nome TEXT, PRIMARY KEY(matricola) )' ) dbSendQuery(conn = mydb, statement = 'CREATE TABLE materie( ID_materia INTEGER PRIMARY KEY AUTOINCREMENT, denominazione TEXT )' ) dbSendQuery(conn = mydb, statement = 'CREATE TABLE esami( matricola INTEGER, ID_materia INTEGER, voto INTEGER, FOREIGN KEY(matricola) REFERENCES studenti(matricola), FOREIGN KEY(ID_materia) REFERENCES materie(ID_materia), PRIMARY KEY(ID_materia, matricola) )' )

# VERIFICA TABELLE PRESENTI NEL DATABASE ----------------------------------

dbListTables(mydb)

ELENCO DEI CAMPI IN OGNI TABELLA

dbListFields(mydb, 'studenti') dbListFields(mydb, 'materie') dbListFields(mydb, 'esami')

STRUTTURA TABELLA

dbGetQuery(conn = mydb, 'PRAGMA table_info("studenti")')

SI DISCONNETTE DAL DATABASE

dbDisconnect(mydb)

CANCELLA IL DB DA DISCO

#unlink("/files/Database/db_esami.sqlite") Scrivere il comando SQL per la creazione di una tabella di nome studenti composta dai campi matricola (nr intero), cognome (testo), nome (testo) e impostando l'opportuna chiave primaria library(RSQLite) setwd('/files/Database') mydb <- dbConnect(RSQLite::SQLite(), "/files/Database/db_esami.sqlite") dbSendQuery(conn = mydb, statement = 'CREATE TABLE studenti( matricola INTEGER, cognome TEXT, nome TEXT, PRIMARY KEY(matricola) )' )

Scrivere una funzione con nome SommaSottrazione che dati due valori in input s1, s2 restituisca s1+s2 e s1-s SommaSottrazione <- function(s1 = 2, s2 = 1) { list((s1 + s2), (s1 - s2)) } SommaSottrazione(s1 = 2, s2 = 1) SommaSottrazione <- function(x1, x2){ y <- x1 + x z <- x1 - x return(list(somma = y, differenza = z)) }

Scrivere una funzione di nome randomwalk che generi un vettore in cui, fissato il valore del primo elemento, i successivi (dal secondo in poi) siano calcolati secondo la regola y[i] = y[i−1] + NumeroCasuale Quindi il valore alla posizione “i” del vettore è uguale al valore alla posizione precedente più un numero casuale. I l numero casuale è ottenuto tramite il comando R rnorm(n=1, mean=0, sd=0.1) INPUT FUNZIONE  N: lunghezza del vettore da generare  start: valore su cui impostare il primo valore del vettore (default=0)  graf: se TRUE genera il grafico del vettore (default=FALSE) OUTPUT FUNZIONE: vettore y Si applichi infine la funzione assumendo N=100, start=1, graf=TRUE salvando il vettore nella variabile rw Nota Bene: scrivere nella risposta solo i comandi R senza i risultati PasseggiataCasuale <- function(start, N, graf = FALSE){ y <- array(data = NA, dim = N y[0] <- start for(i in 2:N){ y[i] <- y[i-1] + rnorm(n=1, mean=0, sd=0.1) } if(graf == TRUE){ plot.ts(y) } return(y) } rw <- PasseggiataCasuale(N=100, start=1, graf=TRUE) print(rw)