miércoles, 8 de mayo de 2013

BD de datos para pruebas

A continuación definiré la base de datos de prueba que utilizaré en todas las entradas del blog  para explicar cualquier desarrollo o código. Dejaré las instrucciones SQL de generación (aunque también pueden hacerse por DDS) y las instrucciones SQL de carga inicial de algunos datos.

Diseño

He preparado un definición que podría “simular” tablas relacionadas con una entidad bancaria donde existen clientes y estos tendrá asociadas una o varias cuentas.

Bd de datos de prueba


Tablas:
  • Pais. Contendrá la lista de países válidos.
  • TpCliente (tipo de cliente). Contiene la clasificación de tipos de clientes válidos para identificar el tratamiento y los posibles riesgos.
  • TpCuenta (tipo de cuenta). Contiene la clasificación de tipos de cuentas válidos
  • Cliente. Contiene la definición de todos los clientes de la empresa con sus datos personanes, identificación del país de nacimiento y el tipo de cliente que es.
  • Cuenta. Contiene los códigos de cuenta de cada cliente junto con el saldo correspondiente y el tipo de cuenta del que se trata

Generación

A continuación detallo las instrucciones SQL de generación y carga de esta base de datos de prueba:




Nota: Hay que sustituir BIBTEST por la biblioteca donde se deseen generar las tablas.


CREATE TABLE BIBTEST/PAIS
(IDPAIS CHAR (3),
 DSPAIS CHAR (50 ) NOT NULL WITH DEFAULT,
CONSTRAINT PK_PAIS PRIMARY KEY (IDPAIS))

LABEL ON COLUMN BIBTEST/PAIS.IDPAIS IS 'Id de Pais'
LABEL ON COLUMN BIBTEST/PAIS.DSPAIS IS 'Nombre de Pais'


INSERT INTO BIBTEST/PAIS VALUES('ESP', 'España')
INSERT INTO BIBTEST/PAIS VALUES('FRA', 'Francia') 
INSERT INTO BIBTEST/PAIS VALUES('POR', 'Portugal') 
INSERT INTO BIBTEST/PAIS VALUES('USA', 'Estados Unidos') 



CREATE TABLE BIBTEST/TPCLIENTE
(IDTIPCLI CHAR (1),
 DSTIPCLI CHAR (50 ) NOT NULL WITH DEFAULT,
CONSTRAINT PK_TPCLIENTE PRIMARY KEY (IDTIPCLI))

LABEL ON COLUMN BIBTEST/TPCLIENTE.IDTIPCLI IS 'Id de Tipo de cliente'
LABEL ON COLUMN BIBTEST/TPCLIENTE.DSTIPCLI IS 'Descripcion Tipo de cliente'


INSERT INTO BIBTEST/TPCLIENTE VALUES('N', 'Normal') 
INSERT INTO BIBTEST/TPCLIENTE VALUES('V', 'Vip')    
INSERT INTO BIBTEST/TPCLIENTE VALUES('S', 'Superior')



CREATE TABLE BIBTEST/CLIENTE
(IDCLIENTE DEC (10 , 0),
 NOMBRE CHAR (50 ) NOT NULL WITH DEFAULT,
 APELLIDOS CHAR (100 ) NOT NULL WITH DEFAULT,
 DIRECCION CHAR (100 ) NOT NULL WITH DEFAULT,
 IDPAIS CHAR (3 ),
 IDTIPCLI CHAR (1 ),
CONSTRAINT PK_CLIENTE PRIMARY KEY (IDCLIENTE))                                                    

LABEL ON COLUMN BIBTEST/CLIENTE.IDCLIENTE IS 'Id de Cliente'
LABEL ON COLUMN BIBTEST/CLIENTE.NOMBRE IS 'Nombre'
LABEL ON COLUMN BIBTEST/CLIENTE.APELLIDOS IS 'Apellidos'
LABEL ON COLUMN BIBTEST/CLIENTE.DIRECCION IS 'Direccion completa'
LABEL ON COLUMN BIBTEST/CLIENTE.IDPAIS IS 'Id de Pais(nacionalidad)'
LABEL ON COLUMN BIBTEST/CLIENTE.IDTIPCLI IS 'Id de Tipo de cliente'


INSERT INTO BIBTEST/CLIENTE VALUES(1, 'Fernando', 'Lopez Gonzalez', 'C/ Gran Via 12, 2ºA', 'ESP', 'V')                              
INSERT INTO BIBTEST/CLIENTE VALUES(2, 'Andres', 'Gomez Perez', 'C/ Mayor 22, 6ºC', 'ESP', 'N')                           
INSERT INTO BIBTEST/CLIENTE VALUES(3, 'Angeles', 'Nuñez Amor', 'C/ Arenal 123, 4 izq', 'ESP', 'N')                       
INSERT INTO BIBTEST/CLIENTE VALUES(4, 'François', 'Renoir', 'C/ Princesa 134, 7A', 'FRA', 'N')                    
INSERT INTO BIBTEST/CLIENTE VALUES(5, 'Jhon', 'Smith Frank', 'C/ Toledo 647, 2ºF', 'USA', 'S')                         
INSERT INTO BIBTEST/CLIENTE VALUES(6, 'Antonio', 'Lopez Nadal', 'C/ Primavera 35', 'ESP', 'V')                              
INSERT INTO BIBTEST/CLIENTE VALUES(7, 'Margarita', 'Garcia Lopez', 'C/ Principla 345, 3ºA', 'ESP', 'N')                          
INSERT INTO BIBTEST/CLIENTE VALUES(8, 'Andrea', 'Maison', 'C/ Gran Via 356, 8 Der', 'FRA', 'N')    
INSERT INTO BIBTEST/CLIENTE VALUES(9, 'Joaquin', 'Vicente Mayor', 'C/ Popular 34, 2ºB', 'ESP', 'N')    
INSERT INTO BIBTEST/CLIENTE VALUES(10, 'Marta', 'Garcia Perez', 'C/ Fuencarral 123, 9ºC', 'ESP', 'N')


