Bases de datos para móviles (J2ME) Parte I

by

Esta es una entrada algo más técnica de lo habitual ya que de vez en cuando programamos!…disculpen las molestias.

Para analizar el mercado del software de bases de datos para terminales móviles hemos de comenzar preguntándonos qué es un terminal móvil. Sin entrar en detalle, la definición más perceptible a día de hoy es la que distingue entre teléfonos móviles y el resto (PDAs, SmartPhones, etc.) La diferencia entre ambos radica principalmente en la limitación de memoria y velocidad del procesador. Si una PDA de gama media cuenta con una memoria RAM de al menos 64 Mbytes y varios cientos de megahertzios, los teléfonos convencionales difícilmente superan los 600 Kbytes de memoria física y los 60 MHz.

De entre todos los modelos de bases de datos que han surgido, son dos tipos los que prácticamente centran toda la atención. Por un lado las bases de datos relacionales (RDMS) como SQL Server, Oracle, MySQL, etc. Y por otro las bases de datos orientadas a objetos (OODBMS). Las grandes bases de datos o que deben ser accedidas concurrentemente por gran cantidad de usuarios, han apostado por el modelo relacional. Sin embargo, el debate sobre su idoneidad en determinados casos se lleva cuestionando desde hace tiempo, debido a que:

  • Casi todas las RDMS usan SQL como lenguaje para peticiones. Este es un lenguaje con más de 30 años de antigüedad, que en su origen no estaba pensado para modelos relacionales, y que apenas ha sufrido mejoras en su vida.
  • SQL, para acelerar el procesado de las peticiones genera archivos de gran tamaño.
  • No todos los modelos de datos requieren un modelo relacional para su almacenamiento. Gran parte de las bases de datos geoespaciales usan el modelo orientado a objetos, como es el caso de PostGis.

Cuando una aplicación (móvil o no) necesita acceder a datos de forma remota, el modelo relacional está plenamente justificado, ya que la carga de trabajo la soporta un servidor tan potente como queramos.

Sin embargo, cuando una aplicación necesita procesar información almacenada de forma local, la base de datos debe estar en el terminal móvil. En este caso, una base de datos relacional no es una solución práctica, por la gran cantidad de recursos que un motor SQL y su optimizador necesitan. Para el tipo de aplicación común en teléfonos móviles, no es necesario implementar una base de datos relacional, ya que existen mejores opciones.

Las bases de datos orientadas a objetos pueden mejorar el rendimiento en dispositivos móviles y facilitan mucho el desarrollo. La principal ventaja es la integración transparente con lenguajes de programación orientados a objetos, como es el caso de Java. Con una base de datos relacional, la aplicación debería transladar la representación relacional de los datos a la representación en forma de objetos que requiere el lenguaje (en Java todo son objetos). Veámoslo con un ejemplo:

class Persona {
public String nombre;
public String apellido;
public int edad;
public long sueldo;
};

Con una base de datos relacional, la aproximación que seguiríamos para consultar los datos sería algo parecido a esto:


// Aproximación con una RDBMS
Person consultarPorNombre(string apellido){
Statement stmt = con.createStatement();
stmt.setString(1, apellido);
ResultSet cursor = stmt.executeQuery
(”SELECT * FROM Persona where apellido like ” + apellido + “‘%’”);
if (!cursor.next()) {
cursor.close();
return null;
}
Persona p = new Persona();
p.nombre = cursor.getString(”nombre”);
p.apellido = cursor.getString(”apellido”);
p.edad = cursor.getInt(”edad”);
p.sueldo = cursor.getLong(”sueldo”);
return p;
}

Usando el modelo orientado a objetos, la cercanía al propio lenguaje de programación nos
proporciona una integración casi automática:


// Con una base de datos orientada a objetos
Person consultarPorNombre(string apellido){
return personIndex.prefixSearch(apellido);
}

En el siguiente capítulo veremos algunas de las soluciones disponibles y se analizarán en cuanto a rendimiento.

Tags: , ,

One Response to “Bases de datos para móviles (J2ME) Parte I”

  1. ector Says:

    Gracias por lo aprendido

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: