sábado, 30 de julio de 2016

037.- Base De Datos - Modelo Entidad-Relación (E-R) - Java y NetBeans


BASES DE DATOS

INTERFAZ GRÁFICA DE USUARIO (GUI) y PROCESO DE DATOS:

Un programa básicamente recibe una serie de datos, que introduce el usuario, luego realiza una serie de cálculos con ellos, y finalmente presenta los resultados en pantalla.

El usuario usa una serie de elementos para introducir los datos en el programa y para darle las órdenes al programa para que realice los cálculos. Estos elementos son las ventanas con todos sus componentes: botones, cuadros de diálogos, etiquetas, listas desplegables, etc.

El programa realiza los cálculos con dichos datos y los resultados los presenta en elementos de la ventana para que el usuario pueda verlos de forma cómoda. Estos elementos donde aparecen los resultados pueden ser etiquetas, cuadros de mensaje, etc.

Hay que distinguir por tanto entre la GUI y el Proceso de Datos.

La GUI (interfaz gráfica de usuario) es el conjunto de elementos que permiten al usuario comunicarse con el programa. Estos elementos le permiten al usuario introducir datos, dar órdenes al programa y visualizar los resultados obtenidos. Para entendernos, la GUI es básicamente el diseño de las ventanas del programa.

Un buen diseño de la GUI es vital. La interfaz de usuario debe hacer que el programa sea intuitivo, fácil de usar. Un programa incómodo, por muy bueno que sea, será rechazado por el usuario.

Aparte de la GUI, internamente el programa debe realizar una serie de cálculos para obtener los resultados pedidos por el usuario. No hace falta decir que la programación de estos cálculos debe ser precisa y correcta, ya que en caso contrario el programa no serviría para nada, por muy buena que fuera la interfaz de usuario.

Todo lo anterior se puede representar gráficamente de la siguiente forma:





 
BASES DE DATOS:
Ahora se va a dar una vuelta de tuerca más a lo indicado anteriormente añadiendo a todo este entorno el concepto de Base de Datos.

Hay que tener en cuenta que la mayoría de las aplicaciones que solicitan las empresas son programas cuya función principal es la de mantener datos de la propia empresa.

Estos programas suelen tener siempre las mismas funciones básicas. Deben ser capaces de:

-       Almacenar datos producidos por la empresa: facturas, datos de clientes, productos, gastos, ingresos, trabajadores, etc.

-       Visualizar dichos datos.

-       Modificar / Eliminar dichos datos.

-       Consultar dichos datos. Es decir, visualizar solo aquellos datos que cumplan una condición. Por ejemplo: visualizar las facturas del mes de enero, o mostrar los productos que estén en stock, mostrar los trabajadores que hayan trabajado más de 100 horas, etc.

-       Realizar cálculos con los datos. Por ejemplo, calcular el total de ingresos entre dos fechas, calcular lo que hay que declarar de Impuesto General a las Ventas (IGV), etc.


Así pues, la mayor parte de las aplicaciones que encarga una empresa son aplicaciones que deben gestionar una serie de datos. Estos datos deben estar guardados en un fichero o ficheros. A este conjunto de datos que debe manipular el programa se le denomina BASE DE DATOS.

Una Base de Datos no es solamente un conjunto de datos almacenados en un mismo sitio. Hay que tener en cuenta que para que estos datos sean fáciles de manipular, es necesario que tengan una organización determinada. Una Base de Datos mal organizada se convierte simplemente en un cajón de sastre donde resulta imposible encontrar lo que se busca.

Así pues, es necesario tener en cuenta la forma en que se organizarán los datos dentro de la base de datos, o dicho de otra forma, el diseño de la base de datos.

En las próximas entradas de este blog se verán conceptos básicos para el diseño y creación de una base de datos, así como un lenguaje de consulta llamado SQL que nos permitirá acceder a los datos de una base de datos y realizar determinadas acciones sobre la base de datos.




Acceso a la BASE DE DATOS desde la aplicación:

