Вы находитесь на странице: 1из 14

UNIVERSIDAD DEL ISTMO

Bases de Datos No Relacionales

Bases de Datos Distribuidas.

Licenciatura en Informática.

Alumno:
Luis Antonio Santiago López

Nombre del Profesor:


M.C. Oscar Alonso de la Rosa Aguilar.

Cd. Ixtepec, Oaxaca, 5 de diciembre del 2017.


Índice
Introducción a las bases de datos no relacionales. ........................................ 3
Qué son las bases de datos NoSQL? ....................................................................... 3
Modelo de datos ......................................................................................................... 5

Ventajas. ............................................................................................................... 6
Desventajas. ......................................................................................................... 7
Ejemplos de SGBD no relacionales .................................................................. 8
Cassandra .................................................................................................................... 8
Redis ............................................................................................................................. 8
mongoDB ..................................................................................................................... 9
CouchDB ...................................................................................................................... 9
Amazon DynamoDB ................................................................................................ 10

Comparativa. .....................................................................................................11
Bibliografía .........................................................................................................14
Introducción a las bases de datos no relacionales.

Las bases de datos no relacionales o NoSQL es un término usado para agrupar

una serie de almacenes de datos no relacionales que no proporcionan garantías

ACID.

El término NoSQL fue creado a principios de 1999 por Rackspace, Eric Evans. En

nombre intenta describir el surgimiento de un número creciente de base de datos

no relacionales y distribuidas.

El término ACID hace referencia a un conjunto de características necesarias para

que una serie de instrucciones puedan ser consideradas como transacción.

Qué son las bases de datos NoSQL?


Se puede decir que la aparición del término NoSQL aparece con la llegada de la

web 2.0 ya que hasta ese momento sólo subían contenido a la red aquellas

empresas que tenían un portal, pero con la llegada de aplicaciones más

complejas, cualquier usuario podía subir contenido, provocando así un

crecimiento exponencial de los datos.


Es en este momento cuando empiezan a aparecer los primeros problemas de la

gestión de toda esa información almacenada en bases de datos relacionales. En

un principio, para solucionar estos problemas de accesibilidad, las empresas

optaron por utilizar un mayor número de máquinas pero pronto se dieron cuenta

de que esto no solucionaba el problema, además de ser una solución muy cara.

Por lo tanto hablar de bases de datos NoSQL es hablar de estructuras que nos

permiten almacenar información en aquellas situaciones en las que las bases de

datos relacionales generan ciertos problemas debido principalmente a

problemas de escalabilidad y rendimiento de las bases de datos relacionales

donde se dan cita miles de usuarios concurrentes y con millones de consultas

diarias.

Además las bases de datos NoSQL son sistemas de almacenamiento de

información que no cumplen con el esquema entidad–relación. Tampoco utilizan

una estructura de datos en forma de tabla donde se van almacenando los datos

sino que para el almacenamiento hacen uso de otros formatos como clave–valor,

mapeo de columnas o grafos

Las bases de datos NoSQL, se empezaron a ocupar más seguido por las

siguientes razones:

• Utilizar sistemas más económicos y menos complejos que reduzcan los

costes licencias, infraestructura y desarrollo.

• Encontrar sistemas más escalables a los actuales, especialmente para

servir datos en los que la importancia del contenido es baja y para

aplicaciones que manejan Big Data.


• Utilizar modelos de datos más flexibles y reusables que los que ofrece el

modelo relacional en sí mismo con las operaciones SQL.

Modelo de datos
Una de las principales diferencias entre las bases de datos NoSQL y las bases de

datos relacionales es el modelo de datos. Aunque actualmente existen alrededor

de 150 tipos de bases de datos NoSQL distintas, sus modelos de datos pueden

agruparse en tres grandes grupos:

Modelo de datos Formato Características Aplicaciones

*Intuitivo
*Manera natural
de modelar datos
cercana a la
Se pueden utilizar
programación
en diferentes
orientada a
tipos de
Documento objetos
Similar a JSON aplicaciones
*Flexibles, con
debido a la
esquemas
flexibilidad que
dinámicos
ofrecen
*Reducen la
complejidad de
acceso a los
datos.
– Los datos se
modelan como
un conjunto de
relaciones entre Redes sociales,
Nodos con
elementos software de
propiedades
Grafo específicos recomendación,
(atributos) y
– Flexibles, geolocalización,
relaciones
atributos y topologías de
(aristas).
longitud de red
registros
variables
– Permite
consultas más
amplias y
jerárquicas
Clave-valor: una
clave y su valor – Rendimiento
correspondiente muy alto Aplicaciones que
Clave-Vaor y Columnas: – Alta curva de solo utilizan
variante que escalabilidad consulta de
Columna
permite más de – Útil para datos por un solo
un valor representar datos valor de la clave
(columna) por no estructurados
clave

