Saltear al contenido principal

Conexión a base de datos externa desde Android: SGDB

Conexión a una Base de Datos externa desde Android
1. Conexión a base de datos externa desde Android: SGDB
2. Instalacion de gestor de base de datos MySQL con XAMPP
3. Ejemplo de conexión Android con base de datos MySQL
4. Videotutorial: proyecto App Android con conexión remota a MySQL
5. Proyecto conexión Android con MySQL: versión Android Studio – Android 5.0

En esta serie de tutoriales se tratarán los diferentes gestores de base de datos externas que se pueden conectar con aplicaciones Android y veremos un ejemplo práctico, desarrollando un proyecto que permitirá la sincronización directa con una base de datos integrada en MySQL.

Gestores de Bases de Datos externas

La conexión directa a un Gestor de Base de Datos Externo desde Android es una posibilidad completamente factible.

Si bien es cierto que el propio sistema operativo Android trabaja con SQLite sin un servidor que funcione como capa intermedia entre el S.O. y el Gestor de Base de Datos (no es posible la instalación de un servidor en nuestro dispositivo Android), la opción de poder acceder a una base de datos externa desde el propio dispositivo es una alternativa que no requiere de configuraciones especiales: bastaría con establecer permisos de Internet en la aplicación que se desarrolle, además lógicamente, de un servidor externo para realizar la conexión.

A continuación se revisarán varios SGBD (Sistemas de Gestión de Base de Datos también conocidos por sus siglas en inglés DBMS) que posibilitan la sincronización de una base de datos con una aplicación Android.

CouchDB

Gestor de base de datos de código abierto, desarrollado por Damien Katz, cuya finalidad principal es prestar servicio a aplicaciones web (licencia Apache License y liberada la versión 1.2 en Abril de 2012).

Logo CouchDBSe trata de una base de datos NoSQL, es decir, no usan el lenguaje de consultas estructurado o SQL como principal lenguaje de consultas.

Página Oficial: http://couchdb.apache.org/

Principales características:

  • Almacenamiento de datos como documentos, utilizando los pares campo/valor que proporciona JSON (acrónimo de JavaScript Object Notation, que posibilita el intercambio de datos a través de un formato ligero y accediendo a dicha información con JavaScript).
  • Estructuración por medio de vistas.
  • Permite replicar los datos para posibles pérdidas de conexión, muy útil en dispositivos móviles, actualizando los datos al volver a un estado OnLine.
  • Características de transacción ACID: Atomicity, Consistency, Isolation and Durability (Atomicidad, Consistencia, Aislamiento y Durabilidad).

FireBird

Sistema de administración de base de datos relacional de código abierto, que utiliza el lenguaje de consultas SQL, liberado por Borland en el año 2000 y escrito en C y C++.

Firebird logo

Posibilita modelos sencillos monousuario hasta desarrollos empresariales con varias bases de datos de más de 500 GB y con numerosos clientes de manera simultánea.

Página Oficial: http://www.firebirdsql.org/

Características más destacadas:

  • Soporta numerosas plataformas de hardware y software: Linux, Windows, MAC OX, Solaris etc.
  • Arquitectura multigeneracional, que permite el desarrollo y soporte de aplicaciones híbridas OLTP y OLAP.
  • Soporta procedimientos almacenados, disparadores, eventos y funciones definidas por el usuario.
  • Recomendable para desarrollar aplicaciones interoperables en ambientes homogéneos e híbridos.
  • Alto rendimiento, instalación sencilla, pequeño tamaño que facilita su distribución y buena escalabilidad (capacidad de crecimiento y adaptación a nuevas implementaciones sin perder eficiencia).
  • Arquitectura Cliente/Servidor sobre el protocolo TCP/IP.
  • Seguridad basada en usuarios/roles.
  • Posibilita el almacenamiento de elementos BLOB (Binary Large Objects).

MySQL

Sistema de gestión de base de datos relacional multiusuario y multihilo. Desarrollada inicialmente por Sun Microsystems, actualmente su propietario es Oracle Corporation. Software libre y tipo de licencia GNU GPL para aquellos proyectos que se adapten a este tipo de licencia (permite usar, compartir y modificar el software), con la opción de poder adquirir una de carácter más privativo previo pago(parte del código está bajo copyright).

Página Oficial: http://www.mysql.com/

