x
1

MySQL



MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base de datos de código abierto más popular del mundo,[1][2]​ y una de las más populares en general junto a Oracle y Microsoft SQL Server, todo para entornos de desarrollo web.

MySQL fue inicialmente desarrollado por MySQL AB (empresa fundada por David Axmark, Allan Larsson y Michael Widenius). MySQL AB fue adquirida por Sun Microsystems en 2008, y ésta a su vez fue comprada por Oracle Corporation en 2010, la cual ya era dueña desde 2005 de Innobase Oy, empresa finlandesa desarrolladora del motor InnoDB para MySQL.

Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de doble licenciamiento anteriormente mencionado. La base de datos se distribuye en varias versiones, una Community, distribuida bajo la Licencia pública general de GNU, versión 2, y varias versiones Enterprise, para aquellas empresas que quieran incorporarlo en productos privativos. Las versiones Enterprise incluyen productos o servicios adicionales tales como herramientas de monitorización y asistencia técnica oficial. En 2009 se creó un fork denominado MariaDB por algunos desarrolladores (incluido algunos desarrolladores originales de MySQL) descontentos con el modelo de desarrollo y el hecho de que una misma empresa controle a la vez los productos MySQL y Oracle Database.[3]

Está desarrollado en su mayor parte en ANSI C y C++.[4]​ Tradicionalmente se considera uno de los cuatro componentes de la pila de desarrollo LAMP y WAMP.

