100% encontró este documento útil (2 votos)
72 vistas9 páginas

Introducción a Bases de Datos NoSQL

Este documento proporciona una introducción a las bases de datos NoSQL. Brevemente describe la historia y el surgimiento de las bases de datos NoSQL debido a las necesidades de grandes empresas de Internet. Explica que NoSQL se refiere a sistemas de bases de datos no relacionales que no usan SQL como lenguaje principal de consultas y que escalan horizontalmente. Además, resume los principales tipos de bases de datos NoSQL, incluyendo clave-valor, documentales, grafos y columnares.

Cargado por

Alfredo Estrada
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
72 vistas9 páginas

Introducción a Bases de Datos NoSQL

Este documento proporciona una introducción a las bases de datos NoSQL. Brevemente describe la historia y el surgimiento de las bases de datos NoSQL debido a las necesidades de grandes empresas de Internet. Explica que NoSQL se refiere a sistemas de bases de datos no relacionales que no usan SQL como lenguaje principal de consultas y que escalan horizontalmente. Además, resume los principales tipos de bases de datos NoSQL, incluyendo clave-valor, documentales, grafos y columnares.

Cargado por

Alfredo Estrada
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

2014

Bases de datos NoSQL

Ulises Luque Paez


Rafael Navarro Prieto
Elisa Navarro Zuara
1
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Índice
Índice ................................................................................................................................................................. 2
Historia .............................................................................................................................................................. 3
¿Qué es NoSQL? ................................................................................................................................................ 3
Características ................................................................................................................................................... 4
Ventajas ............................................................................................................................................................. 4
Desventajas ....................................................................................................................................................... 4
Tipos de datos y funciones ................................................................................................................................ 5
NoSQL vs SQL ..................................................................................................................................................... 6
Practica .............................................................................................................................................................. 7
Bibliografía ......................................................................................................................................................... 9
2
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Historia
Con las principales compañías de Internet, crecieron los sistemas de datos NoSQL.
Compañías como Google, Amazon, Twitter o Facebook debían enfrentarse a nuevos
desafíos más complejos con el tratamiento surgiendo problemas con el tradicional sistema
RDBMS. Estas compañías se dieron cuenta de que el rendimiento y sus propiedades de
tiempo real eran más importantes que la coherencia en las bases de datos relacionales
tradicionales, que dedicaban una gran cantidad de tiempo de proceso. Surge así la
necesidad de un cambio con respecto a las Bases de datos tradicionales.

El término NoSQL fue acuñado por Carlo Strozzi quien lo usó por primera vez en 1998 para
referirse a su base de datos. Se trataba de una base de datos open-source, ligera, que
aunque no ofrecía un interface SQL, sí seguía el modelo relacional. Un empleado de
Rackspace, Eric Evans, volvió a introducir el término NoSQL cuando Johan Oskarsson de
[Link] organizó un evento para discutir bases de datos distribuidas de código abierto. El
nombre intentaba recoger el número creciente de bases de datos no relacionales y
distribuidos que no garantizaban ACID, atributo clave en las RDBMS clásicas.

¿Qué es NoSQL?
NoSQL hace referencia a una extensa clase de sistemas de gestión de bases de datos,
diferentes al modelo clásico del sistema de gestión de bases de datos relacionales
(RDBMS) en distintos aspectos, entre los que cabe destacar que no usan SQL como el
principal lenguaje de consultas. Los datos almacenados no requieren estructuras fijas como
tablas, no suelen soportan operaciones JOIN, ni garantizan completamente ACID
(atomicidad, consistencia, aislamiento y durabilidad), y habitualmente escalan
horizontalmente.

Generalmente, los investigadores académicos se refieren a NoSQl como un tipo


almacenamiento estructurado. Este término también es utilizado en las bases de datos
relacionales clásicas. Frecuentemente, las bases de datos basadas en NoSQL se clasifican
según la forma en la que almacena los datos, y contienen categorías como clave-valor, las
implementaciones de BigTable, bases de datos documentales, y Bases de datos orientadas
a grafos.

Las bases de datos NoSQL normalmente están altamente preparadas para realizar
operaciones como recuperar y agregar, y a menudo no ofrecen mucho más que la
funcionalidad de almacenar los registros. La pérdida de flexibilidad en tiempo de ejecución,
comparado con los sistemas SQL clásicos, se ve compensada por ganancias significativas
en escalabilidad y rendimiento cuando se trata con ciertos modelos de datos con una gran
cantidad de información con la que trabajar.
3
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Características
 Consistencia: No utilizan ningún método concreto para verificar la consistencia de