Ventajas.
Esta forma de almacenar la información ofrece ciertas ventajas sobre los modelos

relacionales. Entre las ventajas más significativas podemos destacar:

- Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia

de los sistemas basados en SQL, no requieren de apenas computación, por

lo que se pueden montar en máquinas de un coste más reducido. 


- Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas

simplemente se consigue añadiendo más nodos, con la única operación

de indicar al sistema cuáles son los nodos que están disponibles.

- Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una

estructura distribuida, en muchos casos mediante tablas Hash. 


- No genera cuellos de botella: El principal problema de los sistemas SQL

es que necesitan transcribir cada sentencia para poder ser ejecutada, y

cada sentencia compleja requiere además de un nivel de ejecución aún

más complejo, lo que constituye un punto de entrada en común, que ante

muchas peticiones puede ralentizar el sistema. 



Desventajas.
Por supuesto, las bases de datos NoSQL no son perfectas, y no siempre van a ser

la elección ideal. Algunas de las Desventajas son las siguientes.

• La mayoría de las bases de datos NoSQL no admiten funciones de

fiabilidad, que son soportadas por sistemas de bases de datos

relacionales. Estas características de fiabilidad pueden resumirse en:

“atomicidad, consistencia, aislamiento y durabilidad.” Esto también

significa que las bases de datos NoSQL, que no soportan esas

características, ofrecen consistencia para el rendimiento y la escalabilidad.

• Con el fin de apoyar las características de fiabilidad y coherencia, los

desarrolladores deben implementar su propio código, lo que agrega más

complejidad al sistema.

• Esto podría limitar el número de aplicaciones en las que podemos confiar

para realizar transacciones seguras y confiables, como por ejemplo los

sistemas bancarios.

• Otras formas de complejidad encontradas en la mayoría de las bases de

datos NoSQL, incluyen la incompatibilidad con consultas SQL. Esto

significa que se necesita un lenguaje de consulta manual, haciendo los

procesos mucho más lentos y complejos.


Ejemplos de SGBD no relacionales
Cassandra

Se trata de una base de datos creada por Apache del tipo clave–valor.

Dispone de un lenguaje propio para realizar consultas CQL (Cassandra Query

Language). Cassandra es una aplicación Java por lo que puede correr en

cualquier plataforma que cuente con la JVM. Cassandra está diseñado para

almacenar enormes cantidades de datos distribuidos a través de diferentes

nodos. Cassandra es un DBMS diseñado para manejar cantidades masivas de

datos, repartidos entre muchos servidores, mientras que proporciona un servicio

altamente disponible sin un solo punto de fallo, lo cual es esencial para un gran

servicio como Facebook.

Redis

Redis es un servidor estructurado de datos donde las claves pueden contener

cadenas, hash, listas, conjuntos y conjuntos ordenados.

Sobre estos tipos se pueden ejecutar operaciones atómicas como anexar una

cadena, incremento de valor de un hash, empujando a una lista; intersección de


conjuntos de computación, unión y diferencia, o conseguir el miembro de más

alto rango en un conjunto ordenado.

mongoDB

Se trata de una base de datos creada por 10gen del tipo orientada a documentos,

de esquema libre, es decir, que cada entrada puede tener un esquema de datos

diferente que nada tenga que ver con el resto de registros almacenados. Es

bastante rápido a la hora de ejecutar sus operaciones ya que está escrito en

lenguaje C++.

La elección del formato codificado en MongoDB es JSON. Es muy potente,

porque incluso si los datos están anidados dentro de los documentos JSON,

seguirá siendo consultable e indexable.

CouchDB

Se trata de un sistema creado por Apache y escrito en lenguaje Erlang que

funciona en la mayoría de sistemas POSIX, incluyendo GNU/LINUX y OSX, pero

no así en sistemas Windows.


Como características más importantes cabe destacar el uso de Restfull HTTP API

como interfaz y JavaScript como principal lenguaje de interacción. Para el

almacenamiento de los datos se utiliza archivos JSON. Permite la creación de

vistas, que son el mecanismo que permite la combinación de documentos para

retornar valores de varios documentos, es decir, CouchDB permite la realización

de las operaciones JOIN típicas de SQL.

Amazon DynamoDB

Amazon DynamoDB es un servicio de base de datos NoSQL rápido y flexible para

todas las aplicaciones que requieren latencias constantes y de meros

