Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
NoSQL
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Referencias adicionales|t=20240922151416}} En [[informática]], '''NoSQL''' (a veces llamado "'''no solo SQL'''") es una amplia clase de [[sistemas de gestión de bases de datos]] que difieren del modelo clásico de [[Sistema de gestión de bases de datos relacionales|SGBDR]] (Sistema de Gestión de [[Bases de Datos Relacionales]]) en aspectos importantes, siendo el más destacado que no usan [[SQL]] como [[Lenguaje de consulta|lenguaje principal de consultas]].<ref>{{Cita web |url=https://www.ibm.com/es-es/think/topics/nosql-databases |título=¿Qué es una base de datos NoSQL? |editor=IBM |fechaacceso=3 de noviembre de 2025 |idioma=español}}</ref> Los datos almacenados no requieren estructuras fijas como [[tabla (base de datos)|tablas]], normalmente no soportan operaciones [[Sentencia JOIN en SQL|JOIN]], ni garantizan completamente [[ACID]] (atomicidad, consistencia, aislamiento y durabilidad) y habitualmente escalan bien [[Escalabilidad#Escalabilidad_horizontal|horizontalmente]].<ref>{{Cita web |url=https://aws.amazon.com/es/nosql/ |título=¿Qué son las bases de datos NoSQL? |editor=Amazon Web Services |fechaacceso=3 de noviembre de 2025 |idioma=español}}</ref> Los sistemas NoSQL se denominan a veces "no solo SQL" para subrayar el hecho de que también pueden soportar lenguajes de consulta de tipo SQL. Por lo general, los investigadores académicos se refieren a este tipo de [[bases de datos]] como ''almacenamiento estructurado'', término que abarca también las bases de datos relacionales clásicas. A menudo, las bases de datos NoSQL se clasifican según su forma de almacenar los datos, y comprenden categorías como ''clave-valor'', las implementaciones de [[BigTable]], bases de datos documentales, y [[Base de datos orientada a grafos|bases de datos orientadas a grafos]].<ref>{{Cita web |url=https://www.mongodb.com/resources/basics/databases/nosql-explained |título=What is NoSQL? |editor=MongoDB, Inc. |fechaacceso=3 de noviembre de 2025 |idioma=inglés}}</ref> Los sistemas de bases de datos NoSQL crecieron con las principales redes sociales, como Google, Amazon, Twitter y Facebook.<ref>{{Cita web |url=https://learn.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data |título=Non-relational data and NoSQL |editor=Microsoft Azure Architecture Center |fechaacceso=3 de noviembre de 2025 |idioma=inglés}}</ref> Estas tenían que enfrentarse a desafíos con el tratamiento de datos que las tradicionales SGBDR no solucionaban. Con el crecimiento de la web en tiempo real existía una necesidad de proporcionar información procesada a partir de grandes volúmenes de datos que tenían unas estructuras horizontales más o menos similares. Estas compañías se dieron cuenta de que el rendimiento y sus propiedades de tiempo real eran más importantes que la coherencia, en la que las bases de datos relacionales tradicionales dedicaban una gran cantidad de tiempo de proceso{{Cita requerida}}. En ese sentido, a menudo, las bases de datos NoSQL están altamente optimizadas para las operaciones recuperar y agregar, y normalmente no ofrecen mucho más que la funcionalidad de almacenar los registros (p.ej. [[Base de datos clave-valor|almacenamiento clave-valor]]). La pérdida de flexibilidad en tiempo de ejecución, comparado con los sistemas SQL clásicos, se ve compensada por ganancias significativas en escalabilidad y rendimiento cuando se trata con ciertos modelos de datos.{{Cita requerida}} == Historia del término == Carlo Strozzi usó el término NoSQL en 1998 para referirse a su base de datos. Era una base de datos open-source, ligera, que no ofrecía una interfaz SQL, pero sí seguía el modelo relacional<ref> {{cita web | url = http://publications.lib.chalmers.se/records/fulltext/123839.pdf | título = Investigating storage solutions for large data: A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data | nombre = Adam | apellido = Lith | nombre2 = Jakob | apellido2 = Mattson | año = 2010 | editorial = Department of Computer Science and Engineering, Chalmers University of Technology | location = Göteborg | page = 15 | formato = PDF | fechaacceso = 12 de mayo de 2011 | cita = Carlo Strozzi first used the term NoSQL in 1998 as a name for his open source relational database that did not offer a SQL interface[...] | postscript = }} </ref> (Strozzi sugiere que, ya que el actual movimiento NoSQL "Se sale completamente del modelo relacional, debería, por tanto, haberse llamado 'NoREL', o algo así.").<ref> {{cita web|url=http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/nosql/Home%20Page |título=NoSQL Relational Database Management System: Home Page |editorial=Strozzi.it |fecha=2 de octubre de 2007 |fechaacceso=29 de marzo de 2010}} </ref> Eric Evans, un empleado de [[Rackspace]], reintrodujo el término NoSQL cuando Johan Oskarsson de [[Last.fm]] quiso organizar un evento para discutir bases de datos distribuidas de código abierto. El nombre intentaba recoger el número creciente de bases de datos no relacionales y distribuidas que no garantizaban [[ACID]], atributo clave en las SGBDR clásicas.{{Cita requerida}} == Arquitectura == Típicamente las bases de datos relacionales modernas han mostrado poca eficiencia en determinadas aplicaciones que usan los datos de forma intensiva, incluyendo el indexado de un gran número de documentos, la presentación de páginas en sitios que tienen gran tráfico, y en sitios de streaming audiovisual. Las implementaciones típicas de SGBDR se han afinado o bien para una cantidad pequeña pero frecuente de lecturas y escrituras o para un gran conjunto de transacciones que tiene pocos accesos de escritura. Por otro lado NoSQL puede servir gran cantidad de carga de lecturas y escrituras. Implementaciones de NoSQL usadas en el mundo real incluyen los 3TB de los marcadores verdes de [[Digg]] (indicados para señalar las historias votadas por otros en la red social; aunque duró menos de 3 meses y fue abandonado); los 6 TB de la base de datos del “ENSEMBLE” de la [[Comisión Europea]] usado en los modelos de comparación y calidad del aire, y los 50 TB de la búsqueda de la bandeja de entrada de wasa. Las arquitecturas NoSQL frecuentemente aportan escasas garantías de consistencia, tales como consistencia de eventos o transaccional restringida a ítems únicos de datos. Algunos sistemas, sin embargo, aportan todas las garantías de los sistemas ACID en algunas instancias añadiendo una capa intermedia (como por ejemplo, AppScale o CloudTPS). Hay dos sistemas que han sido desplegados y que aportan aislamiento snapshot para almacenamientos de columna: El sistema Percolator de Google (basado en el sistema BigTable) y el sistema transaccional de Hbase desarrollado por la Universidad de Waterloo. Estos sistemas, desarrollados de forma independiente, usan conceptos similares para conseguir transacciones ACID distribuidas de múltiples filas con garantías de aislamiento snapshot para el sistema subyacente de almacenamiento en esa columna, sin sobrecarga extra en la gestión de los datos, despliegue en el sistema de middleware, ni mantenimiento introducido por la capa de middleware. Bastantes sistemas NoSQL emplean una arquitectura distribuida, manteniendo los datos de forma redundante en varios servidores, usando frecuentemente una tabla hash distribuida. De esta forma, el sistema puede realmente escalar añadiendo más servidores, y el fallo en un servidor puede ser tolerado. Algunos defensores de NoSQL promueven interfaces simples tales como los arrays asociativos o los pares clave-valor. Otros sistemas, tales como las bases de datos nativas en XML, promueven el soporte del estándar Xquery. Los sistemas más novedosos tales como CloudTPS también soportan unión de queries. == Ventajas == *Estos sistemas responden a las necesidades de escalabilidad horizontal que tienen cada vez más empresas.<ref>[http://softlibre.barrapunto.com/softlibre/10/03/01/237259.shtml Twitter planifica la migración de MySQL a Cassandra DB] {{Wayback|url=http://softlibre.barrapunto.com/softlibre/10/03/01/237259.shtml |date=20100305055314 }} en barrapunto</ref> *Pueden manejar enormes cantidades de datos. *No generan cuellos de botella. *Escalamiento sencillo. *Diferentes DBs NoSQL para diferentes proyectos. *Se ejecutan en clusters de máquinas baratas. == Sistemas == {{Estilo|t=20240922151416}} === Tabla Comparativa de SGBD NoSQL === {| class="wikitable" |- ! Nombre !! Descripción |- | [[Apache Cassandra|Cassandra]] || Base de datos creada por [[Facebook]] y luego donada a la [[Apache Software Foundation|Fundación Apache]] del tipo clave-valor. Dispone de un lenguaje propio para realizar consultas CQL (Cassandra Query Language). Cassandra es una aplicación [[Java (lenguaje de programación)|Java]] por lo que puede correr en cualquier plataforma que cuente con la [[Máquina virtual Java|JVM]]. Es [[multiplataforma]]. |- | [[Redis]] || Base de datos creada por Salvatore Sanfilippo y Pieter Noordhuis y está apoyado por [[VMWare]]. Se trata de una base de datos del tipo clave-valor. Se puede imaginar como un array gigante en memoria para almacenar datos, datos que pueden ser cadenas, hashes, conjuntos de datos o listas. Tiene la ventaja de que sus operaciones son atómicas y persistentes. Sin embargo, Redis no permite realizar consultas, solo se puede insertar y obtener datos, además de las operaciones comunes sobre conjuntos (diferencia, unión e inserción). Creado en [[ANSI C]], por lo tanto, es compatible y funciona sin problemas en sistemas [[Unix]], [[GNU/Linux|Linux]] y sus derivados, [[Solaris (sistema operativo)|Solaris]], [[macOS|OS/X]], sin embargo no existe soporte oficial para plataformas [[Microsoft Windows|Windows]]. |- | [[MongoDB]] || Base de datos creada por MongoDB Inc. (anteriormente 10gen) del tipo orientada a documentos, de esquema libre, es decir, que cada entrada puede tener un esquema de datos diferente que nada tenga que ver con el resto de registros almacenados. Es bastante rápido a la hora de ejecutar sus operaciones ya que maneja datos binarios. En poco tiempo, MongoDB se ha convertido en una de las bases de datos NoSQL favoritas por los desarrolladores. Está escrito en lenguaje [[C++]]. Para el almacenamiento de la información, utiliza un sistema propio de documento conocido con el nombre [[BSON]], que es una evolución del formato [[JSON]] pero con la peculiaridad de que puede almacenar datos representados de forma binaria. Está disponible para los sistemas operativos [[Microsoft Windows|Windows]], [[GNU/Linux|Linux]], [[macOS|OS/X]] y [[Solaris (sistema operativo)|Solaris]]. |- | [[CouchDB]] || Sistema creado por [[Apache Software Foundation|Apache]] y escrito en el lenguaje [[Erlang]] que funciona en la mayoría de sistemas POSIX (multiplataforma), incluyendo [[GNU/Linux]] y [[macOS|OS/X]], además de sistemas [[Microsoft Windows|Windows]]. Como características más importantes cabe destacar el uso de [[Transferencia de Estado Representacional|RESTful]] HTTP API como interfaz y [[JavaScript]] como principal lenguaje de interacción. Para el almacenamiento de los datos se utilizan archivos [[JSON]]. Permite la creación de vistas, que son el mecanismo que permite la combinación de documentos para retornar valores de varios documentos, es decir, CouchDB permite la realización de las operaciones JOIN típicas de [[SQL]]. |} === Bases de datos documentales === {{AP|Base de datos documental}} * [[CouchDB]], de Apache CouchD * [[MongoDB]], de MongoDB Inc. * [[RavenDB]], de Hibernating Rhinos * BaseX * djondb * eXist * SimpleDB, de [[Amazon.com|Amazon]] * IBM Lotus Domino * Terrastore === Bases de datos en grafo === {{AP|base de datos orientada a grafos}} * Neo4j * DEX/Sparksee * AllegroGraph * OrientDB * InfiniteGraph * Sones GraphDB * InfoGri * HyperGraphDB === Bases de datos clave/valor === {{AP|Base de datos clave-valor}} * [[Apache Cassandra|Cassandra]], de [[Apache Software Foundation|Apache]] * [[BigTable]], de [[Google]] * Dynamo, de [[Amazon.com|Amazon]] * Project Voldemort, de [[LinkedIn]] * Riak * [[Redis]] * [[Oracle NoSQL]] === Bases de datos multivalor === {{AP|Base de datos multivalor}} * Rocket D3 DBMS * Rocket mvBase DBMS * Rocket U2 Universe * Rocket U2 Unidata * OpenQM * Caché InterSystems * Reality * Jbase * OpenInsight * Extensible storage engine === Bases de datos orientadas a objetos === {{AP|Base de datos orientada a objetos}} * [[ObjectDB]] * [[Zope Object Database]] * ZooDB * db4o * GemStone S * Objectivity/DB * Realm.io === Bases de datos tabular === * [[HBase]], de [[Apache Software Foundation|Apache]] * [[BigTable]], de [[Google]] * [[LevelDB]], versión abierta de BigTable * Hypertable === Bases de datos de arrays === * SciDB, de Paradigm4 == Referencias == {{listaref}} == Enlaces externos == * [http://nosql-databases.org/ nosql-databases.org] "Your Ultimate Guide to the Non-Relational Universe!" * Eric Lai. (2009, July 1). [http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_ No to SQL? Anti-database movement gains steam] {{Wayback|url=http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_ |date=20140721063126 }} * [https://www.mongodb.com/scale/types-of-nosql-database-management-systems Types Of NoSQL Database Management Systems] {{Control de autoridades}} [[Categoría:NoSQL| ]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
NoSQL
»
Añadir idiomas
Añadir tema