php y nosql phpconmx 2012

26
PHP y NoSQL Carlos Nacianceno

Upload: carlos-nacianceno

Post on 04-Jul-2015

1.004 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP y NoSQL   PHPConMX 2012

PHP y NoSQL

Carlos Nacianceno

Page 2: PHP y NoSQL   PHPConMX 2012

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

Agenda

• NoSQL??

• Tipos de BD no relacionales

• Algunas BD no relacionales y PHP

• Conclusiones

• Preguntas

Page 4: PHP y NoSQL   PHPConMX 2012

NoSQL??

Page 5: PHP y NoSQL   PHPConMX 2012

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

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

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

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

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

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

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

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

Ejemplos de uso MongoDB

PHP y NoSQL

Page 14: PHP y NoSQL   PHPConMX 2012

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

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

Ejemplos de uso CouchDB

PHP y NoSQL

Page 17: PHP y NoSQL   PHPConMX 2012

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

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

Ejemplos de uso Redis

PHP y NoSQL

Page 20: PHP y NoSQL   PHPConMX 2012

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

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

Ejemplos de uso Riak

Page 23: PHP y NoSQL   PHPConMX 2012

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

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

Preguntas?

Page 26: PHP y NoSQL   PHPConMX 2012

Gracias

@igormx

@eltallerweb

http://eltallerweb.com