Y las bases de datos, ¿relacionales, SQL o NoSQL?

¡Hola!, Espero que estén bien.

Hace unos días comentando en cierta comunidad hablando de cierta entrada en el blog de Havoc Pennington; encontramos una discusión interesante, la primer respuesta de dicha entrada en esa comunidad fue interesante, quien decía algo cómo: “Ese stack me parece interesante, sólo que en lugar de utilizar mongoDB utilizaría otra cosa, una base de datos que no sea NoSQL”. Y dejó esto cómo bonus del comentario (que me ha hecho reír):
http://www.xtranormal.com/site_media/players/jw_player_v54/player.swfhttp://www.xtranormal.com/site_media/players/embedded-xnl-stats.swf

A lo que veo cómo algo que nunca me había puesto a pensar. Intento deshacerme de SQL y sus agregados; y regreso a tratar de utilizar una capa de objetos sobre SQL para no teclear más código del que ya tecleo. Y de ahí surge mi odio a SQL mientras se trate del desarrollo de aplicaciones SIN generación de reportes (que para los reportes, de verdad no he encontrado otra mejor herramienta que SQL). Y erróneamente creí que SQL era lo mismo que bases de datos relacionales y tal; equivocado que estaba.

Ahora conocí algo que se llama REL, eso si es una verdadera base de datos relacional por completo. Digamos que Oracle, [My, Postgre, Microsoft] SQL y demás bases de datos usan parte del modelo relacional, pero les faltan otras. (Pueden revisar el proyecto rel aquí para que vean de que estoy hablando).

Por lo que digo, que es cierto, de momento no nos podemos deshacer de las bases de datos SQL o relacionales al menos para aplicaciones en donde se necesita consistencia, integridad, etc. Por ejemplo, ¿qué pasa si un tweet no aparece o se duplica?…¡NADA!. O ¿qué pasa si un check-in no aparece en foursquare?…¡NADA!. Ahora, ¿qué pasaría si Google nos regresara búsquedas duplicadas?; o peor aún, ¿qué pasaría si me duplican un cargo en PayPal?.

De momento, las bases de datos NoSQL son muy rápidas y se enfocan en cosas que (muy probablemente) las bases de datos SQL no vieron. Sin embargo SQL no es lo mismo que relacional, por lo que hay otras personas cómo las de rel vieron que el enfoque de SQL es incompleto y quizás sea la razón por la cual nunca hemos usado un motor de bases de datos 100% relacional.
A lo que voy es, el futuro en corto plazo y presente creo que serán las bases de datos relacionales y pseudo-relacionales, porqué nos ofrecen cosas conocidas y más que probadas. No dudo que los motores NoSQL cómo MongoDB tengan muy buenas bondades (de entrada me encanta eso de representar un objeto tipo JSON como un registro en BD), sin embargo es tecnología “muy nueva”, que pocos se han atrevido a utilizar y que más pocos se han atrevido a poner en producción. Quizás en un futuro con un paradigma más extendido podamos difrutar de los beneficios de estas bases de datos.

Anuncios

2 comentarios en “Y las bases de datos, ¿relacionales, SQL o NoSQL?

  1. Google utiliza nosql para los datos… y no sale duplicado… mas que nada porque están basados en cache y tienen retardo…

    No es que no nos podamos deshacer de las bases de datos relacionales. Es que la mayoría de gente no quiere, ni sabe hacerlo porque piensa de forma relacional. Ni si quiera se les ocurre plantearse no utilizar la base de datos en todas y cada una de las peticiones html que hace el usuario y por ahí es por donde esta el error. Nunca se preocuparon, o necesitaron, hacer cache. Por tanto no saben que lo relacional se pierde en esa capa y que mysql lo único que termina haciendo es entorpecer y consumir memoria innecesariamente…

    Con nosql tienes la capa de cache y la de “conversión de datos” (pasar de sql a json, para usar con ajax) en un mismo servicio… Junto con replicado y demás historias…

    No hay prácticamente nada que no puedas hacer con una nosql. El cambio es inevitable. Aunque para eso ya te digo, hay que cambiar la mentalidad primero. Y hoy día esta entrando mucho rails y demás frameworks, por lo que para según que gente pues todo esto no es necesario. Les sale casi mejor no complicarse para “cuatro” visitas. Ya que el servidor no se estresa con eso. Lo que necesitan ellos es terminar sus webs pronto, no optimizarlas en rendimiento.

    1. ummestesimon dijo:

      No lo niego. Y es donde viene lo del paradigma; y desgraciadamente en esto de los sistemas la información todo se relaciona, y sigue estando vigente por tanto lo relacional. No dije que lo vea cómo algo insustituible, pero de momento NoSql es una opción en el horizonte, tenemos que aprender a usar NoSql (que muchas veces se traduce cómo Not Only SQL). Sin embargo creo que tenemos 2 opciones o puramente relacional (algo cómo REL o Dataphor) o las NoSql pero ya más a futuro, no lo sé.

      Y de paso, si tienes un buen manual NoSql o un libro, bienvenido sea (quien dice y cambia mi manera). Saludos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s