milisegundos a cualquier escala. Se trata de una base de datos totalmente

administrada en la nube, compatible con modelos de almacenamiento de datos

de valor de clave y de documentos. Su modelo de datos flexible, desempeño

fiable y escalado automático de la capacidad de desempeño lo hacen ideal para

móviles, web, juegos, tecnología publicitaria, IoT y mucho más.

Amazon DynamoDB Accelerator (DAX) es una memoria caché totalmente

administrada y de gran disponibilidad que puede reducir los tiempos de

respuesta de Amazon DynamoDB de milisegundos a microsegundos, incluso con

millones de solicitudes por segundo


Comparativa.
Comparación entre base de datos SQL y NoSQL

Base de datos relacional Base de datos NoSQL

El modelo relacional Las bases de datos no

normaliza los datos en relacionales (NoSQL) no

estructuras tabulares suelen contener un

conocidas como tablas, esquema. Se suele utilizar

que están formadas por una clave de partición para

filas y columnas. recuperar valores,

Modelo de datos Contienen un esquema conjuntos de columnas o

que define estrictamente documentos JSON o XML

las tablas, columnas, semiestructurados, así

índices, relaciones entre como otros documentos

las tablas y otros que contengan atributos

elementos de las bases de de elementos

datos relacionados.

Los sistemas de Habitualmente, las bases

administración de bases de datos NoSQL

de datos relacionales intercambian algunas de

(RDBMS) tradicionales las propiedades ACID de

admiten un conjunto de los sistemas de


Propiedades ACID propiedades definidas por administración de bases

el acrónimo ACID. de datos relacionales

Atomicidad significa “todo tradicionales por un

o nada” – una transacción modelo de datos más

se ejecuta completamente flexible que se escala de

o no se ejecuta en forma horizontal. Estas


absoluto. Consistencia características convierten

quiere decir que una vez las bases de datos NoSQL

se ha ejecutado una en una elección excelente

transacción, los datos en las situaciones en las

deben acoplarse al que los RDBMS detectan

esquema de la base de desafíos en la arquitectura

datos. El aislamiento a la hora de superar una

requiere que las combinación de cuellos de

transacciones simultáneas botella de desempeño,

se ejecuten por separado. escalabilidad, complejidad

La durabilidad es la operativa y el aumento de

capacidad de recuperarse los costos de

de un error inesperado del administración y soporte.

sistema o de un corte de

energía y volver al último

estado conocido.

Normalmente, el
El desempeño es, por lo
desempeño depende del
general, depende del
subsistema de disco. Es
tamaño del clúster de
necesaria la optimización
Desempeño hardware subyacente, la
de consultas, índices y
latencia de red y la
estructura de tabla para
aplicación que efectúa la
lograr el máximo
llamada
desempeño.

Lo más sencillo es ampliar Está diseñada para reducir

la escala con un hardware la escala utilizando


Escalado
más rápido. Se requieren clústeres distribuidos de

inversiones adicionales hardware de bajo costo


para que las tablas para aumentar el

relacionales abarquen un desempeño sin que

sistema distribuido. aumente la latencia.

Las API basadas en objetos

permiten a los
Solicita almacenar y
desarrolladores almacenar
recuperar datos que están
y recuperar fácilmente
comunicados mediante
estructuras de datos en
consultas que se ajustan a
memoria. Las claves de
un lenguaje de consulta
partición permiten que las
estructurado (SQL por sus
API aplicaciones busquen
siglas en inglés). Estas
pares de clave-valor,
consultas son analizadas y
conjuntos de columnas o
ejecutadas por los
documentos
sistemas de administración
semiestructurados que
de bases de datos
contengan atributos y
relacionales (RDBMS).
objetos de aplicación

serializados.

Las bases de datos NoSQL


Las bases de datos SQL
suelen ofrecer
normalmente ofrecen un
herramientas para
amplio conjunto de
administrar los clústeres y
Herramientas herramientas que
el escalado. Las
simplifican el desarrollo de
aplicaciones representan
aplicaciones de base de
la interfaz primaria de los
datos.
datos subyacentes.
Bibliografía
- https://aws.amazon.com/es/dynamodb/

- https://www.mongodb.com/es

- http://docs.couchdb.org/en/stable/intro/why.html

- http://atit.upslp.edu.mx/~hugo/presentaciones/2011--noSQL--

SemanaUPSLP.pdf

- http://elvex.ugr.es/decsai/information-

systems/slides/32%20Data%20Access%20-%20NoSQL.pdf

- fundamentos-de-bases-de-datos-silberschatz-korth-sudarshan.pdf

Вам также может понравиться