Universidad Tecnológica de Panamá
Facultad de Ingeniería de Sistemas Computacionales
Maestría en Seguridad de la Información
Seguridad en Base de Datos
Presentación #1: MongoDb
MongoDB
Presentado por:
Moreno, José
Muñoz, Andrea
Rodriguez, Carlos
Prof. Xiegdel Miranda
0 MEAN Stacks
1 ¿Que son?
2 Componentes
3 Framework JavaScript
4 Ventajas y Desventajas Clasificar amenazas
6 Terminologías
7 Instalación MongoDB
8 Guía Rápida
9 Demo
Contenido
MEAN Stacks
Es un framework o conjunto de subsistemas de software para el desarrollo de aplicaciones,
y páginas web dinámicas, que están basadas, cada una de estas en el popular lenguaje de
programación conocido como JavaScript. Gracias a esta característica el conjunto se integra
exitosamente en una plataforma auto-suficiente.
Cada subsistema del Mean stack es de código abierto y de uso gratuito.
¿Qué son?
 MongoDB: base de datos no relacional. El stack no te obliga, en absoluto, a usar
MongoDB.
 Express JS: middleware extraordinariamente sencillo y potente para la generación de
aplicaciones web.
 AngularJS: aproximación declarativa al desarrollo de interfaces de usuario
extraordinariamente potente. Te permite implementar MVC (o MVVC, depende de los
gustos) en el lado del cliente web, de manera que la lógica de presentación.
 NodeJS: framework de servidor con un universo de módulos increíble y en expansión
que te permite escribir en javascript aplicaciones de servidor siguiendo un modelo de
programación por eventos. NodeJS, como framework, se puede usar para muchos
escenarios: uno de ellos (y ni mucho menos el único, aunque se suele confundir) es el
desarrollo de aplicaciones web.
Componentes
 Te permite escribir una aplicación web de principio a fin usando javascript como único
lenguaje, si bien las librerías que se usan en el front-end son distintas, lógicamente, de
las que se usan en el lado del back-end con NodeJS.
 AngularJS, bien usado, te libera de la necesidad de manipular directamente el DOM del
navegador, permitiéndote escribir de manera declarativa gran parte de la funcionalidad
de la interfaz de usuario, pero, sobre todo, desacoplando la lógica del cliente siguiendo
el patrón modelo-vista-controlador y por ello permitiéndote escribir tests.
 Existen frameworks de tests elegantes tanto para el front-end como para el back-end.
Ventajas
 El stack te permite poder escribir fácilmente aplicaciones SPA (single page application)
en las que el cliente web mantiene gran parte de la lógica de aplicación y el lado del
servidor implementa la API necesaria para darle soporte, ahorrando así continuos
requests http completos de todo el documento html y sus artefactos software.
 Dispones de un alto grado de control de todas las cosas que son de más bajo nivel
(gestión de cookies, cabeceras, routing, etc.) pero al mismo tiempo están
suficientemente abstraídas para que su uso sea trivial.
Ventajas
 La curva de aprendizaje es un poco lenta
 Poca documentación debido a su poco tiempo de disponibilidad
 Angular es a veces muy verboso y complicado y puede ser una mucho para aplicaciones
y sitios web simples.
 Mongo no es muy confiable ni estable como las bases de datos relacionales y requiere
