martes, 10 de febrero de 2009

Introducción al uso de MySQL



¡Saludos nuevamente blogueros!

En este principio de semana nos internaremos en una de las partes que considero más interesantes sobre estos menesteres de Ajax: el acceso a las bases de datos. Aquí hay que hacer una anotación muy importante y es que la utilización de bases de datos dependerá de la programación del lado del servidor, que para los ejemplos siguientes continuaremos seguirá siendo PHP, pero siempre recordando que PHP no es el único lenguaje que podría utilizarse para programar este servicio, por ejemplo también podríamos utilizar un servicio Web en .Net. En fin, entonces hay que conocer la capacidad de PHP para conectarse a diferentes sistemas manejadores de bases de datos, y es aquí donde podemos ver que este lenguaje brinda una gran cantidad de opciones:
* Adabas D
* dBase
* Empress
* FilePro (read-only)
* Hyperwave
* IBM DB2
* Informix
* Ingres
* InterBase
* FrontBase
* mSQL
* Direct MS-SQL
* MySQL
* ODBC
* Oracle (OCI7 and OCI8)
* Ovrimos
* PostgreSQL
* Solid
* Sybase
* Velocis
* Unix dbm

También soporta la extensión DBX de abstracción de base de datos y ODBC (el Estándar Abierto de Conexión con Bases de Datos), la cuales le permiten conectarse forma transparente a cualquier base de datos que soporte estos estándares.

Como podrán imaginar por el título la opción que estoy considerando como SMBD es MySQL, jeje, debido a las experiencias que ya he tenido con su uso y a las diferentes ventajas que nos ofrece, entre ellas destacan:
  • Ser un sistema libre, multiusuario y multiplataforma.
  • Utilizar bases de datos relacionales.
  • Ser un sistema robusto para manejar gran cantidad de información.
  • Acceso rápido a los datos.
  • Contar con una implementación del lenguaje SQL muy completa.
  • Ofrece seguridad.
  • Servicios de replicación, transacciones, llaves foráneas y otros más que en nuestra clases de bases de datos vimos que eran muy importante :P.

Consideraciones previas


En versiones de PHP anteriores a la 5 el módulo para manejo de MySQL se encontraba dentro de PHP de manera nativa, es decir, venía como parte del núcleo del CGI de PHP, sin embargo en las versiones que siguieron a partir de ésta se encuentra como una extensión más que puede o no ser habilitada para utilizarse, por lo que hay que estar seguro que contamos con esta extensión dentro de PHP antes de continuar.

También hay que hacer la distinción entre SQL y MySQL, el primero es un lenguaje estándar para el acceso a bases de datos basado en consultas, el segundo es un sistema manejador de bases de datos que implementa el lenguaje SQL, para permitirnos acceder a la información contenida en las bases de datos que gestiona. Es común que en la escuela nos enseñen el lenguaje SQL de manera teórica antes de pasar a la práctica con sistemas como MySQL, SQL Server de Microsoft, Oracle, PostgreSQL, etc., que son los sistemas donde se utiliza toda la teoría de base de datos que estudiamos.

En éste punto partiremos del hecho de que ya conocemos el lenguaje SQL al menos en sus instrucciones básicas (SELECT, INSERT, UPDATE, DELETE, etc.), sin embargo es bueno contar con una guía a la mano sobre el lenguaje, las cuales pueden encontrar aquí:

Manual de SQL
Tutorial de SQL


Instalación de MySQL

Existen varios formas de instalar MySQL, todo depende del sistema operativo que estemos utilizando, y en la página oficial de MySQL podemos encontrar la siguiente sección completamente en español: Instalar MySQL, en la cual nos guían en los pasos que hay que seguir para llevar a cabo la instalación de este servidor en cualquier sistema operativo, ya sea Windows, GNU/Linux, Unix o MacOS.

La otra alternativa, que yo recomiendo más si se trata de introducirnos al manejo de MySQL, es utilizar un paquete de instalación que además de este servidor ya cuente con el servidor Apache, PHP y el sistema phpMyAdmin, debido a que éste último sistema -que depende de los dos anteriores- nos facilita enormemente el trabajo con las bases de datos. El instalador que podemos utilizar en Windows para este propósito es el AppServ, que ya habíamos mencionado en post anteriores.

Existe otro paquete que nos instala Apache, PHP y MySQL que es el XAMPP, que incluye n interprete para Perl. Adicionalmente puede incluir también al phpMyAdmin. La ventaja que XAMPP tiene sobre el AppServ es que lo encontramos en diferentes sistemas operativos como son Microsoft Windows, GNU/Linux, Solaris y MacOS X.

