Gestores de base de datos.
Gestores de base de datos.
En la actualidad, existen multitud de SGBD y pueden ser
clasificados según la forma en que administran los datos en:
Relacionales (SQL)
No relacionales (NoSQL)
No relacionales
(NoSQL)
Las bases de datos NoSQL utilizan una variedad de modelos de
datos para acceder y administrar datos, como documentos, gráficos, clave-valor,
en-memoria y búsqueda. Estos tipos de bases de datos están optimizados
específicamente para aplicaciones que requieren grandes volúmenes de datos,
baja latencia y modelos de datos flexibles, lo que se logra mediante la
flexibilización de algunas de las restricciones de coherencia de datos en otras
bases de datos.
Porque usar: Las
bases de datos NoSQL se adaptan perfectamente a muchas aplicaciones modernas,
como dispositivos móviles, web y juegos, que requieren bases de datos
flexibles, escalables, de alto rendimiento y altamente funcionales para
proporcionar excelentes experiencias de usuario.
Aplicaciones:
Clave-valor: las
bases de datos clave-valor son altamente divisibles y permiten escalado
horizontal a escalas que otros tipos de bases de datos no pueden alcanzar. Los
casos de uso como juegos, tecnología publicitaria e IoT se prestan
particularmente bien con el modelo de datos clave-valor.
Documentos: en el
código de aplicación, los datos se representan a menudo como un objeto o un
documento de tipo JSON porque es un modelo de datos eficiente e intuitivo para
los desarrolladores. Las bases de datos de documentos facilitan a los
desarrolladores el almacenamiento y la consulta de datos en una base de datos
mediante el uso del mismo formato de modelo de documento que emplean en el
código de aplicación.
En memoria: las
aplicaciones de juegos y tecnología publicitaria tienen casos de uso como
tablas de clasificación, tiendas de sesión y análisis en tiempo real que
requieren tiempos de respuesta de microsegundos y pueden tener grandes picos de
tráfico en cualquier momento.
Relacionales (SQL)
Una base de datos relacional es una recopilación de
elementos de datos con relaciones predefinidas entre ellos. Estos elementos se
organizan como un conjunto de tablas con columnas y filas. Las tablas se
utilizan para guardar información sobre los objetos que se van a representar en
la base de datos. Cada columna de una tabla guarda un determinado tipo de datos
y un campo almacena el valor real de un atributo. Las filas de la tabla
representan una recopilación de valores relacionados de un objeto o entidad.
Cada fila de una tabla podría marcarse con un identificador único denominado
clave principal, mientras que filas de varias tablas pueden relacionarse con
claves extranjeras. Se puede obtener acceso a estos datos de muchas formas
distintas sin reorganizar las propias tablas de la base de datos.
Sistemas Gestores de
bases de datos Relacionales (SQL)
MySQL
Es el sistema gestor de bases de datos relacional por
excelencia.
Es un SGBD multihilo y multiusuario utilizado en la gran
parte de las páginas web actuales. Además es el más usado en aplicaciones
creadas como software libre.
Se ofrece bajo la GNU GPL aunque también es posible adquirir una licencia para empresas que quieran incorporarlo en productos privativos (Desde la compra por parte de Oracle se está orientando a este ámbito empresarial).
Las principales ventajas de este Sistema Gestor de Bases de datos son:
Facilidad de uso y gran rendimiento
Facilidad para instalar y configurar
Soporte multiplataforma
Soporte SSL
La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases de datos muy grandes que superan un determinado tamaño.
MariaDB
Este SGBD es una derivación de MySQL que cuenta con la
mayoría de características de este e incluye varias extensiones.
Nace a partir de la adquisición de MySQL por parte de Oracle
para seguir la filosofía Open Source y tiene la ventaja de que es totalmente
compatible con MySQL.
Entre las principales características de este Sistema Gestor de Bases de datos se encuentran:
Aumento de motores de almacenamiento
Gran escalabilidad
Seguridad y rapidez en transacciones
Extensiones y nuevas características relacionadas con su aplicación para Bases de datos NoSQL.
No tiene desventajas muy aparentes salvo algunas pequeñas incompatibilidades en la migración de MariaDB y MySQL o pequeños atrasos en la liberación de versiones estables.
SQLite
Más que un Sistema Gestor de bases de datos como tal, SQLite
es una biblioteca escrita en C que implementa un SGBD y que permite
transacciones sin necesidad de un servidor ni configuraciones.
PostgreSQL
Este sistema gestor de base de datos relacional está
orientado a objetos y es libre, publicado bajo la licencia BSD.
Sus principales características son:
Control de Concurrencias multiversión (MVCC)
Flexibilidad en cuanto a lenguajes de programación
Multiplataforma
Dispone de una herramienta (pgAdmin, https://www.pgadmin.org/) muy fácil e intuitiva para la administración de las bases de datos.
Robustez, Eficiencia y Estabilidad.
La principal desventaja es la lentitud para la administración de bases de datos pequeñas ya que está optimizado para gestionar grandes volúmenes de datos.
Microsoft SQL Server
Es un sistema gestor de bases de datos relacionales basado
en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios
grandes cantidades de datos de manera simultánea.
Es un sistema propietario de Microsoft. Sus principales características son:
Soporte exclusivo por parte de Microsoft.
Escalabilidad, estabilidad y seguridad.
Posibilidad de cancelar consultas.
Potente entorno gráfico de administración que permite utilizar comandos DDL y DML.
Aunque es nativo para Windows puede utilizarse desde hace ya un tiempo en otras plataformas como Linux o Docker.
Su principal desventaja es el precio. Cuenta con un plan gratuito (Express) pero lo normal es la elección de alguno de los planes de pago disponibles (Standard, Developer, Enterprise o SQL Azure, la versión de SQL Server en la nube).
Oracle
Tradicionamente, Oracle ha sido el SGBD por excelencia para
el mundo empresarial, considerado siempre como el más completo y robusto,
destacando por:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Multiplataforma.
MongoDB
Estamos ante el Sistema Gestor de Bases de Datos no
relacionales (SGBD NoSQL) más popular y utilizado actualmente.
MongoDB es un SBGD NoSQL orientado a ficheros que almacena
la información en estructuras BSON con un esquema dinámico que permite su
facilidad de integración.
Empresas como Google, Facebook, eBay, Cisco o Adobe utilizan
MongoDB como Sistema Gestor de Bases de datos.
Las principales características de MongoDB son:
Indexación y replicación
Balanceo de carga
Almacenamiento en ficheros
Consultas ad hoc
Escalabilidad horizontal
Open Source
Como desventaja principal, MongoDB no es un SGBD adecuado para realizar transacciones complejas.
Redis
Redis está basado en el almacenamiento clave-valor.
Podríamos verlo como un vector enorme que almacena todo tipo de datos, desde
cadenas, hashses, listas, etc.
El principal uso de este SGBD es para el almacenamiento en
memoria caché y la administración de sesiones.
Las características principales son:
Atomicidad y persistencia
Gran velocidad
Simplicidad
Multiplataforma
Cassandra
Al igual que Redis, Cassandra también utiliza almacenamiento
clave-valor. Es un SGBD NoSQL distribuido y masivamente escalable.
Facebook, Twitter, Instagram, Spotify o Netflix utilizan Cassandra.
Dispone de un lenguaje propio para las consultas denominado CQL (Cassandra Query Languaje).
Las principales características de este SGBD NoSQL son:
Multiplataforma
Propio lenguaje de consultas (CQL)
Escalado lineal y horizontal
Es un SGBD distribuido
Utiliza una arquitectura peer-to-peer
Comentarios
Publicar un comentario