Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de...
-
Upload
doncia-pizarro -
Category
Documents
-
view
230 -
download
0
Transcript of Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de...
Bases de DatosNo SQL
Cesar Hernández
Rafael Machado
Sandra Jiménez
Universidad Central de VenezuelaFacultad de Ciencias
Escuela de ComputaciónAdministración de Bases de Datos
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
3
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
4
Caracteristicas del Sistema Relacional
Codd perseguía una serie de objetivos:Independencia física.Independencia lógica.Flexibilidad.Uniformidad.Sencillez.
4
5
Conceptos Básicos del Sistema Relacional
TablasAtributosEsquemasTuplasDominios
Nombre Año Temporadas
Episodios
The Big Bang Theory 2007 6 73
HOUSE M.D. 2006 6 132
How I Met Your Mother 2005 8 112
5
6
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
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.
7
7
8
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.
99
10
Tipos de BD NoSQL
Orientada a Grafos
Familia de Columnas
Clave - Valor
Documentos
10
11
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
Neo4jHyperGraph-DBRDF
BD orientada a grafos
11
BD orientada a grafos
Ejemplo:
12
13
BD de familia de columnas
Bigtable ¿Por qué se creó? Estructura
Tablas: “tablets” Servidores masterChunkservers
Hypertable Utiliza lenguaje HQL Estructura
13
14
BD de familia de columnas
14
15
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 índicesBúsquedasPermite variar la estructura de la
información que se almacena
BD clave-valor
15
16
Ejemplo:
BD clave-valor
Claves
John Smith
Lisa Smith
Sam Doe
000001 75475001
001001001 754575
001001 345435001
Valores
:
:
16
17
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
BD orientada a documentos
17
18
Arquitectura de NoSQL
Consistencia
Tolerancia de Partición
Disponibilidad
NoSQLPAXOS
SBDR
18
19
Generalmente arquitectura distribuida
Arquitectura de NoSQL
Internet
BASEo Basically Availableo Soft-Stateo Eventual Consistency
Características:o Escalabilidad horizontalo Tolerancia a fallaso Redundancia
19
20
Usuarios y Aplicaciones
20
21
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
22
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
23
Modelo de datos de Cassandra
ClústerEspacio Clave
Familias de columnasColumnasSupercolumnas
23
24
¿Quienes usan Cassandra?
24
25
Modelado de datos relacional vs un modelado de datos de Cassandra
25
26
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
27
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 Internet27
28
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()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }
}
<menu id="file" value="File"> <popup> <menuitem value="New"
onclick="CreateNewDoc()" /> <menuitem value="Open"
onclick="OpenDoc()" />
<menuitem value="Close"
onclick="CloseDoc()" /> </popup> </menu>
28
XML JSON
29
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
30
Ejemplo de documento en CouchDB
30
31
Ejemplo de Map en CouchDB
31
32
Ejemplo de Reduce en Couch DB
32
33
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
34
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