Añadiendo el concepto de Base de Datos a la idea de Usuario, GUI y Proceso de Datos, podemos representar gráficamente un programa como sigue:



 
 Analicemos el gráfico anterior:

  1. El usuario le pide algo al programa. Por ejemplo el usuario quiere obtener un listado de clientes, o quiere saber los ingresos del último mes.

  1. Para ello, el usuario activa los elementos de la GUI necesarios. Es decir, activará la opción del menú que corresponda, o el botón de la barra de herramientas, etc. Dicho de otra manera, el usuario da una orden.

  1. Es posible que el usuario tenga que introducir algún dato. Por ejemplo, si quiere saber los ingresos del mes de enero, tendrá que introducir “enero” para que el programa sepa de que mes hay que calcular los ingresos. Para ello el usuario usará un cuadro de texto del GUI, o un combo, etc.

  1. Hay que tener en cuenta que para obtener un listado de clientes, o el total de ingresos de un mes, hay que consultar la base de datos. El usuario no se preocupará de eso ya que será el programa el que haga el trabajo.

  1. La GUI traspasa la petición del usuario al módulo de Proceso de Datos. Este módulo es el corazón del programa, el que se encarga de ejecutar las órdenes. Esta parte del programa analizará la orden y acto seguido buscará los datos necesarios en la base de datos.

  1. Para acceder a la base de datos, el módulo de Proceso de Datos usará un lenguaje ideado para el acceso a bases de datos llamado SQL.

  1. Gracias al lenguaje SQL, el módulo de Proceso de Datos obtendrá los datos necesarios que pedía el usuario (por ejemplo el listado de clientes) o bien los datos necesarios para realizar el cálculo (los ingresos de cada día del mes).

  1. Una vez obtenido los resultados, el módulo de Proceso de Datos se los enviará al GUI y los presentará de forma agradable para el usuario.

  1. El usuario mirará su pantalla, y verá aparecer en la ventana del programa (en la GUI) el resultado que había pedido.


Teniendo en cuenta lo visto, para la creación de un programa hay que:

Diseñar una GUI agradable, cómodo y fácil de usar.
Diseñar la base de datos de forma que el acceso a datos sea rápido.
- Hacer el programa de forma que responda a las peticiones del usuario transmitidas por la GUI accediendo a la base de datos y obteniendo información de ella, o bien realizando acciones en ella.



GESTOR DE BASE DE DATOS:
Un gestor de base de datos es un programa que nos permite crear bases de datos, mantenerlas, realizar consultas en ellas, etc.

A través de un gestor de base de datos podemos crear la base de datos que usará nuestro programa.

Existen diversos programas gestores de base de datos, pero el que se usará será el programa SQL Server.


DISEÑO DE BASE DE DATOS. MODELO ENTIDAD – RELACIÓN:

Antes de empezar a crear la base de datos usando el programa SQL Server (o cualquier otro gestor de base de datos que vaya a usar) es necesario pensar en el diseño que tendrá dicha base de datos. O dicho de otro modo, como se organizarán los datos en la base de datos.

Para facilitar la tarea de organizar los datos en una base de datos, se usa una representación gráfica llamada Modelo Entidad – Relación, o simplemente Modelo E-R.

Podríamos comparar el Modelo E-R a los Diagramas de Flujo. El Modelo E-R nos facilita el diseño de bases de datos mientras que los Diagramas de Flujo nos facilitan el diseño de algoritmos.



EJERCICIO GUIADO Nº 1

Veremos en este ejercicio guiado como diseñar una base de datos a partir de la información aportada por una empresa, y un ejemplo de como representar dicha base de datos usando el Modelo E-R.


Supuesto Inicial

La empresa AMANUVA (Amado Núñez Vallejos) se encarga de realizar todo tipo de reparaciones y limpieza a los locales de sus clientes.

A esta empresa le interesa almacenar los datos de sus clientes. Concretamente le interesa almacenar el Registro Único de Contribuyente (RUC) de la empresa del cliente, el nombre de dicha empresa, la dirección y dos teléfonos de contacto.

Por otro lado, AMANUVA quiere guardar los datos de los trabajadores que están en planilla. Le interesa saber los nombres y apellidos de dichos trabajadores, el DNI, el sueldo y la fecha en que entraron en la empresa.

