ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

BASES DE DATOS NO SQL


Enviado por   •  1 de Marzo de 2014  •  1.669 Palabras (7 Páginas)  •  931 Visitas

Página 1 de 7

Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el modelo relacional propuesto por Codd a principios de los ochenta, y del que derivan la mayor parte de los RDBMS actuales. En general, el movimiento NoSQL ha surgido para intentar satisfacer necesidades que las bases de datos relacionales no conseguían, como manipular enormes cantidades de información (Big Data) de manera muy rápida.

Concretamente, las bases de datos NoSQL difieren con las bases de datos tradicionales (sistemas OLTP relacionales) en los siguientes puntos:

• No usan SQL como lenguaje principal de consultas: una gran parte de las bases de datos NoSQL evitan este lenguaje estándar, o simplemente lo utilizan como lenguaje secundario o de apoyo. Por ejemplo, Cassandra utiliza CQL, MongoDB utiliza JSON, yBigTable utiliza GQL, una versión propia de Google basada en SQL. Por su parte, las bases de datos multidimensionales suelen utilizar MDX.

• No requieren estructuras fijas como tablas para almacenar los datos: se trata de no imponer un esquema prefijado en forma de tablas y relaciones entre ellas, sino de ir más allá, permitiendo almacenar información en otros formatos como clave-valor (similar atablas hash), objetos, cubos, documentos o grafos.

• No suelen garantizar transacciones: las propiedades ACID (atomicidad, consistencia, aislamiento y durabilidad) son sacrificadas en las bases de datos NoSQL por una cuestión de rendimiento. En contraposición pueden implementar la llamada consistencia eventual, también conocida como BASE (Basically Available Soft-state Eventual Consistency) que garantiza que la base de datos es consistente sólo cuando no se hayan modificado los datos durante un lapso de tiempo suficientemente grande.

• No suelen soportar operaciones JOIN: al disponer de un volumen de datos tan extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe a que, cuando la operación no es la búsqueda de una clave, la sobrecarga puede llegar a ser tan costosa que no merece la pena (el servicio tiene que averiguar que nodos debe consultar, realizar consultas en paralelo y esperar las respuestas). Las soluciones más directas consisten en desnormalizar los datos, o bien realizar el JOIN mediante software, en la capa de aplicación.

• Arquitectura distribuida: así como las bases de datos relacionales suelen centralizar los datos en grandes mainframes, o como mucho en esquemas master-slave (debido a la gran cantidad de bloqueos que se generarían al sincronizar un clúster de servidores), en el caso de las bases de datos NoSQL la información se suele compartir mediante mecanismos de tablas hash distribuidas (DHT) ya que en el fondo se asemejan, en muchos casos, a redes P2P.

• Escalabilidad horizontal: como consecuencia directa de su arquitectura distribuida, las bases de datos NoSQL pueden escalar de manera flexible ante picos de tráfico o necesidades puntuales de procesamiento. Suelen funcionar bastante bien en hardware de bajo coste (PCs normales) y permiten añadir/retirar nuevas máquinas en caliente.

¿Cuándo utilizar una base de datos NoSQL? En general, cuando detectamos que una base de datos relacional, convenientemente optimizada, no responde adecuadamente a las necesidades de nuestro software. Por ejemplo, si pretendemos desarrollar una aplicación que requiera la lectura/escritura de cantidades gigantescas de datos y pueda dar servicio a millones de usuarios sin perder rendimiento, entonces debemos plantearnos el uso de una base de datos NoSQL. Las grandes redes sociales como Facebook y Twitter, o el propio Google, las utilizan como medio fundamental de almacenamiento de información.

Se puede utilizar una base de datos NoSQL para almacenar toda la información de una aplicación, aunque en la mayoría de los casos se recurre a sistemas mixtos que combinan las bases de datos relacionales (fácilmente manipulables e interrogables mediante SQL) con soluciones NoSQL para aquellas funcionalidades que requieren millones de consultas en tiempo real.

Tipos de bases de datos NoSQL

A continuación enumeramos los modelos de bases de datos NoSQL más populares. No son los únicos que existen, pero desde luego son los que más implantaciones y funcionalidades atesoran:

• Bases de datos clave-valor: son probablemente el modelo de base de datos NoSQL más popular, representando así el buque insignia de este tipo de tecnologías. Cada pieza de información se obtiene a partir de una clave única. Es como manejar una sola tabla, muy grande y convenientemente indexada. Las bases de datos column-family son una variante que permite más de un valor (columna) por clave. Algunos ejemplos: Cassandra (Apache),BigTable (Google), Dynamo (Amazon), Voldemort (Linkedin), HBase (Hadoop) y Redis.

• Bases de datos documentales: constituyen uno de las principales modelos dentro de las bases de datos NoSQL. Están diseñadas en torno a un concepto abstracto de documento. Los documentos se parecen, de algún modo, a registros, tuplas o filas en una base de datos relacional, pero son menos rígidos: no se les requiere ajustarse a un esquema estándar ni tener todos los mismos atributos o claves. Estas bases de datos permiten no sólo buscar por clave-valor, sino también por contenido del documento, respondiendo a queries más complejas. Algunos ejemplos: CouchDB, MongoDB, IBM Lotus Domino, Terrastore.

• Bases de datos multidimensionales: como vimos en el post anterior, estas bases de datos se utilizan principalmente en data warehouses y datamarts, y son una variación del modelo relacional que utiliza cubos OLAP para organizar los datos y expresar las relaciones

...

Descargar como (para miembros actualizados)  txt (11 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com