lunes, 15 de agosto de 2016

040.- Gestor De Base De Datos - SQL Server - Java y NetBeans

Gestor de Base de Datos:
En las entradas anteriores se ha explicado como diseñar una base de datos.
Diseñar una base de datos consiste en organizar la información, en cierta manera caótica, que nos proporciona el cliente que nos encarga el programa.
Para organizar dicha información usamos una representación gráfica denominada Modelo Entidad Relación en la que representamos cada uno de los elementos que participan en la base de datos (entidades), sus características principales (atributos) y las relaciones que existen entre ellos.
Una vez finalizado el esquema Entidad Relación de la base de datos, se realiza una representación en forma de tablas a partir de él.
Así pues, diseñar una base de datos consiste en tomar la información caótica proporcionada por el cliente y organizar esta información en tablas.
El objetivo de esto, es facilitar la creación de la base de datos en el programa gestor de base de datos que se vaya a usar.
Un programa gestor de base de datos permite crear una base de datos a partir de sus tablas. Y además permite el mantenimiento de dichas tablas (añadir datos, eliminar datos, modificar datos, realizar consultas, etc.).
Es necesario tener claro el diseño (organización en tablas) de la base de datos antes de poder crear esta usando el programa gestor de base de datos elegido.


SQL SERVER:
Existen múltiples programas gestores de bases de datos que se pueden usar para crear las bases de datos de sus aplicaciones.
En los ejercicios guiados que vendrán a continuación se usará el gestor SQL Server de Microsoft, el cual permitirá la creación de forma sencilla de bases de datos adecuadas para las aplicaciones de base de datos que se realizarán en java.
Este programa permite la definición de las tablas, la creación de consultas y el acceso a la base de datos usando el lenguaje SQL, vital para el manejo de la base de datos desde la aplicación.
Por otro lado facilita mucho el manejo de la base de datos, la instalación puede realizarse en el ordenador del cliente o en un ordenador que se encuentre en la red y que funcione como servidor de base de datos, además de ser un gestor de base de datos muy extendido y conocido.

En los ejemplos que vendrán a continuación, se usará la versión 2008 R2 de Microsoft SQL Server.



EJERCICIO GUIADO Nº 1
En post anteriores se creó la base de datos de la empresa AMANUVA, una empresa encargada de proporcionar servicios de mantenimiento a otras empresas.
Después de realizar el Modelo Entidad – Relación y de hacer el traspaso a tablas, el resultado fue el siguiente:

Tabla Autos
placa
marca
modelo
anio
dni
















Tabla Trabajadores
dni
nombres
apellidos
sueldo
fecha_entrada
placa



















Tabla Servicios
numero
fecha
tipo
cantidad_cobrada
comentario
dni
ruc






















Tabla Clientes
ruc
nombre
direccion
telefono1
telefono2

















En este ejercicio guiado se creará la base de datos AMANUVA formada por las tablas anteriores usando el programa SQL Server.

Para ello, siga los pasos que se indican a continuación:

  1. Abra el programa SQL Server.



  1. Para crear una base de datos nueva, dar clic derecho en Databases y luego escoger la opción New Database…:



3.    Lo primero que tendrá que hacer es decidir el nombre que le dará a la Base de Datos. Para nuestro ejemplo, el nombre que le asignaremos será AMANUVA:



4.    La Base de Datos AMANUVA debe contener cuatro tablas, las cuales crearemos a continuación. Para crear una tabla haz clic derecho en la opción Tables de la base de datos AMANUVA y escoger la opción New Table…:



5.    La ventana que aparece a continuación nos permitirá definir los campos de la tabla que vamos a crear. Empezaremos creando la tabla Autos (que se muestra a continuación):

Tabla Autos
placa
marca
modelo
anio
dni

















          Para ello, haga lo siguiente:



6.    Introduzca el nombre del primer campo: “placa”, y a continuación elija el tipo de datos char(10). En la parte de Permitir Nulos (Allow Nulls) desactivar la casilla de verificación puesto que este campo es la clave primaria de la tabla autos y siempre debe contener un dato por cada registro que se ingrese en la tabla.

El tipo de datos char(10) define un dato que contendrá letras o caracteres no numéricos, como espacios, guiones, etc. Una placa consta de caracteres ya que contendrá letras, y puede ser representada con guiones, espacios, etc.




7.    En los paréntesis se indica el número de carácteres para introducir una placa (10).

8.    El siguiente campo de la tabla es la “marca”. Este campo será de tipo char, ya que contiene letras y como tamaño dejaremos 50.



9.    El siguiente campo es “modelo”. Igualmente este campo será de tipo char debido a que contiene letras y dejaremos como tamaño 50.



10. El siguiente campo es “anio” (no usamos la letra "ñ" debido a que puede causar inconvenientes al momento de realizar consultas a la base de datos ya que dicho carácter no pertenece al alfabeto inglés). Este campo hace referencia al año de compra del auto. Así pues, elige en el tipo de datos la opción char(4).



