Está en la página 1de 8

Diseo

Avanzado
de Base de
Datos
Automatizacin parcial de un Banco
Jurez Hernndez Adrin Alfonso
Verano 2013

[Seleccione la fecha]

PROYECTO FINAL
DISEO AVANZADO DE BASE DE DATOS
VERANO 2013

1. Enunciado del Problema


Se desea automatizar parcialmente un banco determinado con los siguientes puestos:

El banco tiene distintas sucursales que se identifican por un cdigo

Cada sucursal tiene una serie de cuentas corrientes asignadas a ella que se
identifican por un cdigo, distinto para cada cuenta. Una cuenta corriente pertenece
a uno o varios clientes. Es posible, sin embargo, que las operaciones que puede
realizar cada uno de estos clientes con la cuenta no sean la misma. Por ejemplo, si la
cuenta 110245 pertenece a los clientes Pablo Lpez y Paula Surez, es posible que
el privilegio de cerrar la cuenta slo lo tenga Pablo Lpez y no Paula Surez.

Por otra parte, cada cliente, que se identifica por su DNI, puede tener varias cuentas
y, por supuesto, unos privilegios distintos en cada una de ellas.

Cada cuenta puede tener domiciliaciones asociadas con ella.

Los clientes pueden tener otorgados prstamos sin que estos prstamos estn
asociados con ninguna de las cuentas corrientes. Cada prstamo se otorga a nombre
de un solo cliente, y a un cliente se le puede otorgar ms de un prstamo.

2. Modelo Conceptual
1. Anlisis de los tipos de entidad
En principio, del anlisis del enunciado del problema pueden ser extrados los siguientes
tipos de entidad:

Sucursales: Es el establecimiento mercantil que depende del BANCO, llamado


central, y est situado en distinta poblacin, ya en bardo distinto de una ciudad
importante.
Cuentas: Una cuenta bancaria es un contrato financiero con una entidad bancaria en
virtud del cual se registran el balance y los subsiguientes movimientos de dinero del
cliente.
Clientes: El cliente es "el comprador potencial o real de los productos o servicios.
Domiciliaciones: Autorizacin de un pago o un cobro con cargo o abono a una
cuenta existente en una entidad bancaria.

Prstamos: Es una operacin mediante la cual una entidad financiera (banco u otra
entidad financiera) pone a nuestra disposicin una cantidad determinada de dinero
mediante un contrato.

2. Anlisis de los tipos de interrelacin

3. Modelo Relacional
Tabla Sucursales: Tiene distintas sucursales por lo que sern identificadas por un cdigo el
cual es su ID, el nombre de la sucursal, la direccin donde se encuentra ubicada.
Tabla Cuentas: Una cuenta puede pertenecer a uno a o ms clientes por lo que en la tabla
clientes se hace referencia a las cuentas que tiene. As como los privilegios que va a tener
cada uno. Se incorpor la domiciliacin que tenga la cuenta y la sucursal a la que depende
la misma.
Tabla Cliente: Est conformada por un ID del cliente, su nombre, la direccin del cliente, el
DNI, las Cuentas que tiene.
Tabla Prstamos: Representa los prstamos otorgados sin que estn asociados a alguna de
las cuentas corriente, y se puede otorgar ms de un prstamo a un cliente.
Tabla Domiciliaciones: Est asociada a una cuenta de un cliente.

4. Normalizacin del modelo

5. Construccin y uso de la Base de Datos


DROP SCHEMA IF EXISTS `Banco` ;
CREATE SCHEMA IF NOT EXISTS `Banco` DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci ;
USE `Banco` ;

------------------------------------| Table `Sucursales`


|
-- ---------------------------------DROP TABLE IF EXISTS `Banco`.`Sucursales` ;
CREATE TABLE IF NOT EXISTS `Banco`.`Sucursales` (
`idSucursales` INT NOT NULL ,
`nombre` VARCHAR(45) NULL ,
`direccion` VARCHAR(45) NULL ,
PRIMARY KEY (`idSucursales`) )
ENGINE = InnoDB;