MySQL es usado por muchos sitios web grandes y populares, como Wikipedia,[5]Google[6][7]​ (aunque no para búsquedas), Facebook,[8][9][10]Twitter,[11]Flickr,[12]​ y YouTube.[13]

Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (vía dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programación de aplicaciones específica. También existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP.

MySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.

MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación.[14]

Una interfaz gráfica de usuario (GUI) es un tipo de interfaz que permite a los usuarios interactuar con dispositivos o programas electrónicos mediante iconos gráficos e indicadores visuales como la notación secundaria, a diferencia de las interfaces basadas en texto, las etiquetas de comandos mecanografiadas o la navegación de texto. Las GUI son más fáciles de aprender que las interfaces de línea de comandos (CLI), que requieren que los comandos se escriban en el teclado.

Se dispone de aplicaciones de administración gráfica (o "frontales") de propiedad de terceros y gratuitas que se integran con MySQL y permiten a los usuarios trabajar con la estructura y los datos de la base de datos de forma visual. Algunos frontales muy conocidos son:

MySQL Workbench es el entorno integrado oficial de MySQL. Fue desarrollado por MySQL AB, y permite a los usuarios administrar gráficamente las bases de datos MySQL y diseñar visualmente las estructuras de las bases de datos. MySQL Workbench reemplaza el anterior paquete de software, MySQL GUI Tools. Similar a otros paquetes de terceros, pero aún considerado como el front end autorizado de MySQL, MySQL Workbench permite a los usuarios administrar el diseño y modelado de bases de datos, el desarrollo de SQL (reemplazando al MySQL Query Browser) y la administración de bases de datos (reemplazando al MySQL Administrator).

MySQL Workbench está disponible en dos ediciones, la habitual Edición Comunitaria gratuita y de código abierto que puede descargarse del sitio web de MySQL, y la Edición Estándar patentada que amplía y mejora el conjunto de características de la Edición Comunitaria.

Adminer (antes conocido como phpMinAdmin) es un front-end gratuito de MySQL para gestionar el contenido de las bases de datos MySQL (desde la versión 2, también funciona en las bases de datos PostgreSQL, Microsoft SQL Server, SQLite y Oracle). El administrador se distribuye bajo la licencia Apache (o GPL v2) en forma de un único archivo PHP (de unos 300 KiB de tamaño), y es capaz de gestionar múltiples bases de datos, con muchas pieles CSS disponibles. Su autor es Jakub Vrána, quien comenzó a desarrollar esta herramienta como una alternativa ligera a phpMyAdmin, en julio de 2007.

ClusterControl es un sistema de administración de MySQL de extremo a extremo que provee la habilidad de desplegar, monitorear, administrar y escalar instancias de MySQL desde una sola interfaz. Es desarrollado por Severalnines.

La versión comunitaria de ClusterControl es de uso libre y permite al usuario desplegar y monitorear sus instancias de MySQL. Las características avanzadas como el balanceo de carga, respaldo y restauración, conmutación por error, etc. son parte de una oferta de pago.

Database Workbench es una aplicación de software para el desarrollo y la administración de múltiples bases de datos relacionales utilizando SQL, con interoperatividad entre diferentes sistemas de bases de datos, desarrollada por Upscene Productions.

Dado que Databases Workbench es compatible con múltiples sistemas de bases de datos, puede proporcionar a los desarrolladores de software la misma interfaz y el mismo entorno de desarrollo para estos sistemas de bases de datos que, de otro modo, serían diferentes, e incluye también herramientas de bases de datos cruzadas.

Database Workbench soporta las siguientes bases de datos relacionales: Oracle Database, Microsoft SQL Server, SQL Anywhere, Firebird, NexusDB, InterBase, MySQL y MariaDB. Database Workbench 5 funciona en plataformas Windows de 32 o 64 bits. Bajo Linux, FreeBSD o macOS Database Workbench puede funcionar con Wine.

DBeaver es un cliente SQL y una herramienta de administración de base de datos. DBeaver incluye soporte extendido para las siguientes bases de datos: MySQL y MariaDB, PostgreSQL, Oracle, DB2 (LUW), Exasol, SQL Server, Sybase, Firebird, Teradata, Vertica, Apache Phoenix, Netezza, Informix, Apache Derby, H2, SQLite y cualquier otra base de datos que tenga un controlador JDBC u ODBC. DBeaver es un software libre y de código abierto que se distribuye bajo la licencia Apache 2.0. El código fuente está alojado en GitHub.

DBEdit es un editor de base de datos, que puede conectarse a un Oracle, DB2, MySQL y cualquier base de datos que proporcione un controlador JDBC. Funciona en Windows, Linux y Solaris. DBEdit es un software libre y de código abierto y se distribuye bajo la Licencia Pública General GNU. El código fuente está alojado en SourceForge.

HeidiSQL, anteriormente conocido como MySQL-Front, es un cliente libre y de código abierto, o frontend para MySQL (y para sus bifurcaciones como MariaDB y Percona Server), Microsoft SQL Server y PostgreSQL. HeidiSQL es desarrollado por el programador alemán Ansgar Becker y algunos otros colaboradores en Delphi. Para manejar bases de datos con HeidiSQL, los usuarios deben ingresar a un servidor MySQL local o remoto con credenciales aceptables, creando una sesión. Dentro de esta sesión los usuarios pueden manejar las bases de datos MySQL dentro del servidor MySQL conectado, desconectándose del servidor cuando haya terminado. Su conjunto de características es suficiente para las operaciones más comunes y avanzadas de bases de datos, tablas y registros de datos, pero permanece en desarrollo activo para avanzar hacia la funcionalidad completa que se espera en un Frontend MySQL.

La base de LibreOffice permite la creación y gestión de bases de datos, la preparación de formularios e informes que proporcionan a los usuarios finales un fácil acceso a los datos. Al igual que Microsoft Access, puede utilizarse como interfaz para diversos sistemas de bases de datos, incluidas las bases de datos Access (JET), las fuentes de datos ODBC y MySQL o PostgreSQL.[15]

Navicat es una serie de software de gestión y desarrollo de bases de datos gráficas producido por PremiumSoft CyberTech Ltd. para MySQL, MariaDB, Oracle, SQLite, PostgreSQL y Microsoft SQL Server. Tiene una interfaz gráfica de usuario similar a la de Explorer y admite múltiples conexiones de bases de datos locales y remotas. Su diseño está hecho para satisfacer las necesidades de una variedad de audiencias, desde administradores y programadores de bases de datos hasta diversas empresas/empresas que atienden a los clientes y comparten información con los socios.

Navicat es una herramienta multiplataforma y funciona en plataformas Microsoft Windows, OS X y Linux. En el momento de la compra, los usuarios pueden seleccionar un idioma para el software entre los ocho idiomas disponibles: Inglés, francés, alemán, español, japonés, polaco, chino simplificado y chino tradicional.

La base de OpenOffice.org es de libre acceso y puede manejar bases de datos MySQL si se instala toda la suite.

phpMyAdmin es una herramienta gratuita y de código abierto escrita en PHP destinada a manejar la administración de MySQL con el uso de un navegador web. Puede realizar diversas tareas como crear, modificar o eliminar bases de datos, tablas, campos o filas; ejecutar sentencias SQL o gestionar usuarios y permisos. El software, que está disponible en 78 idiomas,[16]​ es mantenido por The phpMyAdmin Project.[17]

Puede importar datos de CSV y SQL, y transformar los datos almacenados en cualquier formato utilizando un conjunto de funciones predefinidas, como la visualización de datos BLOB como imágenes o enlaces de descarga.

Sequel Pro es una aplicación MacOS gratuita y de código abierto para trabajar con bases de datos MySQL de forma local o remota. Utiliza el modelo freemium, en el que los usuarios de Gratis están obteniendo características de la mayoría de los servicios básicos. Se necesita una tabla SQL para manejar estas solicitudes. Puede manejar las nuevas y "divertidas" características de UTF-8 para el nuevo unicode, así como tener múltiples tablas de GB sin problemas.[18]

SQLBuddy es una aplicación de código abierto basada en la web y escrita en PHP, destinada a manejar la administración de MySQL y SQLite con el uso de un navegador web. El proyecto hace hincapié en la facilidad de instalación y en una interfaz de usuario sencilla.

SQLyog es una herramienta GUI disponible tanto en versión gratuita como de pago. Las manipulaciones de datos (por ejemplo, insertar, actualizar y eliminar) pueden realizarse desde una interfaz similar a una hoja de cálculo. Su editor tiene resaltado de sintaxis y varias opciones de formato automático. Se pueden manipular tanto los datos de la tabla en bruto como el conjunto de resultados de una consulta. Su función de búsqueda de datos utiliza una sintaxis de búsqueda similar a la de Google y se traduce a SQL de forma transparente para el usuario. Cuenta con una herramienta de respaldo para realizar copias de seguridad desatendidas. Las copias de seguridad pueden ser comprimidas y opcionalmente almacenadas como un archivo por tabla, así como identificadas con una marca de tiempo.

Toad for MySQL es una aplicación de software de Dell Software que los desarrolladores de bases de datos, administradores de bases de datos y analistas de datos utilizan para administrar tanto bases de datos relacionales como no relacionales utilizando SQL. Toad es compatible con muchas bases de datos y entornos. Funciona en todas las plataformas Windows de 32 bits/64 bits, incluyendo Microsoft Windows Server, Windows XP, Windows Vista, Windows 7 y 8 (32 o 64 bits). Dell Software también ha lanzado una edición de Toad para Mac. Dell provee Toad en versiones comerciales y de prueba/gratuitas. La versión gratuita está disponible en la comunidad de ToadWorld.com.

Webmin es una herramienta de configuración de sistemas basada en la web para sistemas de tipo Unix, aunque las versiones recientes también pueden ser instaladas y ejecutadas en Windows. Con él es posible configurar los elementos internos del sistema operativo, como los usuarios, las cuotas de disco, los servicios o los archivos de configuración, así como modificar y controlar las aplicaciones de código abierto, como el servidor HTTP Apache, PHP o MySQL.

Webmin se basa en gran medida en Perl, ejecutándose como su propio proceso y servidor web. Se comunica por defecto a través del puerto TCP 10000 y puede ser configurado para usar SSL si se instala OpenSSL con los módulos adicionales de Perl necesarios.

Está construido alrededor de módulos, que tienen una interfaz con los archivos de configuración y el servidor Webmin. Esto hace que sea fácil añadir nuevas funcionalidades. Debido al diseño modular de Webmin, es posible para cualquiera que esté interesado en escribir plugins para la configuración del escritorio.

Webmin también permite controlar muchas máquinas a través de una sola interfaz, o el inicio de sesión sin problemas en otros hosts de Webmin en la misma subred o LAN.

Una interfaz de línea de comandos es un medio de interactuar con un programa informático en el que el usuario emite comandos al programa escribiendo en líneas sucesivas de texto (líneas de comandos). MySQL se envía con muchas herramientas de línea de comandos, de las cuales la interfaz principal es el cliente mysql.[19][20]

Las utilidades de MySQL son un conjunto de utilidades diseñadas para realizar tareas comunes de mantenimiento y administración. Incluidas originalmente como parte del Banco de Trabajo de MySQL, las utilidades son una descarga independiente disponible en Oracle.

Percona Toolkit es un kit de herramientas multiplataforma para MySQL, desarrollado en Perl.[21]​ Percona Toolkit puede ser usado para probar que la replicación funciona correctamente, arreglar datos corruptos, automatizar tareas repetitivas y acelerar los servidores. Percona Toolkit está incluido en varias distribuciones de Linux como CentOS y Debian, y los paquetes están disponibles para Fedora y Ubuntu también. Percona Toolkit fue desarrollado originalmente como Maatkit, pero a partir de finales de 2011, Maatkit ya no está desarrollado.

El shell de MySQL es una herramienta para el uso interactivo y la administración de la base de datos MySQL. Soporta los modos JavaScript, Python o SQL y puede ser utilizado para la administración y el acceso.[22]

Muchos lenguajes de programación con APIs de lenguaje específico incluyen bibliotecas para acceder a bases de datos MySQL. Entre ellas se encuentran MySQL Connector/Net para la integración con Visual Studio de Microsoft (los lenguajes más utilizados son C# y VB) y el controlador JDBC para Java. Además, una interfaz ODBC llamada MySQL Connector/ODBC permite que los lenguajes de programación adicionales que soportan la interfaz ODBC se comuniquen con una base de datos MySQL, como ASP o ColdFusion. El método de consulta basado en HTSQL - URL también se envía con un adaptador MySQL, permitiendo la interacción directa entre una base de datos MySQL y cualquier cliente web a través de URLs estructuradas. Existen otros controladores para lenguajes como Python[23]​ o Node.js[24]​.

Existe una variedad de forks de MySQL, incluyendo las siguientes.

MariaDB es un fork desarrollado por la comunidad del sistema de gestión de bases de datos relacionales MySQL que pretende permanecer libre bajo la GPL de GNU. Al ser una bifurcación de un sistema líder de software de código abierto, es notable por estar liderado por los desarrolladores originales de MySQL, que lo bifurcaron debido a las preocupaciones sobre su adquisición por Oracle.[25]​ Los colaboradores deben compartir sus derechos de autor con la Fundación MariaDB[26]​. MariaDB pretende mantener una alta compatibilidad con MySQL, asegurando una capacidad de sustitución "drop-in" con equivalencia binaria de la biblioteca y una coincidencia exacta con las API's y comandos de MySQL.[27]​ Hay algunas diferencias e incompatibilidades documentadas entre las versiones de MySQL y MariaDB[27]​, sin embargo, y algunas herramientas para interactuar con MySQL, como el MySQL Workbench, no son totalmente compatibles con MariaDB.[28]​ Incluye el motor de almacenamiento XtraDB para reemplazar a InnoDB,[29]​ así como un nuevo motor de almacenamiento, Aria, que pretende ser tanto un motor transaccional como no transaccional, quizás incluso incluido en futuras versiones de MySQL.[30]

Percona Server for MySQL, fork por Percona, tiene como objetivo mantener una estrecha compatibilidad con las versiones oficiales de MySQL, mientras se centra en el rendimiento y el aumento de la visibilidad de las operaciones del servidor.[31]​ También se incluye en Percona Server for MySQL XtraDB, la bifurcación de Percona del motor de almacenamiento InnoDB. Percona incluye libremente un número de características de escalabilidad, disponibilidad, seguridad y respaldo que solo están disponibles en la edición comercial Enterprise de MySQL.[32]

Drizzle era un sistema de gestión de bases de datos relacionales (DBMS) de código abierto y software libre que se creó a partir de la ahora desaparecida rama de desarrollo 6.0 del DBMS de MySQL.[33]​ Al igual que MySQL, Drizzle tenía una arquitectura cliente/servidor y utiliza SQL como su principal lenguaje de comandos. Drizzle fue distribuido bajo la versión 2 y 3 de la Licencia Pública General de GNU (GPL) con partes, incluyendo los controladores de protocolo y la replicación de mensajes bajo la licencia BSD.

WebScaleSQL era una rama de software de MySQL 5.6, y fue anunciada el 27 de marzo de 2014 por Facebook, Google, LinkedIn y Twitter como un esfuerzo conjunto para proporcionar una estructura de desarrollo centralizada para ampliar MySQL con nuevas características específicas para sus despliegues a gran escala, como la construcción de grandes bases de datos replicadas que se ejecutan en granjas de servidores. Así, WebScaleSQL abrió un camino hacia la deduplicación de los esfuerzos que cada empresa había estado poniendo en el mantenimiento de su propia rama de MySQL, y hacia la unión de más desarrolladores. Al combinar los esfuerzos de estas empresas e incorporar varios cambios y nuevas características en MySQL, WebScaleSQL se dirigió a apoyar el despliegue de MySQL en entornos de gran escala.[34][35]​ El código fuente del proyecto está licenciado bajo la versión 2 de la Licencia Pública General de GNU, y está alojado en GitHub.[36][37]

El siguiente gráfico provee un resumen de varias versiones de MySQL y sus estados actuales de desarrollo:[38][39][40][41][42][43][44][45]

MySQL funciona sobre múltiples plataformas, incluyendo:

Oracle provee el código fuente de MySQL Community Edition y versiones compiladas para diferentes sistemas operativos,[47]​ aunque el rendimiento de MySQL se encuentra optimizado para sistemas GNU/Linux, con pequeñas diferencias de rendimiento entre las diferentes distribuciones .[48]

Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad.

Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar:

MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido.

MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir qué puede hacer y qué no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada.

Las siguientes características son implementadas únicamente por MySQL:

Hay tres tipos de compilación del servidor MySQL:

MySQL está escrito en una mezcla de C y C++.

El desarrollo de MySQL se fundamenta en el trabajo de los desarrolladores contratados por la empresa MySQL AB quienes se encargan de dar soporte a los socios comerciales y usuarios de la comunidad MySQL y dar solución a los problemas encontrados por los usuarios. Los usuarios o miembros de la comunidad MySQL pueden reportar bugs revisando el manual en línea que contiene las soluciones a problemas encontrados; el historial de cambios ; la base de datos bugs que contiene bugs reportados y solucionados y en las listas de correo MySQL .

A través de las listas de correo los usuarios pueden enviar preguntas y éstas serán contestadas por desarrolladores brindándoles mejor soporte.

Otras listas de correo son: MyODBC, Herramientas GUI, Cluster, Dotnet, PlusPlus y Perl.

Adicional a las listas de correo, se encuentra el soporte de IRC de la comunidad MySQL. Además, hay soporte a través de foros agrupados en categorías tales como: Migración, Uso de MySQL, Conectores MySQL, Tecnología MySQL y Negocios.

La dirección y el patrocinio de los proyectos MySQL están a cargo de la empresa MySQL AB quien posee el copyright del código fuente MySQL, su logo y marca registrada. MySQL, Inc. y MySQL GmbH son ejemplos de empresas subsidiarias de MySQL AB. Están establecidas en los Estados Unidos y Alemania respectivamente. MySQL AB, cuenta con más de 200 empleados en más de 20 países y funcionan bajo la estrategia de teletrabajo.

En enero del 2008 Sun Microsystems anuncia su compra. En abril de 2009 Oracle anunció la compra de Sun Microsystems.[49]

La industria radica en la venta de productos software y de algunos servicios relacionados con numerosas empresas que utilizan estos productos.

MySQL AB clasifica los productos así:

Los ingresos de esta empresa por la venta de licencias privativas de sus productos y los servicios suma los U$12 millones.

La licencia GNU GPL de MySQL obliga a que la distribución de cualquier producto derivado (aplicación) se haga bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite hacer justamente eso.




Escribe un comentario o lo que quieras sobre MySQL (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!