Download Bases de Datos No SQL - ABD-UCV
Document related concepts
Transcript
Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos 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. 33 Caracteristicas del Sistema Relacional Codd perseguía una serie de objetivos: Independencia física. Independencia lógica. Flexibilidad. Uniformidad. Sencillez. 4 4 Conceptos Básicos del Sistema Relacional Tablas Atributos Nombre Año Temporadas Episodios The Big Bang Theory Esquemas 2007 6 73 Tuplas HOUSE M.D. 2006 6 132 How I Met Your Mother 2005 8 112 Dominios 5 5 SQL - Structured Query Languange 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 QUEry Language). 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 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 (Structured Query Language) como el principal lenguaje de consultas. 77 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 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. 99 Tipos de BD NoSQL Clave Valor Documentos Familia de Columnas Orientada a Grafos 10 10 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 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 13 BD de familia de columnas 14 14 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 15 BD clave-valor Ejemplo: Claves John Smith Valores 000 001 001 75475 : Lisa Smith 001 001 001 : Sam Doe 001 001 001 754575 345435 16 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 17 Arquitectura de NoSQL Consistencia S B D R Disponibilidad Tolerancia de Partición 18 18 Arquitectura de NoSQL Generalmente arquitectura distribuida BASE o o o Internet Basically Available Soft-State Eventual Consistency Características: o o o Escalabilidad horizontal Tolerancia a fallas Redundancia 19 19 Usuarios y Aplicaciones 20 20 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 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 22 Modelo de datos de Cassandra Clúster Espacio Clave Familias de columnas Columnas Supercolumnas 23 23 ¿Quienes usan Cassandra? 24 24 Modelado de datos relacional vs un modelado de datos de Cassandra 25 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 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 27 CouchDb – Ejemplo de JSON JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. <menu id="file" value="File"> <popup> <menuitem value="New" onclick="CreateNewDoc()" /> <menuitem value="Open" onclick="OpenDoc()" /> <menuitem value="Close" onclick="CloseDoc()" /> </popup> </menu> XML {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": “CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } } JSON } 28 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 29 Ejemplo de documento en CouchDB 30 30 Ejemplo de Map en CouchDB 31 31 Ejemplo de Reduce en Couch DB 32 32 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 DBs NoSQL para diferentes proyectos. Se ejecutan en clusters de máquinas baratas. 33 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 34