Upload
sergiovier
View
2.079
Download
1
Embed Size (px)
DESCRIPTION
Presentación realizada en la JoInEA 2011, en la que se introduce a los conceptos básicos de la base de datos noSQL mongodb y como se integra con Symfony2.
Citation preview
mongoDB en php y Symfony2
mongoDB en php y Symfony2
➢ 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
about:me
mongoDB en php y Symfony2
mongoDB
mongoDB en php y Symfony2
(proviene de “humongous”) es una base de datos escalable, de alto rendimiento, open source, schemafree y orientado a documentos.
http://mongodb.org
✔ Su desarrollo comenzó en 2007; primera beta pública en 2009; primera versión estable en 2010. Versión actual 1.8.x.
✔ Core licenciado bajo la AGPL v3.0 y los drivers bajo Apache Licence v2.0.
✔ Soporte multiplataforma y multilenguaje.
mongoDB en php y Symfony2
✔ 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
¿Por qué podríamos elegir mongoDB?
mongoDB en php y Symfony2
➔ 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
Modelo de Datos mongoDB
mongoDB en php y Symfony2
➔ 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
¿Pero realmente a que equivalen?
mongoDB en php y Symfony2
Tablas Colecciones
Filas Documentos
Columnas Claves (BSON)
Valores Valores (BSON, o documento)
Unión (joins) Embebido y enlazado
Consultas retornan registros
Consultas retornan un cursor!
mongoDB en php y Symfony2
Lenguaje de Consultas mongoDB
mongoDB en php y Symfony2
Métodos➔ find() ➔ findOne() ➔ save() ➔ remove() ➔ update() ➔ group() ➔ limit() ➔ skip() ➔ ensureIndex() ➔ count() ➔ ...
Operadores➔ $ne➔ $in➔ $nin➔ $mod➔ $all➔ $size➔ $exists➔ $type➔ $gt➔ $lt➔ $gte➔ $lte
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
Symfony2
mongoDB en php y Symfony2
✔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
Que nos está brindando Symfony2
mongoDB en php y Symfony2
Fuente:www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos
mongoDB en php y Symfony2
Configuración PHP XML YAML
Plantillas PHP TWIG
Almacenamiento SQL NoSQL
Flujo de Trabajo
Anotaciones Archivos
Fuente:www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos
mongoDB en php y Symfony2
Doctrine mongoDB ODM(Object Document Mapper)
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
En conclusión
mongoDB en php y Symfony2
➢ 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
¿Preguntas?
mongoDB en php y Symfony2
Documentación Oficial➔ www.mongodb.org➔ www.symfony.com➔ www.doctrine-project.org/projects/mongodb_odm
➔Aportes Interesantes➔ jwage.com/2010/08/25/blending-the-doctrine-orm-and-mongodb-odm➔ slideshare.net/spf13/blending-mongodb-and-rdbms-for-ecommerce➔ blog.servergrove.com/2010/04/28/mongodb-with-php-and-symfony
@sergiovier