Vous êtes sur la page 1sur 57

Desarrollo y servicios

web
Luisa Fernanda Rincn Prez
2016-1

Sesin 24. Bases de datos


NOSQL Introduccin MongoDB

Luisa Fernanda Rincn Prez


2015-1

Qu haremos hoy?
1. Bases de datos NoSQL

2. Tipos bases de datos NOSQL

3. MongoDB

Para qu sirven las bases de datos


NoSQL?

Sirven para manejar y analizar grandes cantidades


de informacin. No son un reemplazo de SQL
tradicional. Son una alternativa

Hace parte
del concepto
de BIGDATA
-Clics de los
usuarios
-Selecciones
anteriores

Qu datos no son estructurados?


Textos
Textos

Social
Social
media
media

Mobile
Mobile data
data

Web
Web site
site
content
content

Audio
Audio files
files

Ejm
Ejm llamadas
llamadas
de
de call
call centers
centers

Los datos en el mundo

http://www.signiant.com/blog/move-large-files-fastovercoming-the-challenge-of-transferring-huge-unstructureddata-sets/

Cmo se guardaba la informacin en bd


relacionales?
Informacin
distribuida en
muchas
tablas

En NOSQL no precisa de un sistema de


tablas y relaciones entre ellas.

Por qu NoSQL?

http://callcenterinfo.tmcnet.com/analysis/articles/156051-what-att-purchase-tmobile-means.htm

En el contexto de BigData los sistemas prescinden de


la robustez de informacin en pos de una mayor
agilidad en las consultas. Ahora se devuelven gran
cantidad de datos con millones de registros
involucrados.

NoSQL / Bd relacionales

Dato para
una bd
NO-SQL

Dato para una bd


relacional

En las bases de datos tradicionales

Qu son las bases de datos NOSQL?


No cumplen las restricciones
bsicas del modelo relacional
No permite JOINS
No SCHEMAS
No garantizan ACID (atomicidad,
consistencia, aislamiento y durabilidad)
No usan SQL como lenguaje de consulta

Sistemas de
almacenamiento
no relacionales

No tienen un
conjunto de tablas
relacionadas entre s
de una manera
ordenada y lgica.

Duplicidad de
informacin SI,
pero ya no es un
problema

https://www.ntt-review.jp/archive/ntttechnical.php?
contents=ntr201212fa3.html

Qu son las bases de datos NOSQL?

https://www.ntt-review.jp/archive/ntttechnical.php?
contents=ntr201212fa3.html

NoSQL caractersticas (BASE)


Basic availability
El almacn funciona la mayora del tiempo gracias al
almacenamiento distribuido y replicado, pero no
necesariamente 24/7

Soft-sate
Los almacenes no tienen porque ser consistentes ni sus
rplicas en todo momento.
El programador puede verificar esa consistencia.
Ejm. Si se cambia la direccin de correo, es posible que
algn nodo mantenga la informacin desactualizada

Eventual consistency
La consistencia se da eventualmente. En el caso del
correo. En algn momento todos los nodos volvern a
tener la misma informacin.

Propiedades adicionales bd NOSQL


Sharding
Sharding

Particionamiento horizontal: Los documentos de la


base de datos son partidos para que se encuentren
en diferentes nodos. ( Balancear la carga entre los
nodos)

Replication
Replication

La misma informacin se replica en diferentes


nodos para garantizar disponibilidad. Puede
hacerse en forma de maestro-esclavo y peer-topeer

Taxonoma NoSQL

Clave
valor
Taxonoma
NoSQL

Documentos

Grafos

Taxonoma NOSQL- clave/valor


Es
Es posible
posible
facilmente
facilmente leer
leer
un
un registro
registro de
de la
la
base
de
datos
base de datos
pero
pero no
no es
es
posible
buscar
posible buscar
datos
datos entre
entre
mltiples
mltiples
registros
registros [1].
[1].

Registros
repartidos entre
muchos nodos

Coleccin
de pares
clave/valor