de un administrador de base de datos con experiencia para la producción de
aplicaciones.
Desventajas
Sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de
código abierto.
Guarda estructuras de datos en documentos similares a JSON con un esquema dinámico
(utiliza una especificación llamada BSON) haciendo que la integración de los datos en
ciertas aplicaciones sea más fácil y rápida.
Desarrollado en octubre de 2007 por la compañía 10gen y contando con implantaciones en
empresas como MTV Network, Craiglist o Foursquare.
Es compatible con los sistemas operativos Windows, OS X y Linux.
MongoDB
Consultas AD HOC
Soporta búsquedas por campos, consultas de rangos y expresiones regulares. Pueden
devolver un campo específico del documento o una función JavaScript definida por el
usuario.
Indexación
Cualquier campo en un documento MongoDB puede ser indexado, al igual que es posible
hacer índices secundarios.
Replicación
Soporta el tipo de replicación primario-secundario y son denominados replica set. Los
primarios se pueden usar para lectura y escritura mientras que los secundarios replican los
datos del primario y solo se usa para lectura o copia de seguridad.
Características
Balanceo de Carga
Tiene la capacidad de ejecutarse en múltiples servidores, balanceando la carga y replicando
los datos para poder mantener el sistema funcionando en caso que exista un fallo de
hardware.
Almacenamiento de Archivos
MongoDB puede ser utilizado como un sistema de archivos, tomando la ventaja para el
balanceo de carga y la replicación de datos utilizando múltiples servidores para el
almacenamiento de archivos. Esta función se llama GridFS y es mas bien una
implementación de los drivers por lo que viene incluida en los drivers oficiales que la
compañía desarrolla.
Características
Database
MongoDB todavía puede contener varias bases de datos de nombres diferentes dentro de
un paquete de instalación, al igual que MySQL. Pero dentro de las bases de datos hay
colleciones, no tablas.
Collections
Puede ser considerado como una tabla excepto que no hay columnas alineadas. Cada
entrada (fila) puede utilizar esquemas dinámicos que varían.
Terminología
Document
Cada entrada o fila dentro de una colección es llamada como documento. No
existen documentos como .txt o .html. Ellos son los bloques de datos JSON
almacenados en archivos mapeados en memoria que se comportan como
entradas separadas en sus colecciones.
Terminología
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Hoja de trampa
Hoja de trampa
Hoja de trampa
1 - Instalación de Mongo en ubuntu con el stack mean
https://www.howtoforge.com/tutorial/how-to-install-mean.json-ubuntu-15-04/
2 - Información o equivalencias entre base de datos relacionadas y las no sql
http://www.hongkiat.com/blog/webdev-with-mongodb-part1/
3 - Hoja de Trampa Mongo
https://www.cheatography.com/ovi-mihai/cheat-sheets/mongodb/pdf/
https://blog.codecentric.de/files/2012/12/MongoDB-CheatSheet-v1_0.pdf
4 - Guia Rapida de Mongo
https://www.tutorialspoint.com/mongodb/mongodb_quick_guide.htm
https://code.tutsplus.com/tutorials/getting-started-with-mongodb-part-1--net-22879
Bibliografía
Gracias!

