Está en la página 1de 3

BASES DE DATOS noSQL

Es considerado como el no a bases de datos relacionales. Es considerado como


no solo usar sql.
Se le llama asi a las bases de datos que no son relacionales.

El xito de las bases de datos relacionales (SQL) es por varios motivos, en


primero lugar por el ACIDO

Atomicidad: Regla del todo o nada


Consistencia: Solamente data valida
Aislada: Las transacciones no se afectan entre si
Durabilidad: La transaccin perdura

El problema para sql es cuando tengo miles de transacciones al dia; el problema es


escalar.
Escalo verticalmente cuando compro un servidor mas grande para tener mayor velocidad.
Pero a veces el problema es mayor y necesito escalar horizontalmente, en vez de una
maquina tengo varias mquinas.
Las bases de datos relacionales no estn hechas para escalar horizontalmente. Y si logro
escalar los tiempos de respuesta no son aceptables. Y ahora por lo de la nube se exigen
bd centradas en la escabilidad.
El teorema de CAP: Establece algo para sistemas distribuidos. En un sistema
distribuido puedo tener solo dos propiedades a la vez de las siguientes 3:

Consistente: Todos los nodos ven la misma data al mismo tiempo.


Disponible: Todas las peticiones reciben una respuesta
Tolerante a particin: a menos que todos los nodos fallen, mi sistema sigue
funcionando.
SISTEMAS BASEs

Est bien que mi sistema me de respuestas aproximadas. Osea si publico un tweet no es


necesario que todos mis seguidores lo vean al mismo tiempo, pero es necesario que lo
vean. No es recomendarble para todos los sistemas.
NOSQL
Su taxonoma es key/value, Documentos,grafos, familia de columnas.

Clave valor: Tengo una clave y un valor. Dynamo,Voldemort project, redis.


Data store clave valor:
Def put (key,value);.end
Def get(key);end;
Def remove(key);..end;

Documentos: Persistir un document en BD. Couchdb, MongoDB,Riak


Tengo un documento xlm etc y lo persisto en la bd.

Puedo tener documentos,XML,YML,JSON,BSON.


El documento es equivalente a una fila, todo documento tiene un id valor, es de esquema
libre no tengo porque tener atributos del mismo valor.
Por ejemplo en bd relacional cuando quiero agregar el nuevo atributo debo migrar la bd y
actualizar todas las filas, en este caso solo agrego el nuevo atributo y esta persiste.
Familia de columnas: Cassandra (el de Facebook) Hbase.
Extiende el modelo de clave- valor porque ahora puedo guardar ms que un valor
simple.
Familia de columnas, es un conjunto de tuplas clave valor.
Posee columnas y super columnas
Los nombres de las columnas/supercolumnas pueden ser usados como nombres o
valores.(usualmente referencias)

Grafos: Los tengo plasmados en la bd con todo y aristas, lo mas conocidos son
Neo4j, flockDB. Los nodos son entidades, y las aristas son relaciones y contiene
informacin. Muy usada para redes sociales.
En general
Consistente y tolerante a la particin: MongoDB, Redis,HBase.
Disponible y tolerante a la particin: Dynamo, CouchDB,Cassandra,Riak.

CouchDB: Escrita en Earland (lenguaje para sist. distribuidos),protocolo http y rest,


incluye map reduce que es de google una funcin de mapeo
Para crear un documento:
User.json
{ name:foo,
email:foo @test.com,
type: user,}
MongoDB:
Es la que mas se parece a un modelo relacional pero es nosql
Esta escrito en c++

Usa archivos mapeados en memoria, es decir cuando hago una escritura el lo


escribe en memoria y el lo persiste al disco.
Tengo una coleccin donde meto documentos en cochdb no , todo se mete junto

También podría gustarte