Difcil de mantener
clave nica cuando
aumentan los datos

Cada clave
es nica

Soporta put, get y


delete sobre los
valores de la llave

Taxonoma NOSQL- orientadas a


documentos
El valor asociado a cada
llave contiene datos
estructurados o
semiestructurados,
tambin llamados
documentos
Cada documento
puede tener cualquier
nmero de campos de
cualquier valor
Modelo de datos:
colecciones de
documentos (JSON, XML,
BSON)

Taxonoma noSQL-orientadas a grafos


Lo ms importante
son las relaciones
de los datos.
Modelan los datos
como nodos y
aristas de grafos.
tiles para redes
sociales

Ejemplo base de
datos NOSQL

Fuente. http://www.sitepoint.com/using-a-graphdatabase-with-ruby-part-i-introduction/

Sql RELACIONAL

Taxonoma noSQL-orientadas a grafos

Tomado de [2]

Algunas bases de datos NOSQL

Cundo usar una base de dato


NOSQL?
Se tienen datos no estructurados o
semiestructados
Es necesario cambiar los esquemas de la
base de datos rpidamente de acuerdo a
las necesidades del negocio.
Es necesario consolidad muchas fuentes
de datos sin adaptarlas al mismo esquema

Mongo DB
https://www.youtube.com/wat
ch?v=CvIr-2lMLsk

Qu es MongoDB?

Base de datos NoSQL orientada a documentos


Usa JSON -BSON y tiene un lenguaje propio de
consultas.
Implementado en C++
Usada por SourceForge, Bit.ly, Foursquare o
GitHub
URL: http://www.mongodb.org/

Por qu Mongo DB?

Fuente: http://db-engines.com/en/ranking

Motor NOSQL ms popular


actualmente

Cules son las caractersticas de Mongo


DB?
Consultas en lenguaje propio
Indexacin como en bd relacionales
JSON como formato de datos
Replicacin maestro - esclavo
El maestro puede ejecutar comandos de lectura y
escritura.
El esclavo puede copiar los datos del maestro y slo se
puede usar para lectura
El esclavo tiene la habilidad de poder elegir un nuevo
maestro en caso del que se caiga el servicio con el
maestro actual.

Escalabilidad horizontal que se refiere a


aumentar el nmero de componentes.

Descargar MongoDB

http://www.mongodb.org/
http://www.mongodb.org/downloads

http://www.mongodb.org/downloads

Gua de instalacin: http://docs.mongodb.org/manual/installation/

Instalacin
1. Descargar, descomprimir, e instalar.
Mongo DB requiere una carpeta Data
para almacenar los datos
Directorio por defecto de los datos

C:\data\db

2. Iniciar el proceso

Si no se cre la carpeta correcta


aparece el error

Instalacin

3. Abrir mongo.exe
Mongo corre por defecto en el puerto
Probar en
27017
consola

Conceptos bsicos en MongoDB

Representacin
Binaria de JSON

Utilidades de MongoDB
mongo

Shell javascript interactivo


de consulta

mongostat

Estadsticas de una
instancia de Mongo DB en
ejecucin

mongo
Facilita importar/exportar
import/mongo
datos
export
mongodump/ Exportar y restaurar en
mongorestore binario la base de datos

Ejemplo documento MongoDB

Fuente: http://docs.mongodb.org/manual/core/crudintroduction/

Ejemplo documento MongoDB (2)

http://www.tutorialspoint.com/mongodb/mongodb_quick_g
uide.htm

Algunos comandos de MongoDB ejecutados desde


la consola de MongoDB

Crear una base de datos

Ver lista bases de datos ( se requiere insertar al


menos un dato para ver en la lista serviciosWebDB)

Algunos comandos de MongoDB


Crear coleccin db.createCollection

Insertar datos db.createCollection(Students)

Insertar datos en la coleccin


Insertar datos db.Students.insert({name: Daniel, lastname: lopez})

Cmo se insertan valores en


MongoDB?

Fuente: http://docs.mongodb.org/manual/core/crud-introduction/

