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.
Print document
Índice
In order to print this document from Scribd, you'll first need to download it.
Introducción a las bases de datos no relacionales. ........................................ 3 Qué son las bases deCancel datos NoSQL? ....................................................................... 3 Download And Print 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
Print document
In order to print this document from Scribd, you'll
Introducción a las bases de datos no relacionales. first need to download it. Cancel Download Las bases de datos no relacionales o NoSQL esAnd un Print 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.
Print document
In order to print this document from Scribd, you'll first need to download it.
Es en este momento cuando empiezan a aparecer los primeros problemas de la Cancel Download And Print 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.
Print document •
In order to print this document from Scribd, you'll Utilizar modelos de datos más flexibles y reusables que los que ofrece el first need to download it.
modelo relacional en sí mismo con las operaciones SQL.
Modelo de datos
Cancel
Download And Print
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
Documento
Similar a JSON
Grafo
Nodos con propiedades (atributos) y relaciones (aristas).
Características
Aplicaciones
*Intuitivo *Manera natural de modelar datos cercana a la Se pueden utilizar programación en diferentes orientada a tipos de objetos 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, elementos software de específicos recomendación, – Flexibles, geolocalización, atributos y topologías de longitud de red registros variables – Permite
Print document In order to print this document from Scribd, you'll consultas más first need to download it.
amplias y jerárquicas
Clave-Vaor y Columna
Cancel unaDownload And Print Clave-valor: clave y su valor – Rendimiento correspondiente muy alto Columnas: – Alta curva de variante que escalabilidad permite más de – Útil para un valor representar datos (columna) por no estructurados clave
Aplicaciones que solo utilizan consulta de datos por un solo valor de la 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.
Print document
In order to print this document from Scribd, you'll
Desventajas. first need to download it.
Por supuesto, las bases de datos NoSQL no son perfectas, y no siempre van a ser Download la elección ideal. Algunas deCancel las Desventajas sonAnd lasPrint 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.
Print document
In order to print this document from Scribd, you'll
Ejemplos de SGBD no relacionales first need to download it. Cassandra Cancel
Download And Print
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
Print document
In order to print this document from Scribd, you'll conjuntos de computación, unión y diferencia, o conseguir el miembro de más first need to download it.
alto rango en un conjunto ordenado.
mongoDB
Cancel
Download And Print
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.
Print document
order to print this document from Scribd, you'll Como características In más importantes cabe destacar el uso de Restfull HTTP API first need to download it.
como interfaz y JavaScript como principal lenguaje de interacción. Para el Cancel Download And Print Permite la creación de almacenamiento de los datos se utiliza archivos JSON.
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
Print document In order to print this document from Scribd, you'll
Comparativa. first need to download it.
Comparación entre base de datos SQL y NoSQL Cancel
Modelo de datos
Propiedades ACID
Download And Print
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,
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 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
Print document
In order to print this document from Scribd, you'll absoluto. Consistencia características first need to download it.
quiere decir que una vez
se Cancel
convierten
las bases de datos NoSQL
ha ejecutado Downloaduna And Printen 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 desempeño depende del subsistema de disco. Es
Desempeño
necesaria la optimización de consultas, índices y estructura de tabla para lograr el máximo desempeño.
Escalado
El desempeño es, por lo general, depende del tamaño del clúster de hardware subyacente, la latencia de red y la aplicación que efectúa la llamada
Lo más sencillo es ampliar
Está diseñada para reducir
la escala con un hardware
la escala utilizando
más rápido. Se requieren
clústeres distribuidos de
inversiones adicionales
hardware de bajo costo
Print document
In order to print this que document from Scribd, you'll para las tablas first need to download it.
para aumentar el
relacionales abarquen un
desempeño sin que
sistemaDownload distribuido. Cancel And Print
aumente la latencia.
Las API basadas en objetos Solicita almacenar y recuperar datos que están comunicados mediante consultas que se ajustan a un lenguaje de consulta
API
estructurado (SQL por sus siglas en inglés). Estas consultas son analizadas y ejecutadas por los sistemas de administración de bases de datos relacionales (RDBMS).
permiten a los desarrolladores almacenar y recuperar fácilmente estructuras de datos en memoria. Las claves de partición permiten que las aplicaciones busquen pares de clave-valor, conjuntos de columnas o documentos semiestructurados que contengan atributos y objetos de aplicación serializados.
Las bases de datos SQL normalmente ofrecen un amplio conjunto de
Herramientas
herramientas que simplifican el desarrollo de aplicaciones de base de datos.
Las bases de datos NoSQL suelen ofrecer herramientas para administrar los clústeres y el escalado. Las aplicaciones representan la interfaz primaria de los datos subyacentes.
Print document
In order to print this document from Scribd, you'll
Bibliografía first need to download it. -
https://aws.amazon.com/es/dynamodb/
-
Cancel Download And Print 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/informationsystems/slides/32%20Data%20Access%20-%20NoSQL.pdf
-
fundamentos-de-bases-de-datos-silberschatz-korth-sudarshan.pdf