Vous êtes sur la page 1sur 26

UNIVERSIDAD DE EL SALVADOR

ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS


HERRAMIENTAS DE PRODUCTIVIDAD
BASES DE DATOS
Gua de instalacin de SGBD
PostgreSQL y SQLServer Express
INSTALANDO EL SISTEMA GESTOR DE BASE DE DATOS
Este apartado de la gua 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 Windos va!a a las direcciones que se detalla a continuaci"n ! siga los pasos que corresponden#
PostgreS$% Server# &ttp#''.enterprisedb.com'products(services(training'pgdonload
S$% Server )**+# E,press SP-# &ttp#''.microso.t.com'donloads'es(es'details.asp,/.amil!id012)34+-5(
6.3e(5c42(a33)(4)1.331a42547displa!lang0es
INSTALANDO SQL Server 2008 Express
Para S$% Server debe reali8ar una Nueva instalacin independiente. Si se desea instalar el SGDB debe elegir la opci"n
Servicios de Motor de base de datos.
Por de.ecto9 el nombre de la instancia es SQLExpress. Puede cambiar el nombre o elegir la opci"n Instancia
predeterminada. :ambie el nombre predeterminado de la instancia si tiene otra instalaci"n de S$% Server E,press9 que !a
tenga asignado este nombre.
%as cuentas de servicio son las cuentas de usuario del Sistema operativo que podr;n ejecutar los servicios de S$% Server.
Elija un nombre de usuario v;lido ! su contrase<a. En un entorno de desarrollo9 usualmente se usa el usuario que est;
reali8ando la instalaci"n.
En el modo de autenticaci"n9 se recomienda el Modo mixto. Esto permitir; crear una cuenta de administrador del Servidor
de la base de datos (sa) ! asignar una contrase<a.
=dem;s9 se debe agregar un usuario del S> como administrador de S$% Server. :omo se mencion" antes9 en un entorno de
desarrollo9 se suele agregar al usuario que reali8a la instalaci"n.
Para administrar la base de datos desde un entorno de ventanas se recomienda instalar el S$% Server ?anagement Studio
E,press9 que puede descargar desde la siguiente direcci"n# &ttp#''.microso.t.com'donloads'es(es'details.asp,/
@amil!AD0*+e2)ac)(1d6)(52.6(4a5a(5b36a+265a)b.
Este entorno permite reali8ar acciones como#
:rear ! borrar usuarios de base de datos (Anicios de sesi"n)
:rear9 modi.icar ! eliminar Bases de datos
=gregar9 modi.icar ! eliminar objetos a la base de datos# Bablas9 Procedimientos almacenados9 Brigerrs9 etc.
C>B=# En Windos 39 la instalaci"n del ?anagement Studio debe reali8ar antes de instalar el Servidor de la base de datos
para evitar un con.licto de incompatibilidad.
INSTALANDO PostgreSQL
Para una instalaci"n en Windos9 ejecutar el instalador para Windos ! seguir los pasos.
%os usuario de %inu, pueden instalar el servidor de base de datos desde el gestor de paquetes correspondiente a la
distribuci"n que tengan instalada. En cualquier gestor de paquetes bastar; con escribir la palabra# postgresql(server para que
el gestor de paquetes nos muestre el paquete deseado. =l elegir instalarlo9 el gestor de paquetes mostrar; una advertencia de
que adem;s del paquete9 se instalar;n las dependencias necesarias para que .uncione correctamente.
>tra alternativa es descargar en el centro de descarga de Postgres el instalador gr;.ico9 que es un paquete de instalaci"n que
inclu!e el GDA de administraci"n para servidores de base de datos PostgreS$% (Pg=dmin AAA).
El GDA de administraci"n para bases de datos PostgreS$% que viene por de.ecto con el instalador es Pg=dmin AAA. Este
gestor permite crear acciones como#
:rear ! borrar usuarios
:rear9 modi.icar ! eliminar bases de datos
=gregar9 modi.icar ! eliminar objetos a la base de datos# esquemas9 tablas9 secuencias9 etc.
Por de.ecto9 PostgreS$% se instala con las siguientes caractersticas#
Super usuario administrador del SGBD# postgres
Puerto de cone,i"n# 25-)
Esta con.iguraci"n puede ser modi.icada en los arc&ivos pgE&ba.con. ! postgresql.con.9 que se encuentran en la carpeta data
especi.icada durante la instalaci"n.
CREANDO UNA BASE DE DATOS
:rearemos una peque<a base de datos de ejemplo que tendr; contendr; un conjunto de clientes ! su tipo.
?odelo l"gico de la base de datos
?odelo .sico de la base de datos
IMPLEMENTACION DE LA BASE DE DATOS
SQL Server Express 2008
Aniciar la aplicaci"n S$% Server ?anagement Studio9 especi.icar el servidor que se le indique. Escriba su carnet como
inicio de sesi"n ! contrase<a.
Si .uera necesario crear una base de datos9 &aga clic derec&o en el nodo Bases de datos ! elija la opci"n Nueva base de
datos.
Faga clic en Aceptar para que la base de datos sea creada por S$% Server. Dado que en nuestro caso la base de datos !a se
encuentra creada9 es posible agregar los objetos de los que estar; compuesta para su correcta implementaci"n. Para crear
una tabla nueva9 &acer clic derec&o en el nodo Tablas ! elegir la opci"n Nueva Tabla.
S$% Server mostrar; una pantalla para la edici"n de los campos de la tabla ! sus caractersticas. Escriba los nombres de las
columnas de acuerdo al dise<o propuesto ! el tipo de dato que corresponde.
En S$% Server9 los tipos de datos que se asignar;n son los siguientes#
Babla#tipoEcliente
NOMBE DEL !"MPO #$PO #"M"%O LL"&E
idEtipoEcliente bigint C'= Si
nombre varc&ar 2*
Babla#cliente
NOMBE DEL !"MPO #$PO #"M"%O LL"&E
idEcliente bigint C'= Si
nombre varc&ar 2*
idEtipoEcliente bigint C'=
Para indicar que un campo es la llave primaria de la tabla9 puede &acerse clic derec&o en el campo que se desea con.igurar
como llave primaria ! elegir la opci"n Establecer clave principal o &acer clic en el campo ! &acer clic en el bot"n cu!o
icono es una llave9 situado en la barra de &erramientas de dise<o ubicada en la superior al ;rbol de objetos de la cone,i"n.
En el dise<o que estamos implementando9 usaremos llaves .icticias como llaves primarias9 por lo que deberemos con.igurar
para cada una de esas llaves9 como campos de control de identidad.
Dna ve8 reali8ada la con.iguraci"n de una tabla9 presionar el bot"n guardar en la barra de &erramientas principal ! escribir
el nombre de la tabla en el cuadro de te,to que aparece.
:uando !a tengamos las tablas creadas9 ser; necesario especi.icar las relaciones entre ellas. Para ello9 entramos a modo de
dise<o de la tabla dependiente de la relaci"n9 es decir9 la tabla que tendr; la llave .or;nea. En este caso9 cliente.
Esto desplegar; una pantalla en la que se listan las relaciones en las que se ve involucrada la tabla seleccionada. Para
agregar una nueva relaci"n9 &aga clic en el bot"n Agregar. Esto crear; una nueva relaci"n9 a la que deberemos especi.icar
las tablas ! columnas involucradas.
Para especi.icar la relaci"n9 &aga clic en el nodo Especificacin de tablas columnas ! luego en el bot"n que aparece a la
derec&a.
Esto mostrar; una pantalla donde debemos indicar como Tabla de clave principal la tabla que tiene la llave primaria que
deseamos relacionar ! el campo que es la llave primaria. En Tabla de clave externa estar; seleccionada por de.ecto la tabla
en la que nos encontr;bamos trabajando al entrar a la opci"n9 en este caso cliente ! el campo que ser; la llave .or;nea en
dic&a tabla.
Si se desea veri.icar el modelo de .orma gr;.ica9 podemos crear un diagrama de las tablas &aciendo clic derec&o en el nodo
!iagramas de base de datos ! eligiendo la opci"n Nuevo diagrama de base de datos.
PostgreSQL
Dsaremos Pg=dmin AAA para conectarnos al servidor de base de datos PostgreS$%. Para descargar Gnicamente Pg=dmin AAA9
va!a a la direcci"n# &ttp#''.postgresql.org'.tp'pgadmin-'release'v1.15.)'in-)'9 descomprima el arc&ivo 8ip ! ejecute
el instalador.
Para conectarse a una base de datos PostgreS$% desde Pg=dmin AAA9 iniciar la aplicaci"n Pg=dmin AAA. Para agregar una
nueva cone,i"n &aga clic en el icono Add a connection to a server (=<adir cone,i"n a servidor)9 situado en el e,tremo
i8quierdo de la barra de &erramientas de Pg=dmin AAA.
Esto mostrar; una ventana de registro de un nuevo servidor. En el campo Came asigne un nombre a la cone,i"n (p. ej.#
FDP112)9 en el campo Fost9 asigne la direcci"n que se le indique.
Dse su nGmero de carnet como nombre de usuario ! clave ! &aga clic en Aceptar.
Dna ve8 registrado el servidor9 podr; ver las bases de datos que se encuentran implementadas ! crear una nueva base de
datos si .uera necesario.
Si dese;ramos crear una base de datos9 podemos crearla &aciendo clic derec&o en el nodo !atabases ! seleccionando la
opci"n Ne" !atabase.
En este caso9 la base de datos !a est; creada con el nombre &dp1129 por lo que pasaremos a crear un esquema con su
nGmero de carnet como nombre. Para ello9 &aga clic derec&o en el nodo Sc#emas ! eliga la opci"n Ne" Sc#ema.
Dna ve8 creado el esquema9 puede crear las tablas de acuerdo al dise<o especi.icado.
Babla# tipoEcliente
NOMBE DEL !"MPO #$PO #"M"%O LL"&E
idEtipoEcliente serial C'= Si
nombre c&aracter var!ing 2*
Babla# cliente
NOMBE DEL !"MPO #$PO #"M"%O LL"&E
idEcliente serial C'= Si
nombre c&aracter var!ing 2*
idEtipoEcliente integer C'=
Para crear una tabla &acemos clic derec&o sobre el nodo Tables del esquema en el que estamos trabajando ! elegimos la
opci"n Ne" table.
En la ventana que aparece9 deberemos de indicar los campos (:olumnas) de cada tabla. Dna ve8 creados los campos
(pesta<a :olumns)9 es posible indicar las llaves primarias ! las relaciones entre las tablas9 siempre que las tablas
dependientes !a &a!an sido creadas.
Para crear una llave primaria9 ir a la pesta<a $ostraints ! &acer clic en el bot"n Add (=<adir) cuando el tipo de restricci"n
(:onstraint) sea %rimar &e. =&9 indicar el campo que desea declarar como llave primaria ! &acer clic en =ceptar.
Podemos dejar que Postgres asigne el nombre a la restricci"n ! Gnicamente elegir el campo que queremos declarar como
llave primaria. Por ejemplo para la tabla cliente9 Gnicamente agregaremos el campo idEcliente.
Dna ve8 agregada la llave primaria9 podemos de.inir las llaves .or;neas para la tabla en la que estamos trabajando. En el
caso de la tabla cliente9 &acemos clic en Add cuando el tipo de restricci"n es 'oreign (e.
Podemos dejar que Postgres asigne autom;ticamente el nombre a la restricci"n. En la pesta<a Properties debemos elegir la
tabla a la que se &ar; re.erencia. En este caso9 la tabla tipoEcliente.
En la pesta<a $olumns seleccionar el campo que servir; como llave .or;nea en la tabla. En este caso idEtipoEcliente.
Postgres asume que el campo al que se est; &aciendo re.erencia es la llave primaria de la tabla indicada en la pesta<a
propiedades.
Dna ve8 indicados los campos9 &aga clic en el bot"n Add (=<adir) ! luego en el bot"n )&.
Dna ve8 de.inidas las restricciones9 presionar el bot"n )&.
C"tese que como las llaves primarias de las tablas &an sido con.iguradas como tipo serial9 Postgres crea una secuencia para
cada campo. Esto es el equivalente al campo de identidad de S$% Server.
CONECTANDO A LA BD DESDE NUESTRA APLICACION
%"gicamente9 cualquier es.uer8o para tener ! mantener una base de datos tiene como objetivo que nuestras aplicaciones
puedan conectarse a ellas para almacenar ! recuperar los datos. Dsaremos la aplicaci"n de ejemplo# :lientes para
conectarnos a la base de datos que creamos anteriormente.
En toda aplicaci"n Hava que se conecte a una base de datos debe incluirse la librera de controladores (drivers) de cone,i"n
para el SGBD al que se desea conectarse.
%a aplicaci"n de ejemplo que veremos est; desarrollada para conectarse a una base de datos PostgreS$%9 por lo que el
driver incluido en las libreras del pro!ecto es el de ese SGBD.
%a clase que se conecta a la base de datos9 que en el ejemplo est; programada en .orma de un servicio9 usa la clase
Driver?anager para crear una cone,i"n.
%a DI% de cone,i"n tpicamente tiene la siguiente .orma#
jdbc#JsgbdK#''Jnombre o direcci"n del servidorK#JpuertoK'Jnombre de la base de datosK/Jparametros de cone,i"nK
Donde#
jdbc indica que se trata de una cone,i"n a travLs de un manejador de cone,i"n a bases de datos Hava (Hava Data Base
:onnectivit!).
SGBD indica el SGBD al que est; destinado el driver. El nombre a utili8ar es el especi.icado en la documentaci"n de cada
driver.
Combre o direcci"n del servidor se re.iere al nombre de dominio del servidor de base de datos o su direcci"n AP.
Puerto indica el puerto que estL escuc&ando el servidor de la base de datos. Para PostgreS$% el puerto por de.ecto es el
25-) ! para S$% Server es el 55--
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 Gnicamente se &a programado un mLtodo guardar para la entidad Bipo:liente9 que se corresponde con la
entidad tipoEcliente de la base de datos. %os mLtodos de acceso a datos se &an programa de en la clase Bipo:lienteDB.
Debe modi.icar la cadena de cone,i"n segGn el controlador de cone,i"n que se estL usando ! la direcci"n del servidor.
Por ejemplo9 si se est; conectado a un servidor que se encuentra en el mismo equipo9 puede usar local&ost como nombre del
servidor9 as# jdbc#postgresql#''local&ost'&dp112.
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 instruccin 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;
CetBeans inclu!e por de.ecto el controlador para cone,iones a bases de datos PostgreS$%. Si se desea actuali8ar el
controlador9 puede descargarse ! actuali8ar el arc&ivo de la librera por de.ecto o crear una librera nueva.
El controlador de S$% Server no est; incorporado por de.ecto.
Para descargar los controladores de estos SGBD va!a a las siguientes direcciones#
Driver HDB: para S$% Server# &ttp#''.microso.t.com'donloads'es(es'con.irmation.asp,/
.amil!id044b)1b62(e4+.(5a61(b+11(1441)6*1.dc4
Driver HDB: para PostgreS$%# &ttp#''jdbc.postgresql.org'donload.&tml

Vous aimerez peut-être aussi