PHP y NoSQL PHPConMX 2012
-
Upload
carlos-nacianceno -
Category
Documents
-
view
1.007 -
download
0
Transcript of PHP y NoSQL PHPConMX 2012
![Page 1: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/1.jpg)
PHP y NoSQL
Carlos Nacianceno
![Page 2: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/2.jpg)
Quién soy?
• PHP desde hace 12 años
• Zend Certified Engineer
• Instructor de cursos Zend
• El Taller Web
Carlos Nacianceno
![Page 3: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/3.jpg)
Agenda
• NoSQL??
• Tipos de BD no relacionales
• Algunas BD no relacionales y PHP
• Conclusiones
• Preguntas
![Page 4: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/4.jpg)
NoSQL??
![Page 5: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/5.jpg)
NoSQL
• Bases de datos que no son RDBMS
• No relacional
• No hay un lenguaje de consulta
• No es necesario un esquema
• Puede no cumplir ACID
PHP y NoSQL
![Page 6: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/6.jpg)
NoSQL
• Teorema CAP
� Consitencia
� Disponibilidad
� Tolerancia a fallo
• Creció con Google, Amazon, Twitter, Facebook
� Volumenes de datos
� RDBMS no solucionaba
PHP y NoSQL
![Page 7: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/7.jpg)
NoSQL
• No hay “Santos Griales”
• No todo el NoSQL suple a las RDBMS
• Casos de uso
• No solo usarlo por usarlo sino por que puedes sacar provecho de las características
PHP y NoSQL
![Page 8: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/8.jpg)
Tipos de BD No Relacionales
• Orientadas a Documentos
• Documentos no tablas
• Organizados en Colecciones o Tags
• Encodificaciones
• JSON
• BSON
• XML
• YAML
• CouchDB• MongoDB
PHP y NoSQL
![Page 9: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/9.jpg)
Tipos de BD No Relacionales
• Gráficas
• Datos cuya relacion se puede expresar con una gráfica
• Relaciones sociales
• Vínculos
• Arboles de decisiones
• InfiniteGraph• Neo4j
PHP y NoSQL
![Page 10: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/10.jpg)
Tipos de BD No Relacionales
• Llave-Valor
• Relación simple
• Una llave que me regresa un valor
• Contenedor o recipiente
• Redis• Cassandra• Riak
PHP y NoSQL
![Page 11: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/11.jpg)
Tipos de BD No Relacionales
• Tabulares o Distribuidas
• Tablas multidimensionales
• Sistema de archivos
• Hadoop• BigTable• HBase
PHP y NoSQL
![Page 12: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/12.jpg)
MongoDB
• 10gen• Documentos (Hash/Arreglo)• BSON• SQLish• Fácil Replicación• Balanceo de carga• Map/Reduce• Protocolo propio de comunicación
PHP y NoSQL
![Page 13: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/13.jpg)
Ejemplos de uso MongoDB
PHP y NoSQL
![Page 14: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/14.jpg)
MongoDB y PHP
• Extension oficial
• PECL
• Github
• Zend Server
• Clases
• Mongo (conexión)
• MongoDB (base de datos)
• MongoCollection (colecciones documentos)
• MongoCursor (resultados)
• http://php.net/mongo
PHP y NoSQL
![Page 15: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/15.jpg)
CouchDB
• Apache• Documentos• JSON• Views• Fácil Replicación• Map/Reduce (Javascript)• Interfaz HTTP REST
PHP y NoSQL
![Page 16: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/16.jpg)
Ejemplos de uso CouchDB
PHP y NoSQL
![Page 17: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/17.jpg)
CouchDB y PHP
• Extension no oficial
• http://www.topdog.za.net/2010/08/11/php-couchdb-extension/
• Doctrine ODM
• Object Freezer
• PHPillow
PHP y NoSQL
![Page 18: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/18.jpg)
Redis
• Llave-valor Avanzado• En memoria• Operaciones atómicas (push,pull,add,remove)• Fácil Replicación• Protocolo binario propio• VMware
PHP y NoSQL
![Page 19: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/19.jpg)
Ejemplos de uso Redis
PHP y NoSQL
![Page 20: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/20.jpg)
Redis y PHP
• Extension phpredis• https://github.com/nicolasff/phpredis
• Predis
• https://github.com/nrk/predis
• Redis Server
PHP y NoSQL
![Page 21: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/21.jpg)
Riak
• Basho• Llave-valor Particionado• Replicación Masterless• Fault tolerant• Map/Reduce• Interfaz HTTP REST
PHP y NoSQL
![Page 22: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/22.jpg)
Ejemplos de uso Riak
![Page 23: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/23.jpg)
Riak y PHP
• No hay extension • Librería PHP Basho • Github
• https://github.com/basho/riak-php-client
PHP y NoSQL
![Page 24: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/24.jpg)
Conclusiones
• Aprovechar sus ventajas• Establecer un caso de uso adecuado• No usarlo para todo• Estar actualizado
PHP y NoSQL
![Page 25: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/25.jpg)
Preguntas?
![Page 26: PHP y NoSQL PHPConMX 2012](https://reader033.fdocuments.mx/reader033/viewer/2022052508/55980c3d1a28ab262c8b472e/html5/thumbnails/26.jpg)
Gracias
@igormx
@eltallerweb
http://eltallerweb.com