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