11.  El siguiente campo es el dni. Se recuerda que este campo es una clave foránea, y hace referencia al DNI del trabajador que conduce este auto.

Es habitual confundirse y asignar el tipo de datos Numérico a un DNI, pero tenga en cuenta que un DNI no es utilizado para realizar cálculos numéricos. Esto hace que un DNI no sea un número válido desde un punto de vista matemático. El DNI en realidad es del tipo de datos char.

No ponga dni con puntos en el nombre del campo, ya que esto puede causar confusiones a la hora de realizar operaciones con la base de datos.

El tamaño del campo dni será de 8:



12. Ya están añadidos todos los campos de la tabla, ahora hay que indicar cual de ellos es el campo clave. El campo clave de la tabla es placa, tal como se definió a la hora de crear el modelo E-R. Así pues, haz clic sobre placa y pulsa el botón con forma de llave amarilla, llamado Set Primary Key. Aparecerá una llave pequeña al lado del campo y de esta forma el campo placa quedará marcado como campo clave.





13. El diseño de la tabla Autos está casi terminado, solo hay que darle el nombre y guardarla. Para ello, cierra la ventana de diseño de la tabla e indica que quieres guardar los cambios.



14. Introduce el nombre de la tabla: “Autos”.



15. Acabas de crear la primera tabla de la base de datos. En el Explorador de Objetos de SQL Server verás en el listado de tablas la tabla que acabas de crear.



16. Puedes ver los 1000 primeros registros, filas o tuplas de la tabla Autos haciendo clic derecho en su nombre y eligiendo la opción Select Top 1000 Rows:



17.  Por supuesto, ahora está vacía, ya que acaba de ser creada. No introduciremos nada en la tabla por ahora:



18. Cierra la ventana que muestra el contenido de la tabla para observar solamente el Explorador de Objetos:



19. Ahora crearemos la siguiente tabla de la base de datos:  “Trabajadores”, cuyo diseño se muestra a continuación:

Tabla Trabajadores
dni
nombres
apellidos
sueldo
fecha_ingreso
matricula




















20.Haz clic derecho sobre Tables y elegir la opción New Table….

21. Introduce el campo dni. Su tipo de datos será char, tendrá un tamaño de 8 y no permitirá nulos:



22.Introduzca los campos nombres y apellidos. El tipo de datos será claramente char y el tamaño de cada uno lo dejaremos en 50.



  1. Introduzca el campo sueldo. El tipo de datos que usaremos para este campo será numeric(18, 2), lo cuál indica que se pueden almacenar números con  dos decimales:



Nota: Existe en SQL Server un tipo de datos propio de aquellos campos que almacenarán cantidades monetarias (money). Este tipo de datos se denomina moneda, pero no será usado en los ejemplos. En sustitución, se usará el tipo numeric que cumple perfectamente con el mismo cometido.

  1. Añade ahora el campo “fecha_entrada”, el cual hace referencia a la fecha de entrada en la empresa del trabajador.

Para los campos que indiquen fecha, existe un tipo de datos llamado date.

Será interesante poner un comentario a este campo para indicar que se refiere a la fecha de entrada en la empresa y no a la fecha de nacimiento del trabajador, por ejemplo:



  1. Añade ahora el campo “placa”:
Se recuerda que este campo es una clave foránea y hace referencia a la placa del auto que conduce el trabajador. Este campo también se encuentra en la tabla Autos (es el campo clave de la tabla Autos), así pues se definirá aquí de la misma forma que está definido en la tabla Autos: tipo char y 10 de tamaño:



  1. Haz que el campo dni sea el campo clave:



  1. Cierra la ventana de diseño y guarda la tabla con el nombre Trabajadores:



  1. Ya tenemos creadas dos de las cuatro tablas de la base de datos:



  1. Ahora le toca el turno a la tabla “Clientes”, la cual se muestra a continuación:

Tabla Clientes
ruc
nombre
direccion
telefono1
telefono2

















  1. Dentro del Explorador de Objetos haz clic derecho Tables y escoge la opción New Table…:

  1. Añade el campo ruc. Su tipo de datos será char y le asignaremos un tamaño de 11.



  1. Añade los campos nombre y direccion. Ambos campos serán claramente de tipo char. Asignaremos a ambos un tamaño de 100 caracteres.



  1. Añade el campo “telefono1” y asígnale el tipo de datos char y un tamaño de 15. Haz lo mismo con el campo “telefono2”, además estos campos pueden ser nulos para determinados registros debido a que el cliente no puede contar con teléfono alguno.



Nota: Los campos “telefonos” suelen causar mucha confusión al momento de definir su tipo de datos numeric o char.

Tenga en cuenta que si quiere almacenar un teléfono de esta forma:
                    956 30 30 30

o de esta otra:
                    (956) 30-30-30

Tendría que definirlo como char, ya que contiene caracteres no numéricos (los espacios, los paréntesis, los guiones, etc.).
Si, en cambio, define el teléfono como numeric, solo podrá almacenar números así:
                    956303030

Sin poder usar ni espacios, ni guiones, ni otro carácter que no sea un dígito.
En el ejemplo se han definido como char para permitir el uso de caracteres no numéricos; además un número de teléfono jamás será utilizado para realizar cálculos matemáticos.


  1. Defina como campo clave el ruc:



  1. Cierre y guarde la tabla con el nombre “Clientes”. Ya tiene tres de las cuatro tablas de la base de datos.



  1. Queda por añadir la tabla “Servicios” a la base de datos. Se muestra esta tabla a continuación:

Tabla Servicios:
numero
fecha
tipo
cantidad_cobrada
comentario
dni
ruc























  1. Crea una nueva tabla.

  2. Añade el campo numero. Su tipo de datos será int:



  1. Añade el campo fecha. Su tipo de datos será date, evidentemente:



  1. Añade el campo tipo. El tipo de la reparación es un texto, así que asigna el tipo de datos char. Su tamaño será de 50.



  1. Añade el campo cantidad_cobrada. Este campo hace referencia al coste de la reparación que se le cobra al cliente por el servicio realizado en su empresa. Será un campo Numérico de tipo numeric, ya que puede llevar decimales:



  1. El campo comentario contendrá un texto donde se explicará el servicio realizado, será del tipo char de tamaño de 255 caracteres, dicho campo puede o no tener datos, por lo tanto activamos la casilla de Permitir Nulos (Allow Nulls):



  1. Ahora hay que añadir los dos últimos campos, los cuales son claves foráneas que permitirán relacionar la tabla Servicios con las tablas Clientes y Trabajadores. Estos campos son el dni y el ruc.

  1. Añade el dni. Tendrá que ser de tipo char y un tamaño de 8:



  1. Ahora añade el ruc. Será también de tipo char y tendrá un tamaño de 11:



  1. Los campos están ya definidos. Ahora activa la opción campo clave para el campo numero:



  1. Finalmente cierra y guarda la tabla con el nombre Servicios. Y ya tendrá creadas las cuatro tablas de la base de datos.




  1. Como prueba, se pueden introducir algunos datos en las tablas de esta base de datos directamente desde aquí. Introduciremos dos trabajadores. Haz clic derecho sobre la tabla Trabajadores y escoge la opción Edit Top 200 Rows, posteriormente introduce los siguientes datos:



Luego cierra la ventana de la tabla Trabajadores.

  1. Ahora introduciremos los autos de la empresa. Para ello haz clic derecho sobre la tabla Autos, escoge la opción Edit Top 200 Rows e introduce en ella los siguientes datos de los autos:



Luego cierra la ventana de introducción de autos.

  1. Haz ahora clic derecho sobre la tabla Clientes y escoge la opción Edit Top 200 Rows. Introduciremos los datos de varios de los clientes de la empresa:



  1. Después de introducir los datos de los clientes cierra la ventana de la tabla Clientes.

  1. Finalmente introduzca los datos de algunos de los servicios prestados. Abra para ello la tabla Servicios e introduzca los siguientes datos:



  1. Los datos que se introducen en una tabla se denominan registros, así pues, si la tabla Servicios contiene la información de 4 servicios, se dice que la tabla Servicios contiene 4 registros.

El concepto de registro hace referencia a las filas de una tabla.

  1. Ya tenemos terminada la base de datos AMANUVA. Hemos creado las tablas que contiene e incluso hemos introducidos algunos registros en las tablas para no dejarlas vacías. Ya puede cerrar el programa SQL Server.

  1. A la hora de programar una aplicación java de bases de datos, se hará que nuestro programa acceda a la base de datos que acaba de crear con SQL Server. Así pues la base de datos que acaba de crear la usaremos en posteriores entradas de este blog.



NOTA: El programa SQL Server es muy amplio y contiene múltiples opciones de manejo de bases de datos, aunque solo lo usaremos para la creación de tablas y de consultas.

Se recomienda al lector buscar información adicional sobre este programa. En Internet podrá encontrar múltiples tutoriales de aprendizaje de SQL Server.




CONCLUSIONES:

La información caótica proporcionada por el cliente que encarga el programa se organiza en tablas. Estas tablas conforman la base de datos.

La base de datos hay que introducirla en un programa gestor de bases de datos, como por ejemplo SQL Server, Access, PostgreSQL, MySQL, etc.

En SQL Server se crea la base de datos, y dentro de ella se diseñan las distintas tablas que la conforman.

Es necesario indicar el tipo de datos que tiene cada campo de una tabla. Puedes usar los siguientes tipos de datos según necesites (son los más utilizados):

- Texto.
Campos que almacenarán todo tipo de caracteres, sobre todo letras.
- Número.
Campos que almacenarán solo dígitos numéricos.
Son números con un formato correcto desde el punto de vista matemático.
- Fecha / Hora.
Campos para almacenar fechas.

Las tablas contendrán filas de información llamadas registros. Es posible introducir registros directamente en las tablas creadas desde SQL Server.

La base de datos creada desde SQL Server será usada por la aplicación java que desarrollemos.




No hay comentarios.:

Publicar un comentario