1 / 33

BD NoSQL

BD NoSQL. Integrantes: Asignatura: ABD Erlimar Rodríguez Sección: C1 Roger Rondón Reinaldo Guevara. Modelo Relacional. Basado en la teoría de conjuntos. Datos en tablas bidimensionales. Se basa en el concepto de relación. Sencillo y fácil de modificar.

stanley
Download Presentation

BD NoSQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BD NoSQL Integrantes: Asignatura: ABDErlimar Rodríguez Sección: C1 Roger Rondón Reinaldo Guevara

  2. Modelo Relacional • Basado en la teoría de conjuntos. • Datos en tablas bidimensionales. • Se basa en el concepto de relación. • Sencillo y fácil de modificar. • Operadores con gran poder de manipulación de datos. • No incluye comportamiento de los datos.

  3. NoSQL • Es un término usado para agrupar una serie de almacenes de datos no relacionales. • No proporciona garantías ACID. • Normalmente no tienen esquemas fijos de tablas ni sentencias "join". • Acuñado a principios de 2009 por un empleado de Rackspace, Eric Evans.

  4. ¿Por qué surge NoSQL? • Poca eficiencia en determinadas aplicaciones en las bases de datos relacionales. • Aumento de lecturas y escrituras. • Gran conjunto de transacciones con gran numero de escrituras. • Sentencias complejas. • Los primeros precursores son desarrolladores Web y Java. • Solucionan terabytes e incluso petabytes de datos para la Web 2.0. • Máquinas de un costo más reducido, gracias a su nivel de escalabilidad.

  5. Arquitectura de la BD NoSQL • Emplean una arquitectura distribuida. • Utilizan tablas hash distribuidas. • Estructuras de datos sencillas. • Ofrecen garantías de consistencia débiles.

  6. Teorema CAP • Lanzado como una conjetura en el año 2000 por Eric Brewer. • Asegura solo dos de éstas: consistencia, disponibilidad y tolerancia a particiones.

  7. Teorema CAP • CP: el sistema ejecutará las operaciones de forma consistente, aunque se pierda la comunicación entre nodos (partición del sistema). • AP: el sistema siempre responderá a las peticiones, aunque se pierda la comunicación entre nodos (partición del sistema). • CA: el sistema siempre responderá a las peticiones y los datos procesados serán consistentes.

  8. Transacciones BASE • Consistencia débil. • Prima la disponibilidad. • Mejor esfuerzo. • Respuestas aproximadas OK. • Agresivo (optimista). • Más sencillo y más rápido

  9. Clasificación de Sistemas NoSQL • Las aplicaciones web modernas tienes distintos desafios: - Datos a escala web. - Alta lecturas y escrituras. - Cambios de esquema de datos frecuentes. - Las aplicaciones sociales no necesitan el mismo nivel de ACID. Los principales tipos de BD: • Bases de datos documentales • Bases de datos Clave/Valor • Base de datos en grafos • Base de datos orientados a objeto • Bases de datos tabular

  10. Bases de datosdocumentales • Documentos { FirstName:"Bob", Address:"5 Oak St.", Hobby:"sailing" } • Formatos: XML, YAML, JSON, BSON, binarios como PDF. • Claves • Recuperación

  11. RDB vs Document-Oriented DB Bases de datosrelacionales • Esquema explícito predefinido . • Tablas de datos uniformes. • Normalizado. • Los objetos se expanden en varias tablas. • Duplicación reducida. • Conocimiento previo del esquema. • Consultas dinámicas de esquemas estáticos Bases de datos orientadas a documentos • Esquema implícito dinámico. • Colección de documentos con estructura variable. • Desnormalizado. • Los documentos se autocontienen. • Los datos suelen estar duplicados. • Solo es necesario conocer el nombre del documento. • Consultas estáticas de esquemas dinámicos

  12. Características • No proporcionan relaciones estrictas entre los documentos. • Las relaciones están integradas en los mismos documentos. • Guardan datos semi-estructurados. • Escalado horizontal sencillo y flexible. • Modelo de datos: colecciones de documentos que contienen colecciones de claves-valor. • Modelado de datos natural. • Amigables al programador • Desarrollo rápido • Orientadas a la web. • Óptimizado para la nube.

  13. Ejemplos • MongoDB • CouchDB • Terrastore • RavenDB • OrientDB • ThruDB • SisoDB • RaptorDB • CloudKit • Perservere • Jackrabbit

  14. SMBD NoSQL, Document-oriented, Open Source, escrito en C++ • Para el almazenamiento de datos usa el formato BSON (BinaryJSON) • BD -> GPL AGPL, Drivers -> Apache 2.0, Documentación -> CreativeCommons

  15. Descripción de recursos: • Binarios oficiales disponibles para Windows, Mac OS X, Linux y Solaris, así como el código fuente. • Drivers oficiales disponibles para C, C#, C++, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, Scala entre otros. • Consultas JavaScript ad-hoc que permiten localizar datos usando cualquier criterio de cualquier atributo de documento. • Soporte a expresiones regulares en consultas. • Replicación Maestro/esclavo similar a MySQL. • Escalamiento horizontal usando auto-sharding. • Almazenamiento de archivos grandes usando GridFS. • Soporte a indexación de atributos, semejante a los RDBMS. • Documentación detallada.

  16. Ejemplo práctico • Obtener información: db.serverStatus(); db.stats(); • Usar/Crear DB use db • Crear documento simple: db.colors.save({name:”red”,value:”ff0000”});

  17. Ejemplo práctico • Creando una colección de documentos de caracteres: > var chars = "abcdefghijklmnopqrstuvwxyz" > for(var i =0; i<chars.length; i++) { ... var char = chars.substr(i, 1); ... var doc = {char:char, code: char.charCodeAt(0)}; ... db.alphabet.save(doc); ... }

  18. Ejemplo práctico • Consulta/Recuperación de datos: • db.alphabet.find(); • It • db.alphabet.find().forEach(printjson); • db.alphabet.find({char: "o"}); • db.alphabet.find({code:{$lte:100}});

  19. Bases de datos en grafos • Grafos • Nodos (vértices) Relaciones (aristas) • Modelo de datos: nodos, relaciones con pares clave valor en ambos

  20. Bases de datos en grafos Algunos campos donde se desempeñan bien los grafos: • Recomendaciones • Inteligencia de negocios • Computación Social • Logística • Genealogía • Indexación de datos • Administración de sistemas

  21. Bases de datos en grafos Algunas ventajas: • Consultas más amplias y no demarcadas por tablas • No hay que definir un número determinado de atributos • Los registros también son de longitud variable • Se puede recorrer directamente la base de datos de forma jerárquica Ejemplos: AllegroGraph, VertexBD, Neo4j

  22. Neo4j • Software libre de bases de datos orientada a grafos, implementado en Java, desarrollado por Neo Technology. • Bajo GPL v3, módulos bajo AGPL. • Motor de persistencia embebido, basado en disco, completamente transaccional Java que almacena datos estructurados en grafos más que en tablas. • Almacena datos en un grafo de propiedades. Nodos, relaciones. • Las consultas recorren los grafos, identifican rutas, y las rutas ordenan a los nodos. • Los índices encuentran nodos y relaciones para realizar posteriormente búsquedas más rápidas.

  23. Neo4j • Interfaz web • PowerShell • Gremlin (DSL para grafos) • Cypher (lenguaje declarativo) Me encanta el ejemplo jeje

  24. Bases de datos Clave-Valor Modelo de datos • Cluster • Keyspace • ColumFamily • SuperColumn • Column • Escalabilidad horizontal. • Desarrollada en Java. Multiplataforma. • API sencilla y limpia. CLI • Desde la version 0.8 usa CQL.

  25. Cassandra

  26. Base de datosOrientados a Objeto Consecuencias del paradigma. • Identidad de un objeto. • Deja de existir un lenguaje SQL. • Esquema de datosrepresentadoporclases. • Evita el desajusteporimpedancia.

  27. BDOO Características: • Agregación. • Encapsulamiento. • Herencia. • Polimorfismo. Basadas en Java y .NET Utilidad de las BDOO • Dispositivosmoviles. • Sistemas de control. • Aplicaciones de internet.

  28. Base de datos Tabular QueesBigTable? • Sistema de almacenamientodistribuido. • Almacena la informacion en tablasmultidimensionales. • No esuna BD relacional. • Pensadoparacrecer en un alto volumen.

  29. Google File System (GFS) • Sistema de archivos distribuidos. • Eficiencia, fácil acceso, almacenamiento masivo (clusters), procesamiento paralelo. • Nodos: Maestro y Chunkservers (almacenadores) • Cada porción es replicada en al menos 3 servidores. • No está programado en el kernel, funciona como una librería.

  30. Estructura de BigTable • Datos son indexados usando el nombre de la fila, la columna y un timestamp. • Se puede describir como un mapa distribuido, persistente y multidimensional. • Los datos de las celdas son tratados como un array no interpretado de bytes.

  31. Ventajas • Pueden manejar enormes cantidades de datos. • Se ejecutan en clusters de máquinas baratas. • No generan cuellos de botella. • Responden a las necesidades de escalabilidad horizontal que tienen cada vez más empresas.

  32. Desventajas • No están lo suficientemente maduros para algunas empresas:Problema de credibilidad importante con muchas empresas. • La falta de experiencia: Difícil encontrar personas con los conocimientos técnicos apropiados. • Problemas de compatibilidad:Tiene su propia API, las interfaces de consultas son únicas y tienen peculiaridades.

  33. ¿PREGUNTAS?

More Related