Está en la página 1de 5

Universidad de los Llanos. Riveros Walter.

Bases de datos relacionales y NoSQL 1

Bases de datos relacionales y NoSQL


Riveros, Walter.
walter.riveros@unillanos.edu.co
Universidad de los Llanos


columnas y filas. Las tablas se utilizan para guardar
Resumen—Las bases de datos no relacionales, comúnmente información sobre los objetos que se van a representar en la
denominadas NoSQL (not only SQL) o (no sólo SQL) han base de datos. Cada columna de una tabla guarda un
venido tomando fuerza en los últimos años debido a la determinado tipo de datos y un campo almacena el valor real
aparición de nuevas tecnologías y la necesidad de tratar con de un atributo. Las filas de la tabla representan una
grandes cantidades de datos, y es que precisamente éstas han recopilación de valores relacionados de un objeto o entidad.
sido ideales para tratar con facilidad con esta cantidad de Cada fila de una tabla podría marcarse con un identificador
información. En el presente artículo veremos los diferentes único denominado clave principal, mientras que filas de varias
tipos de bases de datos, dónde se ubican las NoSQL y algunas tablas pueden relacionarse con claves extranjeras. Se puede
ventajas y desventajas de estas frente a las bases de datos obtener acceso a estos datos de muchas formas distintas sin
reorganizar las propias tablas de la base de datos.” [2]
relacionales.
Los diferentes motores de bases de datos están basados en el
modelo ya mencionado anteriormente, a continuación, se
Índice de Términos—NoSQL, bases de datos relacionales,
listan algunos de ellos:
administración de datos, SQL.
A. Amazon Aurora
Amazon Aurora es un motor de base de datos relacional
I. DINTRODUCCIÓN compatible con MySQL y PostgreSQL que combina la
ESDE QUE SE VIENE PRESENTANDO LA NECESIDAD DE
velocidad y la disponibilidad que tienen las bases de datos
TRABAJAR CON GRANDES VOLÚMENES DE DATOS, SE HA
comerciales de gama alta con la simplicidad y la rentabilidad
OBSERVADO QUE EL MODELO RELACIONAL TIENE CIERTOS
que tienen las bases de datos de código abierto. Amazon
PROBLEMAS DE ESCALABILIDAD. Esto hace que el rendimiento Aurora ofrece hasta cinco veces más desempeño que MySQL.
disminuya rápidamente a medida que la cantidad de datos se Con Amazon Aurora, tendrá la seguridad, disponibilidad y
incrementa. Gracias a esto se llevó a cabo el desarrollo de un fiabilidad de una base de datos comercial a una décima parte
nuevo modelo de datos denominado NoSQL, aunque el del costo.
concepto de NoSQL se desarrolló hace mucho tiempo, fue B. PostgreSQL
después de la introducción de la base de datos como un PostgreSQL es un potente sistema de base de datos
servicio (DBaaS) que se hizo conocido. Debido a la alta relacional de objetos de código abierto con más de 30 años de
escalabilidad proporcionada por el modelo NoSQL, fue visto desarrollo activo que le ha ganado una sólida reputación de
como un competidor importante para el modelo de base de confiabilidad, solidez de funciones y rendimiento.
datos relacional. A diferencia de RDBMS, las bases de datos
NoSQL están diseñadas para escalarse fácilmente a medida C. MySQL
que crecen. La mayoría de los sistemas NoSQL han eliminado MySQL es un sistema de administración de bases de datos
el soporte multiplataforma y algunas características relacionales de código abierto (RDBMS) utilizado por un gran
adicionales innecesarias de RDBMS, haciéndolos mucho más número de aplicaciones web.
ligeros y eficientes que sus homólogos RDMS. El modelo de D. Oracle
datos NOSQL no garantiza las propiedades ACID “Oracle Database es un sistema de gestión de base de datos
(Atomicidad, consistencia, aislamiento y durabilidad), sino de tipo objeto-relacional (ORDBMS, por el acrónimo en
que garantiza las propiedades BASE (Básicamente disponible, inglés de Object-Relational Data Base Management System),
Estado blando, Consistencia eventual). Cumple con el teorema desarrollado por Oracle Corporation
CAP (Consistencia, Disponibilidad, Tolerancia de partición).
Su dominio en el mercado de servidores empresariales había
II. TIPOS DE BASES DE DATOS RELACIONALES sido casi total hasta que recientemente tiene la competencia
Como lo expresa directamente Amazon en su página oficial del Microsoft SQL Server y de la oferta de otros RDBMS con
“Un base de datos relacional es una recopilación de elementos licencia libre como PostgreSQL, MySQL o Firebird”. [4]
de datos con relaciones predefinidas entre ellos. Estos
elementos se organizan como un conjunto de tablas con

