Android Studio - SQLite

Android Studio - SQLite

E’ il Tool

E’ il DBMS (Il motore di Database)

SQLite 3

CARATTERISTICHE

E’ un DBMS compatto. E’ a File

Memorizza strutture dati, memorizzate all’interno di File di Testo.

Come dimensioni è contenitissimo

Transazioni (atomiche, coerenti, isolate, durature) come il DBMS standard.

Non ha bisogno di Setup o di installazioni

Supporta in pieno SQL Standard (funzionalità e operatori)

SQLite, ha caratteristiche di ottimizzazioni

API, sono semplici. Si usano 4 – 5 metodi di apertura ed esecuzione Query.

Intero Database memorizzato in un file

SQL non è un linguaggio completo, non permette di fare Cicli o di usare Algoritmi sui Dati.

Per far si, che SQL, faccia qualcosa di più avanzato, bisogna ospitarlo all’interno di un Linguaggio di Programmazione

SQLite ha i suoi driver e permette di riconoscere il formato dei Dati, provenienti dalla Lettura di query SQL. Permette di fare anche Cicli.

E’ ben documentato (SQLite). E’ anche Open Source (quindi abbiamo il sorgente)

Non ci sono dipendenze esterne. I driver sono già incluse nelle Librerie di Android Studio.

E’ cross-platform, è utilizzabile su tanti Linguaggi di Programmazione.

E’ possibile amministrarlo con Linee di Comando.

USO CONSIGLIATO SQLite

DB consigliato per la IOT (frequenza di dati è abbastanza elevata. Utilizzando i Sensori, anche le temperature del giorno, anche 3 volte)

Non è detto che la IoT abbia un flusso di dati costanti.

Dati Compatti, un record di 10 interi, float

E’ possibile usare un altro Motore di Database.

Se utilizzassimo DBMS Server, cambia poco. Cambiar la stringa di connessione.

LIMITI

Applicazioni Client – Server. Per scambi molto frequenti (ALTO Traffico, non va bene)

Dataset Molto Grandi (che vanno oltre i TeraByte). SQLite è limitato a 140 TB

Concorrenza: se i dati vengono da più fonti, più Utenti che stanno scrivendo tra Loro, ci possono essere problemi a livello di CRASH.

Motivo? Stiamo USANDO COME STRUTTURA DATI: UN FILE.

IL FILE è sequenziale. Possiamo Mapparlo come un Albero, un Grafo, ma il fatto di doverlo Mapparlo, quindi di Leggerlo, Mapparlo nei nodi. E’ un’operazione che va fatta in Run.

Database piccolo personale: SQLite, va bene!

SALVATAGGIO SU SQLite

I DATI DEVONO ESSERE STRUTTURATI.

DEVONO AVERE UNA DETERMINATA STRUTTURA → DEI TIPI

DEVONO ESSERE SALVATI IN TABELLE

API sono disponibili nel Package: android.database.sqlite

Non c’è bisogno di scaricare DLL o qualcosa del genere.

Per creare un NUOVO DATABASE, O.S. Android, consiglia una Sottoclasse di: SQLiteOpenHelper

Database Inspector: ci permette di collegarci al Database. E guardarci dentro. Questo Tool è in Android Studio

SQLiteOpenHelper è quella Classe che ci da l’interfaccia tra codice e quindi tra (Linguaggio di Programmazione) ed SQL

DDL (Data Definition Language), che permette di creare, modificare o eliminare gli oggetti in un Database

DML (Query) leggere, inserire, modificare o eliminare i dati in un Database

DATABASE RELAZIONALI

SQL: DDL e DML

LETTURA E SCRITTURA

per scrivere: getWritableDatabase()

per leggere: getReadableDatabase()

Entrambe restituiscono un oggetto SQLiteDatabase

ESECUZIONE QUERY

per eseguire le query, utilizzare il metodo query() che accetta diversi parametrizzazioni

Per interrogazioni più complesse:

SQLiteQueryBuilder che è sempre un oggetto, che permette di fare la Transazione sul Database.

SQLiteQueryBuilder, permette di NON fare la concatenazione della Stringa come testo, quindi utilizzando il +.

Utilizzare la Stringa come testo: problemi → SQL INJECTION per la sicurezza

SDK Android include uno strumento per database, sqlite3 per navigare il contenuto delle tabelle, eseguire comandi SQL ed altre funzioni.

SCHEMA E CONTRACT

LO SCHEMA è la dichiarazione formale di come i dati sono organizzati. IL DDL. Lo SCHEMA riflette le dichiarazioni SQL usate per la creazione del database.

CONTRACT CLASS: la CLASSE di oggetti, di costanti, che definisce i nomi: le tabelle, le colonne, nella creazione di un Content Provider che si deve interfacciare con il database.

PATH STORAGE DB

I Dati sono memorizzati nell’area interna dell’APP, quindi al sicuro.

Un utile set di API è disponibile nella Classe SQLiteOpenHelper

per usare SQLiteOpenHelper si crea una sua sottoclasse, che fa l’override di:

onCreate(), onUpdate() e onOpen()

sul Database!

C’è il Cursore che esegue la query. Il Cursore viene chiamato prima di leggere i dati e poi può scorrere i risultati.

About Post Author

pasquale.clarizio

error: Content is protected !!
Advertisment ad adsense adlogger