Trigger

disparador

Un trigger o disparador es un bloque de código almacenado en el Sistema Gestor de Base de Datos (SGBD).

De la misma forma que en una base de datos ubicada en un SGBD se guardan tablas, vistas, formularios, informes; también se pueden guardan en ella los triggers.

La intención en la creación de un trigger es conseguir que durante el funcionamiento del SGBD, automáticamente se active, se ponga en ejecución su código cuando ocurra o suceda algo determinado. Es decir, no se llama de forma explícita al trigger para que ejecute su código, sino que este se activará de forma automática a consecuencia de un determinado suceso.

Y, ¿ Qué es lo que puede ocurrir para que que automáticamente se ejecute el código asociado a un trigger?

Si conocéis el lenguaje SQL entenderéis que existen múltiples comandos cada uno de los cuales empleados para una determinada acción. De todos estos comandos existen tres que provocan una alteración en el contenido de las tablas de una base de datos: INSERT, DELETE y UPDATE. El primero de ellos da de alta un nuevo registro en una tabla de la base de datos, el segundo borra algún registro de la tabla y UPDATE modifica el contenido de los registros de una tabla.

Pués bien, en un determinado SGBD podemos crear un trigger bajo tres premisas distintas, teniendo en cuenta que su código se podrá activar antes o después de utilizarse alguna de las tres instrucciones SQL anteriormente mencionadas. Por ejemplo, podría programar un trigger de forma que se activaría automáticamente su código justo antes de ejecutarse el comando del SQL DELETE sobre una determinada tabla, de forma que antes de ser borrado un registro, este, el trigger que se ha activado a consecuencia de la ejecución de esta instrucción DELETE, lo guardará en una tabla dedicada a tener una copia de cada uno de los registros que se han eliminado de otra tabla.

No todos los SGBD admiten la creación y uso de los triggers. El Sistema Gestor de Base de Datos MySQL, objeto de estudio en este tema del curso sí lo admite. A la creación y uso de los triggers en un entorno MySQL dedicaremos nuestro tiempo en el tema que ahora iniciamos.

Jesús Albert

Profesor de Base de Datos en el diclo de DAW

Primeros pasos con PostgreSQL

Una vez instalado postgresql se van a ver las primeras acciones a realizar desde el modo comandos de este Sistema Gestor de Base de Datos:

Por defecto, una vez finalizada la instalación, existe un usuario linux y de postgresql administrador denominado postgres. Desde el shell de Linux nos conectamos como dicho usuario:

sudo -i -u postgres

Como usuario postgres solicitamos el acceso al interprete de comandos psql mediante la orden

psql

En este momento ya tenemos el nuevo shell de postgres y como tal ya podemos proceder a ejecutar comandos de administración propios de psotgresql.

Con el siguiente comando vamos a poder ver todas las bases de datos de postgresql accesibles por el usuario con derechos de administrador postgres (todas):

\l

Si pretendemos crear una nueva base, denominada empresa, de datos escribiremos la siguiente instrucción SQL (siempre finalizada con un ;):

CREATE DATABASE empresa;

Nuevamente, si escribimos el comando \l vamos a ver que en el listado de bases de datos existentes, tenemos una nueva base de datos de nombrer empresa.

Para seleccionar una nueva base de datos (por ejemplo empresa) con el fin de usarla (por ejemplo para ver sus tablas, crear nuevas tablas, dar de alta nuevos registros, etcétera) escribiremos el siguiente comando:

\c empresa

Una vez usada o seleccionada dicha base de datos, si pretendemos listar todas las tablas que contiene, debemos escribir el comando:

\d

Para, en esta tabla empresa, crear una nueva tabla denominada producto,  habrá que escribir la correspondiente sentencia SQL que crea una nueva tabla en una base de datos (siempre finalizada con un ;):

CREATE TABLE productos (
    nref varchar(50) NOT NULL,
    precio INT NOT NULL,
    fecha_caducidad date,
primary
key(nref) );

Nuevamente, si escribimos el comando que muestra las tablas de la base de datos empresa (la que se encuentra en uso este momento)
\d
Veremos la existencia de la nueva tabla productos.

