34
Bases de Datos No SQL Cesar Hernández Rafael Machado Sandra Jiménez 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 Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

Embed Size (px)

Citation preview

Page 1: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 2: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administració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

Page 3: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 4: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

4

Caracteristicas del Sistema Relacional

Codd perseguía una serie de objetivos:Independencia física.Independencia lógica.Flexibilidad.Uniformidad.Sencillez.

4

Page 5: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 6: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 7: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 8: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 9: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 10: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

10

Tipos de BD NoSQL

Orientada a Grafos

Familia de Columnas

Clave - Valor

Documentos

10

Page 11: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 12: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

BD orientada a grafos

Ejemplo:

12

Page 13: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

13

BD de familia de columnas

Bigtable ¿Por qué se creó? Estructura

Tablas: “tablets” Servidores masterChunkservers

Hypertable Utiliza lenguaje HQL Estructura

13

Page 14: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

14

BD de familia de columnas

14

Page 15: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 16: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

16

Ejemplo:

BD clave-valor

Claves

John Smith

Lisa Smith

Sam Doe

000001 75475001

001001001 754575

001001 345435001

Valores

:

:

16

Page 17: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 18: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

18

Arquitectura de NoSQL

Consistencia

Tolerancia de Partición

Disponibilidad

NoSQLPAXOS

SBDR

18

Page 19: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 20: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

20

Usuarios y Aplicaciones

20

Page 21: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 22: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 23: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

23

Modelo de datos de Cassandra

ClústerEspacio Clave

Familias de columnasColumnasSupercolumnas

23

Page 24: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

24

¿Quienes usan Cassandra?

24

Page 25: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

25

Modelado de datos relacional vs un modelado de datos de Cassandra

25

Page 26: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 27: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 28: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 29: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 30: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

30

Ejemplo de documento en CouchDB

30

Page 31: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

31

Ejemplo de Map en CouchDB

31

Page 32: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

32

Ejemplo de Reduce en Couch DB

32

Page 33: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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

Page 34: Cesar Hernández Rafael Machado Sandra Jiménez Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos

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