Presentacion BD NoSQL

Post on 28-May-2015

770 views 3 download

description

Administración de Base de Datos Exposición BD NoSQL

Transcript of Presentacion BD NoSQL

Andrea Antunes C.I.: 20.362.606María E. Pulido C.I.: 20.289.633José Zambrano C.I.: 20.220.232

Universidad Central de VenezuelaFacultad de Ciencias

Escuela de ComputaciónAdministración de Bases de Datos

1

BD NoSQL

•¿Qué es NoSQL?.•¿Qué es una BD NoSQL?.•¿Por qué surge?.•Características.•Ventajas y Desventajas.•Arquitectura de una BD NoSQL.

Agenda…

2

•Teorema CAP.•Transacciones BASE.•CAP vs BASE vs ACID.•Taxonomía de BD NoSQL.•¿SQL ó NoSQL?.•Caso de Estudio.

Agenda…

3

¿Qué es NoSQL?

• Es una amplia clase de SMBD.

•Difiere del RDBMS.

4

•Sistema de almacenamiento de información.•No cumple con el esquema entidad-relación.•No impone una estructura de datos. •Almacena los datos en diferentes formatos.

¿Qué es una BD NoSQL?

5

…No existen tablas!!!

¿Qué es una BD NoSQL?

En RDBMS

En NoSQL

6

CI

• 20364587

• 21567098

• 18765123

Nombre

• Ana• Juan• Luis

1° Apellido

• Pérez• López• Jiménez

2° Apellido

• Null• García• Lares

Teléfono

• 4326654• Null• 4414532

236524981953264315973820

AnaJuan

María

PérezLópez

Jiménez

GarcíaSuárez

Null

Null4329916

Null

CI

• 20364587• 21567098• 18765123

Nombre

• Ana• Juan• Luis

1° Apellido

• Pérez• López• Jiménez

2° Apellido

• García

Teléfono

236524981953264315973820

AnaJuan

María

PérezLópez

Jiménez

GarcíaSuárez 4329916

…Llegó la web, el software como servicio, los servicios en la nube y las startups de éxito con millones de usuarios…

¿Por qué surge?

7

¿Por qué surge?

8

Billones de usuario Datos NO Estructurados +

9

¿Por qué surge?• Poca eficiencia en aplicaciones en las BD

relacionales.• Aumento de operaciones de lectura y escritura.• Gran conjunto de transacciones.• Sentencias complejas.• Dificultades en la escalabilidad del sistema.

• Consistencia Eventual.• Ausencia de esquema en los registros de datos.• Alta velocidad de respuesta a peticiones.• Estructura distribuida.• Escalabilidad horizontal.

Características

10

• Estructura distribuida.• Escalabilidad horizontal.

• Consistencia Eventual:

Características

11

• Ausencia de esquema en los registros de datos:

Características

12

ID Nombre Apellido Id_CArea

1 Frank Lara 22 Ana Guzmán 33 Pedro López 2

Id_CArea Ciudad Estado Cod_Area

1 MBO ZL 0261

2 CCS DC 02123 LAS NE 0295

+ ={ “ID”:1, “Nombre”:”Frank”, “Apellido”: “Lara”, “Cod_Area”:”0212”, “Ciudad”:”CCS”, “Estado”:”DC”}

Info. Usuario

Info. Dirección

• Alta velocidad de respuesta a peticiones:

Características

13

• Estructura distribuida:

Características

14

Zorro Función Hash DFCD3454

El zorro corre por el hielo Función Hash 52ED879E

El zorro rojo camina por el

hieloFunción Hash 46042841

Data Clave

• Escalabilidad:

15

Características

CPU

1 GB RAM

CPU

1 GB RAM

CPU

1 GB RAM

Escala

CPU

1 GB RAM

CPU

1 GB RAM

CPU

4 GB RAM

CPU

2 GB RAM

Escala

• Manejo de gran volumen de datos.• Escalamiento sencillo.• Diferentes DBs NoSQL para diversos proyectos.• Uso de memoria como principal ubicación de

escritura.• Código abierto.

Ventajas

16

• No son suficientemente maduros para algunas empresas.

• Falta de experiencia.

• No trata con datos críticos que requieren ACID.

• Problemas de compatibilidad.

Desventajas

17

Arquitectura de BD NoSQL

18

Teorema CAP

19

Consistency (Consistencia)

Partition Tolerance

(Tolerancia a Partición)

Availability(Disponibilidad)

CA CP

AP

RDBMS NoSQL

NoSQL

Transacciones BASE

20

Teorema

CAP

B

A

S

E

• Bassically Available. (Básicamente Disponible)

• Soft-State. (Estado suave)

• Eventual Consistency. (Consistencia eventual)

CAP vs BASE vs ACID

21

•Consistencia.