AMANUVA quiere controlar los servicios que realiza cada trabajador. Concretamente, AMANUVA quiere almacenar la fecha en que se hizo el servicio, el tipo de servicio que se hizo (fontanería, limpieza, electricidad, etc.)  La cantidad cobrada por el servicio y un comentario donde se indique qué acciones se realizaron.

Hay que indicar que cada servicio lo realiza un solo trabajador, y que cada servicio se realiza a una sola empresa.

Cada trabajador tiene asignado un auto de la empresa. Hay un auto por cada trabajador y cada trabajador siempre usa el mismo auto. A AMANUVA le interesa almacenar información de cada auto. Le interesa almacenar la placa, la marca, el modelo y el año de compra.

AMANUVA nos encarga un programa para gestionar toda esta información. Se pide que diseñe la base de datos correspondiente que se usará en el programa. Represente dicha base de datos usando el Modelo E-R.


  1. Concepto de Entidad.

Entidad. Una entidad es un objeto que se quiere representar a través de una serie de características.

Las entidades son aquellos elementos que juegan un papel importante en la base de datos. Son los elementos de los que queremos almacenar información.


  1. Lo primero que hay que hacer es distinguir las entidades del supuesto. Es decir, averiguar los elementos que se quieren almacenar en la base de datos.

En el supuesto, las entidades son: los clientes, los trabajadores, los servicios que realizan los trabajadores y los autos de los trabajadores.


  1. Atributos de una Entidad.

A la empresa le interesa almacenar información sobre las entidades. Es decir, le interesa almacenar información sobre los clientes, los trabajadores, los servicios y los autos.

La información que se quiere almacenar de cada entidad se denomina atributos de una Entidad.

Por ejemplo, de los clientes, se quiere almacenar las siguientes propiedades: el RUC de la empresa, el nombre, etc.

A continuación se indican los atributos que se almacenarán de cada entidad, teniendo en cuenta el supuesto:

Entidad Clientes


Atributos: RUC, nombre empresa, dirección, teléfono1, teléfono2.


Entidad Trabajadores


Atributos: nombres, apellidos, DNI, sueldo, fecha de entrada.
         

Entidad Servicios


Atributos: fecha, tipo, cantidad cobrada, comentario.


Entidad Autos


Atributos: placa, marca, modelo, año de compra.


  1. Atributos clave.

Un Atributo Clave es aquel atributo cuyo valor no se repite y no puede estar vacío para todos los elementos de una entidad.

Los Atributos Clave distinguen a cada elemento de una entidad.

Por ejemplo, en el caso de la entidad Clientes, el atributo clave será el RUC, ya que no puede haber dos clientes con RUC iguales, y todos los clientes tendrán RUC. El RUC permite distinguir a un cliente de otro.

Es conveniente asignar un atributo clave para cada entidad. En algunos casos podemos elegir uno de los atributos de la entidad como atributo clave, en otros casos ninguno de los atributos de la entidad podrá ser atributo clave y entonces tendremos que añadir uno nosotros.

Veamos los atributos clave de cada entidad:

Entidad Clientes: El atributo clave será el RUC.

Entidad Trabajadores: Se puede elegir como atributo clave el DNI.

Entidad Autos: Se puede elegir como atributo clave la placa.

Entidad Servicios.

En el caso de la entidad Servicios, tenemos que ninguno de los atributos que posee puede ser atributo clave. Observa:

-       Dos servicios distintos pueden ser realizados en la misma fecha, por lo que dos servicios pueden tener fechas repetidas: la fecha no puede ser atributo clave.

-       Dos servicios distintos pueden ser del mismo tipo, por los que dos servicios pueden tener el mismo tipo: el atributo tipo no puede ser atributo clave.

-       Dos servicios distintos podrían tener el mismo comentario, o no tener comentario en absoluto: el atributo comentario no puede ser atributo clave.

-       Dos servicios distintos podrían haber costado lo mismo, por lo que el atributo cantidad cobrada no puede ser atributo clave.

No existe para la entidad Servicios un atributo que identifique cada servicio. En estos casos se suele añadir un atributo que sea atributo clave, es decir, un “código” o “identificador”.

