NoSQL vs RBDMS

Forums: 

Saludos Amigos,

Tengo mis dudas sobre este tema

Cuales son las ventajas y desventajas?

Mas que nada porque soy fan de PostgreSQL y lei esto en la nota de lanzamiento:

[quote]Tras una gran discusión, me complace anunciar que el
Equipo de PostgreSQL central ha decidido que el tema principal de la 9.1
lanzamiento, en 2011, será "NoSQL".

Hay una tendencia creciente hacia la base de datos NoSQL, con los principales sitios
como Twitter y Facebook a utilizar ampliamente. NoSQL bases de datos
a menudo incluyen varios maestros de replicación, clustering y failover
características que han sido solicitados en PostgresSQL, pero han sido
extremadamente difícil de implementar con SQL, que nos ha impedido
avanzar Postgree en la forma en que nos gustaría.[/quote]

Espero sus comentarios y experiencias

Gracias

sobre nosql en pgsql

Supongo que te refieres a este anuncio: http://archives.postgresql.org/message-id/t2h937d27e11004010113la68fb3e2v3e66ef033e626d35@mail.gmail.com

Fijate en la fecha abril 1 del 2010... dia de los inocentes para gran parte del mundo.
Nunca hagas caso de correos enviados un 1 de abril.

El proyecto PostgreSQL no tiene intenciones de cambiar NoSQL, la sola idea es absurda... NoSQL en si es absurdo, es volver a la epoca de los archivos de texto, pierdes integridad, pierdes consistencia, durabilidad y aislamiento... sin hablar de la habilidad de accesar concurrentemente...

Eso es solo una tendencia que persiguen los que no saben de SQL y no quieren aprender nada que los haga pensar lógicamente (generalmente webmasters y otras criaturas inferiores), hace poco alguien comentaba que eso pasara tal como paso el impulso por las bases XML. Quiza nos equivoquemos y me quedare sin trabajo, pero hasta eso no dejo mi modelo relacional.

Jaime Casanova
www.2ndQuadrant.com

Saludos, Bueno por lo que veo

Imagen de nestor.davila

Saludos,

Bueno por lo que veo eres DBA, yo nop, soy desarrollador mortal :-P

Pero según lo que he leído es mas rápido, seguro y es basado en ciertas cosas de RDBMS pero excluyendo SQL

Sinceramente no se que tiene de malo el SQL pero bueno

Espero comentarios

Lo de criaturas inferiores dolió

Imagen de iknaxio

Lo de criaturas inferiores dolió :? . Yo creo que no puedes usar Motores Relacionales para todo, y como también noSQL no sustituirá a los Motores Relacionales. Cada cosa para la tarea que mejor hace, allí está FB y su tráfico descomunal, pero no me imagino manejar un GIS en Cassandra.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

Lo de criaturas inferiores dolió

Oh eso es mi resentimiento hablando...
nunca pude conseguir un puesto de DBA. Aun no estoy seguro de que ese puesto exista realmente en el país (es decir, que exista como lo que realmente es y no solamente como el tipo ese raro que solo piensa en SELECT's)

Gracias a Dios que encontre a 2ndQuadrant (o que ellos me encontraron, aun no me decido) :D

Jaime Casanova
www.2ndQuadrant.com

Depende

Imagen de bureado

Depende de la aplicación.

Yo veo una tendencia hacia desarrollar "devops", programadores con skills de infraestructura, eliminando lógica de las bases de datos.

Pero en el software, no todo es la licencia, la madurez de un proyecto viene determinada por su esfuerzo en I+D, gobernabilidad y muchos otros factores.

En particular, muchas aplicaciones aun dependen de transaccionalidad en la base de datos debido a que es una forma de delegar (reducir deuda técnica) cierta lógica a una aplicación con mejor performance y mayor madurez que lo que un programador podría, con menos tiempo y menos dinero, hacer ágilmente con su lenguaje preferido.

De igual forma, aplicaciones más complejas que confíen en escenarios de clusterización probablemente requerirían cierta transaccionalidad y una capa de complejidad que haría que NoSQL no aporte valor.

Pero en muchos otros escenarios, NoSQL puede ser una buena opción. Particularmente lo usaría para aplicaciones orientadas a documentos (y no a tablas tradicionales) para permitir modelos de datos más flexibles.

José Miguel Parrella Romero (@bureado)
Debian Developer & Open Source Strategist

Depende de la aplicación

[quote]Depende de la aplicación.[/quote]

yo lo refrasearía por "depende del problema" bajo la premisa de que la aplicación es una serie de problemas a resolver :)

muchos salieron de clase pensando que todo se resuelve con un modelo de 3 capas, otros decidieron que los objetos deben dominar el mundo y alguno me dijo alguna vez que en un sistema web no se puede usar una base normalizada... el asunto es que tratan de encajar la aplicación en su visión del mundo sin detenerse a pensar en términos del problema a resolver.

como menciono Jose Miguel uno se ahorra mucho poniendo cierta lógica en la base (ya sean constraints o funciones). pero muchos no lo hacen porque les enseñaron que eso es otra "capa" asi que se complican la vida implementando en librerias cosas que postgres valida en el tipo de datos hace siglos (por ejemplo que una direccion de red sea valida, vean el tipo de datos inet) y reimplementan en la aplicación constraints unique, foreign key, check (o el nuevo exclusion constraint)... algunos framework incluso se ocupan de implementar JOINs en lugar de dejar a la base hacer su trabajo.

el resultado son sistemas inmantenibles, de los que nadie tiene idea de como funcionan o donde valida algo o porque a veces valida de un modo y a veces de otro. o que son incapaces de mantener la norma ACID (aunque la base si la cumpla).

yo por mi parte sali del aula pensando en relaciones e integridad y consistencia asi que para esos casos en que en realidad el modelo relacional no parece muy viable usare hstore o ltree o un "foreign data wrapper" en mi base postgres y dejare los archivos de texto para los archivos de configuracion :D

Jaime Casanova
www.2ndQuadrant.com

Muy buen aporte jaime y es

Imagen de nestor.davila

Muy buen aporte jaime y es verdad muchos desarrolladores (tengo colegas) que piensan que las N capas resuelven todo.

Ahora otra cosa al menos yo lo hago así, independientemente de las capas por default q existen y la que yo me quiera inventar en el momento :P , creo que una buena practica de desarrollo es apuntar la programación del lado del servidor en la BD, esto optimizaría en muchos aspectos la aplicacion y su desempeño.

Por otro lado tengo claro que ninguno de estos escenarios trata de reemplazar al otro refiriéndome a NoSQL y RDBMS, cada cual tiene su área donde mejor se desempeña, lo poco que practicado con MongoDB me ha dado una respuesta como que esta me servirá en un groupware project.

Saludos

Páginas