•Disponibilidad.

•Tolerancia a la partición.

CAP

•Tolerancia a la partición.•Disponibilidad.

BASE

•Coherencia.•Disponibilidad.

ACID

Orientada a Grafos

Familias de Columnas

Clave - Valor Documentos

Taxonomía de BD NoSQL

22

• La información es representada en nodos.

• Ya está normalizada.

• No es necesario definir cantidad de atributos.

• Registros de longitud variable.

• Recorrido.

BD Orientada a Grafos

23

• Índice.

• ¿Cuándo usarlas?.

• Algunas BD: Neo4j, HyperGraphDB.

BD Orientada a Grafos

24

BD Orientada a Grafos• Ejemplo:

25

Carolina MensajeMensajeSara

Carlos

Ana

Amigo de

Amigo de

Amigo de

Amigo de

Amigo de Me gusta

Me gusta

Últ. Ant.

• Guarda los valores en columnas.• Los datos son almacenados como secciones de

las columnas de datos.• ¿Cuándo usarlas? • Beneficios.• Ventajas.

BD de Familia de Columnas

26

• Precursor: Google BigTable.• Conceptos fundamentales:

• Algunas BD: Hbase, Cassandra, Hypertable.

BD de Familia de Columnas

27

Familia de ColumnasSúper Columna

Columna

RowKey Sup_Col_Name1

C_N1

C_V1

C_Nn

C_Vn

Sup_Col_Namem

C_N1

C_V1

C_Nn

C_Vn

….. …..…..

BD de Familia de Columnas

28

Id Nombre Edad Intereses

1 Ricky Fútbol, Cine, Béisbol

2 Pedro 203 Juan 25 Música

Id Nombre

1 Ricky

2 Pedro3 Juan

Id Edad

2 203 25

Id Intereses

1 Fútbol

1 Cine

1 Béisbol

3 Música

Orientado a Fila(Modelo RDBMS)

Orientado a Columnas

Null

Multivalor• Ejemplo:

• Conjunto de duplas (Clave, Valor).• Existen contenedores. • Permite variar la estructura de la información.• Validación de los datos en la aplicación Cliente.• Acceso.• Desventajas.

BD Clave-Valor

29

• Básicamente sería...

BD Clave-Valor

30

Clave Valor

85051-0

• Precursor: Amazon Dynamo.• Algunas BD: Riak y Redis.

86694-1Índice

Claves

John Smith

Lisa Smith

Sam Doe

000001 754375002

200201202 854575

886887 345435889

Valores

:

:

BD Clave-Valor

31

• Ejemplo:

BD Orientada a Documentos

32

• Almacena los datos en documentos.• Son duplas Clave-(Valor => documento).• No existe un esquema estricto.• Los documentos dentro de una colección

pueden tener campos diferentes.• Acceso.

BD Orientada a Documentos

33

• Características.• Precursor: Lotus Notes.• Algunas BD: Apache CouchDB y RavenDB.

34

• Ejemplo:

{ Nombre:"Pepe", Dirección:"C/ San Juan 15", Hijos:[ {Nombre:"Ana",Edad:10}, {Nombre:"Pedro", Edad:8}, {Nombre:"Juan", Edad:5}, {Nombre:"Félix", Edad:2} ] }

BD Orientada a Documentos

