2010-11-01 10 views
11

Primero de todo, soy relativamente nuevo en el mundo de la base de datos, me estoy graduando con mi B.S. en Comp Science este semestre y Database Technologies realmente me han llamado la atención, he estado estudiando mucho de T-SQL porque al final quiero obtener un trabajo de SQL Development (el servidor MS SQL me pareció la mejor opción en este momento porque está en aumento)Cualquier validez para el movimiento NoSQL?

DE TODOS MODOS, he escuchado mucho alboroto sobre este movimiento NOsql de los sistemas de administración de bases de datos no relacionales. Tratando de mantener esta pregunta y no subjetiva como sea posible, principalmente quiero saber las ventajas/desventajas de los NRDBMS (como Nosql) y si realmente hay un futuro en ellos. Quizás como una pregunta complementaria, es un mal momento para estudiar SQL en general (específicamente los RDBMS normales a los que estamos acostumbrados). Percibo que las personas se quedan con esto durante mucho tiempo, pero de nuevo ... No lo sé. Odiaría ver que mi interés de repente se sumerge en el mercado.

+0

@Quassnoi ... ¿No ha desaparecido el wiki de la comunidad? Creo que se deshicieron de eso. –

+0

@John: oh. Sabía que debería participar de forma más regular. – Quassnoi

+0

@John: No me di cuenta, pero me alegro de que haya sucedido. – NotMe

Respuesta

9

Definitivamente hay validez para el movimiento NoSQL, pero no me preocuparía que sus habilidades SQL se desperdicien. Las arquitecturas de almacenamiento NoSQL nacieron de la necesidad de almacenes de datos escalables y altamente disponibles que iban más allá de lo que podía ofrecer una base de datos relacional típica. Sin embargo, esto tiene un costo, y típicamente ese costo es consistencia garantizada. Esto no siempre es una gran preocupación. En el caso de algo como Facebook, no tiene consistencia completa durante un período de tiempo para cosas como tus fotos, actualizaciones de estado, etc. Siempre y cuando se vuelvan consistentes en algún momento, está bien. En el otro extremo, toma tu cuenta bancaria. Ese tipo de data store necesita proporcionar las fuertes características ACID que proporciona una base de datos relacional.

NoSQL no es algo que veo tomando el mundo, es una alternativa al enfoque común de RDBMS y como con todo lo demás tiene sus fortalezas y debilidades.

Aquí hay una excelente article sobre el tema escrito sobre NetFlix.

+0

Artículo muy interesante, gracias por enlazar. – Jonathan

0

Brent Ozar hizo un excelente valoración crítica sobre el tema aquí: NoSQL Basics for Database Administrators

+2

El enfoque de Brent parece ser más una comparación de bases de datos de "código abierto" que de "pago por". No encontré nada en ese artículo que realmente hablara sobre las fortalezas de NoSql: y la escalabilidad multi-maestro es compatible con MS y Oracle, por lo que eso no cuenta. Tal vez me lo perdí ... – NotMe

+0

Estoy un tanto de acuerdo, aunque se refirió al tema de cuándo y por qué usamos NoSQL, pero puedo estar de acuerdo en que se gastó un poco hablando de lo caras que fueron las cosas al pagar licencias. Sin embargo, me gustaría que enumerara más pro/con's para usar una solución NoSQL. –

2

bases de datos NoSQL son grandes para el almacenamiento de datos no estructurados. Piense en ello como la próxima generación de Lotus Notes.

No aprovecharía una base de datos NoSql para almacenar una lista de personas y direcciones, ya que están completamente estructuradas y son bien conocidas.

Sin embargo, si tuviera un conjunto de atributos dinámicos de algún tipo (pares de nombre/valor) o algo similar que requiriese mucho pivote para llegar a, entonces seriamente investigarlo. Incluso podría ir por esa ruta incluso si hay una estructura, pero no se sabe de antemano. Tal como con tablas dinámicas.

Dicho esto, cuando hicimos algunas evaluaciones a principios de este año (marzo de 2010) y no pensamos que el estado de las bases de datos de fuente abierta NoSql estuvieran listas para una producción seria. Hay mucho más en las bases de datos que solo poner datos y sacarlos. Las copias de seguridad automatizadas, el equilibrio de carga, las herramientas de consulta sólida, los comprobadores de consistencia, etc. son una necesidad absoluta. Vamos a reevaluar a principios del próximo año.

+0

Tengo curiosidad ahora: ¿qué pasa con los sistemas NoSQL de código abierto? ¿Hay muchos (o alguno)? ¿Alguien realmente ha profundizado en ellos? – FrustratedWithFormsDesigner

+0

@FrustratedWithFormsDesigner: vea http://nosql-database.org/ Ese sitio es una lista bastante completa de bases de datos NoSql desglosadas por clasificación. Hay muchos nombres que reconocerías. – NotMe

+0

Esa es una lista impresionante. ¡Gracias! – FrustratedWithFormsDesigner

1

Parece que ya está apuntando en la dirección correcta mirando las ofertas de trabajo y viendo cuáles son las necesidades actuales de almacenamiento y gestión de datos, si esta es su pasión. No me sorprendería que las entrevistas comiencen a preguntar sobre las ventajas/desventajas de los nosql solo para ver si está familiarizado con los últimos desarrollos (y si está solicitando un puesto de dba, también podrían preguntar sobre el cumplimiento de ACID y el teorema CAP).