los datos, a diferencia de los métodos de bases de datos relacionales que había una
comunicación interna entre los nodos que contenían la información que eran sensi-
bles a los cambios, es decir, cualquier cambio hacia que los nodos se comunicaran
entre si y se actualizarán para no perder la consistencia de la información.
Las bases de datos NoSQL son ACID, esto significa que una transacción cumple lo
siguiente:
o Atomicidad: es la propiedad que asegura que la operación se ha realizado o
no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
o Consistencia: es la propiedad que asegura que sólo se empieza aquello que
se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a
romper la reglas y directrices de integridad de la base de datos.
o Aislamiento: es la propiedad que asegura que una operación no puede afec-
tar a otras. Esto asegura que la realización de dos transacciones sobre la
misma información sean independientes y no generen ningún tipo de error.
o Durabilidad: es la propiedad que asegura que una vez realizada la operación,
ésta persistirá y no se podrá deshacer aunque falle el sistema.
 Estructura distribuida: Generalmente se distribuyen los datos mediante mecanis-
mos de tablas de hash (tablas que contienes claves con valores) distribuidas como
las redes P2P.
 Escalabilidad Horizontal: Permite la implementación de elementos de la base de
datos a nivel horizontal permitiendo compartir una carga conjunta entre todos los
elementos que forman la base de datos, de forma que, si un servidor cae en mitad
de un proceso los demás adquieren la carga de este servidor caído hasta su reincor-
poración en la red(auto-sharding).
 Tolerancia a fallos (debido a la estructura ACID), redundancia y sin cuellos de bo-
tella.

Ventajas
1. Manipulación de gran cantidad de datos
2. No presenta cuellos de botella
3. No requieres una base de hardware muy costosa

Desventajas
1. No están lo suficientemente útil para algunas empresas
2. Problemas de compatibilidad
3. La falta de experiencia
4
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Tipos de datos y funciones
La mayoría de las bases de datos NoSQL contienen los cuatro tipos de datos siguientes

 Bases de datos documentales


o Permiten asociar una clave con un documento. Los documentos pueden con-
tener una gran variedad de objetos.
o Formato utilizado es JSON pero también puede ser XML
o El servidor entiende los datos y puede operar con ellos.
o Permite consultas avanzadas e incluso establecer relaciones entre ellas.
o Ejemplos: mongodb, BigTable,etc.
 Key-value stores
o bases de datos simples que almacenan información en forma de atributos (te-
clas) y valores. En algunos casos, los valores pueden tener tipos como ca-
dena y número entero.
o Eficiencia en la lectura y escritura.
o No permite un modelo de datos, todo lo guardado lo guarda de forma binaria.
o No importa el contenido sino la clave y el valor asociado a ella.
o API simple: Put, Get y Delete.
o No permite consultas complejas, solo busca por la clave
 Graph
o Almacenan los datos en forma de grafo.
o Importancia no solo en los datos sino en la relación entre ellos.
o Las relaciones pueden tener atributos y da la posibilidad de realizar consultas
directas a las relaciones, olvidándonos de los nodos.
o Permite la utilización de algoritmos estadísticos que facilita la tarea en algunos
campos, Ejemplo: redes sociales.
o Ejemplos: Neo4, Hyperbase, etc.
 Wide-column stores
o Están hechas para el manejo de grandes cantidades de datos en forma de
columnas.
o Parecidos similares a las Key-value store.
o Perdida de eficiencia en modo escritura.
5
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
NoSQL vs SQL
Como todo el mundo sabe, SQL es un estándar surgido en 1986 por la ANSI-SPARC que
permitía el uso de un idioma capaz de trabajar con bases de datos relacionales. Estas bases
de datos se relacionaban en tablas reduciendo notablemente el tiempo de acceso a la
información, además de otros elementos que aceleran la búsqueda como es el caso de los
índices. No obstante NoSQL es un nuevo concepto de base de datos que rechaza el uso
del lenguaje SQL y la estructura relacional.

Hoy en día muchas personas crees que el NoSQL sería un buen sustituto del estándar SQL,
el cual posee una serie de mejoras:

-El uso de tablas puede ser un gran problema si hablamos de una gran cantidad de
información almacenada y, a la vez, un gran número de usuarios consultando dicha
información de manera concurrente. EJ: Google o Amazon.

-Los proyectos de programación a gran escala que utilizan tipos de datos complejos y
jerarquías, como XML, son difíciles de incorporar en SQL. Estos datos, que pueden
contener objetos, listas y otros tipos de datos propios, no se correlacionan bien con las
tablas que consisten en sólo las filas y columnas.

-SQL si es funcional con bases de datos de empresa que no manejes mucha información,
y NOSQL es funcional con bases de datos de gran tamaño. En definitiva, la importancia es
saber qué problema el que se le plantea al usuario o usuarios que crearan esa base de
datos y, en base al problema, elegir la opción que mejor se adapte al problema planteado.