En nuestro ejemplo, añadiremos un atributo “número” que será el número de servicio realizado. Cada servicio tendrá un número distinto, por lo que el atributo número será el atributo clave.

Así pues, los atributos de la entidad Servicios serán los siguientes:

Entidad Servicios


Atributos: fecha, tipo, cantidad cobrada, comentario, número.

Y el atributo número será su atributo clave.


  1. Relaciones entre entidades.

Las entidades se relacionan entre sí. Es necesario distinguir en el supuesto cuales son estas relaciones. Veamos:

Un Trabajador realiza Servicios. Por lo tanto, las entidades Trabajadores y Servicios ser relacionan.

Un Servicio se realiza a un Cliente. Por lo tanto las entidades Servicios y Clientes se relacionan.

Un Auto lo usa un Trabajador. Por lo tanto las entidades Autos y Trabajadores se relacionan.

Estas son las relaciones:

Autos --- Trabajadores --- Servicios --- Clientes



  1. Cuando se establecen las relaciones, hay relaciones que están implícitas. Por ejemplo, no se ha establecido una relación entre Trabajadores y Clientes:

“Un Trabajador hace trabajos a Clientes.”

No está establecida una relación directa entre ambas entidades, pero sí se relacionan a través de la entidad Servicios:

Trabajadores --- Servicios --- Clientes


Así pues, en realidad, trabajadores y clientes se relacionan, a través de la entidad servicios.


  1. Cardinalidad de las relaciones o Tipo de relaciones.

Según la forma en que se relacionen dos entidades, tenemos cuatro tipos de relaciones:

Relaciones 1 a 1

En este tipo de relación, un elemento de la primera entidad se relaciona con un elemento de la segunda entidad, y viceversa.

En nuestro ejemplo, la relación entre Autos y Trabajadores es del tipo 1 a 1, ya que un auto pertenece a un solo trabajador, y ese trabajador solo usa ese auto.


Relaciones 1 a Muchos

En este tipo de relación, un elemento de la primera entidad se relaciona con muchos elementos de la segunda, pero un elemento de la segunda, se relaciona con uno solo de la primera.

En nuestro ejemplo, la relación TrabajadoresServicios es del tipo 1 a Muchos. Observa: un trabajador realiza a lo largo de su vida laboral muchos servicios, pero un servicio es realizado solo por un trabajador (por lo que nos dice el supuesto).

La relación entre Clientes y Servicios es también del tipo 1 a Muchos. Observa: un cliente solicita a lo largo de su existencia muchos servicios a la empresa, pero cada servicio se realiza a un solo cliente (por lo que nos dice el supuesto).


Relaciones Muchos a 1

Este tipo de relación es el mismo que el anterior. Basta con “darle la vuelta” a la relación.

Por ejemplo, se ha visto que la relación TrabajadoresServicios es del tipo 1 a Muchos. Por tanto, la relación ServiciosTrabajadores es del tipo Muchos a 1.


Relaciones Muchos a Muchos

En este tipo de relación un elemento de la primera entidad se relaciona con muchos elementos de la segunda entidad, y viceversa.

En nuestro supuesto no tenemos ninguna relación de este tipo, pero supongamos la siguiente relación entre Profesores y Cursos:

“Un profesor puede dar varios cursos, y un curso es impartido por varios profesores”.

Esta relación sería del tipo Muchos a Muchos.


  1. Averiguar el tipo de relaciones.

Para averiguar el tipo de cada relación, es necesario estudiar bien el enunciado del supuesto, y pedir información al cliente que nos encarga el programa, de lo contrario, tendremos que hacer suposiciones para asignar un tipo a cada relación.


En nuestro supuesto, las relaciones tienen el siguiente tipo:

Autos -1---1- Trabajadores -1---M- Servicios -M---1- Clientes

Relación AutosTrabajadores.          Tipo 1 a 1.
Relación TrabajadoresServicios.     Tipo 1 a Muchos.
Relación ServiciosClientes.              Tipo Muchos a 1.


  1. Intercambio de atributos clave entre entidades relacionadas.

Para hacer efectivas las relaciones de la base de datos, es necesario intercambiar los atributos claves entre las entidades relacionadas siguiendo ciertas reglas.