CREATE TABLE BIBTEST/TPCUENTA
(IDTPCUENTA CHAR (3),
 DSTPCUENTA CHAR (50 ) NOT NULL WITH DEFAULT,
CONSTRAINT PK_TPCUENTA PRIMARY KEY (IDTPCUENTA))

LABEL ON COLUMN BIBTEST/TPCUENTA.IDTPCUENTA IS 'Id de Tipo de cuenta'
LABEL ON COLUMN BIBTEST/TPCUENTA.DSTPCUENTA IS 'Descripcion Tipo de cuenta'


INSERT INTO BIBTEST/TPCUENTA VALUES('CC', 'Cuenta Corriente')  
INSERT INTO BIBTEST/TPCUENTA VALUES('HIP', 'Cuenta Hipotecaria')
INSERT INTO BIBTEST/TPCUENTA VALUES('CAH', 'Cuenta Ahorro')    



CREATE TABLE BIBTEST/CUENTA
 (IDCUENTA DEC (10 , 0),
  IDCLIENTE DEC (10, 0),
  IDTPCUENTA CHAR (3 ),
  SALDO DEC (15 , 2) NOT NULL WITH DEFAULT,
CONSTRAINT PK_CUENTA PRIMARY KEY (IDCUENTA))

LABEL ON COLUMN BIBTEST/CUENTA.IDCUENTA IS 'Id de Cuenta'
LABEL ON COLUMN BIBTEST/CUENTA.IDCLIENTE IS 'Id de Cliente'
LABEL ON COLUMN BIBTEST/CUENTA.IDTPCUENTA IS 'Id de tipo de cuenta'
LABEL ON COLUMN BIBTEST/CUENTA.SALDO IS 'Saldo'
                                                        
INSERT INTO BIBTEST/CUENTA VALUES(1, 1, 'CC', 50000.00)  
INSERT INTO BIBTEST/CUENTA VALUES(2, 1, 'HIP', 3500.20) 
INSERT INTO BIBTEST/CUENTA VALUES(3, 2, 'CAH',  750.11) 
INSERT INTO BIBTEST/CUENTA VALUES(4, 3, 'CC ',  -5.06)  
INSERT INTO BIBTEST/CUENTA VALUES(5, 3, 'CAH', 4529.55)
INSERT INTO BIBTEST/CUENTA VALUES(6, 4, 'HIP', 1544.04)
INSERT INTO BIBTEST/CUENTA VALUES(7, 5, 'CC ',  700.58)
INSERT INTO BIBTEST/CUENTA VALUES(8, 6, 'CC ',   12.12)
INSERT INTO BIBTEST/CUENTA VALUES(9, 7, 'CC ', 7821.85)
INSERT INTO BIBTEST/CUENTA VALUES(10, 8, 'CAH', 523.12)
INSERT INTO BIBTEST/CUENTA VALUES(11, 9, 'CAH', 6313.85)
INSERT INTO BIBTEST/CUENTA VALUES(12, 9, 'HIP',  453.55)
INSERT INTO BIBTEST/CUENTA VALUES(13, 10, 'CC ',  715.44)



Añado unos SQL de selección para probar que ha sido correcta la generación de la base de datos y la inserción de los registros. Al ejecutar cada una de las instrucciones se deberían obtener los datos previamente insertados.


SELECT
 a.IdCliente, a.Nombre, a.Apellidos, a.Direccion, a.IdPais,
 b.DsPais, a.IdTipCli, c.DsTipCli
FROM
 Cliente a, Pais b, TpCliente c
WHERE
 a.IdPais = b.IdPais and
 a.IdTipCli = c.IdTipCli



SELECT
 a.IdCuenta, a.IdTpCuenta, b.DsTpCuenta, a.IdCliente,
 c.Nombre, c.Apellidos, c.Direccion, c.IdPais,
 d.DSPAIS, c.IdTipCli, f.DsTipCli
FROM
 Cuenta a, TpCuenta b,
 Cliente c, Pais d, TpCliente f
WHERE
 a.IdTpCuenta = b.IdTpCuenta and
 a.IdCliente = c.IdCliente and
 c.IdPais = d.IdPais and
 c.IdTipCli = f.IdTipCli


No hay comentarios:

Publicar un comentario