pgadmin

Pgadmin es una herramienta gráfica que permite administrar nuestro servidor postgresql sin necesidad de trabajar con comandos.

Para la instalación de esta herramienta en un entorno ubuntu se requiere la ejecución de la sentencia siguiente:

sudo apt-get install pgadmin3

Una vez instalado, tendréis que modificar el parámetro

 listen_addresses = ‘localhost’

del archivo postgresql.conf para que, al menos, acepte peticiones  localesde localhost.

Finalmente para ejecutar dicha aplicación, deberéis escribir el comando:

pgadmin3 &

Y, a continuación, establecer una nueva conexión.

Modelizar una base de datos haciendo uso del Diagrama Entidad Relación

Modelizar una Base de Datos es realizar un diseño en aras de obtener finalmente unas tablas perfectamente relacionadas sin errores en el proceso de la realización de altas, bajas y modificaciones en las mismas.

Existen varios sistemas modelizadores de Base de Datos, el más aplicado de todos ellos es el Modelo Entidad Relación (E/R), el cual estudiaremos en este curso.

Este tema, que hoy iniciamos, va a quedar claramente dividido en tres secciones: El diseño E/R, el paso a tablas y la normalización de las mismas.

En el Diseño E/R, mediante el empleo de una serie de elementos gráficos asociados a diferentes conceptos del esquema E/R, vamos a representar la información especificada o narrada procedente de los requerimientos de un cliente.

Mediante el Paso a Tablas, a partir del esquema E/R ya creado, desde un plano teórico, se van a obtener las tablas de una futura Base de Datos con sus atributos, claves y propiedades.

Obtenidas las tablas, van a pasar por un proceso de depuración para optimizar en un futuro su uso evitando posibles errores en su manejo. Este proceso de optimización de las tablas se denomina Normalización, existiendo varias formas normales que deberá cumplir cualquier tabla en su camino de mejora y optimización.

Transcurrido el proceso de diseño y analisis de una Base de Datos, estaremos dispuestos a utilizar  cualquier Sistema Gestor de Base de Datos (SGBD) para completar la creación de una Base de Datos. No obstante, este último punto lo vamos a delegar para los siguientes temas del curso.

Y nada más, os emplazo a todos a estudiar y practicar con ahínco estos conceptos que a bien seguro repercutirán positivamente en vuestra formación como futuros analistas y diseñadores de Bases de Datos.

Metadatos

Además de guardar datos en una base de datos también es necesario guardar la información de cómo son esos datos.

¿QUÉ SON LOS METADATOS?

La definición más simple sería: “Son los datos sobre los datos

Se podría explicar con un sencillo ejemplo: las fichas de una biblioteca (metadatos) y los libros (datos). Mientras que las fichas tienen toda la información relacionada con el autor, el título, el ISBN, el año, la editorial, en el libro está el contenido que normalmente un usuario buscará.

Lectura de una tabla MySQL con Java

Se necesita realizar una aplicación Java que permita acceder a una servidor MySQL en aras de poder mostrar en pantalla los registros de una determinada tabla de una base de datos.

BD-MYSQL

En primer lugar habrá que establecer con Java una conexión con el servidor MySQL


Veamos el código necesario para realizar este programa:

// Se importa la librería siguiente que permite trabajar con bases de datos
// haciendo uso del MySQL.
import java.sql.*;

public class conbd {

public static void main(String[] args) throws SQLException {

// Establecemos la conexión con el servidor MySQL

Connection con = null;
String sURL = «jdbc:mysql://localhost:3306/empresa?useSSL=false&serverTimezone=UTC»;
con = DriverManager.getConnection(sURL,»root»,»12345″);

// Escribimos la sentencia SQL que posibilita realizar     // una consulta de los nombres de productos de una tabla   // productos.

try (PreparedStatement stmt = con.prepareStatement(«SELECT nif FROM socios»)) {
ResultSet rs = stmt.executeQuery();

// En la variable rs de tipo ReseultSet tenemos todos los registros de la tabla seleccionados. En el siguiente bucle while se lee y se visualiza por pantalla cada uno de los valores de nif de cada uno de los registros previamente seleccionados.

while (rs.next())
System.out.println (rs.getString(«nif»));

} catch (SQLException sqle) {
System.out.println(«Error en la ejecución:»
+ sqle.getErrorCode() + » » + sqle.getMessage());
}
}
}