Si ya contamos con el servidor Apache con PHP, podemos simplemente instalar el servidor MySQL como por nuestra cuenta, como nos muestra la guía que aparece en la página oficial de MySQL que pusimos más arriba, por ejemplo para llevar a cabo la instalación automática en Windows encontramos la sección de descargas MySQL Dowloads, donde podemos elegir entre el servidor MySQL comunitario -gratuito- y el servidor MySQL empresarial -de paga-. El phpMyAmin también podemos por cuenta propia descargandolo desde su página oficial http://www.phpmyadmin.net/home_page/.

En la mayoría de las instalaciones, incluidas las de AppServ y XAMPP, deberemos establecer una contraseña para el usuario root, ya que como recordarán MySQL es un sistema multiusuario , y maneja una tabla propia de los usuarios que pueden acceder a sus bases de datos, y el usuario que tiene todos los privilegios de acceso a las bases de datos es precisamente root, por lo que si definimos una contraseña deberemos procurar recordarla, ya que para funciones de administración de la base de datos utilizaremos esta cuenta en varias ocasiones .


Manos a la obra

Suponiendo que ya hemos instalado MySQL, el paso que sigue es comenzar a utilizarlo, para este propósito utilizaré ejemplos tanto con phpMyAdmin como con instrucciones SQL. El phpMyAdmin es un sistema bastante intuitivo pero aún así incluiré explicaciones de cada paso que se vaya siguiendo.

Como menciona el contenido de su liga, phpMyAdmin es una aplicación Web programada en PHP, por lo que accederemos a él por medio de nuestro navegador Web, un ejemplo sería el siguiente:
http://localhost/phpMyAdmin/

Para acceder por medio del símbolo del sistema de Windows podemos utilizar el MySQL Command Line Client (Cliente de Línea de Comandos de MySQL), que es una aplicación que encontramos con todas las instalaciones mencionadas. Si en la instalación definimos una contraseña para root, al inicio este programa nos la solicitará.

Después de autenticarnos como root, en phpMyAdmin podremos acceder a la siguiente pantalla:



Dentro de esta pantalla podemos ver las características del servidor de base de datos, las del phpMyAdmin, y una serie de opciones para empezar a trabajar. Por ejemplo encontramos la opción Bases de datos, que nos despliega las bases de datos con que contamos en el sistema:



El equivalente a esta opción en el Command Line Client sería:
mysql>show databases;

La opción que nos interesa es la que nos permite crear una nueva base de datos, en ese caso la llamaremos obras_literarias y dejaremos el cotejamiento por default:



Con lo cual se crea la base de datos obras_literarias, e inmediatamente podemos comenzar a utilizarla. Esta acción equivale a las siguientes instrucciones en la línea de comandos:
mysql>CREATE DATABASE `obras_literarias` ;
mysql>USE obras_literarias

De hecho, como podemos darnos cuenta phpMyAdmin nos muestra cada uno de los comandos que va ejecutando al momento de completar una determinada tarea, así que en realidad lo que hace este sistema, es ahorrarnos el trabajo de teclear muchas de las instrucciones que se tendrían que realizar desde la línea de comandos, además de que nos ofrece una interfaz mucho más amigable.

Ahora, el paso que sigue es crear una tabla dentro de la base de datos obras_literarias, trabajo que podemos hacer en el phpMyAdmin por medio de la opción Crear nueva tabla:



O, para hacerlo aún más fácil, simplemente hay que copiar el siguiente script:
CREATE TABLE `autores` (
`Id` MEDIUMINT NOT NULL ,
`Nombre` VARCHAR( 60 ) NOT NULL ,
`Nacionalidad` VARCHAR( 50 ) NOT NULL ,
`Profesion` VARCHAR( 60 ) NOT NULL ,
PRIMARY KEY ( `Id` )
) ENGINE = MYISAM ;

seleccionar la pestaña SQL, pegar el código ahí y ejecutarlo:



Con lo cual se creará la tabla autores, que contendrá los campos Id, Nombre, Nacionalidad y Profesion, que serán del tipo de dato y longitud especificados por el comando anterior.

El código anterior también lo podemos usar en la línea de comandos para obtener el mismo resultado.

De esta forma sin muchas complicaciones se pueden crear bases de datos y tablas utilizando cualquiera de las dos maneras. Se pueden seguir probando todas las opciones que nos ofrece este sistema y crear más tablas, pero en el ejemplo siguiente partiremos de el hecho de que la base de datos y la tabla que mostramos ya fueron creadas. El paso que ahora sigue es comenzar a utilizar esta base de datos con la programación de aplicaciones en PHP y Ajax, pero eso lo veremos en el próximo post.

Hasta luego.

0 comentarios:

Publicar un comentario