- ¿Qué es una base de datos? - noviembre 7, 2020
- ¿Es la programación una profesión para ti? - septiembre 3, 2020
- Temporada 2020-2021 - julio 15, 2020
Introducción
Datos, datos, datos… ¡el mundo entero está movido por los datos! Desde mi punto de vista, los datos, son el valor más importante para las grandes compañías. Vivimos en un mundo que se está digitalizando, todo lo que antes teníamos en papel ahora lo tenemos en entornos informáticos, bien digitalizados o bien accesibles mediante software.
Este segundo punto, el acceso a los datos mediante software, es el que voy a explicarte en este artículo. Voy a darte unas nociones básicas de conceptos de bases de datos, voy a explicarte en que consiste una integración de bases de datos y un middleware de acceso a base de datos, y por último, voy a explicarte un ejemplo práctico.
¡Empecemos!
Conceptos previos
Antes de entrar en materia de bases de datos es necesario que tengas claro los siguientes conceptos, ya que los vas a usar mucho a partir de ahora.
- Base de datos: Tienes que entender una base de datos como un conjunto de datos de cualquier tipo pertenecientes a un mismo contexto y que son almacenados para su uso posterior. Las bases de datos tienen que ofrecer posibilidades de almacenamiento de grandes cantidades de datos y que se puedan recuperar de forma rápida.
- Integración: Es el resultado de unir o fusionar dos o más elementos diferentes en uno que los sintetice.
- Integración de bases de datos: Combinación de dos o más bases de datos para formar una única y dar la visión a los usuarios de una base de datos única. Las bases de datos suelen ser heterogéneas entre si, autónomas y distribuidas.
- Modelo conceptual: Representación de la estructura general de los datos y sus relaciones.
- Entidades: Conceptos del mundo real sobre los que se desea almacenar información.
- Atributos: Características importantes de las entidades que se desea almacenar.
- Relaciones: Asociación entre las entidades de la base de datos.
Las características principales de una base de datos son:
- Garantizar la consistencia de los datos.
- Dar servicio a todo tipo de usuarios.
- Dar servicio a todo tipo de aplicaciones.
- Ofrecer mecanismos de recuperación.
- Metadatos que contengan información acerca de la información almacenada.
Integración de bases de datos
En el apartado de conceptos previos te he explicado en qué consiste la integración de bases de datos, por lo tanto ya sabes que la integración de bases de datos consiste básicamente unir diferentes bases de datos y que la apariencia, para el usuario que las utiliza, sea como si existiera una única base de datos.
En la siguiente imagen puedes ver una representación conceptual de en qué consiste una integración de bases de datos:
El problema de la integración puede resolverse de diferentes formas:
- Utilizando middlewares software: Aplicación software que accede a las diferentes bases de datos y que se comunica con la aplicación que el usuario utiliza, ofreciéndole un acceso de datos transparente e integrado a las diferentes bases de datos que componen el sistema.
- Utilizando bases de datos distribuidas: Son bases de datos interrelacionadas de forma lógica por red.
- Utilizando almacenes de datos: Su nombre técnico es Data Warehouse. Son un gran repositorio de datos integrados y que no suele ser modificada una vez se almacena. Suelen utilizarse para análisis y búsquedas, ya que se encuentran optimizados para realizar estas operaciones.
Estas tres formas son las más comunes. Existen otras formas de integrar diferentes bases de datos, pero salen fuera del ámbito del desarrollo software.
En este artículo voy a explicarte los middlewares software, ¡vamos a ello!
Middlewares
El concepto middleware puedes aplicarlo en muchos ámbitos de la informática. No es más que un componente software que se utiliza como intermediador para conectar o integrar diferentes elementos para dar la sensación al usuario de que consituyen una entidad única. En informática existen diversidad de middlewares en función de los elementos que conectan e integra, como pueden ser middlewares para la integración de componentes software, middlewares entre aplicaciones, middlewares entre web services, etc. En este artículo vas a aprender en qué consiste un middleware de bases de datos.
Basándote en la imagen del punto anterior, una integración de bases de datos mediante un middleware puedes verla de la siguiente forma:
Puedes entender un middleware como un robot, que de forma automatizada, realiza todas las operaciones con las diferentes bases de datos de forma transparente para el usuario, al que le proporciona la sensación de estar trabajando con una única base de datos.
Ejemplo práctico
Para este ejemplo de integración de bases de datos utilizando un middleware vas a utilizar Eclipse y MySQL. Para el acceso a datos vas a utilizar un interfaz de Java que te permitirá realizar todas las operaciones que necesitas sobre cualquier base de datos, éste interfaz es JDBC (Java DataBase Connectivity).
Paso 1: Creación del proyecto
El primer paso que tienes que llevar a cabo es la creación del proyecto Java en Eclipse, en este ejemplo vas a utilizar Java Project:
Una vez selecciones el tipo de proyecto, ¡ponle el nombre y listo!
Paso 2: Creación de las bases de datos
El segundo paso es la creación de las bases de datos, para ello entra en MySQL y crea las siguientes bases de datos:
- libreria: Aquí vas a crear una tabla llamada libros, donde almacenarás los libros que hay disponibles en la librería.
- proveedor: Aquí vas a crear una tabla llamada precios, donde almacenarás el precio de cada uno de los libros basándote en el identificador único de cada libro.
Las bases de datos estarán unidas entre sí mediante el identificador único de cada libro, que va a ser el elemento que utilizarás para obtener el precio de cada uno de los libros que tienes en la librería.
Te muestro un ejemplo de la tabla libros de la base de datos de la librería:
Y también te muestro un ejemplo de la tabla precios de la base de datos de proveedores:
Como puedes observar, la información de los libros y sus precios se encuentran en bases de datos diferentes, pero, utilizando el identificador de los libros (id_libro), que se encuentra en ambas, puedes asociar la información de las dos bases de datos.
Paso 3: Preparación entorno
Llegó el momento de preparar el proyecto para poder conectarte a MySQL y realizar la integración de ambas bases de datos. Para ello, tienes que añadir la librería de conexión a MySQL de Java al proyecto e incluirla en el Build Path:
Una vez tengas agregada la librería al proyecto, tendrás todo listo para empezar a desarrollar:
Puedes descargar la librería de acceso a datos desde aquí.
Paso 4: Desarrollo
La primera parte que tienes que desarrollar es la lectura de los libros:
La segunda parte a desarrollar es obtener los precios de los libros que tiene la librería utilizando el campo id_libro:
En el ejemplo que he creado para ti únicamente muestro los datos por pantalla:
Paso 5: Ejecución
Al ejecutar el programa puedes ver como muestra los datos de forma independiente al número de bases de datos integradas, el usuario tiene la percepción de estar trabajando con una única base de datos, ya que, mediante el middleware has unido esta información y la has preparado para enseñarla unificada:
Conclusiones
La integración de diferentes bases de datos mediante un middleware software va a permitir que te abstraigas de la capa de datos que tengas, desde tus aplicaciones únicamente conocerás que existe un middleware de acceso a datos, y él será el encargado de preparar la información para tus aplicaciones. ¡Te animo a que pienses la potencia que puede dar esto a tus desarrollos!
¡Puedes descargar el código fuente desde GitHub!