Universidad de los Llanos. Riveros Walter. Bases de datos relacionales y NoSQL 2

E. DB2 disponibilidad y una combinación de instantáneas continuas y


IBM DB2® es una familia de productos de administración registro de comandos para la durabilidad (recuperación de
de datos híbridos diseñados para ayudarlo a administrar datos fallos).
estructurados y no estructurados en entornos locales, privados VoltDB se basa en H-Store. Utiliza una arquitectura de
y de nube pública. Db2 se basa en un motor de SQL común nada compartido para escalar. Los datos y el procesamiento
inteligente diseñado para escalabilidad y flexibilidad. asociado con ellos se distribuyen a través de los núcleos de la
CPU dentro de los servidores que componen un único clúster
F. SQL Server VoltDB. Al extender su base de no compartir nada al nivel por
Microsoft SQL Server es un sistema de administración de núcleo, VoltDB se amplía con los conteos de núcleo por CPU
bases de datos relacionales desarrollado por Microsoft. Como en servidores multi-núcleo.
servidor de base de datos, es un producto de software con la
función principal de almacenar y recuperar datos según lo 3) Redis:
solicitan otras aplicaciones de software, que pueden ejecutarse Redis es un tipo de estructura de datos en memoria de
en la misma computadora o en otra computadora a través de código abierto (con licencia BSD), que se utiliza como base de
una red (incluida Internet). datos, caché y agente de mensajes. Es compatible con
estructuras de datos como cadenas, hashes, listas, conjuntos,
G. MariaDB
conjuntos ordenados con consultas de rango, mapas de bits,
MariaDB es un motor de base de datos compatible con índices geoespaciales con consultas de radio y flujos.
MySQL y derivado de MySQL, que desarrollan los Redis tiene replicación incorporada, scripts Lua, desalojo
desarrolladores originales de MySQL. de LRU, transacciones y diferentes niveles de persistencia en
disco, y proporciona alta disponibilidad a través de Redis
III. TIPOS DE BASES DE DATOS NOSQL Sentinel y partición automática con Redis Cluster.
Existe una variedad de modelos a los que se orientan las Puede ejecutar operaciones atómicas en estos tipos, como
distintas bases de datos que existen en el mercado, estos son agregar a una cadena; incrementando el valor en un hash;
algunos de ellos: empujando un elemento a una lista; conjunto de computación
intersección, unión y diferencia; o conseguir el miembro con
A. Bases de datos en memoria mayor rango en un conjunto ordenado.
Este tipo de base de datos están optimizadas para la Para lograr su excelente rendimiento, Redis trabaja con un
velocidad almacenando y recuperando datos de la memoria de conjunto de datos en memoria. Dependiendo de su caso de
la computadora en lugar de recuperar datos del disco. Es uso, puede persistir volcando el conjunto de datos al disco de
sabido que las lecturas de memoria son más rápidas que las vez en cuando, o agregando cada comando a un registro. La
búsquedas en disco, pero muchas bases de datos en memoria persistencia se puede deshabilitar opcionalmente, si solo
ahora también tienen persistencia de disco. Sería el caso que necesita un caché en memoria, en red y con muchas funciones
todos los datos se perderían si se reiniciara la computadora,
pero este tipo de base de datos solucionan esto utilizando
métodos como la replicación, instantáneas de datos y registro B. Bases de datos clave-valor
de transacciones. La mayoría de las bases de datos en memoria Las bases de datos de tipo clave-valor son bastante
usan almacenamiento de clave-valor. simplistas, pero son muy eficientes y robustas. Tiene una API
Algunas de estas bases de datos son: simple que le permiten al usuario sacar el máximo provecho
de ellas. Un base de datos de tipo clave-valor permite al
1) Memcached: usuario almacenar datos de una manera menos esquemática.
Es un almacén de clave-valor en memoria para pequeños Los datos suelen ser algún tipo de tipo de datos de un lenguaje
fragmentos de datos arbitrarios (cadenas, objetos) de de programación o incluso un objeto.
resultados de llamadas a bases de datos, llamadas a API o Los datos constan de dos partes, una cadena que representa
representación de páginas. la clave y los datos reales a los que se debe hacer referencia
Memcached es simple pero potente. Su diseño simple como valor, creando así un par “clave-valor”. Este tipo de
promueve la implementación rápida, la facilidad de desarrollo almacenamiento es similar a la tabla hash donde las claves se
y resuelve muchos problemas que enfrentan los cachés de usan como índices, lo que las hace más rápidas que las bases
datos grandes. Su API está disponible para los idiomas más de datos relacionales. Por lo tanto, el modelo de datos es
populares. simple: un mapa o un diccionario que permite al usuario
solicitar los valores de acuerdo con la clave especificada.
2) VoltDB: A continuación, se mencionan algunos proveedores notables
VoltDB es una base de datos NewSQL que admite el de DBaaS que utilizan como tipo de almacenamiento el
acceso a SQL desde los procedimientos almacenados Java sistema clave-valor:
precompilados. La unidad de transacción es el procedimiento
almacenado, escrito en Java intercalado con SQL. 1) Amazon DynamoDB:
VoltDB se basa en la partición horizontal hasta el Es un sistema de almacenamiento de tipo clave-valor que
subproceso de hardware individual a escala, k-safety algunos de los servicios principales de Amazon utilizan para
(replicación sincrónica) para proporcionar una alta proporcionar una experiencia "siempre activa".
Universidad de los Llanos. Riveros Walter. Bases de datos relacionales y NoSQL 3

