Para poder operar con una base de datos es necesario contar con una herramienta informática que se encargue de administrar y gestionar dichos sistemas correctamente. Estas herramientas se conocen como Sistema Gestor de Base de Datos SGBD.
Existen muchos tipos diferentes de bases de datos y por ende varios gestores de bases de datos. Hoy nos referiremos a uno de los más usados dentro de las bases de datos relacionales. Este es el sistema MySQL, si quieres conocer sus principales características y cómo usarlo, te invito a que continúes leyendo. Ya comenzamos.
Tabla de contenidos
- Historia del sistema de bases de datos MySQL
- Licencias
- Características de MySQL
- Interfaces gráficas de usuario para MySQL
- API para MySQL
- Artículos relacionadas que te podrían resultar interesantes:
Historia del sistema de bases de datos MySQL
MySQL es un sistema para la gestión de bases de datos relacionales que cuenta con dos tipos de licencias. Por un lado, tiene una licencia pública general y de uso libre, además de una licencia comercial regulada por la corporación Oracle. MySQL se considera el sistema de bases de datos de código abierto más usada del mundo.
La compañía de software MySQL AB fue el desarrollador de este sistema, siendo esta una de las empresas de software libre más grande del mundo. En el año 2008, Sun Microsystems compró MySQL AB asumiendo así la gama de productos proveídos por MySQL AB.
En el año 2009, Oracle Corporation se hace con la empresa Sun Microsystems, de esta manera Oracle se hace de las licencias de comercialización y distribución de MySQL.
Licencias
Como ya mencionamos, MySQL cuenta con un tipo de licencia dual. Esto se debe a que el sistema está patrocinado por una empresa privada. En sistemas totalmente libre, como por ejemplo los sistemas Apache, la propia comunidad se encarga de desarrollar el código fuente y por tanto este pertenece a todos. En el caso de MySQL, Oracle posee la mayor parte del código fuente.
Esto brinda la posibilidad de que el software cuente con doble licencia. Por un lado, tenemos una versión de distribución Community, con una licencia GNU pública y de uso general. Por otro lado, también hay una versión Enterprise para uso en herramientas privadas.
Las dos versiones poseen algunas diferencias llamativas. La versión empresarial cuenta con un mayor número de funciones con respecto a la versión comunitaria. Además, la primera tiene un sistema de monitorización y asistencia técnica oficial provistos por Oracle que no cuenta la versión comunitaria.
A raíz del descontento de este tipo de licenciamiento de la base de datos MySQL y el control de las bases de datos Oracle por Oracle Corporation, surgió MariaDB. Esta no es más que sistema de bases de datos relacionales basado en MySQL, pero totalmente bajo licencia GPL.
Características de MySQL
Es posible interactúa con bases de datos MySQL desde muchos lenguajes de programación y desde todos los más usados. Entre estos tenemos C, C++, C#, Java, PHP, Python, Ruby. Cualquier lenguaje que tenga soporte de ODBC puede usar bases de datos MySQL. Esto a partir de la interfaz MyODBC propia de MySQL.
En cuanto a las plataformas, MySQL funciona en una gran variedad de estas. Desde sistemas optativos GNU/Linux y sistema operativo Mac OS X, hasta todas las versiones de Windows basados en Windows NT. También puede ser instalada en las versiones de Windows Server 2000, 2003, 2008 y 2012. No obstante, existe una compilación específica para sistemas GNU/Linux que posee unas cuantas mejoras en cuanto al rendimiento que para otros sistemas.
Entre otras características de MySQL tenemos que esta usa GNU Automake, Libtool y Autoconf para garantizar la portabilidad, además de implementar ejecución multihilos a partir de hilos del kernel. En cuanto a la memoria temporal esta emplea tablas hash.
MySQL cuenta con funciones y operadores para cláusulas select y where, además de cláusulas group by y order by para funciones de agrupamiento y ordenado.
Este sistema esta diseñados para soportar grandes volúmenes de datos, teniéndose en MySQL servidores de bases de datos de más de 50 millones de registros. Sistemas de contraseñas y privilegios de usuarios se encargan de garantizar la seguridad de estos datos. Estas contraseñas usan verificación basa en el host y son cifradas una vez que se produce la conexión al servidor.
Para conectarse a un servidor MySQL se emplea el protocolo TCP/IP. En sistemas Windows es posible conectarse mediante named pipes, y en GNU/Linux mediante socket Unix.
Características de la base de datos
En los inicios de MySQL, las bases de datos no tenían características distintivas de las bases de datos relacionales. Estas no garantizaban la integridad referencial de los datos y las transacciones. No obstante, muchos desarrolladores apostaron por estas bases de datos dada su simplicidad.
Durante el paso del tiempo, MySQL incorporó un mayor número de elementos y funcionalidades. Entre estas, es importante destacar la implementación de un gran subconjunto del lenguaje SQL con funcionalidades y extensiones. Se agregaron además posibilidades de seleccionar múltiples mecanismos de almacenamiento para garantizar diferentes velocidades de transmisión, capacidad, transacciones y distribución geográfica.
Dentro del esquema de bases de datos esta soportada la indexación de campos para búsquedas, referencias mediante claves foráneas y transacciones.
Los sistemas de bases de datos relacionales como MySQL almacenan el contenido distribuidos y organizados en tablas. A raíz de esto, existe una mayor flexibilidad y velocidad en la interacción del usuario con los datos.
Interfaces gráficas de usuario para MySQL
Una interfaz gráfica de usuario GUI, es una herramienta que permite interactuar con programas electrónico mediante indicadores visuales. Las GUI son más intuitivas para los usuarios y permiten hacer que la interacción con el programa se más sencilla.
MySQL integra algunas aplicaciones de terceros de manera gratuitas a su motor de base de datos. Entre estos tenemos:
- MySQL Workbench: Este es el entorno integrado oficial. Mediante este es posible administrar de manera gráfica todas las bases de datos MySQL, e incluso diseñar estas. Este da la posibilidad a los usuarios de diseñar el modelado de la base de datos, realizar la programación de consultas SQL y la administración general de toda la base de datos.
- Cluster Control:Esta es una aplicación con licencia dual, una libre y otra de pago. Con Cluster Control el usuario puede desplegar, administrar y monitorear varias instancias de bases de datos MySQL en una misma interfaz. Para el despliegue y monitorización de las instancias MySQL la versión pública puede ser usada libremente. En el caso de la versión de pago agrega funcionalidades más avanzadas como el balanceo de carga, respaldo y restauración entre otras más.
- phpMyAdmin: Esta herramienta es para ser usada con un navegador web. Está implementada utilizando lenguaje de programación php permitiendo realizar tareas de creación, modificación o eliminación de bases de datos y elementos de estas como tablas y tuplas. También podemos realizar consultas SQL y administrar el control de acceso de usuarios y credenciales con phpMyAdmin.
- Navicat: La herramienta permite gestionar varios modelos de bases de datos además de MySQL. Entre estos tenemos MariaDB, Oracle, SQLite, SQL Server y PostgreSQL. Es posible establecer múltiples conexiones a diferentes servidores de base de datos simultáneas e interactuar con ellas.
API para MySQL
Una interfaz de programación de aplicaciones API no es más que un conjunto de funcionalidades agrupadas en bibliotecas que pueden ser accedidas por otro programa. Muchos lenguajes utilizados para programar aplicaciones emplean APIs para que les permite interactuar directamente con sistemas MySQL.
En el caso de los lenguajes C# y Visual Basic, el IDE Visual Studio provee la biblioteca MySQL Connector/Net. En el caso del lenguaje de programación Java, este proporciona una biblioteca nativa llamada JDBC que permite conectarse directamente a los sistemas MySQL.
También existe una interfaz llamada MySQL Connector/ODBC que puede ser empleada por todos los lenguajes que soporten la interfaz de comunicación ODBC. MySQL además provee de un adaptador el cual puede ser integrado a consultas de tipo HTSQL – URL. Esto permite que cualquier cliente web pueda interactuar con una base de datos MySQL utilizando consultas mediante URLs estructuradas.