Resumen
Que el lector se introduzca sobre definición básica de DataBase Management System, como también la concepción elemental de lo que es una base de datos, además que el leyente esté al tanto sobre los distintos DataBase Management System que existen para los dispositivos móviles.
Asimismo que el lector conozca las tres formas nativas de almacenar los datos persistentes en el Sistema Operativo de Android, los paquetes usados para la conexión a las base de datos, también la administración de base de datos privados para SQlite, el compartimiento de datos entre aplicaciones, por último los paquetes básicos usados para la creación o realización de querys para la base de datos SQLite.
Objetivos
- Estudiar los diferentes DataBase Management System para los dispositivos móviles.
- Identificar los paquetes de Android usados para conectarse a otros DataBase Management System.
- Conocer paquete utiliza Android para las base de datos privadas.
Desarrollo del tema
SISTEMA DE ADMINISTRACION DE BASE DE DATOS
Un DataBase Management System (DBMS) es un software de aplicación su función básica es la administración de las base de datos, como también proporciona la interacción con otras aplicaciones, usuarios, distintas base de datos almacenados. Los DBMS pueden clasificarse por modelos como relacionales, espaciales, grafos, orientado a objeto, etc.
Además los DBMS, permiten la definición de la estructura según el modelo usado, por ejemplo la definición de la estructura en un modelo relational se llama relación (tabla) y esta se crea través de DDL, para espacial la estructura es feature, modelo orientado a objetos su estructura es Node, etc.
En este artículo se enfoca al modelo relacional, dicho eso los DDL son usados para crear la estructura de la relación y estas utilizan la Data Manipulation Languague (DML) para la inserción, actualización, consulta de las tuplas (dato) de las relaciones de las bases de datos que contenga.
Los DBMS utilizan Data Control Language (DCL) este lenguaje permite controlar el procesamiento de las transacciones de las bases de datos.
Las bases de datos pueden comunicarse con distintas DBMS a través de Structured Query Language (SQL) y Open Database Connectivity (ODBC) o Java Database Connectivity (JDBC).
BASE DE DATOS
Sabemos que un DBMS es principal función básica es la administración de base de datos a través de la definición de su estructura relacional, manipulación de tuplas y control de la datos. En realidad una base de datos o Data Base (DB) no es más que una colección organizada datos.
DBMS PARA MOVILES
SQL ANYWHERE
Es un Relational Database Management System (RDBMS) es un producto de Systemanalyse und Programmentwicklung (SAP). Es usada como base de datos móviles incluye una sincronización de base de datos. Además soporta varias interfaces estándar ODBC y JDBC.
SYBASE ADAPTIVE SERVER ANYWHERE (ASA)
Es un RDBMS de alto rendimiento, incluyen transacciones, e incluso un optimizador de consultas, ASA opera en varias plataformas además permite la establecer conexiones a través de ODBC, JDBC, ADO.NET, etc.
MICROSOFT SQL SERVER COMPACT (SQL SERVER CE)
Es modelo RDBMS libre de descarga, distribución y uso, usado para las base de datos de los dispositivos móviles o establecer conexiones a través ADO.NET.
ORACLE DATABASE LITE
Este motor de base de datos diseñado para dispositivos móviles, son ejecutado dentro del dispositivo móvil, además Oracle Database Lite proporciona la infraestructura para ejecutar aplicaciones en toda la red de la organización utiliza la infraestructura móvil de Oracle Database Lite se encarga de sincronizar, conectar, asociar la información con otros DBMS.
ORACLE DATABASE MOBILE SERVER
Es un servidor que ofrece la sincronización de base de datos remotas sincronizados en las base de datos Oracle backend.
SQLITE
Es un biblioteca de software esta puede ser implementa en varios sistemas operativos móviles, es ligero, es autónomo, sin servidor, sin configuración, es un motor de base de datos SQL.
ALMACENAMIENTO DE DATOS EN BASES DE DATOS SQL PARA ANDROID
Antes de hablar del almacenamiento de datos en las base de datos, es necesario conocer que en Android utiliza tres formas nativas para almacenar los datos persistentes, es decir como los datos se almacenan en un dispositivo externo como el disco duro y no almacenada temporalmente en la Random Access Memory (RAM).
La Application Programming Interface (API) SharePreferences permite almacenar un conjunto de dato clave-valor en su carpeta de datos, estas se almacena dentro de la carpeta de la aplicación en un archivo xml. Otra forma de persistencia de datos es File, esto se utiliza para manipular grandes cantidades de datos, estos archivos pueden ser almacenados internamente o externamente de la aplicación.
Por ultimo Android puede realizar la persistencia de datos en una base de datos utilizando SQL. Trataremos sobre esta última, Android utiliza una base de datos privados a esto nos referimos que solo la aplicación puede acceder, modificar, consultar, hacer uso de la información almacenada. Ahora bien si otra aplicación se desea consultar y modificar información de otra base de datos se utiliza el Content Providers de Android.
Para el almacenamiento de datos, Android utiliza SQLite como modelo RDBMS. SQLite es una biblioteca implementada en Android es autónomo, sin servidor, sin configuración, permite realizar transacciones a través de la serializabilidad de datos, es un motor de base de datos SQL y por ultimo SQLite no cuenta con todas las características de un RDBMS por ser ligero y va incrustado en la aplicación no es cliente-servidor.
PAQUETE JAVA.SQL PARA ANDROID
Android proporciona el paquete java.sql donde en ello convergen interfaces y clases para las conexiones de JDBC. La interfaz java.sql.Drive nos permite controlar JDBC, las instancias son devueltas por java.sql.DriverManager, este Drive utiliza Uniform Resource Locator (URL) para conectarse con JDBC.
java.sql.DriverManager proporciona la gestión de los Drivers JDBC, Android no incluye ningún Driver JDBC por defecto, la cual se debe de instanciar una durante la ejecución de la aplicación, DriverManager carga los Drivers JDBC. Otra alternativa de interfaz de conexión es javax.sql.DataSource.
PAQUETE ANDROID.DATABASE
Java.sql proporciona conexión a los direfentes DBMS existen en el mercado como por ejemplo Oracle Database, Microsoft SQL Server, MySQL, etc.
Para un mejor rendimiento a las conexiones de JDBC Android proporciona el paquete java.database esta contiene clases para administrar las bases de datos privadas para ello se utiliza la clase android.database.sqlite nos permite administrar y realizar operaciones pertinentes en la base de datos SQLite. Si se desea compartir datos en múltiples aplicaciones se utiliza android.content.ContentProvider.
CREACIÓN DE UNA DB Y CONSULTA CON SQLite DE ANDROID
Para la creación de una base de datos se utiliza el paquete android.database.sqlite y la clase SQLiteOpenHelper nos permite crear y actualizar la base de datos privadas, para realizar consulta, inserción, actualización y eliminación utilizar la clase SQLiteDatabase estas dos clases están contenidas en el paquete.
Conclusiones
En la industria existe varios software de DBMS para los dispositivos móviles según las necesidades podemos mencionar SQL Anywere de SAP, Sybase ASA, SQL Server CE, Oracle Database Lite, Oracle Database Mobile Server, SQLite todos
Para la conexión a los distintos DBMS Android proporciona el paquete java.sql utilizando la interfaz java.sql.Drive para administrar JDBC.
La administración de las bases de datos privados Android utiliza el paquete java.database de su clase android.database.sqlite.
Recomendaciones
Realizar un estudio e investigación sobre el software DBMS para implementarlo a los dispositivos móviles así garantizar el óptimo funcionamiento de la aplicación para la realización de conexión, consultas, actualizacion de las bases de datos.
Android proporciona el paquete java.sql para realizar las conexiones con otros DBMS, es necesario profundizar para establecer conexiones estables.
El paquete java.database es recomendado para agilizar la aplicación estableciendo base de datos privadas o compartiendo datos a través de content providers.
Bibliografía
Date, C. (2001). Introducción a los sistemas de bases de datos. Editorial Pearson Educación.
López, E. (2015). 100 Preguntas y Respuestas para trabajar como Desarrollador Android Editor Enrique López Mañas
Robledo, C. et at. (2012). Programación en Android. Editor Ministerio de Educación.
E-grafía
Developers Android (2016). android.database.sqlite. Extraído el 16 de Abril de 2016 http://developer.android.com/reference/android/database/sqlite/package-summary.html
Developers Android (2016). ContentProvider. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/android/content/ContentProvider.html
Developers Android (2016). Driver. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/java/sql/Driver.html
Developers Android (2016). DriverManager. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/reference/java/sql/DriverManager.html
Developers Android (2016). Saving Data in SQL Databases. Extraído el 16 de Abril de 2016 http://developer.android.com/intl/es/training/basics/data-storage/databases.html
Orozco, A. (2012) Base de Datos Moviles. Extraído el 16 de Abril de 2016 https://modelosbd2012t1.wordpress.com/2012/03/15/base-de-datos-moviles-3/
SQlite. (2016). About SQlite. Extraído el 16 de Abril de 2016 https://www.sqlite.org/about.html