Sunteți pe pagina 1din 43

Persistencia:

Base de datos
SQL
Huamani Huancara, Cleofé
Laura Canaza, Amilcar
Quijia Alvarez, Maria
Índice de contenidos
Introducción
Files, SharedPreference y Sql
Desarrollo del tema
¿Qué es SQLite en Android?
Diferencias entre SQlite y mySql
Tipos de SQL comandos: retrieval y action query
¿Como se crear databases con java?
Introducción
Cursor Sql
Operaciones insertar, editar, eliminar.
Transacciones
Visibilidad de database
Ejemplos
Conclusiones
Referencias
Introducción
Files, SharedPreference y Sql
● Files: son una forma de guardar datos de forma libre
● SharedPreferences: es un almacén de claves/valores, difícil
almacenar y leer datos estructurados grandes.
● Sql: necesario para realizar consultas complejas mediante relación
de varias tablas, permite almacenar estructuras complejas y
grandes.
Desarrollo del tema
SQLite en Android
● Motor de base de datos SQL transaccional de
código abierto, ligero, autónomo, de
configuración simple y sin servidor( almacenar
información persistente de forma sencilla)
● Dominio público: gratuito
● Fines privados como para comerciales,
● Descarga libre desde su sitio oficial.
● Disponible en diversos lenguajes: Java, C, C ++,
JavaScript, C #, Python, VB Script, entre otros.
Diferencias entre SQlite y mySql
Sqlite: solución sin servidor, independiente, altamente confiable. Manejo de datos simple e integración directa

MySql: integración indirecta

Sqlite MySql

Ventajas ● Ligero ● Seguridad de datos


● No requiere instalación ● Alto rendimiento
● Mejor rendimiento ● Escalabilidad
● Confiable ● Tiempo de actividad
● Portatil ● Control de flujo
● Accesible

Desventajas ● Mono usuario ● Tamaño de datos


● Aplicaciones de poco tráfico ● Desarrollo lento
● Tamaño de almacenamiento ● Dependencia de recursos

- Cuando queremos usar aplicación que sea portable y que no necesite gran cantidad de manejo de datos -> SQLite
- Cuando sea necesario manejar un sistema seguro donde se guarden y protejan datos importante -> MySql
Diferencias entre tipos de datos de SQLite y MySQL
GENERALES:
● INTEGER: entero c/signo(almacenado en 1, 2, 3, 4, 6 u
8 bytes) - NUMÉRICO: INT(INTEGER), SMALLINT, TINYINT,
● REAL: flotante como número de flotante IEEE de 8 MEDIUMINT, BIGINT, DECIMAL(NUMERIC), FLOAT,
bytes. DOUBLE, REAL, BIT
● TEXTO: cadena de texto, almacenada con codificación
- FECHA: DATE, DATETIME, TIME, TIMESTAMP,
UTF-8, UTF-16BE o UTF-16LE
YEAR.
● BLOB: valores guardados como ingresaron.
● NULL: El valor es un valor NULO. - STRING: CHAR, VARCHAR, BLOB MEDIUMBLOB,
LONGBLOB, SET, ENUM, TINYTEXT, TEXT,
DATOS DE FECHA Y HORA MEDIUMTEXT, LONGTEXT
● TEXTO: como cadenas ISO8601 ("AAAA-MM-DD HH:
MM: SS.SSS").
● REAL: como números de día julianos(número de días
desde el mediodía en Greenwich el 24 de noviembre
de 4714 aC según el calendario gregoriano proléptico)
● INTEGER: como Tiempo Unix(el número de segundos
desde 1970-01-01 00:00:00 UTC.)
Tipos de comandos SQL
Una vez creada, la base de datos SQLite está lista para operaciones normales como: crear, alterar,
descartar recursos (tablas, índices, disparadores, vistas, consultas etc.) o administrando recursos de
bases de datos (contenedores, usuarios, ...).

Las consultas de acción y recuperación representan las operaciones más comunes contra la base de
datos.

• Una consulta de recuperación(retrieval query) suele ser un comando SQL-Select en el que una
tabla mantener una cantidad de campos y filas se produce como respuesta a un dato solicitud.

• Una consulta de acción(action query) generalmente realiza tareas administrativas y de


mantenimiento como manipular tablas, usuarios, entorno, etc.
Creación de una base de datos con Java (I)
Creación de una base de datos con Java (II)
Guardado en el teléfono y SDCard
Limitaciones para compartir
❏ Bases de datos creadas en el espacio interno /data/data/package son privados a ese
paquete.
❏ No puede acceder a bases de datos internas que pertenecen a otras personas.
❏ (en su lugar, use proveedores de contenido o bases de datos externas residentes en SD).
❏ Las bases de datos SD almacenadas son públicas.
❏ El acceso a una base de datos residente de SD requiere que el Mainfest incluya
❏ permisos:
Un método alternativo: openOrCreateDatabase
Una forma alternativa de abrir/crear una base de datos SQLITE en su espacio interno de datos de Android es:

Supongamos que esta aplicación está hecha en un espacio de nombres llamado cis470.matos.sqldatabases,

entonces el nombre completo del archivo de base de datos recién creado será:

● Todos los componentes de la misma aplicación pueden acceder al archivo.


● Otros valor MODE: MODE_WORLD_READABLE, y MODE_WORLD_WRITEABLE quedaron en desuso en el nivel
17 de API.
● NULL se refiere al parámetro opcional de clase factory (omitir por ahora)
Cursores en SQL
Elemento que representa a un conjunto de datos
determinada por una consulta.

Los cursores permiten recorrer fila a fila, leer y


eventualmente modificar dicho conjunto de
resultados.
SQL select- Sintaxis
Select
Select
SQL CURSORS
Insertar, eliminar y actualizar en Android
Insertar
Actualizar
Eliminar
Transacciones
Son útiles para mantener los datos
consistentes debido a la terminación anormal
del sistema.

Normalmente se usa para consultas de Acción,


para garantizar un “éxito total” o “fracaso
total”.

Esta noción se llama: atomicidad para reflejar


que todas las partes de un método están
fusionadas en una "declaración" indivisible.
Cuando las operaciones hayan culminado, es importante llamar a
setTransactionSuccessful().

Si no se hace así, todos los cambios volverán a como estaban antes del inicio
de la transacción.
En una tabla simple con campo ID y otra tabla
de musica Tracks con mas campos
Visibilidad de la base de datos
Cualquier aplicación puede acceder a la
base de datos guardada en la SDCard
mediante la ruta.

Implica riesgos de seguridad.

Las base de datos guardadas en la


memoria privada consumen más
memoria.
Ejemplos
Conclusiones
La persistencia es un tema muy importante hoy en día, permite tener una
mejor navegación en las aplicaciones que usamos

El manejo de base de datos en Android no es complicado y hasta cierto punto


intuitivo.

Android Studio nos provee maneras de obtener acceso a nuestra base de


datos en etapas de Pruebas.

Apoyarnos en herramientas de modelado es conveniente.


Referencias
● Diferencias entre SQLite y Mysql: https://guiadev.com/mysql-vs-sqlite/
● Tipos de datos de SQLite: https://code-examples.net/es/docs/sqlite/datatype3
● Tipo de dato de MySQL: https://www.anerbarrena.com/tipos-dato-mysql-
5024/
● Velocidad de operaciones en Slite con Transaction:
https://medium.com/@JasonWyatt/squeezing-performance-from-sqlite-
insertions-971aff98eef2

S-ar putea să vă placă și