-Las bases de datos NoSQL escalan horizontalmente, añadiendo más servidores para
hacer frente a cargas más grandes. Las bases de datos SQL, suelen escalar de forma
vertical, añadiendo más y más tráfico a un solo servidor.

-La iteración en la programación es otro de los problemas que NOSQL resuelve fácilmente
con respecto a SQL. En las BBDD SQL requiere previamente la definición de un esquema
que defina como será estructuradamente la base de datos, esto causa problemas dados
que con la iteración no es posible definir, de primeras, el esquema final de la BBDD de la
aplicación creada. En cambio, en las bases de datos NOSQL son mucho más flexibles en
ese aspecto, dado que no define los esquemas del diseño previamente, permite a los
usuarios añadir información y hacer cambios en cualquier momento sin interrumpir el
sistema o la necesidad de transferir una gran cantidad de datos.
6
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Practica
Una vez hemos hablado un poco de NoSQL, nos proponemos a realizar unos ejemplos muy
sencillos creando una colección de datos en mongodb haciendo referencia a la clase de 1º
de desarrollo web del IES Gran Capitán.

En primer lugar deberemos, en nuestro caso, ejecutar dos archivos ejecutables de mongodb
que son:
1º [Link] que será el servidor encargado de ejecutar todas las sentencias y almacenar
las BD creadas en mongodb
2º [Link] El cliente a través del cual, el usuario podrá trabajar con la base de datos en
mongodb

Una vez verificamos de que estamos en el Shell o consola de mongodb (al ejecutar
[Link] aparece la versión de mongoDB). Por defecto nos conecta en test. Para crear
nuestra propia Base de Datos deberemos utilizar el comando use <nombre de la colección>
y nos saldrá el mensaje: switched to db Primerodaw. Esto realiza un cambio de nombre
de la base de datos de datos pero sin datos no se podrá guardar
Si ejecutamos el comando show dbs nos aparecerá la base de datos creada.

A continuación procederemos a insertar datos en esa base de datos.


db. <Nombre de la colección>.save ({<Nombre Columna>:”<dato>”})

Una vez insertado datos en la colección Primerodaw podemos mostrar mediante el


comando show collections las colecciones existentes.

Podremos observar como aparecerá la colección Primerodaw (contiene los datos) y


[Link] (contiene los índices).
A continuación realizaremos una consulta a toda la información que contiene esa colección
(Select * from tabla en el caso de SQL).
7
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
db. <Colección>.find ()

Como podemos observar aparecen, en este ejemplo, el nombre de 4 alumnos con su primer
apellido y un identificador de objeto (ObjectID) que identifica a cada valor (En el caso de
SQL seria el identificador de cada registro.)
También se puede realizar consultas específicas indicando, en este caso, que me muestre
aquellos datos de la colección donde el alumno se llame Ulises. (En SQL seria hacer un
SELECT * FROM <Tabla> WHERE <Columna>=’<dato>’).
db. <Colección>.findOne ({<Columna>=”<dato>”})
nota: En mongoDB al igual que en los lenguajes de programación orientada
a objetos, es sensible a las mayúsculas y minúsculas. Si se escribe findone
y no findOne dará un error de sintaxis.

Ahora realizaremos una eliminación de un alumno de la colección y se muestra para


verificar que el alumno con nombre Rafael ha sido eliminado. (En SQL sería lo mismo que
Delete from <Tabla> WHERE <Columna>=’<dato>').
[Link] ({<Columna>:”<dato>”})

Por ultimo realizaremos una eliminación complete de todo el contenido de la colección


Primerodaw (En SQL Seria un DROP TABLE <Tabla>).
[Link] ()

Al ejecutar ese comando nos muestra un mensaje TRUE, eso indica que se realizó
perfectamente la eliminación de todos los datos de la colección, en caso erróneo, nos
mostraría un FALSE indicando que no se puedo eliminar el contenido de la colección por
fallos de sintaxis. Una vez está la colección vacía volvemos a mostrar las colecciones con
el comando show collections y cómo podemos ver ha desaparecido la colección
Primerodaw porque no contiene ninguna información.
8
Bases de datos NoSQL
IES Gran Capitán – Córdoba 1ºDAW 2014/2015
Bibliografía

Historia NoSQL
Consultado en: [Link]

NoSQL vs SQL
Consultado en: [Link]

Características NoSQL
Consultado en: [Link]

NoSQL Presentación prezi Felipe Giraldo


Consultado en: [Link]

Ventajas y Desventajas
Consultado en: [Link]
contras-de-cinco-bases-de-datos-nosql-#

También podría gustarte