PDF de programación - MongoDB Proyecto

Imágen de pdf MongoDB Proyecto

MongoDB Proyectográfica de visualizaciones

Publicado el 25 de Junio del 2017
1.231 visualizaciones desde el 25 de Junio del 2017
250,4 KB
18 paginas
Creado hace 5a (23/06/2014)
MongoDB

MongoDB Proyecto

MIguel Ángel Martín Serrano

I.E.S Gonzalo Nazareno

21 Marzo, 2014

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

Contenido
Descripción breve del proyecto............................................................................................................3
Definiciones.....................................................................................................................................3
Conociendo MongoDB.........................................................................................................................4
Modelado de datos...........................................................................................................................4
Tipos de datos..................................................................................................................................4
Estructura de Mongo........................................................................................................................5
Instalación y gestión básica.............................................................................................................5
Equivalencias y diferencias base de datos relacional......................................................................7
Esquema SQL en MongoDB.........................................................................................................12
Aplicación python web.......................................................................................................................13
Mantenimiento de MongoDB.............................................................................................................15
Replicación.........................................................................................................................................16
Conclusiones.......................................................................................................................................17

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

Descripción breve del proyecto

Partimos de la base de que no tenemos ningún conocimiento sobre base de datos no
relacionales, excepto su existencia, y elegimos el sistema gestor de base de datos no relacional
más popular “MongoDB”, para llevar a cabo distintos objetivos.
Aquí vamos a explicar desde un punto de vista técnico en el que se tienen ya ciertos
conocimientos de base de datos relacionales.
Vamos a poner en funcionamiento un entorno, más cocnretamente una aplicación basa en
python, para usar la base de datos mongo.
Además vamos a ver cómo, una vez comprendido mongo, podemos optimizar su
funcionamiento y un mantenimiento óptimo.
Todo lo aquí descrito se va a llevar a cabo desde un sistema Linux más concretamente Debian
7 Whezzy en un entorno de pruebas nunca de producción (Aunque se va a tratar cómo si de
producción se tratara para hacerlo lo más real posible).

Definiciones

¿Que es MongoDB?

MongoDB (de la palabra en inglés “humongous” que significa enorme) es un
sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el
concepto de código abierto.
MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En
vez de guardar los datos en tablas como se hace en las base de datos relacionales,
MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema
dinámico (MongoDB llama ese formatoBSON), haciendo que la integración de los datos
en ciertas aplicaciones sea más fácil y rápida.

¿Por que Mongo db? Ventajas y desventajas
A grosso modo, y de manera muy resumida, mongo ofrece mayor velocidad y mejor
escalabilidad que un sistema tradicional de base de datos de tipo relacional, pero no
cumple ACID: Atomicidad, Consistencia, Aislamiento y Durabilidad.
Actualmente los portales web más visitados y famosos del mundo cómo Facebook,
utilizan este tipo de base de datos por la cantidad tan grande de datos que deben de
servir en el menor tiempo posible.

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

Vamos entonces a empezar con mongoDB, y comenzamos por la instalación.
Conociendo MongoDB

Modelado de datos

Una de las partes más dificiles es crear una base de datos no relacional desde cero, para ello lo
principal es tener claro los tipos de datos:

Tipos de datos
A continuación detallamos, algunos de los tipos de datos que soporta mongo:


Integer

• Double
• Boolean
• Date
• Timestamp
• Null
• Array
• Object
• ObjectID

Javascript

• Data Binaria

• String

– Números enteros.
– Números con decimales.
– Booleanos verdaderos o falsos.
– Fechas.
– Estampillas de tiempo.
– Valor nulo.
– Arreglos de otros tipos de dato.
– Otros documentos embebidos.
– Identificadores únicos creados por MongoDB al crear
documentos sin especificar valores para el campo _id.
– Punteros a archivos binarios.
– Código y funciones Javascript.
– Cadenas de caracteres.

Podemos guardar los diferentes datos, según un patrón, los dos más comúnes son:
Embeber

Este patrón se enfoca en incrustar documentos uno dentro de otro con la finalidad de
hacerlo parte del mismo registro y que la relación sea directa.

Referenciar

Este patrón busca imitar el comportamiento de las claves foráneas para relacionar
datos que deben estar en colecciones diferentes.

Miguel Ángel Martín Serrano

21/03/2013

MongoDB
Estructura de Mongo

