NoSQL
Bases de datos que guardan la información en formas distintas a tablas de columnas fijas.
NoSQL es un nombre paraguas para las bases de datos que no usan el modelo relacional clásico de tablas, filas y columnas fijas consultadas con SQL. El nombre se suele leer como "not only SQL" (no solo SQL). Se hicieron populares a fines de los 2000, cuando las grandes empresas web necesitaban guardar cantidades enormes de datos repartidos en muchos servidores, con formas flexibles y lecturas y escrituras muy rápidas.
Hay cuatro familias principales. Las bases de datos documentales, como MongoDB, guardan cada registro como un documento parecido a JSON que puede tener sus propios campos. Las clave-valor, como Redis o Amazon DynamoDB, funcionan como un diccionario gigante: das una clave y te devuelve el valor, rapidísimo. Las de columnas anchas, como Cassandra, guardan tablas enormes donde cada fila puede tener columnas distintas. Las de grafos, como Neo4j, guardan cosas y las conexiones entre ellas, ideales para redes sociales o detección de fraude.
La contracara es que diseñás pensando en cómo se van a leer los datos. Una base relacional te deja hacer casi cualquier pregunta después, uniendo tablas; muchas NoSQL son rápidas y escalan fácil justamente porque limitan esos joins y a veces aceptan que distintas copias queden desincronizadas por un momento. Ninguna es mejor en general. Muchas empresas usan las dos: una relacional para pedidos y pagos, y una NoSQL para sesiones, caché, catálogos o feeds de actividad.
Para quedarse
- "Not only SQL": bases de datos sin el modelo de tablas fijas.
- Cuatro familias: documentales, clave-valor, de columnas anchas y de grafos.
- Suelen escalar fácil en muchos servidores, muchas veces con menos joins y consistencia más laxa.
- Muchas veces se usan junto a una base relacional, no en su lugar.