------------------------------| Table `Domiciliaciones`|


------------------------------DROP TABLE IF EXISTS `Banco`.`Domiciliaciones` ;
CREATE TABLE IF NOT EXISTS `Banco`.`Domiciliaciones` (
`idDomiciliaciones` INT NOT NULL ,
`Domiciliacionescol` VARCHAR(45) NULL ,
`idCliente` VARCHAR(45) NULL ,
PRIMARY KEY (`idDomiciliaciones`) )
ENGINE = InnoDB;

------------------------|Table `Prestamos`|
------------------------DROP TABLE IF EXISTS `Banco`.`Prestamos` ;
CREATE TABLE IF NOT EXISTS `Banco`.`Prestamos` (
`idPrestamos` INT NOT NULL ,
`cantidad` VARCHAR(45) NULL ,
`tipoDePrestamo` VARCHAR(45) NULL ,
`idClientes` INT NULL ,
PRIMARY KEY (`idPrestamos`) ,
INDEX `idCliente_idx` (`idClientes` ASC) ,
CONSTRAINT `idCliente`
FOREIGN KEY (`idClientes` )
REFERENCES `Banco`.`Clientes` (`idClientes` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
---------------------|Table `Clientes`|
---------------------DROP TABLE IF EXISTS `Banco`.`Clientes` ;
CREATE TABLE IF NOT EXISTS `Banco`.`Clientes` (
`idClientes` INT NOT NULL ,
`nombreCliente` VARCHAR(45) NULL ,
`direccionCliente` VARCHAR(45) NULL ,
`dni` INT NULL ,
`idCuentas` INT NULL ,
`idPrestamos` INT NULL ,
PRIMARY KEY (`idClientes`) ,
INDEX `idCuentas_idx` (`idCuentas` ASC) ,
INDEX `idPrestamos_idx` (`idPrestamos` ASC) ,
CONSTRAINT `idCuentas`
FOREIGN KEY (`idCuentas` )
REFERENCES `Banco`.`Cuentas` (`idCuentas` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idPrestamos`
FOREIGN KEY (`idPrestamos` )

REFERENCES `Banco`.`Prestamos` (`idPrestamos` )


ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

--------------------|Table `Cuentas`|
--------------------DROP TABLE IF EXISTS `Banco`.`Cuentas` ;
CREATE TABLE IF NOT EXISTS `Banco`.`Cuentas` (
`idCuentas` INT NOT NULL ,
`Clientes` VARCHAR(45) NULL ,
`idSucursales` INT NULL ,
`idClientes` INT NULL ,
`idDomiciliaciones` INT NULL ,
PRIMARY KEY (`idCuentas`) ,
INDEX `idDomiciliaciones_idx` (`idDomiciliaciones` ASC) ,
INDEX `idClientes_idx` (`idClientes` ASC) ,
INDEX `idSucursales_idx` (`idSucursales` ASC) ,
CONSTRAINT `idDomiciliaciones`
FOREIGN KEY (`idDomiciliaciones` )
REFERENCES `Banco`.`Domiciliaciones` (`idDomiciliaciones` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idClientes`
FOREIGN KEY (`idClientes` )
REFERENCES `Banco`.`Clientes` (`idClientes` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idSucursales`
FOREIGN KEY (`idSucursales` )
REFERENCES `Banco`.`Sucursales` (`idSucursales` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
USE `Banco` ;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Para la Aplicacin Web:
Se deber tener la siguiente estructura.
htdocs (Raz del servidor Web)
|_ _ NombreDelProblema (Conjunto de scripts, funciones e imgenes que se usarn en todo el
proyecto)
|_ _ imgenes (Imgenes utilizadas en el proyecto)
|_ _ conexin (Script de conexin)
|_ _ funciones (Scripts que almacenan nuestras diferentes funciones utilizadas en el proyecto)
|_ _ sql (Archivo sql; contiene la estructura y datos de nuestra base de datos)
|_ _ codigo (Conjunto de scripts php utilizados para todo el proyecto)
|_ _ index.php (Pgina inicial con Login y Password)

También podría gustarte