Algunos comandos de MongoDB


Consultar colecciones disponibles
db.getCollectionNames();

Cmo se seleccionan datos para


consultar/borrar/modificar/..? -SELECTORES

Se comportan como la clusula


WHERE de una instruccin SQL.
Limitan los datos que se requieren.
Son objetos JSON

Qu selectores existen?
Selector
Selector base
base

{
{ field:
field: value}
value}

{name:
{name: pepe}
pepe}

Selector
Selector filtro
filtro

{field:
{field:
{filtro:valor}}
{filtro:valor}}

Filtros:
Filtros: $gt,
$gt,
$gte,$lt,
$gte,$lt,
$lt3,$ne
$lt3,$ne

$exists:
$exists: se
se
encuentra
encuentra el
el
campo
campo

{name
{name ::
{$exists:
{$exists:
true
true }}
}}

$in:
$in: valores
valores
para hacer
para hacer
match.
match. Arreglo
Arreglo

{name:
{name: {$in:
{$in:
[nomUno,
[nomUno,
nomDos]
nomDos] }}
}}

$or
$or

{name:
{name: {$or:
{$or:
{filro1}, {filtro2
{filro1}, {filtro2
}}
}}

Buscar
Buscar por
por id
id

{_id:
{_id:
ObjectId(id)}
ObjectId(id)}

Otros filtros
Otros filtros

Object_id
Object_id

{name: {$ne:
{name: {$ne:
pepe}}
pepe}}

Tutorial interactivo

Qu incluye?
Consultas

Insercin

Condi-cional

$exist

Id de los
documentos

http://mongly.openmymind.net/tutorial/index

Eliminacin

Cmo se usan los selectores en el comando find?

1: Ascendente
-1: Descendente

Fuente: http://docs.mongodb.org/manual/core/crudintroduction/

Retorna un cursor que sirve


para recorrer los documentos

Cmo se hacen consultas en


MongoDB?

Qu
Qu retornan
retornan las
las consultas?
consultas? Un
Un

Actualizar documentos - update


Todo el documento sobrescribe lo que tena si no se indica el
$set, sino se usa el $set se debe poner todo el documento de
nuevo.

Actualizar documentos upset


Si el documento no est se inserta, y si
s est se actualiza. Es el tercer
parmetro de update y se enva en
true
db.unicorns.update({name:
db.unicorns.update({name: 'Ulysee'},
'Ulysee'},
{$inc:
{$inc: {vampires:
{vampires: 1}},
1}}, true);
true);

Actualizar mltiples documentos ( Cuarto


parmetro)

Al adicionar un true como cuarto


parmetro se actualizan todos los
documentos que cumplan con el
criterio. Ejm
db.unicorns.update({gender:
{ $push: { loves: 'orange'}
true);

'm'},
},false,

Cmo se borran datos? - remove


db.collectionName.remove({selector})
db.unicorns.remove({name:'Lois'})
No pasar selector remueve todos los elementos de
la coleccin

db.unicorns.remove()

Conexin MongoDB en PHP


Fuente:
http://www.tutorialspoint.com/mongodb/mongodb_php.htm

Descargar extensin, copiarla


en la carpeta ext de php,
adicionar lnea en php.ini

Conectar base de datos. Si no existe, Mongo crea una


automticamente

Crear una coleccin

Ejecucin
programa

Insertar un documento

Imprimir todos los documentos de una


coleccin

Borrar documentos

Otras funciones
findOne(), save(), limit(), skip(), sort()

MongoLab
Ahora

mlab

Qu es MLab?

Cmo se puede hacer la conexin?


Driver Mongo
Conexin REST

Referencias
[1] Enterprise NOSQL for dummies.
Charlie
Brooks.
2014.
MarkLogic
Special Edition.
[2] Neo4j web site http://neo4j.com/
[3] MongoDB web site
https://www.mongodb.org/
[4] MongoLab. https://mongolab.com
[5] http://nosql-database.org/

Vous aimerez peut-être aussi