Para lograr este nivel de disponibilidad, Dynamo sacrifica esta escala, pequeños y grandes componentes fallan
la consistencia en ciertos escenarios de falla. Hace un uso continuamente.
extensivo del control de versiones de objetos y la resolución La forma en que Cassandra gestiona el estado persistente
de conflictos asistida por la aplicación de una manera que de estas fallas hace que la confiabilidad y la escalabilidad de
proporciona una interfaz novedosa para que los los sistemas de software dependan de este servicio. Si bien
desarrolladores la utilicen. Cassandra se parece a una base de datos y comparte muchas
Se implementa utilizando el modelo Dynamo de Amazon. estrategias de diseño e implementación con ella, Cassandra no
Ofrece latencias bajas y predecibles en cualquier escala. admite un modelo de datos relacional completo; en su lugar,
Almacena datos en unidades de estado sólido (SSD) en lugar proporciona a los clientes un modelo de datos simplificados
de discos duros tradicionales, lo que proporciona un acceso que admite el control dinámico sobre el diseño y el formato de
más rápido a los datos. los datos.
Los datos se replican de forma sincrónica en múltiples El sistema Cassandra fue diseñado para ejecutar hardware
Zonas de disponibilidad de AWS en una región de AWS para de productos básicos y manejar un alto rendimiento de
proporcionar una alta disponibilidad integrada y durabilidad escritura sin sacrificar la eficiencia de lectura.
de los datos. Replica datos en al menos tres centros de datos,
lo que proporciona una alta disponibilidad y durabilidad 2) Big Table:
incluso en escenarios de fallas complejas. Google BigTable es un mecanismo de almacenamiento de
2) RIAK: datos no relacional, distribuido y multidimensional construido
Es un almacén de datos NoSQL distribuido de tipo clave- sobre las tecnologías de almacenamiento propietarias de
valor que ofrece alta disponibilidad, tolerancia a fallas, Google para la mayoría de las aplicaciones / productos en
simplicidad operativa y escalabilidad. Además de la versión de línea y de back-end de la compañía. Proporciona una
código abierto, viene en una versión empresarial compatible y arquitectura de datos escalable para infraestructuras de bases
una versión de almacenamiento en la nube. Riak implementa de datos muy grandes.
los principios del artículo Dynamo de Amazon con gran Google BigTable se utiliza principalmente en productos
influencia del teorema de la PAC. Escrito en Erlang, Riak propietarios de Google, aunque algunos accesos están
tiene replicación de datos tolerante a fallas y distribución disponibles en Google App Engine y en aplicaciones de bases
automática de datos en todo el clúster por su rendimiento y de datos de terceros.
resistencia.
3) CouchDB:
C. Bases de datos orientadas a columnas:
Apache CouchDB es una base de datos NoSQL orientada a
Las bases de datos orientadas a columnas en NO SQL son en documentos de código abierto, implementada en el lenguaje
realidad almacenes híbridos de filas / columnas, a diferencia orientado a la concurrencia Erlang; utiliza JSON para
de las bases de datos puras de columnas relacionales. Aunque almacenar datos, JavaScript como lenguaje de consulta
comparte el concepto de almacenamiento columna por mediante MapReduce y HTTP para una API.
columna de las bases de datos en columnas y las extensiones CouchDB se lanzó por primera vez en 2005 y luego se
en columnas a las bases de datos basadas en filas, los convirtió en un proyecto de Apache Software Foundation en
almacenes de columnas no almacenan datos en tablas, pero 2008.
almacenar los datos en arquitecturas distribuidas masivamente. A diferencia de una base de datos relacional, una base de
En los almacenes de columnas, cada clave está asociada con datos CouchDB no almacena datos y relaciones en tablas. En
uno o más atributos (columnas). Ofrece una gran escalabilidad su lugar, cada base de datos es una colección de documentos
en el almacenamiento de datos. Los datos que se almacenan en independientes. Cada documento mantiene sus propios datos y
la base de datos se basan en el ordenamiento de la familia de un esquema autocontenido. Una aplicación puede acceder a
columnas. múltiples bases de datos, como una almacenada en el teléfono
Las bases de datos orientadas a columnas son adecuadas móvil de un usuario y otra en un servidor. Los metadatos del
para la minería de datos y las aplicaciones analíticas, donde el documento contienen información de revisión, lo que hace
método de almacenamiento es ideal para las operaciones posible fusionar cualquier diferencia que haya ocurrido
comunes que se realizan en los datos. Algunos de los mientras se desconectaban las bases de datos.
proveedores DBaaS notables que usan bases de datos
orientadas a columnas se mencionan a continuación: 4) MongoDB:
MongoDB es una base de datos multiplataforma y de
1) Cassandra: código abierto orientada a documentos, una especie de base de
Cassandra es un sistema de almacenamiento distribuido datos NoSQL. Como una base de datos NoSQL, MongoDB
para administrar cantidades muy grandes de datos rechaza la estructura basada en tablas de la base de datos
estructurados distribuidos en muchos servidores de productos, relacional para adaptar documentos similares a JSON que
a la vez que proporciona un servicio de alta disponibilidad sin tienen esquemas dinámicos a los que llama BSON.
un punto único de falla. Cassandra pretende ejecutar en la Esto hace que la integración de datos para ciertos tipos de
parte superior de una infraestructura de cientos de nodos aplicaciones sea más rápida y fácil. MongoDB está diseñado
(posiblemente diseminados en diferentes centros de datos). A para ofrecer escalabilidad, alta disponibilidad y rendimiento
Universidad de los Llanos. Riveros Walter. Bases de datos relacionales y NoSQL 4