MEAN Stack

  • 1.
    Universidad Tecnológica dePanamá Facultad de Ingeniería de Sistemas Computacionales Maestría en Seguridad de la Información Seguridad en Base de Datos Presentación #1: MongoDb MongoDB Presentado por: Moreno, José Muñoz, Andrea Rodriguez, Carlos Prof. Xiegdel Miranda
  • 2.
    0 MEAN Stacks 1¿Que son? 2 Componentes 3 Framework JavaScript 4 Ventajas y Desventajas Clasificar amenazas 6 Terminologías 7 Instalación MongoDB 8 Guía Rápida 9 Demo Contenido
  • 3.
  • 4.
    Es un frameworko conjunto de subsistemas de software para el desarrollo de aplicaciones, y páginas web dinámicas, que están basadas, cada una de estas en el popular lenguaje de programación conocido como JavaScript. Gracias a esta característica el conjunto se integra exitosamente en una plataforma auto-suficiente. Cada subsistema del Mean stack es de código abierto y de uso gratuito. ¿Qué son?
  • 5.
     MongoDB: basede datos no relacional. El stack no te obliga, en absoluto, a usar MongoDB.  Express JS: middleware extraordinariamente sencillo y potente para la generación de aplicaciones web.  AngularJS: aproximación declarativa al desarrollo de interfaces de usuario extraordinariamente potente. Te permite implementar MVC (o MVVC, depende de los gustos) en el lado del cliente web, de manera que la lógica de presentación.  NodeJS: framework de servidor con un universo de módulos increíble y en expansión que te permite escribir en javascript aplicaciones de servidor siguiendo un modelo de programación por eventos. NodeJS, como framework, se puede usar para muchos escenarios: uno de ellos (y ni mucho menos el único, aunque se suele confundir) es el desarrollo de aplicaciones web. Componentes
  • 6.
     Te permiteescribir una aplicación web de principio a fin usando javascript como único lenguaje, si bien las librerías que se usan en el front-end son distintas, lógicamente, de las que se usan en el lado del back-end con NodeJS.  AngularJS, bien usado, te libera de la necesidad de manipular directamente el DOM del navegador, permitiéndote escribir de manera declarativa gran parte de la funcionalidad de la interfaz de usuario, pero, sobre todo, desacoplando la lógica del cliente siguiendo el patrón modelo-vista-controlador y por ello permitiéndote escribir tests.  Existen frameworks de tests elegantes tanto para el front-end como para el back-end. Ventajas
  • 7.
     El stackte permite poder escribir fácilmente aplicaciones SPA (single page application) en las que el cliente web mantiene gran parte de la lógica de aplicación y el lado del servidor implementa la API necesaria para darle soporte, ahorrando así continuos requests http completos de todo el documento html y sus artefactos software.  Dispones de un alto grado de control de todas las cosas que son de más bajo nivel (gestión de cookies, cabeceras, routing, etc.) pero al mismo tiempo están suficientemente abstraídas para que su uso sea trivial. Ventajas
  • 8.
     La curvade aprendizaje es un poco lenta  Poca documentación debido a su poco tiempo de disponibilidad  Angular es a veces muy verboso y complicado y puede ser una mucho para aplicaciones y sitios web simples.  Mongo no es muy confiable ni estable como las bases de datos relacionales y requiere de un administrador de base de datos con experiencia para la producción de aplicaciones. Desventajas
  • 9.
    Sistema de basede datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto. Guarda estructuras de datos en documentos similares a JSON con un esquema dinámico (utiliza una especificación llamada BSON) haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida. Desarrollado en octubre de 2007 por la compañía 10gen y contando con implantaciones en empresas como MTV Network, Craiglist o Foursquare. Es compatible con los sistemas operativos Windows, OS X y Linux. MongoDB
  • 10.
    Consultas AD HOC Soportabúsquedas por campos, consultas de rangos y expresiones regulares. Pueden devolver un campo específico del documento o una función JavaScript definida por el usuario. Indexación Cualquier campo en un documento MongoDB puede ser indexado, al igual que es posible hacer índices secundarios. Replicación Soporta el tipo de replicación primario-secundario y son denominados replica set. Los primarios se pueden usar para lectura y escritura mientras que los secundarios replican los datos del primario y solo se usa para lectura o copia de seguridad. Características
  • 11.
    Balanceo de Carga Tienela capacidad de ejecutarse en múltiples servidores, balanceando la carga y replicando los datos para poder mantener el sistema funcionando en caso que exista un fallo de hardware. Almacenamiento de Archivos MongoDB puede ser utilizado como un sistema de archivos, tomando la ventaja para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos. Esta función se llama GridFS y es mas bien una implementación de los drivers por lo que viene incluida en los drivers oficiales que la compañía desarrolla. Características
  • 12.
    Database MongoDB todavía puedecontener varias bases de datos de nombres diferentes dentro de un paquete de instalación, al igual que MySQL. Pero dentro de las bases de datos hay colleciones, no tablas. Collections Puede ser considerado como una tabla excepto que no hay columnas alineadas. Cada entrada (fila) puede utilizar esquemas dinámicos que varían. Terminología
  • 13.
    Document Cada entrada ofila dentro de una colección es llamada como documento. No existen documentos como .txt o .html. Ellos son los bloques de datos JSON almacenados en archivos mapeados en memoria que se comportan como entradas separadas en sus colecciones. Terminología
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
    1 - Instalaciónde Mongo en ubuntu con el stack mean https://www.howtoforge.com/tutorial/how-to-install-mean.json-ubuntu-15-04/ 2 - Información o equivalencias entre base de datos relacionadas y las no sql http://www.hongkiat.com/blog/webdev-with-mongodb-part1/ 3 - Hoja de Trampa Mongo https://www.cheatography.com/ovi-mihai/cheat-sheets/mongodb/pdf/ https://blog.codecentric.de/files/2012/12/MongoDB-CheatSheet-v1_0.pdf 4 - Guia Rapida de Mongo https://www.tutorialspoint.com/mongodb/mongodb_quick_guide.htm https://code.tutsplus.com/tutorials/getting-started-with-mongodb-part-1--net-22879 Bibliografía
  • 51.