¿Cómo escoger una base de datos?

Todos los que trabajamos en el área de informática hemos tenido que preguntarnos en algún momento, ¿Qué base de datos debo usar? ¿Cómo la escojo?. La decisión de utilizar una base de datos en particular (Base de Datos para este contexto es un Manejador de Base de Datos) puede ser determinante en el éxito de un proyecto, si nos basamos en tres aspectos: costo, tiempo y funcionalidad.

Por lo que ya les dije, decidí traducir este artículo escrito por Gints Plivna en donde nos describe un proceso formal del cómo evaluar y escoger una base de datos, acompañado de un listado de las bases de datos con el que podríamos toparnos en la industria.

¿Cómo escoger una base de datos?

por Gints Plivna

Criterios para el proceso de decisión

Usaré el término “Base de datos” en este artículo refiriendome realmente a Sistemas de Administración de Bases de Datos (DBMS/RDBMS).

Así que tiene un nuevo proyecto y puedes al menos forzar o tomar parte en el proceso de selección de bases de datos para el mismo. ¿Cuáles son los criterios que debe considerar para gastar la menor cantidad de dinero en su proyecto? Este artículo intenta proporcionarle al menos una introducción básica a dicho proceso y las ideas que debe considerar.

El artículo consta de dos grandes secciones, primero enumeró y explico los criterios a considerar en el proceso de selección de bases de datos. En la primera parte trataré de ser tan imparcial como pueda, considerando mi experiencia previa. Hablando de criterios no haré referencia a ninguna base de datos en particular 🙂

En la segunda parte presento una lista de bases de datos y enlaces a sus sitios web. Aquí por supuesto que no seré imparcial y daré mi opinión sobre algunas.

Criterios para el proceso de selección

1. Todas las bases de datos son diferentes

Este primero no es un criterio en sí. Este primero es más bien una premisa que debe entender en todo este proceso – cada base de datos es particular como los autos de distintas marcas. Los carros varían desde un Zaporozhec hasta un Ferrari, Maybach y tractores mounstrosos. Esa situación es igual en las bases de datos. Usted no podría cargar una carga pesada en un Ferrari. Si tratara de usar las mismas velocidades en una caja de cambios manual que en una automática la rompería. Es lo mismo con las bases de datos, existen muchos fabricantes, tienen diferentes arquitecturas y no puedes aplicar las mis buenas prácticas a todos.

2. Entender los requerimientos actuales pero planear a futuro

Este es el criterio principal. Usted debe entender los requerimientos funcionales y no funcionales y escoger la base de datos que mejor se ajuste a estos requerimientos. Los requerimientos deberían de ser al menos los siguientes:

  1. Cantidad de datos y tipo de datos (texto, binarios, espacial u otros tipos específicos)
  2. Número simultaneo de usuarios (concurrencia a la base de datos)
  3. Disponibilidad: cuanto tiempo puede permitir tener de baja su base de datos.
  4. Escalabilidad: qué hará cuando la cantidad de datos y el número de usuarios aumente.
  5. Seguridad: cuanto necesitará de caracterísiticas como seguridad e encripción de datos, administración de usuarios, privilegios.
  6. Manejo y administración: cuan amigable quiere que sea la administración de su base de datos.
  7. Que otras características “cool” quiere obtener de su base de datos.

Es razonable elaborar los requerimientos en función de sus recursos y necesidades reales. Por su puesto que es recomendable ver un poco hacia el futuro y modificar los requerimientos acorde al mismo, pero eso debe hacer con cuidad.

Algunos ejemplos. Debe considerar si realmente necesita un 99.99% de disponibilidad (menos de una hora fuera de servicio al año) si su sistema es usado por las noches tan solo por un par de usuarios que pueden fácilmente esperar hasta la siguiente mañana. La seguridad es un aspecto importante, sin embargo tiene que recordar que no hay cura para la estupidez de las personas. La alta disponibilidad  es una asunto muy complejo, que su base de datos este arriba no significa que  los usuarios podrán acceder a los datos en caso de que la red falle. Debe tomar en cuenta cosas de las que ni se imagina, respaldos para aires acondicionados en caso un aire acondicionado falle en un caliente día de verano, pues ningúna granja de servidores o tipo de resplado de información solucionará el problema.

3. Tome en cuenta sus experiencias previas

Tome en cuenta sus experiencias previas y las habilidades desarrolladas trabajando con bases de datos. Como dije, son diferentes. Sí usted escoge una base desconocida o semi-desconocida, necesitará tiempo para familiarizare con ella, para entender sus herramientas, para entender en gran medida sus características, sus fortalezas y sus debilidades (que por lo general no están listadas juntas). Probablemente va a necesitar que sus administradores y desarrolladores de bases de datos asistan a un curso, generando un costo extra y la ausencia de su personal.

