bases de datos no sql

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

Upload: jonah-ashley

Post on 30-Dec-2015

77 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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