Muchas empresas están empezando a usar tecnologías NoSQL, por lo que es válido porque las personas lo están usando. Y no solo pequeñas startups tampoco, pero empresas como facebook (cassandra), yahoo (hadoop), google (bigtable) y etsy (mongodb) creen que las soluciones nosql satisfacen ciertas necesidades.

5

Otros pueden abordar las especificaciones NoSQL mejor que yo, pero en cuanto a la segunda parte de su pregunta (preocupándose por entrar en SQL si NoSQL comienza a ser más popular): Tengo clientes que aún usan archivos antiguos muy antiguos mainframes.

SQL aún no ha alcanzado la penetración total, y está MUY afianzada en una gran cantidad de procesos comerciales. El mercado para el desarrollo y mantenimiento de SQL no desaparecerá en el corto plazo, y si comienza no será de la noche a la mañana; tendrá tiempo de aprender Next Big Thing antes de que quede obsoleto.

1

Creo que NoSQL es más un nicho. Es realmente bueno para algunas aplicaciones, pero probablemente nunca desplazará totalmente los RDBMS (aunque las combinaciones de NoSQL en la parte superior de un back-end de RDBMS parecen estar saliendo cada vez más). El consejo sería mejorar con un RDBMS de la vieja escuela (todavía es mucho más común, al menos por lo que he visto), y luego entrar en NoSQL en el lado si quieres.

2

SQL no está desapareciendo, y el modelo relacional es un componente básico de los sistemas de información que definitivamente vale la pena estudiar y entender por sí mismo. Me quedaría con eso

Las bases de datos basadas en un objeto en lugar del modelo relacional han existido para siempre. La diferencia es que en el pasado tendían a ser paquetes cerrados (¡y caros!) De vendedores individuales. Nadie realmente quiere tener sus aplicaciones de misión crítica bloqueadas en una base de datos propietaria, dependiendo de la licencia de un solo proveedor que a veces no responde. En contraste, las bases de datos NoSQL actuales son normalmente libres, abiertas y bien alineadas con las tecnologías existentes orientadas a la web, lo que permite escalar rápidamente y sin preocuparse por las licencias y la participación potencial en el desarrollo futuro. necesario).

Lo que también son diferentes, de modo que no se puede clasificarlos todos como buenos para un tipo de tarea en particular. Existen bandejas de valores-clave triviales que no intentan ser ACID-safe, existen bases de datos de objetos con sus propios paradigmas de seguridad (como los conflictos de revisión de CouchDB), hay bases de datos relacionales más tradicionales que simplemente no usan SQL como mecanismo de consulta (porque seamos sinceros, es bueno que se pueda usar el mismo lenguaje de consulta en bases de datos, pirateando consultas SQL en una cadena para que la base de datos en el otro extremo pueda separar la cadena para obtener la lógica del pregunta que querías hacer, es un poco tonto).

Hay muchos de ellos, la mayoría son muy inmaduros en comparación con el antiguo edificio de SQL, y les llevará un tiempo a los ganadores emerger. ¿NoSQL es "válido"? Por supuesto. Pero yo diría que usar una base de datos NoSQL particular como base para el estudio hoy (en lugar de usar una que se adapte a sus necesidades para una tarea particular en la que SQL es malo) sería prematuro.

+0

Gracias por su aporte. ¿Dice que hay bases de datos relacionales que no usan SQL? ¿Como que? y ¿qué utilizan como mecanismo de consulta? –

+0

La mayoría de las bases de datos NoSQL "tabulares" suelen proporcionar algunas características de las bases de datos relacionales; HyperTable incluso tiene un lenguaje de consulta que es prácticamente un SQL limitado. El original primitivo Trope Namer, [NoSQL] (http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/nosql/) usó el intérprete de comandos. – bobince

2

El futuro de los grandes sistemas requerirá habilidades con SQL y NoSQL.

NoSQL es un paradigma importante y no va a ninguna parte. Las uniones no se escalan horizontalmente y la base de datos SQL es en realidad simplemente una gran "combinación de máquinas". NoSQL todavía está en la infancia relativa, hay toneladas de jugadores y al igual que SQL, cada uno tiene sus propias pequeñas variaciones.

pero eso es todo va a sacudir a cabo en los próximos años

Como graduado reciente, usted tiene que comenzar en alguna parte. SQL es simplemente el lugar más fácil para comenzar.Verá mucho de esto en el futuro. Sin embargo, una vez que tenga su cabeza en SQL (digamos que ha aprobado su curso de MS T-SQL), le recomiendo echar un vistazo a algo como MongoDB/Riak/CouchDB como su próxima aventura.

Probablemente no saltará a una empresa que utiliza NoSQL, pero se encontrará con problemas donde NoSQL es en realidad una solución mucho más simple. Pero no sabrá esto hasta que realmente juegue con NoSQL.

+0

Una respuesta muy formada, gracias a Gates. Me imagino que voy a tratar de obtener mi MS Professional (2 ° nivel) en MSSQL Development, luego puedo comenzar a investigar más en NoSQL. Y para anti-SQLers. todo lo que tengo que decir es "los que odian odiarán". Pero aún así parece que no crees que Relational SQL vaya a ninguna parte tampoco? –

+1

No, usamos ambos. De hecho, trabajo para una firma de Internet muy grande que usa todo tipo de bases de datos donde sea apropiado desde SQL (Oracle, SQLite, SQL Server, MySQL) hasta cosas modernas de NoSQL (MongoDB, Redis, Hadoop, HBase). Todos ellos cumplen diferentes roles. SQL es un excelente lenguaje de informes con toneladas de herramientas de "Business Intelligence". Eso es demasiado importante para ir a cualquier parte. –