10
Diseño Avanzado de Base de Datos Automatización parcial de un Banco Juárez Hernández Adrián Alfonso Verano 2013 [Seleccione la fecha]

Automatización parcial de un banco

Embed Size (px)

DESCRIPTION

Diseño avanzado de base de datos

Citation preview

Diseo Avanzado de Base de Ddatos

Diseo Avanzado de Base de Datos

Automatizacin parcial de un Banco

Jurez Hernndez Adrin AlfonsoVerano 2013

PROYECTO FINALDISEO AVANZADO DE BASE DE DATOS

VERANO 20131. 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) [Seleccione la fecha]