desde una única implementación de servidor a grandes y las bases de datos orientadas a objetos, ya que los objetos se
complejas infraestructuras de múltiples sitios. pueden recuperar directamente mediante punteros. Las bases
de datos orientadas a objetos hacen que los procesos modernos
D. Bases de datos graficas:
de desarrollo de software sean más ágiles. Las bases de datos
Las bases de datos gráficas son bases de datos que orientadas a objetos se deben usar en aplicaciones que
almacenan datos en forma de gráficos. El gráfico consta de involucran relaciones complejas de objetos, estructuras de
nodos y bordes, donde los nodos actúan como los objetos y los objetos cambiantes o si la aplicación define miembros que son
bordes actúan como la relación entre los objetos. El gráfico colecciones. Las bases de datos orientadas a objetos se utilizan
también consta de propiedades relacionadas con los nodos. en investigación científica, telecomunicaciones, diseño
Utiliza una técnica llamada adyacencia sin índice, lo que asistido por computadora, etc. Pero la desventaja de las bases
significa que cada nodo consiste en un puntero directo que de datos orientadas a objetos es que está ligada a un lenguaje
apunta al nodo adyacente. Millones de registros pueden ser de programación específico.
recorridos usando esta técnica. En una base de datos gráfica, el
énfasis principal está en la conexión entre los datos. IV. COMPARACIÓN DE LAS BASES DE DATOS
Las bases de datos de gráficos proporcionan un esquema RELACIONALES Y LAS NOSQL
menos y un almacenamiento eficiente de datos Como bien se ha dicho, las bases de datos relacionales tienen
semiestructurados. Las consultas se expresan como recorridos, grandes desventajas en cuanto a volúmenes grandes de datos
por lo que las bases de datos de gráficos son más rápidas que se trata, pero hay que destacar también que las bases de datos
las bases de datos relacionales. no relacionales o NoSQL también tienen algunas desventajas.
Es fácil de escalar y amigable con la pizarra. Las bases de A continuación se observa una lista de ventajas y desventajas
datos de gráficos son compatibles con ACID y ofrecen soporte de las dos:
de reversión. Las bases de datos de gráficos se pueden usar 1) Ventajas de NOSQL sobre bases de datos
para una variedad de aplicaciones como aplicaciones de redes relacionales
sociales, software de recomendación, bioinformática, gestión - Proporciona una amplia gama de modelos de datos
de contenido, seguridad y control de acceso, gestión de red y para elegir.
nube, etc. Es muy difícil de lograr 'Sharding' en las bases de - No tiene problema en trabajar con grandes volúmenes
datos gráficas. Las bases de datos de gráficos son difíciles de de datos al ser no relacionales.
agrupar. Neo4j es uno de los proveedores notables de DBaaS - Escalan fácilmente debido al modelo al que están
que utiliza almacenes de datos gráficos. orientadas
1) Neo4j: - Algunos de los proveedores de NOSQL DBaaS como
Neo4j es un sistema de gestión de base de datos de Riak y Cassandra están programados para manejar
gráficos desarrollado por Neo4j, Inc. Descrito por sus fallas de hardware
desarrolladores como una base de datos transaccional - Son más rápidas, más eficientes
compatible con ACID con almacenamiento y procesamiento - En los últimos años han tenido una evolución
de gráficos nativos, Neo4j es la base de datos de gráficos más constante
popular según el ranking DB-Engines, y el 22 más popular 2) Desventajas de NOSQL sobre Relacional
base de datos en general. - Algunas de ellas están en una etapa temprana y no
Neo4j está disponible en una "edición comunitaria" de están muy claras algunas cosas
código abierto con licencia GPL3, con copia de seguridad en - No hay lenguaje de consulta global
línea y extensiones de alta disponibilidad bajo una licencia - Algunas bases de datos NOSQL no son compatibles
comercial de código cerrado. Neo también otorga licencias de
con ACID.
Neo4j con estas extensiones bajo términos comerciales de
- Puede haber pérdida de datos debido a su modelo
código cerrado.
- El mantenimiento es difícil
E. Bases de datos orientadas a objetos:
Una base de datos orientada a objetos es una base de datos V. CONCLUSIONES
en la que los datos o la información que se guarda se //TODO
representa como un objeto. Por lo tanto, la base de datos
orientada a objetos se puede considerar como una REFERENCIAS
combinación de programación orientada a objetos (POO) y
principios de base de datos. El almacén de datos de objetos [1] Leavitt, N.,"Will NoSQL Databases Live Up to Their
ofrece todas las características de la POO, el encapsulamiento Promise ?" Computer, vol.43, no.2, pp.12-14, jul. 2019
de datos, el polimorfismo y la herencia. La clase, los objetos y doi: 10.1109/MC.2010.58
los atributos de clase en dichas bases de datos son [2] Bases de datos relacionales:
comparables a una tabla, tupla y columnas en una tupla en https://aws.amazon.com/es/relational-database/
RDBMS, respectivamente. Cada objeto tiene un identificador [3] PostgreSQL: https://www.postgresql.org/
de objeto que se puede usar para representar de manera única [4] Oracle Database:
ese objeto. El acceso a los datos es más rápido en el caso de https://es.wikipedia.org/wiki/Oracle_Database
Universidad de los Llanos. Riveros Walter. Bases de datos relacionales y NoSQL 5

[5] MongoDB, http://www.mongodb.org/about/introduction


[6] DB2: https://www.ibm.com/analytics/db2
[7] Clarence J M Tauro, Aravindh S, Shreeharsha A. B,
“Comparative Study of the New Generation, Agile,
Scalable, High Performance NOSQL Databases”,
International Journal of Computer Applications (0975 –
888) Volume 48–No.20, Jule 2019 doi: 10.5120/7461-
0336
[8] http://en.wikipedia.org/wiki/NoSQL
[9] db4o , http://www.db4o.com/about/
[10] Apache Cassandra, http://wiki.apache.org/cassandra/
[11] Pramod J. Sadalageand Martin Fowler, “NoSQL
Distilled”
[12] http://aws.amazon.com/dynamodb/
[13] Neo4j, http://www.neo4j.org/learn

También podría gustarte