Base de Datos de DAW1

La asignatura Base de Datos forma parte del plan de estudios correspondiente al primer ciclo formativo de grado superior en Desarrollo de Aplicaciones Web (DAW 1). Tiene un total de 160 horas lectivas repartidas en tres trimestres de 5 horas semanales cada uno.

Dentro del campo profesional del desarrollo web y por extensión del mundo de la programación de aplicaciones resulta de relevante importancia el manejo y administración de base de datos así como el correspondiente análisis de la información con la finalidad de obtener una óptima gestión de los datos. Los contenidos de esta asignatura os encaminaran a conseguir este objetivo.

Después de una breve introducción sobre las bases de datos en el tema 1, se procederá a la enseñanza del análisis de la información en aras de conseguir un buen diseño previo de lo que posteriormente será la base de datos. Por este motivo, durante el primer trimestre nos centraremos en el análisis, diseño y optimización de la información más habitualmente conocido como diagramas entidad relación , paso a tablas y normalización u optimización de las tablas así obtenidas.

Con toda seguridad os puedo decir que los contenidos de este inicio de curso son los más importantes de la asignatura ya que nos enfrentamos a la construcción de la estructura sobre la que se cimentará cualquier edificación de base de datos.

Finalizada esta primera parte del curso trabajaréis con la herramienta Workbench que permite realizar diseños de bases de datos con la normativa de Entidad/Relación previamente estudiada.

Durante el segundo trimestre aprenderéis y conoceréis el uso de algunas de los principales sistemas gestores de bases de datos (SGBD): Openbase, Access y MySQL, cada uno de ellos con sus puntos positivos y también sus inconvenientes.

También os adentraréis en el conocimiento del lenguaje SQL, de suma utilidad en el manejo y administración de cualquier SGBD.

Finalizando el curso, en el tercer trimestre, os formaréis en aspectos relativos a la administración y gestión de SGBD como son: la administración de usuarios y la automatización de tareas administrativas mediante triggers.

Acabaremos el curso analizando y formándonos sobre el BIGDATA, la gestión de bases de datos con muchísimos datos, tan de moda en estos tiempos, centrándonos en un SGBD para el BIGDATA denominado el MONGODB.

Espero que el contenido del curso os haya motivado para seguir con interés la formación anual en base de datos que estáis a punto de iniciar.

Saludos a todos y buen inicio de curso.

Vuestro profesor:

Jesús Albert Magro

WorkBench

Más problable es que optemos por una base de datos desarrollada con el Sistema Gestor de Base de Datos (SGBD) MySQL debido a que es este SGBD el más empleado en la creación de Bases de Datos para arquitecturas Cliente/Servidor como es Internet.

Será en el Tema 8 del curso donde ahondaremos sobre MySQL.

Una vez se ha instalado MySQL en un servidor, el uso del mismo se realizará en modo consola. Si queremos facilitar el manejo y administración de este SGBD nos será muy útil la instalación y uso de algún software que ofrezca la posibilidad de trabajo desde un entorno gráfico más amable que el uso de la consola.

Una de estas herramientas se denomina Workbench, con ella vamos a poder realizar analisis Entidad/Relación de Base de Datos (MER), crear bases de datos y relacionar sus tablas, interactuar mediante SQL, establecer usuarios y privilegios,  etcétera.

Remitiéndome a la Wikipedia, la definición de Workbench que ella nos ofrece es la siguiente:

«MySQL Workbench es una herramienta visual de diseño de bases de datos que integra desarrollo de software, Administración de bases de datos, diseño de bases de datos, gestion y mantenimiento para el sistema de base de datos MySQL. Es el sucesor de DBDesigner 4″

