presentacion bd nosql

63
Andrea Antunes C.I.: 20.362.606 María E. Pulido C.I.: 20.289.633 José Zambrano C.I.: 20.220.232 Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Administración de Bases de Datos 1 BD NoSQL

Upload: andrea-antunes

Post on 28-May-2015

770 views

Category:

Education


3 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 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

Page 2: Presentacion  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

Page 3: Presentacion  BD NoSQL

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

Agenda…

3

Page 4: Presentacion  BD NoSQL

¿Qué es NoSQL?

• Es una amplia clase de SMBD.

•Difiere del RDBMS.

4

Page 5: Presentacion  BD NoSQL

•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

Page 6: Presentacion  BD NoSQL

…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

Page 7: Presentacion  BD NoSQL

…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

Page 8: Presentacion  BD NoSQL

¿Por qué surge?

8

Billones de usuario Datos NO Estructurados +

Page 9: Presentacion  BD NoSQL

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.

Page 10: Presentacion  BD NoSQL

• 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.

Page 11: Presentacion  BD NoSQL

• Consistencia Eventual:

Características

11

Page 12: Presentacion  BD NoSQL

• 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

Page 13: Presentacion  BD NoSQL

• Alta velocidad de respuesta a peticiones:

Características

13

Page 14: Presentacion  BD NoSQL

• 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

Page 15: Presentacion  BD NoSQL

• 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

Page 16: Presentacion  BD NoSQL

• 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

Page 17: Presentacion  BD NoSQL

• No son suficientemente maduros para algunas empresas.

• Falta de experiencia.

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

• Problemas de compatibilidad.

Desventajas

17

Page 18: Presentacion  BD NoSQL

Arquitectura de BD NoSQL

18

Page 19: Presentacion  BD NoSQL

Teorema CAP

19

Consistency (Consistencia)

Partition Tolerance

(Tolerancia a Partición)

Availability(Disponibilidad)

CA CP

AP

RDBMS NoSQL

NoSQL

Page 20: Presentacion  BD NoSQL

Transacciones BASE

20

Teorema

CAP

B

A

S

E

• Bassically Available. (Básicamente Disponible)

• Soft-State. (Estado suave)

• Eventual Consistency. (Consistencia eventual)

Page 21: Presentacion  BD NoSQL

CAP vs BASE vs ACID

21

•Consistencia.

•Disponibilidad.

•Tolerancia a la partición.

CAP

•Tolerancia a la partición.•Disponibilidad.

BASE

•Coherencia.•Disponibilidad.

ACID

Page 22: Presentacion  BD NoSQL

Orientada a Grafos

Familias de Columnas

Clave - Valor Documentos

Taxonomía de BD NoSQL

22

Page 23: Presentacion  BD NoSQL

• 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

Page 24: Presentacion  BD NoSQL

• Índice.

• ¿Cuándo usarlas?.

• Algunas BD: Neo4j, HyperGraphDB.

BD Orientada a Grafos

24

Page 25: Presentacion  BD NoSQL

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.

Page 26: Presentacion  BD NoSQL

• 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

Page 27: Presentacion  BD NoSQL

• 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

….. …..…..

Page 28: Presentacion  BD NoSQL

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:

Page 29: Presentacion  BD NoSQL

• 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

Page 30: Presentacion  BD NoSQL

• Básicamente sería...

BD Clave-Valor

30

Clave Valor

85051-0

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

86694-1Índice

Page 31: Presentacion  BD NoSQL

Claves

John Smith

Lisa Smith

Sam Doe

000001 754375002

200201202 854575

886887 345435889

Valores

:

:

BD Clave-Valor

31

• Ejemplo:

Page 32: Presentacion  BD NoSQL

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.

Page 33: Presentacion  BD NoSQL

BD Orientada a Documentos

33

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

Page 34: Presentacion  BD NoSQL

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

Page 35: Presentacion  BD NoSQL

¿SQL o NoSQL? La Clave…

A la hora de decidirnos entre una

arquitectura u otra, debemos tener en

cuenta…

35

Page 36: Presentacion  BD NoSQL

Caso de Estudio

36

Page 37: Presentacion  BD NoSQL

Caso de Estudio

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

37

Page 38: Presentacion  BD NoSQL

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

Agenda…

38

Page 39: Presentacion  BD NoSQL

Agenda…

39

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

Page 40: Presentacion  BD NoSQL

40

¿Qué es MongoDB?

• BD multiplataforma de código abierto.

• NoSQL orientada a documentos.

Page 41: Presentacion  BD NoSQL

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.

Page 42: Presentacion  BD NoSQL

42

Estructura de MongoBDPosee una estructura escalable debido a las

las siguientes propiedades:

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

Page 43: Presentacion  BD NoSQL

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

Page 44: Presentacion  BD NoSQL

44

•Replicación para alta disponibilidad:

Estructura de MongoBD

Esclavo

Esclavo

Maestro

Esclavo

EsclavoDriv

er

EscrituraLectura

EscrituraLectura

Lectura

Maestro

MaestroXEsclavo

Page 45: Presentacion  BD NoSQL

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).

Page 46: Presentacion  BD NoSQL

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:

Page 47: Presentacion  BD NoSQL

47

“Database Router”

Brinda transparencia a las aplicaciones

cliente.

Arquitectura de MongoBD•Mongos:

Page 48: Presentacion  BD NoSQL

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:

Page 49: Presentacion  BD NoSQL

49

Arquitectura de MongoBD

Page 50: Presentacion  BD NoSQL

50

Modelo de Datos

Page 51: Presentacion  BD NoSQL

51

Sistema mongo Base de datos

Colección 

Documento  

Campo

StringIntegerFloatTimestampBinaryDocumentoArreglo

Nombre en forma de cadena

Modelo de Datos

l

va

a

e

lor

Page 52: Presentacion  BD NoSQL

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.

Page 53: Presentacion  BD NoSQL

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

Page 54: Presentacion  BD NoSQL

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});

Page 55: Presentacion  BD NoSQL

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

Page 56: Presentacion  BD NoSQL

56

_id

Único

Disperso

Secundario

Compuesto

No Disperso

Hash

TTL

Texto

Geoespaciales

ÍNDICESMongoDB

Índices en MongoDBTipos:

Page 57: Presentacion  BD NoSQL

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

Page 58: Presentacion  BD NoSQL

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

Page 59: Presentacion  BD NoSQL

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" } )

Page 60: Presentacion  BD NoSQL

60

¿Quiénes usan MongoDB?

Page 62: Presentacion  BD NoSQL

62

¿Dudas?

¿Preguntas?

Page 63: Presentacion  BD NoSQL

¡Gracias por su Atención!

63