{ Nombre:”María", Dirección:“Guarenas", Fecha_Nac:”20/06/1980”, Teléfono:”0212-2515025” Hijos:[ {Nombre:“Luís",Edad:15}

]

}

Contenedor

ID: 23532ID: 84678

¿SQL o NoSQL? La Clave…

A la hora de decidirnos entre una

arquitectura u otra, debemos tener en

cuenta…

35

Caso de Estudio

36

Caso de Estudio

{ nombre: “Mongo”, tipo: “BD”, clase: “NoSQL”, taxonomía: “Documentos” }

37

•¿Qué es MongoDB?.•Características Principales.•Estructura de MongoDB.•Arquitectura de MongoDB.•Modelo de Datos.•Esquema Flexible.

Agenda…

38

Agenda…

39

•Estructura de un Documento.•Índices en MongoDB.•Respaldo y Restauración.•¿Quiénes usan MongoDB?•Videos demostrativos: “Primeros pasos con MongoDB”.

40

¿Qué es MongoDB?

• BD multiplataforma de código abierto.

• NoSQL orientada a documentos.

41

Características Principales•Escalable, alto rendimiento y disponibilidad.•Puede trabajar en modo maestro-esclavo. •Basada en esquemas BSON (Binary JSON ).•Posee un rico y sencillo sistema de consulta.•Soporte de índices.•Replicación y soporte a prueba de fallos.

42

Estructura de MongoBDPosee una estructura escalable debido a las

las siguientes propiedades:

• Escalabilidad horizontal (Auto-Sharding).• Replicación para alta disponibilidad.

43

•Escalabilidad horizontal (Auto-Sharding):

Estructura de MongoBD

Rango de Clave Rango de Clave Rango de Clave

0…100 0…50 51…100 0…25 26…50

…….

51…75 76…100mongod mongod mongod mongod mongod

mongod mongod

Escalabilidad para Escribir

44

•Replicación para alta disponibilidad:

Estructura de MongoBD

Esclavo

Esclavo

Maestro

Esclavo

EsclavoDriv

er

EscrituraLectura

EscrituraLectura

Lectura

Maestro

MaestroXEsclavo

45

Arquitectura de MongoBD

Los principales componentes de MongoDB son los siguientes:

• Mongod (Núcleo de la base de datos). • Mongos (Controlador de particionamiento).• GridFS (Función de almacenamiento).

46

Motor central de la BD, puede correr como programa o demonio y posee tres funcionalidades:

Standalone Server. Config Server. Shard Partition.

Arquitectura de MongoBD•Mongod:

47

“Database Router”

Brinda transparencia a las aplicaciones

cliente.

Arquitectura de MongoBD•Mongos:

48

Función que almacena y extrae ficheros de la BD. Define dos colecciones: files y chunks. Ficheros mayores a 16MB se dividirán en partes

menores, y cada bloque se guardará como un documento en la colección de bloques.

Arquitectura de MongoBD•GridFS:

49

Arquitectura de MongoBD

50

Modelo de Datos

51

Sistema mongo Base de datos

Colección 

Documento  

Campo

StringIntegerFloatTimestampBinaryDocumentoArreglo

Nombre en forma de cadena

Modelo de Datos

l

va

a

e

lor

52

Esquema Flexible•Las colecciones no fuerzan una estructura idéntica para los documentos. •Los documentos no necesitan la misma cantidad de campos, y aquellos comunes pueden contener diferentes tipos de datos. •Cada documento necesita un número relevante de campos de la entidad.

53

La BD MongoDB guarda las estructuras de datos en documentos tipo BSON, usando un esquema dinámico con la siguiente disposición:

{ campo1 : valor1 , campo2 : valor2 , campo3 : valor3 , ... campoN : valorN}

Estructura de un documento

54

Índices en MongoDB•Son similares a los de otras BD y puede soporta índices en cualquier campo o subcampo contenido en los documentos de una colección.•Por defecto, se crea un índice sobre la clave _id de los documentos de una colección, aunque también pueden ser creados vía ensureIndex:

Ej.: db.unicorns.ensureIndex({ name : 1});

55

Características:• Se definen sobre un nivel por colección.• Se pueden crear sobre uno o varios campos

utilizando un índice compuesto.• Utilizan una estructura de datos B-tree y

mejoran el rendimiento de consultas.• Cada consulta utiliza sólo un índice.

Índices en MongoDB

56

_id

Único

Disperso

Secundario

Compuesto

No Disperso

Hash

TTL

Texto

Geoespaciales

ÍNDICESMongoDB

Índices en MongoDBTipos:

57

Limitaciones:• Una colección no puede tener más de 64 índices.• Las claves de índice no pueden ser mayor

que 1024 bytes (1KB) porque no pueden ser indexados.

• El nombre de un índice, incluido los espacios debe ser inferior a 128 caracteres .

Índices en MongoDB

58

Respaldo y RestauraciónRespaldos:

Se utiliza el ejecutable mongodump:Ej.: mongodump --db Gen

Restauración: Utilizamos mongorestore:

Ej.: mongorestore --db Gen --drop --dbpath dump/Gen

59

Comparación SQL-MongoBDSQL MongoDB

CREATE TABLE users ( id MEDIUMINT NOT NULL AUTO_INCREMENT, user_id Varchar(30), age Number, status char(1), PRIMARY KEY (id));

db.users.insert({user_id: "abc123", age: 55, status: "A"})odb.createCollection("users")

DROP TABLE users db.users.drop()

INSERT INTO users(user_id,age, status) VALUES ("bcd001", 45, "A") db.users.insert( { user_id: "bcd001", age: 45, status: "A"} )

SELECT * FROM users db.users.find()

SELECT COUNT(*) FROM users db.users.count()odb.users.find().count()

SELECT * FROM users WHERE status = "A" ORDER BY user_id DESC db.users.find( { status: "A" } ). sort( { user_id: -1 } )

UPDATE users SET status = "C" WHERE age > 25 db.users.update( { age: { $gt: 25 } }, { $set: { status: "C" } }, { multi: true })

DELETE FROM users WHERE status = "D" db.users.remove( { status: "D" } )

60

¿Quiénes usan MongoDB?

62

¿Dudas?

¿Preguntas?

¡Gracias por su Atención!

63