Este documento proporciona una introducción a MongoDB y su uso con PHP y el framework Symfony2. Explica brevemente qué es MongoDB, sus características principales como base de datos NoSQL orientada a documentos, y cómo puede ser una alternativa a las bases de datos relacionales tradicionales. También describe cómo integrar MongoDB en aplicaciones PHP utilizando el objeto document mapper Doctrine para MongoDB y el framework Symfony2.
2. about:me
➢
Licenciado en Sistemas de Información
(egresado de la casa)
➢ Miembro de la comunidad Misiones
Software Libre
➢ +5 manejando GNU/Linux
➢ +4 desarrollador activo (php, symfony)
➢ Socio fundador de empresa
dedicada a desarrollar y ofrecer
soluciones TIC utilizando Software
Libre
mongoDB en php y Symfony2
5. ✔ mongoDB acorta las diferencias entre esquemas de
almacenamientos key/value y RDBMS.
✔ mongoDB logra escalabilidad horizontal al dejar
de usar uniones(joins) y transacciones complejas.
mongoDB en php y Symfony2
7. ➔ Orientado a Documentos: fácil mapeo de objetos a documentos.
Soporta la evolución del esquema (schemaless).
➔ Multifuncional: implementa funciones de sistemas
relacionales con la flexibilidad y capacidad para escalar de
modelos norelacionales.
➔ Alto rendimiento: no existe joins y soporta documentos
embebidos y colecciones. Manejo de índices potente.
➔ Alta disponibilidad: soporta replicación masterslave.
➔ Fácilmente escalable: sharding automático (autoparticionado
de datos a través de servidores).
➔ Lenguaje de consulta poderoso: Los datos son almacenados y
tratados como JSON (y serializados a BSON).
➔ Soporte ACID parcial: sin transacción y MVCC multidocumento
en post de mejorar el rendimiento.
mongoDB en php y Symfony2
9. ➔ Un Sistema Mongo mantiene un conjunto de bases de
datos.
➔ Una Base de Datos mantiene un conjunto de
colecciones.
➔ Una Colección mantinene un conjunto de documentos.
➔ Un Documento es un conjunto de campos.
➔ Un Campo es un par clavevalor.
➔ Una Clave es un identificador (string).
➔ Un valor es un tipo básico (string, integer,
float, timestamp, binary, etc. un documento, o un
array de valores).
mongoDB en php y Symfony2
11. Tablas Colecciones
Filas Documentos
Columnas Claves (BSON)
Valores Valores (BSON, o
documento)
Unión (joins) Embebido y enlazado
Consultas retornan Consultas retornan
registros un cursor!
mongoDB en php y Symfony2
18. Framework para PHP basado en componentes. Logra
✔
alta cohesión y bajo acoplamiento (GRASP)
✔ Versión 2.x, reescrito para PHP >= v5.3.2
✔ Soporte extendido para las ramas estables (2.x)
✔ Popularidad en github.com/symfony/symfony:
2,914 watchers (#1 in PHP, #25 total)
•
• 746 forks (#1 en PHP, #12 total)
✔Tanto Drupal como phpBB analizan utilizar
componentes de Symfony2
• groups.drupal.org/node/167299
• wiki.phpbb.com/PhpBB4/RFC/Symfony_2
mongoDB en php y Symfony2
21. Configuración PHP XML YAML
Plantillas PHP TWIG
Almacenamiento SQL NoSQL
Flujo de
Anotaciones Archivos
Trabajo
Fuente:
www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos
mongoDB en php y Symfony2
29. ➢ noSQL es un complemento a las
tecnologías de los RDBMS.
➢ Ideal para desarrollos ágiles,
lograr escalabilidad o manejar
enormes cantidades de datos.
➢ UnQL en camino, lo que acelera
la adopción noSQL. unqlspec.org
mongoDB en php y Symfony2