Completado, con los temas 2. 3. 4, el estudio de la modelización de bases de datos mediante el Diagrama Entidad/Relación, el paso a tablas de un MER y  finalmente, la normalizació u optimización de estas tablas, es el momento de utilizar una herramienta como Workbench para poner en práctica los conocimientos sobre modelización E/R adquiridos.

En este tema vais, además de conocer las características principales del Workbench, vais a poner en práctica sobre el mismo los ejercicios de clase de MER realizados en el tema 2. Os vais a dar cuenta que una de las principales ventajas que ofrece esta herramienta va a ser que, automáticamente, conforme diseñais vuestro diagrama ER sobre el mismo, se van a generar las correspondientes tablas con sus claves primarias y ajenas.

A continuación podíes ver un ejemplo, en Workbench, de modelización de base de datos mediante Diagrama Entidad/Relación:

modelo1

Ánimo a todos y que este tema os sea de mucha utilidad !

Jesús Albert Magro

Profesor Sistemas Gestores de Bases de Datos

Introducción a los Sistemas Gestores de Bases de Datos

En este primer tema del curso vais a conocer qué es un Sistema Gestor de Base de Datos (SGBD) estudiando sus principales funcionalidades así como estableciendo una clasificación de algunos de los principales SGBD.

Haciendo una breve inmersión histórica sobre la evolución en el tratamiento de la gestión de datos, veréis que no siempre existieron estas potentes herramientas y sí en su anterioridad se utilizaron los sistemas gestores de ficheros, como por ejemplo Btrieve, en los cuales, en lugar de gestión de bases de datos, con sus respectivas tablas, se gestionaban ficheros cada uno de los cuales con un determinado número de registros. Estas primitivas herramientas incorporaban funciones para el tratamiento y manipulación de los ficheros y sus registros.

¿Qué es una base de datos?

Es un conjunto estructurado de datos pertenecientes a un mismo contexto (Base de datos biblioteca, Bd videoclub, Bd empresa, etc.) y almacenados para su posterior uso.

¿Cómo se almacenan los datos en una base de datos?

Los datos en una base de datos se almacenan en elementos estructurados denominados tablas que contienen una serie de columnas o campos que podrán contener cada una de ellas datos de un tipo determinado: numérico, texto, etc.

Una ejemplo de tabla podría ser el siguiente:

tablabd

Cada una de las filas de una tabla se denomina registro o tupla.

¿Qué es un Sistema Gestor de Base de Datos (SGBD)?

Es una aplicación encargada de manipular bases de datos y por extensión sus tablas. Por manipular se entiende la posibilidad de efectuar altas, bajas, consulta, modificación, borrado de los registros de la tablas de la base de datos. Además, un SGBD permite crear nuevas bases de datos y tablas.

Dependiendo del SGBD podremos realizar más o menos opciones además de las anteriormente enumeradas.

Una representación muy esquematizada de lo que podría realizar un SGBD es esta:

bd

En este tema se establece una diferenciación entre los conceptos de datos e información: hablaré de ello muy próximamente.

Finalmente haré mención a un tema de candente actualidad que es la protección de los datos de cada usuario, para evitar así un uso incorrecto de los mismos. Para este motivo se elaboró una ley orgánica de protección de datos informáticos (LOPD) que será sujeto de comentario final en este tema.

Y aquí finalizo.

Seguiréis adentrándoos en el apasionante mundo de las bases de datos y sus gestores en cada uno de los temas que integran el contenido didáctico de esta asignatura.

Un saludo.

Jesús Albert Magro

Instala PostgreSQL

Para instalar postgresql en un ordenador con ubuntu:

apt-get install postgresql-9.4

Los paquetes que se deberían instalar en la anterior instalación son los siguientes:

  • postgresql-client-9.4 – client libraries and client binaries
  • postgresql-9.4 – core database server
  • postgresql-contrib-9.4 – additional supplied modules
  • libpq-dev – libraries and headers for C language frontend development
  • postgresql-server-dev-9.4 – libraries and headers for C language backend development
  • pgadmin3 – pgAdmin III graphical administration utility