Gestores de base de datos
Hoy vamos a ver motores o gestores de base de datos. ¿Qué opciones tenemos? ¿Qué diferencias hay entre cada uno? ¿Cuál me conviene más?
Primero que nada, debemos tener en claro que es una base de datos. Como su nombre lo indica, se encarga de almacenar datos que deseamos guardar, pero ¿Es solo esto? La respuesta es NO. Las bases de datos se encargan de conectar los datos entre sí en una unidad lógica, de una manera estructurada, que pertenecen a un mismo contexto, la cual vamos a utilizar para almacenar gran cantidad de información de manera electrónica.
Estas bases de datos normalmente se controlan por un sistema de gestión de base de datos (DBMS), y junto con aplicaciones asociadas a ellos, reciben el nombre de sistema de base de datos.
Por lo general las bases de datos más comunes se arman con una estructura de filas y columnas en una serie de tablas para aumentar la eficacia de procesamiento y la consulta de datos. Así se puede acceder, gestionar, modificar, actualizar y controlar fácilmente los datos.
A lo largo de los años fue evolucionando drásticamente. En sus principios haya por 1960 las bases de datos eran en forma de árbol, jerárquicas, permitía la relación de uno a muchos, y las bases de datos de red, con relaciones múltiples. Ya en la década del 80 se hicieron populares las bases de datos relacionales, luego las orientadas a objetos en la década del 90. Hoy en día las bases de datos NoSQL surgieron como respuesta al crecimiento de internet y con la necesidad de acelerar la velocidad y el procesamiento.
SQL
Volvamos a las bases de datos relacionales. Para trabajar con estas se utiliza SQL (Structured Query Laguaje) o Leguaje de consulta estructurada. Se utiliza para administrar información en un sistema de gestión de base de datos relacionales. Fue creado por IBM en la década del 70, y normalizado en 1986. Con el correr de los años este leguaje fue evolucionando, en el 2016 permite la búsqueda de patrones, funciones en tablas polimórficas y compatibilidad con ficheros JSON.
Podríamos hablar muchísimo de SQL, pero eso lo vamos a dejar para futuros posteos. Ahora volviendo, nos vamos a centrar en los gestores de bases de datos que podemos utilizar para nuestros desarrollos particulares, o bien, con los que te vas a encontrar en tus proyectos.
Entonces, un SGBD (Sistema Gestión de Base de Datos) o DGBA (Data base Management System) es un programa para administrar y gestionar la información. Tenemos algunos sencillos como puede ser Microsoft Access, algunos podrían decir que este no es un gestor de base de datos, pero en mi opinión se podría incluir, ya que se pueden hacer muchas cosas en él, claro no para proyectos grandes, también tenemos la versión libre que es Base de Libre Office, muy completo.
Cabe aclarar que a diferencia de una hoja de cálculo de Excel, estos gestores permiten almacenar y manipular los datos, se puede controlar quien accede a ellos y cuantos datos almacenar. Claro, la comparación con Excel se podría hacer, ya que contiene filas y columnas, pero Excel está pensado para un único usuario o unos pocos.
Vamos a ver los principales Gestores de base de datos más utilizados a la actualidad.
MySQL
MySQL es uno de los gestores de base de datos más utilizados de la actualidad, al estar basado en código abierto. Se trata de un sistema de gestión relacional. Hace uso del lenguaje de programación PHP. Cabe destacar que tiene 2 versiones, una con Licencia Pública General (GPL) y otra versión con licencia comercial distribuida por Oracle Corporation. Oracle la compro en el año 2010, a Sun Microsystem.
Tiene características como arquitectura cliente/servidor, ya que basa su funcionamiento en un modelo en el que los clientes y servidores están comunicados entre si distintamente para que el rendimiento aumento.
Compatibilidad con SQL, MySQL es totalmente compatible con este lenguaje, cualquiera que conozca el lenguaje SQL podrá utilizar este gestor.
Procedimientos Almacenados, permite la posibilidad de incrementar la eficacia de la implementación sin necesidad de procesar las tablas directamente, en su lugar utiliza procedimientos almacenados (store procedure).
Soporte Multiplataforma, es compatible con cualquier sistema operativo, Windows, MacOS, Linux, Solaris, FreeBSD.
Muy utilizado en la web, sitios como WordPress bajo PhpMyAdmin utilizan MySQL.
Existen forks de MySQL, como MariaDB también muy utilizados.
Podemos Descargarlo MySQL AQUI
Microsoft SQL Server
Otro de los grandes gestores de bases de datos relacionales es SQL Server de Microsoft, presta servicio a una gran variedad de aplicaciones de software.
Se basa también en SQL, pero está vinculado a Transact-SQL (T-SQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL).
Tiene también algunas características como:
Visualización en dispositivos móviles, permite la fácil integración de un sistema de gestión de bases de datos con cualquier dispositivo móvil, obteniendo un mejor rendimiento y capacidad de análisis.
Cifrado de datos y cumplimiento normativo, estos últimos años SQL Server ha sido reconocido como uno de los gestores más seguros, gracias a su sistema de protección, clasificación y supervisión de datos.
Facilidad de uso, es muy simple acceder a los datos, por esto muchos programadores han optado por este gestor para sus proyectos.
A diferencia de MySQL, SQL Server posee licencia comercial distribuida por Microsoft. Desde 2016 existe una versión de SQL Server para GNU/Linux y a partir de 2017 también para Docker, como también versiones de prueba. Podemos ver una tabla comparativa AQUI.
Podemos descargar SQL Server AQUI
PostgreSQL
PostgreSQL es un sistema de gestión de bases de datos relacionales de código abierto y orientado a objetos, considerado como la elección ideal empresarial. Tiene una gran potencia, amplia funcionalidad y flexibilidad.
Algunas de las principales posibilidades que otorga PostgreSQL es la admisión de transacciones, disparadores, vistas, subselecciones y bloqueo sofisticado, además de disponibilidad en diferentes plataformas.
Entre sus características tenemos:
Soporte para múltiples tipos de datos, si bien ofrece los tipos de datos más comunes, este sistema proporciona otros no tan frecuentes, como direcciones de IP, MAC, Arrays, figuras geométricas, entre otros.
Objeto/relacional, permite trabajar con los datos como si fueran objetos, ofreciendo funcionalidades y mecanismos destinados al trabajo con objetos como por ejemplo herencia de tablas
Soporta gran cantidad de lenguajes, desde Java y Python, hasta C, C++ y PHP, de esta manera se puede trabajar con funciones internas que se ejecutan desde el servidor y estar escritas en estos lenguajes de programación.
Podemos descargar PostgreSQL AQUI
MongoDB
MongoDB es la base de datos “NO SQL” de código abierto y escrita en C++ más utilizada en todo el mundo. En este caso se trata de un sistema orientado a los documentos, es decir, los datos se almacenan en documentos. Esto significa que los campos presentes en los documentos pueden variar de unos a otros, asi como la estructura de los datos puede cambiar con el tiempo. Ofrece una alta escalabilidad, flexibilidad y rapidez que lo diferencia del resto.
Entre sus características tenemos
Gran Sintaxis de Consultas, permite realizar cualquier tipo de consulta, tales como la búsqueda por campos, consulta de expresiones regulares y consulta de rangos. Estas consultas pueden devolver tanto una función JavaScript definida por el usuario como un campo concreto del documento.
Indexación y replicación, con esta herramienta los usuarios pueden crear índices, además de administrarlos y rehacerlos. Otra de las funcionalidades que ofrece MongoDB es la replicación automática de bases de datos para asegurar la disponibilidad en caso de producirse paradas por mantenimiento o interrupciones de servicio.
Balanceo de carga: Este sistema se caracteriza por la escalabilidad de carga del trabajo, puede ejecutarse simultáneamente en varios servidores, proporcionando un balance de carga o servicio de replicación de datos, por lo cual si se produce un fallo de hardware, MongoDB mantiene el sistema en funcionamiento.
SQLite
SQLite es un sistema completo de bases de datos SQL escrito en lenguaje C, autónomo, integrado y de alta confiabilidad. Además, este gestor de datos es de dominio público, cualquier persona puede utilizarlo independientemente del uso que se le quiera dar, ya sea comercial o privado.
El concepto “Lite” se refiere al poco peso de la base de datos, al hablar de configuración, administración y recursos necesarios.
Tenemos características como
Archivo de datos único, al emplear registros de tamaño variable que utiliza únicamente el espacio del disco necesario, la base de datos se almacena en un solo archivo.
Sin Servidor, a diferencia de MySQL, SQLite no necesita de un servidor, pues funciona de manera independiente. Esto quiere decir que la base de datos y la aplicación se ejecutan de forma conjunta, reduciendo los costes en determinados proyectos.
Migración de información, una de las funcionalidades más comunes de entre las bases de datos es la posibilidad de migrar de una a otra, como SQLite es compatible con múltiples formatos, ofrece la posibilidad de organizar de forma individual y permite que la exportación sea más rápida y menos tediosa.
Gracias al poco espacio que utiliza, SQLite lo utilizan grandes empresas como por ejemplo Firefox, para almacenar entre otras cosas las cookies, los favoritos, el historial, etc. Varias aplicaciones de Apple o Skype utilizan SQLite.
Podemos descargar SQLite AQUI
Oracle RDBMS
Es uno de los sistemas de gestión de base de datos relacional más fiable a nivel corporativo. Pertenece a Oracle Corporation y se desarrolló en 1977. Esta construido alrededor de un marco en el que se puede acceder directamente a los objetos a partir del lenguaje de consulta SQL. Oracle es una arquitectura escalable y muy utilizada por las empresas. Tiene su propio componente de red para que pueda haber comunicación a través de las redes.
También es multiplataforma, pudiendo ser ejecutado en Windows, Unix, GNU/Linux, MacOS. La Principal y peculiar característica de Oracle es que su arquitectura se divide entre la lógica y la física, esto permite mayor flexibilidad en las redes de datos y mayor robustez en su estructura. Claro Oracle posee una licencia comercial.
Su pagina web oficial es esta
FireBird
Potente y sencillo, también es un gestor de base de datos relacional SQL. Con la particularidad que es Open Source ósea de código abierto, compatible con Windows y Linux. Entre diferentes funciones, tenemos soporte completo para procedimientos almacenados, transacciones compatibles con las características ACID y métodos de acceso múltiple.
Podemos descargar Firebird AQUI
Amazon RDS
Amazon RDS (Relational Database Service), esta es una de las mejores herramientas para base de datos que llego al mercado por parte de Amazon, la RDS. Entre sus atributos para sus usuarios esta una conexión segura y que se puede realizar copia automática de seguridad a través de una función incorporada en el software, además de que puede cambiar el tamaño de las actividades en la base de datos.
Otra de sus ventajas destaca el que un usuario puede procesar cargas de trabajo pesadas en una sola base de datos, solo vas a pagar por los recursos utilizados, tiene acceso a MySQL, Oracle, Microsoft SQL y todas sus bases de datos.
En realidad, no es un gestor propiamente dicho, pero nos da una colección de servicios administrados que nos facilita la configuración, operación y escalado de una base de datos en la nube. Podemos usar muchos de los motores más populares.
Su pagina Oficial AQUI
Conclusión gestores de base de datos
Entonces como vimos, tenemos diferentes alternativas, como en muchas otras cosas, tenemos opciones de pago y open source. La pregunta de ¿Cuál me conviene más? No tiene una respuesta definitiva. Siempre va a depender del tipo de proyecto que estemos realizando. Quizá para hacer algo sencillo o arrancar a utilizar SQL nos basta con usar BASE de Libre Office, o Microsoft Access. Ya para avanzar un poco más, podríamos utilizar MySQL.
Para proyectos medianos o grandes siempre tenemos que ver que infraestructura tenemos, en donde va a estar alojada la base de datos, en que sistema operativo se va a almacenar, para luego definir que utilizamos. MySQL o PostgreeSQL suelen ser muy buenas opciones, con grandes comunidades detrás que nos puede facilitar a la hora de resolver problemas.
En futuros post vamos a hablar puntualmente de cada uno como también mucho más sobre el lenguaje SQL.
2 comentarios
Excelente artículo! gracias por todos tus aportes. Saludos!
Me alegro que te sirva! Gracias por comentar! Saludos!