Muchos de los proyectos PHP en los que participemos necesitarán almacenar la información de forma persistente de alguna manera, ya que es un elemento clave en la implementación de una web dinámica.
En la actualidad un proyecto web no se limita a mostrar páginas estáticas. Utilizando PHP podremos crear proyectos que almacenen información, algo que permite que el contenido de la web sea dinámico, pueda cambiar constantemente, o incluso que muestre información personalizada a los usuarios de las aplicaciones.
La información se puede almacenar de varias maneras, dependiendo de la utilidad que le queramos dar.
Las bases de datos más utilizadas son las de tipo relacional, que almacenan información en conjuntos lógicos relacionados, denominados bases de datos, tablas y campos, y que utilizan un lenguaje de consulta muy potente que viene a ser SQL, el cual permite extraer la información de una manera rápida y eficiente.
Este lenguaje se utiliza en casi todos los sistemas de bases de datos relacionales, como son Oracle, Microsoft SQL Server y MySQL. Como nota, existe otro tipo de bases de datos llamadas noSQL como alternativa a la anterior, las cuales no utilizan el lenguaje SQL y no usan estructuras fijas de información como las relacionales.
Qué es una base de datos
Una base de datos es una colección estructurada de registros o datos almacenados en un sistema informático, y organizada de tal manera que se pueda buscar y recuperar la información con rapidez.
MySQL
En este curso utilizaremos un tipo de base de datos relacional, el cual es gestionado por un software que se conoce como sistema gestor de base de datos relacional, el cual es el responsable de controlar la base de datos, sus componentes, mantener la integridad de los datos, los usuarios que acceden, de recibir las consultas de peticiones, creación y actualización de la información entre otras funcionalidades. Dicho sistema gestor de base de datos relacional se denomina MySQL. Lo más importante de este software es que está disponible como código abierto.
MySQL Workbench
Es importante tener instalado en nuestro ordenador el software MySQL Workbench, el cual es una herramienta visual de diseño de bases de datos que integra desarrollo de software, administración de base de datos, diseño de base de datos, gestión y mantenimiento para sistema de base de datos MySQL. Utilizaremos dicha aplicación para conocer las características de MySQL.
Una vez lo tengamos instalado lo vamos a abrir, y una vez hecho ésto vamos a crear una conexión con nuestro MySQL, con la instalación que hizo cuando instalamos el software XAMPP. Para ello haremos clic en el botón (+) que se encuentra a la derecha de MySQL Connections.
Conexión a MySQL desde Workbench
En el hostname tenemos que poner el valor 127.0.0.1, que vendría a ser la conexión a nuestro localhost, y el puerto que usa MySQL es el 3306, que es el que deberíamos usar. En caso de que estuviéramos usando otro programa que no sea XAMPP, hay que verificar en que puerto se encuentra MySQL.
Otra cosa que debemos hacer es darle nombre a nuestra conexión, una vez rellenos todos los campos citados le damos clic al botón OK. De esta manera hemos logrado conectarnos a MySQL en nuestro ordenador.
Una vez conectados, le damos doble clic a la conexión que tenemos en nuestro software, se nos abrirá un panel que tendremos que aprender a manejar.
Panel de Workbench
Vamos a encontrar un menú con diversas opciones. A la izquierda encontramos las acciones más habituales al administrar un servidor de base de datos, como crear una hoja de consulta, crear un esquema, una tabla, una vista...
En las últimas versiones de MySQL, el concepto de base de datos a evolucionado al de esquema de base de datos. de ahí que en las últimas versiones de Workbench se haga referencia exclusivamente a esquemas en las zonas habilitadas para bases de datos.
En la parte izquierda tenemos dos pestañas:
- Administration
- Schemas
La pestaña Administration está dividida en 3 secciones:
- MANAGEMENT: corresponde a gestión, sirve para acceder a las tareas puramente administrativas como ver el estado del servidor, las conexiones de los clientes, la gestión de los usuarios y sus privilegios, las variables de sistema y las importaciones y exportaciones de datos
- INSTANCE: corresponde a instancia, se hace referencia a la instancia del servidor que estamos ejecutando. Desde este menú vamos a poder arrancar y parar la instancia del servidor MySQL y ver los archivos de auditoría, también llamados logs.
- PERFORMANCE: corresponde a rendimiento, sirve para conocer estadísticas que muestran el rendimiento actual de nuestro servidor de MySQL y su conexión de red.
La pestaña Schemas es la zona que más nos interesa para trabajar inicialmente con esta herramienta. Al hacer clic vamos a poder ver la lista de todos los esquemas de bases de datos disponibles para el usuario con el que haya accedido al servidor de MySQL con Workbench.
Editor de MySQL
La sección que se encuentra a la derecha de las bases de datos es el editor de MySQL, el cual nos va a poder escribir directamente sentencias SQL para gestionar la información de la base de datos, o sentencias DDL para definir las estructuras del esquema de base de datos como tablas, vistas, procedimientos, funciones, índices...
Crear nuevo esquema
Para ello vamos a nuestro editor y escribimos la siguiente sintaxis:
Ejm
create schema ejemplo;
Es muy importante que toda sentencia SQL que escribamos debe terminar con el punto y coma (;). Para ejecutar la sentencia debemos hacer clic en el icono en forma de rayo.
Si revisamos el panel de las bases de datos veremos que el esquema no se visualiza, para que se pueda visualizar haremos clic en el botón refrescar y aparecerá automáticamente.
De qué se compone un esquema
Un esquema de base de datos se compone de varios conjuntos de elementos:
- Tablas: son el elemento fundamental de todo esquema, el que se encarga de almacenar toda la información real que utilice en su aplicación. Estas se componen de campos de información que pueden ser de diferentes tipos. Dichas tablas pueden establecer relaciones entre ellas para optimizar la velocidad en la consulta y en la capacidad del esquema
- Vistas: una consulta de base de datos puede convertirse en una tabla virtual, es decir, como una vista, se adjetivan como virtual debido a que no funcionan con las mismas características que una tabla ya que sólo pueden realizar consultas de búsqueda
- Procedimientos almacenados (stored procedures): es un programa que utiliza el lenguaje de script propio de MySQL que permite disponer del código ejecutable en el motor de base de datos. Utiliza variables, sentencias condicionales, iterativas, y permite acceder a las tablas, vistas y funciones del esquema.
- Funciones: son similares a los procedimientos almacenados y les proporcionan todo lo necesario para aprender a utilizar MySQL y posteriormente a explotar la potencia de la pareja PHP - MySQL.
Otra forma de crear un esquema
Para ello podemos hacer clic en el icono Create a new schema in the connected server. el cual se encuentra en la parte superior, y nos pedirá un nombre a nuestro esquema y hacemos clic en el botón Apply. Esto abre una nueva pestaña con la sentencia SQL necesaria para crear este esquema, pero se ha creado automáticamente, no hemos tenido que escribirlo con código SQL
Eliminar esquemas
Es posible eliminar esquemas, lo que tenemos que hacer es dirigirnos sobre el esquema que queremos eliminar y hacer clic en la opción Drop schema->Drop Now.
Advertencia: cuando eliminemos un esquema, se destruye por completo todo su contenido, por lo que hay que tener especial cuidado a la hora de tomar esta decisión.