4. Situación actual -> La base de datos debe cooperar con sistemas existentes o es el primero.

Hay una gran diferencia si su proyecto es el primero en determinada área o si debe considerar a otros sistemas con los que debe colaborar. En el primer caso tiene mucho mayor libertad con sus opciones. En el segundo caso, debe lidiar con el hecho que usualmente las bases de de datos se integran más fácilmente con bases de datos del mismo fabricante que las de la empresa rival. En el caso de que su elección de base de datos y las actuales sean diferentes, usted o su cliente deben lidiar con diferentes niveles de soporte no solo a nivel técnico sino también administrativo.

5. Evaluar la oferta laboral

Asegúrese de podrá encontrar a una persona experta en caso de que su base datos falle. Aunque sea su empleado o un especialista de una empresa consultora, debe tener al menos una persona mas en quien confíe. Es muy desagradable pagar mucho porque un día alguien tenga que restaurar su base de datos pero es mucho más desagradable darse cuenta de que no hay nadie que lo pueda hacer.

Debe considerar que los administradores y desarrolladores de bases de datos de diferentes fabricantes pueden tener diferentes salarios. Esto puede variar de vez en cuando y según el lugar pero definitivamente se presentan estas variaciones. La oferta laboral para una base de datos repercute en los salarios, de igual forma repercute en la posibilidad de conseguir nuevos desarrolladores.

6. Evaluar costos directos

6.1. Licencias

Este es el aspecto más común del que todos hablan en el proceso de selección. Usted puede encontrar numerosos artículos que aseguran que una base de datos “X” es más barata que una base de datos “Y” comparando solo los costos de licenciamiento. El costo de la licencia es tan solo uno de los factores que influyen en el costo directo, sin mencionar de costos indirectos asociados a determinada base de datos.

Mientras analiza los costos recuerde:

  • Las diferentes bases de datos tienen diferentes modelos de licenciamiento, por ejemplo, basado en número de usuarios, número de procesadores o cantidad de memoria RAM.
  • El precio de lista es solo una referencia, probablemente pueda conseguir precios especiales, especialmente si es un cliente grande.
  • Las bases de datos de ciertos fabricantes tienen diferentes versiones, por ejemplo versión empresarial o versión estándar las cuales tienen diferencias significativas en costos. ¿En realidad necesita la versión empresarial? Usualmente la primera elección.  De nuevo recuerde el primer punto, las bases de datos son diferentes, por lo tanto nunca compare los precios de “la misma edición” entre bases de datos categóricamente. Vea adentro para saber que contiene cada edición, lo que para unas es empresarial para otras podría ser estándar.
  • Explore los modelos de licenciamiento, los descuento, las características y opciones adicionales, no deje que el vendedor de encasille el precio, exija el detalle de la licencia.

6.2. Soporte

Investigue cuanto cuesta el soporte, y que ofrece ese soporte. Usualmente existen muchos niveles con diferentes características y precios.

6.3. Características adicionales

Algunas bases de datos contienen características adicionales mas allá de “la versión empresarial”, por un precio adicional. Si realmente no necesita esas características puede solicitar descuentos adicionales de su representante de ventas.

6.4. Requisitos del sistema operativo

Algunas bases de datos requieren sistemas operativos específicos. Los sistemas operativos como las bases de datos son diferentes, requieren diferentes tipos de administración y de habilidades. En el proceso de evaluación los costos de un sistema de operativo debe utilizar criterios análogos a sistemas operativos.

7. Fallo de la base de datos

¿Cuál es la probabilidad de que la base de datos que escogió no responda?¿Quién la recuperará?¿En cuánto tiempo?¿Cuanto tiempo pierde usted o su cliente durante ese tiempo?

8. Industrias específicas

Existen industrias (sistemas de información geográfica por ejemplo) que requieren bases de datos especiales o al menos que tenga soporte para esa industria en particular. Por supuesto que si usted así  lo quiere puede ser un pionero e iniciar la adaptación de esa base de datos a una industria pero eso podría costar mucho tiempo y recursos.

9. Productos específicos

Si ha escogido un producto en particular y que el mismo trabaje  con una base de datos diferente, debe asegurarse que no tendrá consecuencias negativas al mismo. Si no está seguro, consulte cual es la base de datos preferible. Si todas son igual de buenas puede estar seguro que todas son igual de malas ;). Definitivamente no le deseo a nadie que sea el primer usuario en una base de datos para un producto.

10. Comuniad de usuarios existente, recursos en línea y popularidad