Versiones MySQL (Fuente: http://es.wikipedia.org/wiki/Mysql):

Versiones MySQL

Características más destacadas:

  • Escrito en C y C++.
  • Sistemas de almacenamiento transaccional y no transaccional.
  • Tablas hash en memoria como tablas temporales.
  • Servidor disponible como software externo para un entorno cliente/servidor.
  • Usa GNU Automake, Autoconf, y Libtool para portabilidad.
  • Registros de longitud fija y longitud variable.
  • Diversos tipos de columnas: FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET y ENUM.
  • Soporta numerosos Sistemas Operativos: http://dev.mysql.com/doc/refman/5.0/es/which-os.html
  • Reserva de memoria basada en threads.

PostgreSQL

Es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con disponibilidad completa sobre el código fuente. Utiliza el modelo cliente/servidor, y usa multiprocesos en lugar de multihilos, para garantizar que el fallo en un proceso no afecte al resto de procesos en ejecución.

Página Oficial: http://www.postgresql.org/

Portal en Español: http://www.postgresql.org.es/

Características principales:

  • Alta concurrencia con el modelo MVCC (Acceso Concurrente Multiversión) que permite el acceso a una tabla en la que se están realizando tareas de escrituras sin bloquearla para el resto de procesos.
  • Base de Datos ACID.
  • Funciones y procedimientos almacenados en varios lenguajes de programación, entre los que se encuentran PL/pgSQL, PL/Perl, PL/Python y PL/Tcl.
  • Acceso encriptado vía SSL.
  • Integridad referencial(es aquella que garantiza que un registro o fila existente se relaciona con otras entidades válidas existentes en la base de datos).
  • Soporta copias de seguridad en caliente.
  • Límites de tamaño de la estructura de Base de Datos:
    • Base de Datos: Sin límite
    • Tabla: 32 TB
    • Fila: 1,6 TB.
    • Campo: 1 GB
    • Filas por Tabla: Ilimitado
    • Nº Columnas por Tabla: Entre 250 y 1600 dependiendo del tipo de dato.
    • Nº de índices por Tabla: Ilimitado.

Esquema PostgreSQL

*Imagen que muestra el Sistema General PostgreSQL (autor: http://www.postgresql.org.es/sobre_postgresql  Licencia CC BY-NC-SA 2.5))


Autor:  Academia Android – Jose Antonio Gázquez

Esta entrada tiene 10 comentarios

  1. Hola trabajo desde mi smartphone y me es imposible instalar mysql en android vamos no existe, y lo que tengo es una aplicacion que me permite crear bases de datos sqlite y guardarlas en la SD ,no recuerdo su nombre. Y lo que pretendo realizar es crear una aplicacion que al abrirla haga una conexion a mi base que tengo en la SD para que pueda iniciar el usuario al pinchar un boton. Vamos un login, y e visto metodos donde se crean las bases de datos en una clase dentro de mi aplicacion pero no me sitve ami esi, necesito conectarme con un driver en java es el jdbc pero para android no se si exista para una version de SQlite. Cres que exista tal driver para sqlite localhost o es imposible y soli hay para mysql. Gracias

  2. Hola José, en primer lugar agradecerte tu interés.
    Hasta donde yo sé no tiene mucho sentido instalar una base de datos pensada para funcionar en un servidor dentro de un dispositivo Android. Más aún cuando este sistema operativo ya incorpora un API de acceso a base de datos capaz de almacenar datos al nivel de cualquier base de datos relacional .
    Con ella podrás hacer lo que pretendes: conectar tu aplicación con la base de datos y recuperar los contenidos. La conexión se realiza por medio de un API específico de Android no via JDBC como se hace en Java.
    Me permito recomendarte que revises nuestros tutoriales sobre Sqlite (http://academiaandroid.com/tag/sqlite/) así como nuestro curso sobre esta base de datos (http://academiaandroid.com/curso-aplicaciones-android-con-base-de-datos-sqlite/)
    Gracias por tu interés

  3. Hola, quisiera saber como puedo conectar una app en android que estoy haciendo en qt a un servidor que tengo en una pc en postgresql, y que se pueda conectar desde cualquier lugar del mundo, gracias

    1. Hola José,
      te agradecemos tu interés en nuestros contenidos pero no tenemos un servicio de asesoramiento/soporte para poder atender este tipo de cuestión que planteas (para ver ayuda a usuarios de Acceso Premium: http://academiaandroid.com/suscripcion/)

      Un cordial saludo

  4. Hola, quiero saber si puedo conectar una aplicación con una pagina de la cual no soy propietario. Es decir usar su base de datos para que mi app funcione correctamente

    1. Hola Federico, no estamos seguros de entender del todo tu pregunta.
      Aunque una página web se puede crear dinámicamente (PHP, Python,…) extrayendo información de una base de datos del servidor web, si esa página no es tuya, no puedes acceder a dicha base de datos. Tu solo ves el ‘resultado’, que es básicamente una página HTML.
      Otra cosa es que hubiera un servicio web o API al que te pudieras conectar, que sería la capa intermedia entre tu app y la bbdd externa.
      Puedes ver sobre ésto en nuestra serie sobre Servicios Web: http://academiaandroid.com/servicios-web-arquitectura-rest/
      También tratamos un ejemplo de conexión con un servicio web de prueba en nuestro curso de Programación de Apps con Android Studio: http://www.digitallearning.es/curso-android-desarrollo-aplicaciones.html
      Saludos

  5. Hola, estoy viendo los tutoriales de conexión a MySQL y me parecen muy interesantes. Me gustaria saber si han probado a realizar una conexión con la base de datos FIREBIRD, que tambien dispone de drivers JDBC (Jaybird2_2_4)? Yo lo he probado pero me da un error extraño en tiempo de ejecución. Si lo han probado tienen algun ejemplo?

    1. Gracias Antonio por tu comentario.
      Respecto a Firebird, lo sentimos pero no lo hemos probado.
      Saludos

  6. Buen día.

    He estado leyendo sobre Firebase, nueva base de datos NoSQL de Google. Tienen una versión básica gratuita (por el momento) así como otras pagas.

    Quisiera saber su opinión en caso que la hayan usado o analizado, respecto a si le ven a este servicio un buen futuro en este medio tan dinámico, dada su propuesta innovadora.

    Cordial saludo,
    JFC

    1. Hola Juan Felipe,
      la vemos una opción muy interesante. Quizás algunos aspectos de la bbdd NoSQL pueden no gustar a los que están acostumbrados a las bbdd relacionales SQL pero está claro que la plataforma ofrece muchas posibilidades para la gestión de las Apps y la puesta en marcha, al menos en lo básico, no es difícil.
      Teníamos previsto haber publicado algo sobre Firebase pero desgraciadamente el colaborador que lo estaba estudiando y empezando a elaborar no ha podido continuarlo por otros proyectos profesionales que ha tenido que atender y se ha quedado por ahora pendiente.
      Saludos

Los comentarios están cerrados.

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies.    Más información
Privacidad