Prólogo

MySQL MySQL es una marca registrada por MySQL AB. Parte del material que se expone aquí, concretamente las referencias de funciones del API de MySQL y de la sintaxis de SQL, son traducciones del manual original de MySQL que se puede encontrar en inglés en www.mysql.com.

Este sitio está desarrollado exclusivamente por los componentes de Con Clase, cualquier error en la presente documentación es sólo culpa nuestra.

Introducción

Siguiendo con la norma de la página de usar software libre, afrontamos un nuevo reto: trabajar con bases de datos mediante el lenguaje de consulta SQL. Este curso será la base para otros que nos permitirán usar bases de datos desde aplicaciones C/C++, PHP, etc.

Originalmente, este curso iba a tratar sólo sobre MySQL. Mi intención era limitarlo exclusivamente a explicar la sintaxis de las sentencias y funciones SQL, hacer algunos ejemplos y completar una referencia de MySQL.

Sin embargo, como me suele ocurrir cada vez que afronto un nuevo proyecto, las cosas no salen como las tenía planeadas. Poco a poco he ido añadiendo nuevos contenidos, (bastante lógicos, teniendo en cuenta el tema que nos ocupa), y estos contenidos han precisado la inclusión de otros...

Finalmente el curso se ha convertido en algo mucho más extenso, y sobre todo, mucho más teórico, aunque espero que también, en algo mucho más útil.

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 complejas y grandes, y sobre todo, poder usarlas desde otros lenguajes como C, C++ o PHP.

El presente curso nos obliga a tratar varios temas diferentes.

  • Fundamentos teóricos de bases de datos: modelos conceptuales, como el de Entidad-Relación, y modelos lógicos, como el modelo relacional, y herramientas relacionadas con ese modelo, como la normalización.
  • Trabajo con servidores. En el caso de MySQL, el servidor es el que realiza todas las operaciones sobre las bases de datos, en realidad se comporta como un interfaz entre las bases de datos y nuestras aplicaciones. Nuestras aplicaciones se comunicarán con el servidor para leer o actualizar las bases de datos.
  • Por otra parte, trataremos con un lenguaje de consulta y mantenimiento de bases de datos: SQL (Structured Query Language). SQL es un lenguaje en sí mismo, pero mediante el API adecuado podemos usarlo dentro de nuestros propios programas escritos en otros lenguajes, como C o C++.

La teoría sobre bases de datos así como el lenguaje SQL podrá sernos útil en otros entornos y con otros motores de bases de datos, como SQL server de Microsoft, o Access. De modo que lo que aprendamos nos servirá también fuera del ámbito de este curso.

Instalar el servidor MySQL

Veremos ahora cómo instalar las aplicaciones y paquetes necesarios para poder trabajar con MySQL.

Lo primero es obtener el paquete de instalación desde el servidor en Internet: http://www.mysql.com/, y después instalarlo en nuestro ordenador.

Se puede descargar el servidor MySQL y los clientes estándar directamente desde este enlace: http://www.mysql.com/downloads/index.html. Hay que elegir la versión que se quiere descargar, preferiblemente la recomendada, ya que suele ser la más actualizada y estable.

Una vez seleccionada la versión, hay que elegir la distribución adecuada al sistema operativo que usemos: Windows, Linux, Solaris... El fichero descargado se podrá instalar directamente.

Terminar de instalar el servidor depende en gran medida de cada caso, y es mejor remitirse a la documentación facilitada por MySQL junto a cada paquete.

Instalación según el sistema operativo.

Ahora estamos en disposición de poder utilizar MySQL desde la consola de nuestro ordenador, en modo de línea de comandos.

Y... ¿por qué MySQL?

Ya hemos visto que para acceder a bases de datos es mucho más útil usar un motor o servidor que hace las funciones de intérprete entre las aplicaciones y usuarios con las bases de datos.

Esta utilidad se traduce en ventajas, entre las que podemos mencionar las siguientes:

  • Acceso a las bases de datos de forma simultánea por varios usuarios y/o aplicaciones.
  • Seguridad, en forma de permisos y privilegios, determinados usuarios tendrán permiso para consulta o modificación de determinadas tablas. Esto permite compartir datos sin que peligre la integridad de la base de datos o protegiendo determinados contenidos.
  • Potencia: SQL es un lenguaje muy potente para consulta de bases de datos, usar un motor nos ahorra una enorme cantidad de trabajo.
  • Portabilidad: SQL es también un lenguaje estandarizado, de modo que las consultas hechas usando SQL son fácilmente portables a otros sistemas y plataformas. Esto, unido al uso de C/C++ proporciona una portabilidad enorme.

En concreto, usar MySQL tiene ventajas adicionales:

  • Escalabilidad: es posible manipular bases de datos enormes, del orden de seis mil tablas y alrededor de cincuenta millones de registros, y hasta 32 índices por tabla.
  • MySQL está escrito en C y C++ y probado con multitud de compiladores y dispone de APIs para muchas plataformas diferentes.
  • Conectividad: es decir, permite conexiones entre diferentes máquinas con distintos sistemas operativos. Es corriente que servidores Linux o Unix, usando MySQL, sirvan datos para ordenadores con Windows, Linux, Solaris, etc. Para ello se usa TCP/IP, tuberías, o sockets Unix.
  • Es multihilo, con lo que puede beneficiarse de sistemas multiprocesador.
  • Permite manejar multitud de tipos para columnas.
  • Permite manejar registros de longitud fija o variable.

Comentarios de los usuarios (5)

Eduardo
2010-05-18 10:41:39

Hola, estoy en una disyuntiva. Tengo una base de datos de un sitio muy concurrido, la empresa tiene planes de expandirse a otros paises por lo tanto no sabemos que hacer, si crear una base de datos identica o muy parecida a la del sitio principal por cada pais o que todos los paises consulten solo a una.

Agradeceria sus comentarios.

eduysucodigo.blogspot.com

Omar Aquino
2011-12-15 04:25:52

Saludos:

Entre por aquí afanado en familiarizarme con la bases de datos, estoy siguiendo el curso paso a paso y es realmente una maravilla.

He aprendido en 4 horas lo que no habia logrado comprender en más de 3 meses que tengo en estos avatares.

Estuve tratando de compartirlo con las redes sociales y no pude (no veo los periquitos de twitter y otros)tengo un periódico digital: http://paper.li/omaraqui2000.com y en él hay una sección de tecnología, y twiteando estos curso se insertan en el periódico, de esta manera se ayuda a socializar el conocimiento (aún más)

Tengo un blog; http://omaraqui2000.blogspot.com, voy a colocar un link y en lo que tenga un tiempito le voy a hacer una soberana entrada ¡ se lo merece ¡

Omar Aquino
2011-12-15 05:07:15

Estoy por aquí de nuevo, le hice la entrada, que les había comentado, cuando tengan un tiempo la leen, aqui les dejo el linK:

http://omaraqui2000.blogspot.com/2011/12/curso-de-mysql-manejo-de-base-de-datos.html

richard palomo gamarra
2012-04-10 23:18:04

hermano necesito apoyo, quiero aprender mysql, me parece que el curso es extraordinario, pero mi computadora tiene linux/debiam y he tratado cualquier cantidad de veces de instalar mysql y no se instala, que debo hacer?

EHUETTO
2012-12-10 16:46:52

EXCELENTES CLASES. FELICITACIONES Y GRACIAS POR LAS ENSEÑANZAS