Las reglas son las siguientes:

-       Primera Regla. Si dos entidades se relacionan de forma 11, entonces debe pasarse el atributo clave de una de ellas a la otra, y viceversa.

En nuestro ejemplo, las entidades Autos y Trabajadores se relacionan de forma 1 a 1. Esto implica que es necesario añadir el atributo clave de Autos a Trabajadores, y viceversa.

Así pues, será necesario añadir el atributo matrícula a Trabajadores, y el atributo DNI a Autos.

Por tanto, las entidades Trabajadores y Autos quedarán así:

Entidad Trabajadores


Atributos: nombres, apellidos, DNI, sueldo, fecha de entrada, placa


Entidad Autos


Atributos: placa, marca, modelo, año de compra, DNI


-       Segunda Regla. Si dos entidades se relacionan de forma 1Muchos, entonces, se debe pasar el atributo clave de la entidad de la parte de la relación 1, a la entidad de la parte de la relación Muchos.

En nuestro ejemplo, las entidades Trabajadores --- Servicios se relacionan de forma 1 a Muchos, por tanto, será necesario traspasar el atributo clave de la entidad Trabajadores a la entidad Servicios, con lo que quedarán así:


Entidad Trabajadores


Atributos: nombres, apellidos, DNI, sueldo, fecha de entrada, placa


Entidad Servicios


Atributos: fecha, tipo, cantidad cobrada, comentario, número, DNI.


Por otro lado, las entidades Servicios --- Clientes se relacionan de forma Muchos a 1. Por tanto, será necesario traspasar el atributo clave de la entidad Clientes a la entidad Servicios, con lo que quedarán así:

Entidad Servicios


Atributos: fecha, tipo, cantidad cobrada, comentario, número, DNI, RUC.


Entidad Clientes


Atributos: RUC, nombre empresa, dirección, teléfono1, teléfono2.



  1.   Claves Foráneas.

La razón de traspasar el atributo clave de una entidad a otra es que exista un elemento de unión, en ambas entidades relacionadas.

Cuando una entidad posee un atributo clave de otra entidad, se dice que ese atributo es una clave foránea.

Después de realizar estos traspasos, nuestras entidades quedan con los siguientes atributos.

Nota: se subraya el atributo clave en cada entidad, y se tacha las claves foráneas de cada entidad.


Entidad Autos


Atributos: placa, marca, modelo, año de compra, DNI


Entidad Trabajadores


Atributos: nombres, apellidos, DNI, sueldo, fecha de entrada, placa


Entidad Servicios


Atributos: fecha, tipo, cantidad, comentario, númeroDNI, RUC


Entidad Clientes


Atributos: RUC, nombre empresa, dirección, teléfono1, teléfono2.


No confundas el concepto de atributo clave, con el concepto de clave foránea.


  1.  Modelo E-R.

Una vez definidas las entidades, los atributos, atributos claves, relaciones, tipos de relaciones, y claves foráneas, todo esto se puede representar de forma gráfica como sigue:




El gráfico anterior es lo que se llama un Modelo Entidad-Relación y es una representación de la base de datos que acabamos de diseñar.

En este gráfico observarás lo siguiente:

-       Las entidades se representan en recuadros.
-       Los atributos de cada entidad se representan con elipses.
-       El atributo clave de cada entidad se subraya.
-       Las relaciones entre entidades se representan usando líneas con rombos.
-       Se indica el tipo de relación (1 a 1, o 1 a Muchos) añadiendo a la línea de la relación un 1 o una M para indicar el tipo de relación.





CONCLUSIONES:

Las Bases de Datos son elementos vitales en la creación de aplicaciones para empresas.

Para diseñar una Base de Datos hay que especificar los siguientes elementos:

- Entidades cuya información queremos almacenar.
- Atributos de dichas entidades.
- Atributos claves para dichas entidades.
- Relaciones entre entidades.
- Definir el tipo de relaciones.
- Asignar las claves foráneas según el tipo de relación.

Una vez especificados estos elementos, todo el diseño se puede representar gráficamente a través de un modelo gráfico llamado Modelo Entidad-Relación.

No hay comentarios.:

Publicar un comentario