Lo principal sería comprender cómo funciona mongo, es decir la estructura que sigue
a la hora de guardar o alojar los datos.
Mongo, puede tener varias base de datos, dentro de estas base de datos va a
guardar colecciones y las colecciones no son más que un conjunto de
documentos, los cuales guardan información a cerca de algo en concreto, con el
formato clave-valor.

Un ejemplo básico, supongamos que tenemos una base de datos llamada: EMPRESA,
dentro de esta tenemos una colección llamada TRABAJADORES, y dentro de esta
colección tenemos un documento llamado TRABAJADOR01, y dentro de estos
documentos los valores para las claves deseadas:
A continuación se detalla mejor en la imagen:

Instalación y gestión básica
Dado que estamos en un entorno Debian, MongoDB, esta en los repositorio de Debian
actualmente, así que bastaría con ejecutar:

apt­get install mongo­db

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

Ahora ya tenemos mongo instalado en nuestra máquina. Mongo es un servicio más
cómo puede serlo MySQL o Apache, así que una de las maneras de Arrancar, parar,
reiniciar o ver el estado de el servicio es :

service mongodb [ start | stop | restart | status ]

Bueno, ahora que conocemos a mongo como servicio, vamos a usarlo, simplemente
ejecutando en la consola “mongo”, accederemos a mongo y a las bases de datos que
tengamos, si hemos utilizado mysql, el equivalente a esto sería ejecutar en la terminal
“mysql -p -u {usuario_actual}”, y cuándo ejecutamos mongo desde la línea de
comandos, da igual el usuario que estemos usando en ese momento, en el ejemplo
entramos cómo 'root', y se conecta a la base de datos por defecto, test, si no
queremos que esto suceda tendriamos que arrancar mongo con otro parametros que
veremos má adelante:

root@debian:/home/usuario# mongo 
MongoDB shell version: 2.0.6 
connecting to: test 


En lo que a la gestión de usuarios se refiere, mongo por defecto no trae usuarios y
permite el acceso a todos a todas las base de datos, para cambiar esto, una de las
formas que utilizado es, editando el fichero /etc/mongodb.conf y descomentar la
línea:

auth:True

Y luego hemos creado el usuario para la base de datos empresa de la siguiente
manera, hemos accedido como root a mongo:

use empresa
db.adduser('migue','admin')

Y ya deberíamos de poder acceder a la base de datos empresa con este usuario y no
anonimamente, si hubiéramos creado el usuario con el parametro 'True' tendría solo
permisos de lectura.
Ya hemos visto cómo acceder, es hora de ver la gestión de las base de datos,
crear,borrar, listar y comandos más interesantes etc..

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

> db 
test 
Con esta instrucción vemos la base de datos que estamos usando ahora mismo

> use pruebas 
switched to db pruebas

Este comando cambia a la base de datos especificada en este caso pruebas, y si no
existe la crea.

> show dbs 
local
pruebas

(empty) 

Con este comando podemos ver las base de datos disponibles para el usuario
Si necesitamos ayuda, bastaría con ejecutar el comando “help” dentro de mongo o
“db.help()” para obtener ayuda a cerca de los metodos de base de datos.

Una vez que estamos dentro de una base de datos, vamos a ver cómo gestionamos la
base de datos en cuestion.

Equivalencias y diferencias base de datos relacional

A continuación mostramos algunas posibles equivalencias, lo que en una base de
datos relacional sería una relacion 1-1 en mongo se podría definir como un documento
dentro de otro así: (embeber)

Persona = { 
  nombre :  'Jonathan', 
  apellido :  'Wiesel', 
  genero : 'M', 
  documentos : { 

  

  
}

 pasaporte  : 'D123456V7', 
 licencia :  '34567651­2342', 
 seguro_social  :  'V­543523452' 
 } 

Miguel Ángel Martín Serrano

21/03/2013

MongoDB

Lo equivalente a una relación 1-n:

Persona = { 
    nombre      :   'Jonathan', 
    apellido    :   'Wiesel', 
    genero      :   'M' 

 
Documentosdb.insertPersonales = { 
    pasaporte       :   'D123456V7', 
    licencia        :   '34567651­2342', 
    seguro_social   :   'V­543523452' 


Ahora supongamos otro caso una relacion 1-*, es decir una documentos puede estar
relacionado con varios:

Direccion1 = { 
    _id             :   1, 
    pais            :   'Venezuela', 
    estado          :   'Distrito Capital', 
    ciudad          :   'Caracas' 
    urbanizacion    :   'La Florida'
  • Links de descarga
http://lwp-l.com/pdf4628

Comentarios de: MongoDB Proyecto (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad