guía de instalación de sgbd

26
UNIVERSIDAD DE EL SALVADOR ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS HERRAMIENTAS DE PRODUCTIVIDAD BASES DE DATOS Guía de instalación de SGBD PostgreSQL y SQLServer Express

Upload: marvin-roque

Post on 28-Dec-2015

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía de Instalación de SGBD

UNIVERSIDAD DE EL SALVADORESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSHERRAMIENTAS DE PRODUCTIVIDAD

BASES DE DATOS

Guía de instalación de SGBD

PostgreSQL y SQLServer Express

Page 2: Guía de Instalación de SGBD

INSTALANDO EL SISTEMA GESTOR DE BASE DE DATOS

Este apartado de la guía tiene como objetivo que el estudiante pueda instalar un Sistema Gestor de Base de Datos (SGDB)en su equipo de trabajo particular.

Para instalar el SGBD en Windows vaya a las direcciones que se detalla a continuación y siga los pasos que corresponden:

PostgreSQL Server: http://www.enterprisedb.com/products-services-training/pgdownload

SQL Server 2008: Express SP3: http://www.microsoft.com/downloads/es-es/details.aspx?familyid=15279834-6f7e-4c95-a772-921f771a9549&displaylang=es

INSTALANDO SQL Server 2008 Express

Para SQL Server debe realizar una Nueva instalación independiente. Si se desea instalar el SGDB debe elegir la opciónServicios de Motor de base de datos.

Por defecto, el nombre de la instancia es SQLExpress. Puede cambiar el nombre o elegir la opción Instanciapredeterminada. Cambie el nombre predeterminado de la instancia si tiene otra instalación de SQL Server Express, que yatenga asignado este nombre.

Page 3: Guía de Instalación de SGBD

Las cuentas de servicio son las cuentas de usuario del Sistema operativo que podrán ejecutar los servicios de SQL Server.Elija un nombre de usuario válido y su contraseña. En un entorno de desarrollo, usualmente se usa el usuario que estárealizando la instalación.

Page 4: Guía de Instalación de SGBD

En el modo de autenticación, se recomienda el Modo mixto. Esto permitirá crear una cuenta de administrador del Servidorde la base de datos (sa) y asignar una contraseña.

Page 5: Guía de Instalación de SGBD

Además, se debe agregar un usuario del SO como administrador de SQL Server. Como se mencionó antes, en un entorno dedesarrollo, se suele agregar al usuario que realiza la instalación.

Para administrar la base de datos desde un entorno de ventanas se recomienda instalar el SQL Server Management StudioExpress, que puede descargar desde la siguiente dirección: http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b.

Este entorno permite realizar acciones como:

Crear y borrar usuarios de base de datos (Inicios de sesión)

Crear, modificar y eliminar Bases de datos

Agregar, modificar y eliminar objetos a la base de datos: Tablas, Procedimientos almacenados, Trigerrs, etc.

NOTA: En Windows 7, la instalación del Management Studio debe realizar antes de instalar el Servidor de la base de datospara evitar un conflicto de incompatibilidad.

Page 6: Guía de Instalación de SGBD

INSTALANDO PostgreSQL

Para una instalación en Windows, ejecutar el instalador para Windows y seguir los pasos.

Los usuario de Linux pueden instalar el servidor de base de datos desde el gestor de paquetes correspondiente a ladistribución que tengan instalada. En cualquier gestor de paquetes bastará con escribir la palabra: postgresql-server para queel gestor de paquetes nos muestre el paquete deseado. Al elegir instalarlo, el gestor de paquetes mostrará una advertencia deque además del paquete, se instalarán las dependencias necesarias para que funcione correctamente.

Otra alternativa es descargar en el centro de descarga de Postgres el instalador gráfico, que es un paquete de instalación queincluye el GUI de administración para servidores de base de datos PostgreSQL (PgAdmin III).

El GUI de administración para bases de datos PostgreSQL que viene por defecto con el instalador es PgAdmin III. Estegestor permite crear acciones como:

Crear y borrar usuarios

Crear, modificar y eliminar bases de datos

Agregar, modificar y eliminar objetos a la base de datos: esquemas, tablas, secuencias, etc.

Por defecto, PostgreSQL se instala con las siguientes características:

Super usuario administrador del SGBD: postgres

Puerto de conexión: 5432

Esta configuración puede ser modificada en los archivos pg_hba.conf y postgresql.conf, que se encuentran en la carpeta dataespecificada durante la instalación.

Page 7: Guía de Instalación de SGBD

CREANDO UNA BASE DE DATOS

Crearemos una pequeña base de datos de ejemplo que tendrá contendrá un conjunto de clientes y su tipo.

Modelo lógico de la base de datos

Modelo físico de la base de datos

IMPLEMENTACION DE LA BASE DE DATOS

SQL Server Express 2008

Iniciar la aplicación SQL Server Management Studio, especificar el servidor que se le indique. Escriba su carnet comoinicio de sesión y contraseña.

Si fuera necesario crear una base de datos, haga clic derecho en el nodo Bases de datos y elija la opción Nueva base dedatos.

Page 8: Guía de Instalación de SGBD

Haga clic en Aceptar para que la base de datos sea creada por SQL Server. Dado que en nuestro caso la base de datos ya seencuentra creada, es posible agregar los objetos de los que estará compuesta para su correcta implementación. Para crearuna tabla nueva, hacer clic derecho en el nodo Tablas y elegir la opción Nueva Tabla.

Page 9: Guía de Instalación de SGBD

SQL Server mostrará una pantalla para la edición de los campos de la tabla y sus características. Escriba los nombres de lascolumnas de acuerdo al diseño propuesto y el tipo de dato que corresponde.

En SQL Server, los tipos de datos que se asignarán son los siguientes:

Tabla:tipo_cliente

NOMBRE DEL CAMPO TIPO TAMAÑO LLAVE

id_tipo_cliente bigint N/A Si

nombre varchar 50

Tabla:cliente

NOMBRE DEL CAMPO TIPO TAMAÑO LLAVE

id_cliente bigint N/A Si

nombre varchar 50

id_tipo_cliente bigint N/A

Page 10: Guía de Instalación de SGBD

Para indicar que un campo es la llave primaria de la tabla, puede hacerse clic derecho en el campo que se desea configurarcomo llave primaria y elegir la opción Establecer clave principal o hacer clic en el campo y hacer clic en el botón cuyoicono es una llave, situado en la barra de herramientas de diseño ubicada en la superior al árbol de objetos de la conexión.

En el diseño que estamos implementando, usaremos llaves ficticias como llaves primarias, por lo que deberemos configurarpara cada una de esas llaves, como campos de control de identidad.

Page 11: Guía de Instalación de SGBD

Una vez realizada la configuración de una tabla, presionar el botón guardar en la barra de herramientas principal y escribirel nombre de la tabla en el cuadro de texto que aparece.

Cuando ya tengamos las tablas creadas, será necesario especificar las relaciones entre ellas. Para ello, entramos a modo dediseño de la tabla dependiente de la relación, es decir, la tabla que tendrá la llave foránea. En este caso, cliente.

Esto desplegará una pantalla en la que se listan las relaciones en las que se ve involucrada la tabla seleccionada. Paraagregar una nueva relación, haga clic en el botón Agregar. Esto creará una nueva relación, a la que deberemos especificarlas tablas y columnas involucradas.

Page 12: Guía de Instalación de SGBD

Para especificar la relación, haga clic en el nodo Especificación de tablas y columnas y luego en el botón que aparece a laderecha.

Esto mostrará una pantalla donde debemos indicar como Tabla de clave principal la tabla que tiene la llave primaria quedeseamos relacionar y el campo que es la llave primaria. En Tabla de clave externa estará seleccionada por defecto la tablaen la que nos encontrábamos trabajando al entrar a la opción, en este caso cliente y el campo que será la llave foránea endicha tabla.

Page 13: Guía de Instalación de SGBD
Page 14: Guía de Instalación de SGBD

Si se desea verificar el modelo de forma gráfica, podemos crear un diagrama de las tablas haciendo clic derecho en el nodoDiagramas de base de datos y eligiendo la opción Nuevo diagrama de base de datos.

Page 15: Guía de Instalación de SGBD

PostgreSQL

Usaremos PgAdmin III para conectarnos al servidor de base de datos PostgreSQL. Para descargar únicamente PgAdmin III,vaya a la dirección: http://www.postgresql.org/ftp/pgadmin3/release/v1.14.2/win32/, descomprima el archivo zip y ejecuteel instalador.

Para conectarse a una base de datos PostgreSQL desde PgAdmin III, iniciar la aplicación PgAdmin III. Para agregar unanueva conexión haga clic en el icono Add a connection to a server (Añadir conexión a servidor), situado en el extremoizquierdo de la barra de herramientas de PgAdmin III.

Esto mostrará una ventana de registro de un nuevo servidor. En el campo Name asigne un nombre a la conexión (p. ej.:HDP115), en el campo Host, asigne la dirección que se le indique.

Use su número de carnet como nombre de usuario y clave y haga clic en Aceptar.

Page 16: Guía de Instalación de SGBD

Una vez registrado el servidor, podrá ver las bases de datos que se encuentran implementadas y crear una nueva base dedatos si fuera necesario.

Si deseáramos crear una base de datos, podemos crearla haciendo clic derecho en el nodo Databases y seleccionando laopción New Database.

Page 17: Guía de Instalación de SGBD

En este caso, la base de datos ya está creada con el nombre hdp115, por lo que pasaremos a crear un esquema con sunúmero de carnet como nombre. Para ello, haga clic derecho en el nodo Schemas y eliga la opción New Schema.

Una vez creado el esquema, puede crear las tablas de acuerdo al diseño especificado.

Tabla: tipo_cliente

NOMBRE DEL CAMPO TIPO TAMAÑO LLAVE

id_tipo_cliente serial N/A Si

nombre character varying 50

Tabla: cliente

NOMBRE DEL CAMPO TIPO TAMAÑO LLAVE

id_cliente serial N/A Si

nombre character varying 50

id_tipo_cliente integer N/A

Para crear una tabla hacemos clic derecho sobre el nodo Tables del esquema en el que estamos trabajando y elegimos laopción New table.

Page 18: Guía de Instalación de SGBD

En la ventana que aparece, deberemos de indicar los campos (Columnas) de cada tabla. Una vez creados los campos(pestaña Columns), es posible indicar las llaves primarias y las relaciones entre las tablas, siempre que las tablasdependientes ya hayan sido creadas.

Para crear una llave primaria, ir a la pestaña Costraints y hacer clic en el botón Add (Añadir) cuando el tipo de restricción(Constraint) sea Primary key. Ahí, indicar el campo que desea declarar como llave primaria y hacer clic en Aceptar.

Podemos dejar que Postgres asigne el nombre a la restricción y únicamente elegir el campo que queremos declarar comollave primaria. Por ejemplo para la tabla cliente, únicamente agregaremos el campo id_cliente.

Page 19: Guía de Instalación de SGBD

Una vez agregada la llave primaria, podemos definir las llaves foráneas para la tabla en la que estamos trabajando. En elcaso de la tabla cliente, hacemos clic en Add cuando el tipo de restricción es Foreign Key.

Page 20: Guía de Instalación de SGBD

Podemos dejar que Postgres asigne automáticamente el nombre a la restricción. En la pestaña Properties debemos elegir latabla a la que se hará referencia. En este caso, la tabla tipo_cliente.

En la pestaña Columns seleccionar el campo que servirá como llave foránea en la tabla. En este caso id_tipo_cliente.Postgres asume que el campo al que se está haciendo referencia es la llave primaria de la tabla indicada en la pestañapropiedades.

Una vez indicados los campos, haga clic en el botón Add (Añadir) y luego en el botón Ok.

Page 21: Guía de Instalación de SGBD

Una vez definidas las restricciones, presionar el botón Ok.

Page 22: Guía de Instalación de SGBD

Nótese que como las llaves primarias de las tablas han sido configuradas como tipo serial, Postgres crea una secuencia paracada campo. Esto es el equivalente al campo de identidad de SQL Server.

CONECTANDO A LA BD DESDE NUESTRA APLICACION

Lógicamente, cualquier esfuerzo para tener y mantener una base de datos tiene como objetivo que nuestras aplicacionespuedan conectarse a ellas para almacenar y recuperar los datos. Usaremos la aplicación de ejemplo: Clientes paraconectarnos a la base de datos que creamos anteriormente.

En toda aplicación Java que se conecte a una base de datos debe incluirse la librería de controladores (drivers) de conexiónpara el SGBD al que se desea conectarse.

Page 23: Guía de Instalación de SGBD

La aplicación de ejemplo que veremos está desarrollada para conectarse a una base de datos PostgreSQL, por lo que eldriver incluido en las librerías del proyecto es el de ese SGBD.

La clase que se conecta a la base de datos, que en el ejemplo está programada en forma de un servicio, usa la claseDriverManager para crear una conexión.

La URL de conexión típicamente tiene la siguiente forma:

jdbc:<sgbd>://<nombre o dirección del servidor>:<puerto>/<nombre de la base de datos>?<parametros de conexión>

Donde:

jdbc indica que se trata de una conexión a través de un manejador de conexión a bases de datos Java (Java Data BaseConnectivity).

SGBD indica el SGBD al que está destinado el driver. El nombre a utilizar es el especificado en la documentación de cadadriver.

Nombre o dirección del servidor se refiere al nombre de dominio del servidor de base de datos o su dirección IP.

Puerto indica el puerto que esté escuchando el servidor de la base de datos. Para PostgreSQL el puerto por defecto es el5432 y para SQL Server es el 4433

Page 24: Guía de Instalación de SGBD

public class DBService {

private static Connection connection; private static TipoClienteDB tipoClienteDb; private static String url = "jdbc:postgresql://192.168.1.5:5432/hdp115";

public static Connection getConnection() throws SQLException { if (connection == null) { connection = DriverManager.getConnection(url, "postgres", "admin"); /* * Configurando el esquema xx0000 como el esquema de trabajo * Exclusivo de PostgreSQL */ Statement stat = connection.createStatement(); stat.execute("SET search_path = 'xx00000'"); }

return connection; }

public static TipoClienteDB getTipoClienteDb() { if (tipoClienteDb == null) { tipoClienteDb = new TipoClienteDB(); }

return tipoClienteDb; }}

En el ejemplo únicamente se ha programado un método guardar para la entidad TipoCliente, que se corresponde con laentidad tipo_cliente de la base de datos. Los métodos de acceso a datos se han programa de en la clase TipoClienteDB.

Debe modificar la cadena de conexión según el controlador de conexión que se esté usando y la dirección del servidor.

Por ejemplo, si se está conectado a un servidor que se encuentra en el mismo equipo, puede usar localhost como nombre delservidor, así: jdbc:postgresql://localhost/hdp115.

Page 25: Guía de Instalación de SGBD

public class TipoClienteDB { public List<TipoCliente> findAll() throws SQLException{ List<TipoCliente> tiposCliente = new ArrayList<TipoCliente>(); String sql = "SELECT * FROM tipo_cliente"; PreparedStatement prepStat = DBService.getConnection().prepareStatement(sql); ResultSet res = prepStat.executeQuery();

while(res.next()){ TipoCliente tipoCliente = new TipoCliente(); tipoCliente.setIdCliente(res.getInt("id_tipo_cliente")); tipoCliente.setNombre(res.getString("nombre")); tiposCliente.add(tipoCliente); } return tiposCliente; } public int save(TipoCliente tipoCliente) throws SQLException{ int id = 0; /* * RETURNING id_tipo_cliente es una instrucción exclusiva de PostgreSQL * Si se cambia el motor de la base de datos, deberá quitarse esta parte de la sentencia */ String sql = "INSERT INTO tipo_cliente(nombre) VALUES(?) RETURNING id_tipo_cliente"; PreparedStatement prepStat = DBService.getConnection().prepareStatement(sql); prepStat.setString(1, tipoCliente.getNombre()); ResultSet rs = prepStat.executeQuery(); if(rs.next()){ id = rs.getInt(1); } return id;

NetBeans incluye por defecto el controlador para conexiones a bases de datos PostgreSQL. Si se desea actualizar elcontrolador, puede descargarse y actualizar el archivo de la librería por defecto o crear una librería nueva.

El controlador de SQL Server no está incorporado por defecto.

Page 26: Guía de Instalación de SGBD

Para descargar los controladores de estos SGBD vaya a las siguientes direcciones:

Driver JDBC para SQL Server: http://www.microsoft.com/downloads/es-es/confirmation.aspx?familyid=99b21b65-e98f-4a61-b811-19912601fdc9

Driver JDBC para PostgreSQL: http://jdbc.postgresql.org/download.html