961 likes | 1.91k Views
Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos. Bases de Datos No SQL. Cesar Hernández Rafael Machado Sandra Jiménez. Agenda. Sistema Relacional y SQL ¿Qué es NoSQL ? . Origen Características de NoSQL
E N D
Universidad Central de VenezuelaFacultad de CienciasEscuela de Computación Administración de Bases de Datos Bases de DatosNo SQL Cesar Hernández Rafael Machado Sandra Jiménez
Agenda • Sistema Relacional y SQL • ¿Qué es NoSQL? . Origen • Características de NoSQL • Tipos de Base de Datos NoSQL • Arquitectura y Funcionamiento • Usuarios y Aplicaciones • Ventajas y Desventajas 2
Sistema Relacional • El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. • Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. 3
Caracteristicas del Sistema Relacional • Codd perseguía una serie de objetivos: • Independencia física. • Independencia lógica. • Flexibilidad. • Uniformidad. • Sencillez. 4
Conceptos Básicos del Sistema Relacional • Tablas • Atributos • Esquemas • Tuplas • Dominios 5
SQL - StructuredQueryLanguange • Los orígenes del SQL están ligados a los de las bases de datos relacionales. • Los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEryLanguage). • Oracle introcuce SQL en 1979 en un programa comercial. • SQL es un lenguaje declarativo de “alto nivel” de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos. 6
NoSQL • NoSQL (a veces llamado "no sólo SQL") es una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico del sistema de gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más destacado que no usan SQL(StructuredQueryLanguage) como el principal lenguaje de consultas. 7
Origen del NoSQL • El término NOSQL fue acuñado a principios de 2009 por un empleado de Rackspace, Eric Evans, cuando Johan Oskarsson de Last.fm quiso organizar un evento para discutir bases de datos distribuidas de código abierto. • El nombre intenta describir la emergencia de un número creciente de bases de datos no relacionales y distribuidas que no suelen proveer garantias ACID. • El término hace referencia a la manera de llamar a las bases de datos relacionales clásicas como MySQL, MS SQL, PostgreSQL, etc. 8
Características de No SQL • Consistencia Eventual. • Estructura distribuida. • Ausencia de esquema en los registros de datos. • Escalabilidad horizontal sencilla. • Alta velocidad de respuesta a peticiones. 9
BD orientada a grafos • La información es representada en nodos • Ya está normalizada • No hay que definir un número determinado de atributos • Recorrido • ¿Cuándo usarlas? • Algunas BD • Neo4j • HyperGraph-DB • RDF 11
BD orientada a grafos • Ejemplo: 12
BD de familia de columnas • Bigtable • ¿Por qué se creó? • Estructura • Tablas: “tablets” • Servidores master • Chunkservers • Hypertable • Utiliza lenguaje HQL • Estructura 13
BD clave-valor • Se tiene una clave única y un valor que contiene toda la información asociada a la clave • La información esta condensada en una súper lista en la que podemos tener índices • Búsquedas • Permite variar la estructura de la información que se almacena 15
BD clave-valor • Ejemplo: Claves Valores John Smith 000 001 001 001 001 001 001 001 001 75475 754575 345435 : Lisa Smith : Sam Doe 16
BD orientada a documentos • Soportan modelos de datos más complejos que el anterior tipo clave – documento • No almacenan datos en tablas con campos uniformes para cada fila o registro • Cada documento es almacenado de forma que tenga ciertas características, cualquier número o tipo de campos pueden ser añadidos a un documento 17
Arquitectura de NoSQL S B D R PAXOS NoSQL 18
Arquitectura de NoSQL • BASE • Basically Available • Soft-State • Eventual Consistency • Generalmente arquitectura distribuida • Internet • Características: • Escalabilidad horizontal • Tolerancia a fallas • Redundancia 19
Cassandra • Es un sistema de almacenamiento distribuido escrito en Java de código abierto, descentralizado, escalable, altamente disponible, tolerante a fallos, eventualmente consistente, y orientado a columnas. • Es mantenido por la fundación Apache. • Se originó en Facebook en el 2007 para solventar los problemas de búsqueda interna de datos que tenía la compañía, la cual tiene que tratar con grandes volúmenes de datos. 21
Características de Cassandra • Distribuido y Descentralizado • Escalabilidad flexible • Alta disponibilidad y tolerancia a fallos • Orientación a columnas • Libre esquema • Sin lenguaje de consulta • Sin integridad referencial 22
Modelo de datos de Cassandra • Clúster • Espacio Clave • Familias de columnas • Columnas • Supercolumnas 23
Modelado de datos relacional vs un modelado de datos de Cassandra 25
CouchDB • Base de datos documental sin esquema, consultable al estilo MapReduce, accesible por REST y con una funcionalidad de replicación integrada. • Se trata de una base de datos NoSQL que emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de MapReduce y HTTP como API. 26
Características de CouchDB • Plataforma de bases de datos simplificada sin esquema • Centrada en documentos • No sigue el modelo relacional • Facilita la distribución • Alta escalabilidad • Tolerancia a fallos • Replicación bidireccional • Preparada para funcionar offline • Orientada a Internet 27
CouchDb – Ejemplo de JSON • JSON, acrónimo de JavaScript ObjectNotation, es un formato ligero para el intercambio de datos. {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": “CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } } } <menu id="file" value="File"> <popup> <menuitemvalue="New" onclick="CreateNewDoc()" /> <menuitemvalue="Open" onclick="OpenDoc()" /> <menuitemvalue="Close" onclick="CloseDoc()" /> </popup> </menu> JSON XML 28
Características de CouchDB • Plataforma de bases de datos simplificada sin esquema. No sigue el modelo relacional • Centrada en documentos • Facilita la distribución • Alta escalabilidad • Tolerancia a fallos • Replicación bidireccional • Preparada para funcionar offline • Orientada a Internet 29
Ventajas • Estos sistemas responden a las necesidades de escalabilidad horizontal que tienen cada vez más empresas. • Pueden manejar enormes cantidades de datos. • No generan cuellos de botella. • Alta velocidad de respuesta. • Diferentes DBsNoSQL para diferentes proyectos. • Se ejecutan en clusters de máquinas baratas. 33
Desventajas • El código abierto puede significar una "mancha" en el soporte para las empresas. • No están lo suficientemente maduros para algunas empresas.de experiencia. • Limitaciones de Inteligencia de Negocios. • Problemas de compatibilidad. 34