Es importante entender que son los recursos de la comunidad de usuarios, foros, listas de correo, conferencias, seminarios. También identifique cuales de los artículos, publicaciones, manuales harán su vida más fácil en caso de una emergencia. No querrá tener que ser el primero en solucionar una gran cantidad de problemas, ser el primero en solucionar algunos es suficiente.

11. Hardware necesario

Entienda que plataformas de hardware son las soportadas y cuáles son los parámetros mínimos. Por supuesto que depende la cantidad de datos esperada, de la cantidad de usuarios y la carga esperada en general.

12. Criterios de decisión

Para ser sincero, no espero que usted siga el proceso de decisión que describo arriba. 😉 Todavía más, estoy muy seguro que muchas veces creará un pequeño sistema para 5 usuarios para el que no le importa la disponibilidad ni la seguridad. Pero la cosa más importante, la que quisiera relatar-> el costo de la base de datos no es el mismo que el costo de la licencia. No! Entre más crezca su sistema menor es el impacto el costo de la licencia.

Si decide utilizar un metodo CTP (costo total de la propiedad) para escoger su base de datos, los criterios mencionados arriba pueden ser datos importantes para dicho análisis.

13. Enlaces similares

Existe un artículo artículo de Lewis Cunningham “Una guía completa para escoger bases de datos para novatos” que explica temas similares.

Lista de Bases de Datos

1. Bases de datos más populares

Según el artículo de Gartner “Participación de mercado de bases de datos relacionales” existen tres fabricantes principales. Estos son: Oracle, DB2 y SQL Server de Oracle, IBM y Microsoft respectivamente. La competencia es usualmente algo bueno, existe una rivalidad sin fin por ser el mejor ( sin saber exactamente el significado de “el mejor”) que también permite la distribución de licencias express (sin costo) de sus productos.

De los productos de código abierto me gustaría primero mencionar a dos de ellos, MySQL y PostgreSQL. El lema del primero es “La base de datos código abierto más popular del mundo”, para el segundo el lema es “La base de datos código abierta más avanzada del mundo”. Como ya debe haberlo imaginado, estas también tienen su propia pelea y están tratando de tomar un pedazo del pastel.

De nuevo, un listado de las bases de datos más populares:

DB2
MySQL
Oracle
PostgreSQL
SQL Server

2. Otras bases de datos

Usted debe recordar que ninguna de las listas es una lista definitiva de todas las bases de datos. Definitivamente hay otras y probablemente más populares que las que se encuentran en las listas.

Adabas
Access
AllBASE
Derby
FileMaker Pro
Firebird
FirstSQL
FoxPro
FrontBase
Greenplum
Informix – históricamente  Informix fue una de las tres grandes, pero tras la compra de IBM probablemente le espera un muerte lenta.
Ingres
OpenBase SQL
Pervasive PSQL
SESAM/SQL-Server
SQLBase
SQLite
Sybase Adaptive Server Enterprise – El ancestro de MS SQL Server.
TimesTen
Teradata – usualmente utilizada para almacenes de datos. Sobre almacenes de datos y las soluciones más populres puede leer este artículo Magic Quadrant for Data Warehouse Database Management Systems, 2007.

3. Bases de datos propietarias de Oracle

Es interesante notar que Oracle es dueño de al menos las siguientes bases de datos:

Oracle DB
Inno DB

TimesTen

Berkley DB

Oracle Lite

Coherence

RDB

CODASYL

Express Server

Hyperion Essbase

Stellent

4. Una nota final

Con el proceso de selección de base de datos, todos los otros procesos asociados y otras pesadillas solo están iniciando. Para minimizar los problemas puede seguir muchas de las mejores prácticas y liniamientos que puede encontrar en ¿Tiene un basurero o una base de datos? y en Estándares en Oracle para nombrar tablas, columnas, indices llaves y secuencias.

Sobre el autor

Gints Plivna gints.plivna@gmail.com es un analista de sistemas en  Rix Technologies Ltd. (www.rixtech.lv). El tiene experiencia trabajando con oracle desde 1997 y sus intereses han sido principalmente el análisis de requerimientos para sistemas, diseño, desarrollo y afinación de SQL.

Su contacto es:

e-mail – gints.plivna@gmail.com

website – http://www.gplivna.eu/

Licenses*

This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

First edition: 2007-11-26

Added link to Lewis Cunningham article: 2008-05-13

*: Decidí no traducir la licencia, pero es un bien creativo, lo que implica que puedo distribuirlo, citando al autor y sin cambiar su contenido.

3 thoughts on “¿Cómo escoger una base de datos?

Leave a Reply

Your email address will not be published. Required fields are marked *