1. Introducción
El curso permitirá (si he sido capaz de explicar todos los conceptos claramente) diseñar bases de datos a partir de problemas reales, haciendo uso de una base teórica firme.
El nivel será, teniendo en cuenta la complejidad del tema de las bases de datos, y el de MySQL, bastante básico. Este documento no pretende ser demasiado académico, está orientado a programadores autodidactas que quieran incluir bases de datos en sus aplicaciones. Tampoco entraremos en demasiados detalles sobre configuración de MySQL, o sobre relaciones con Apache o Windows. La principal intención es poder manejar bases de datos complejos y grandes, y sobre todo, poder usarlas desde otros lenguajes como C, C++ o PHP.
MySQL es un sistema de administracion de bases de datos relational (RDBMS). Se trata de un programa capaz de almacenar una enorme cantidad de datos de gran variedad y de distribuirlos para cubrir las necesidades de cualquier tip0 de organizacion, desde pequeiios establecimientos comerciales a grandes empresas y organismos administrativos. MySQL compite con sistemas RDBMS propietarios conocidos, como Oracle, SQL Server y DB2.
1.1 SQL
MySQL HA CRECIDO. Lo que durante un tiempo se consider6 como un sencillo juguete para su uso en sitios Web, se ha convertido en la actualidad en una solucion viable y de mision critica para la administracion de datos. Antes, MySQL se consideraba como la opcion ideal para sitios Web; sin embargo, ahora incorpora muchas de las funciones necesarias para otros entornos y conserva su gran velocidad. MySQL supera desde hace tiempo a muchas soluciones comer- ciales en velocidad y dispone de un sistema de permisos elegante y potente, y ahora, ademas, la version 4 incluye el motor de almacenamiento InnoDB compa- tible con ACID. MySQL 4 es rapido, dispone de funciones de volcado online e incorpora una gran cantidad de funciones nuevas. Son pocas las razones para desechar MySQL como solucion de base de datos. MySQL AB, la compaiiia responsable del desa- rrollo de MySQL, dispone de un sistema de asistencia eficiente y a un precio razonable, y, como ocurre con la mayor parte de las comunidades de codigo abierto, encontrara una gran cantidad de ayuda en la Web. Las funciones estandar no incluidas todavia en MySQL (corno las vistas y 10s procedimientos almacena- dos) estan en fase de desarrollo y es posible que esten disponibles para cuando lea estas lineas.
1.1.1 Necesidades de SQL
Necesitará 10s siguientes elementos para seguir 10s
Una copia de, o acceso a, un cliente y un servidor MySQL. Puede descar- gar la versión actual del sitio de MySQL: www.mysql.com.
Un sistema en el que instalar MySQL (si no dispone de acceso a alguno todavia). Puede instalar MySQL en su equipo de sobremesa, per0 es mas habitual ejecutarlo en un servidor dedicado para aplicaciones complejas.
Si tiene pensado desarrollar aplicaciones con MySQL, es posible que ne- cesite descargar 10s ultimos controladores o interfaces de programacion de aplicaciones (API) de su entorno de desarrollo. MySQL integra lo mejor de PHP, Perl, Java, C, C++ y Python, per0 puede utilizarlo en cualquier entorno de programacion, como .NET a traves del sistema de conectividad abierta de base de datos (ODBC).
1.1.2 Historia de SQL
Hoy, MySQL es uno de los gestores de bases de datos relacionales (SGBDR) más utilizado en el mundo, con más de 10 millones de instalaciones.
MySQL tuvo su origen en en el intento de mejorar la rapidez y flexibilidad de otra base de datos: mSQL.
mSQL era (y es) propiedad de Hughes Technologies, y no se distribuye como software libre. Sin embargo, cubría bastante bien el hueco de mercado entre base de datos pequeñas y con pocas características relacionales (como Access o DBF) y las bases de datos relacionales profesionales (como Oracle e Informix). MySQL heredó ese posicionamiento.
En 1995, dos suecos y un finés (Michael Widenius, David Axmark y Allan Larsson) fundan en Suecia la empresa MySQL AB para aprovechar comercialmente este desarrollo.
El origen del nombre no está muy claro. Por una parte, gran parte del código original tenía el prefijo “my” (mio en inglés) como una forma de distinguirlo del código de mSQL. Pero también es cierto que uno de lo cofundadores de MySQL (Monty Widenius) tiene una hija llamada “My”.
La primera versión de MySQL vio la luz en mayo de 1995 y ya desde entonces se distribuyó bajo los términos de la licencia GPL. Hoy, se encuentra en la versión 5 y tiene una cuota de mercado (según JoinVision – Julio de 2006) superior al de cualquier otra base de datos.
1.1.3 Caracteristicas de MySQL
1.2. Características
Estas son las principales características de MySQL:
? Escrita en C/C++.
? Funciona en múltiples plataformas: gnuLinux y Windows, pero también en AIX, Amiga, FreeBSD, ...
? Es multithread y puede aprovechar la disponibilidad de multiprocesadores.
? Es software libre (licencia GPL) y también está disponible bajo licencia comercial (por ejemplo, para integración).
? Tiene distintos motores de almacenamiento (tipos de tablas), algunos con soporte transaccional y otro no.
? Es muy, muy rápida... si se utilizan motores de almacenamiento no transaccionales.
? Gran soporte del estándar SQL.
? Numerosas opciones de conexión (PHP, ODBC, sockets TCP/IP, JDBC, API de C/C++...)
? Soporte multilenguaje.
? Fácil de instalar, usar y administrar.