gestor financeigestor financeiro baseado em mysql e javaro baseado em mysql e java

14
  UNIVERSIDADE FEDERAL DO ABC PROJETO FINAL DE BANCO DE DADOS: Gestor financeiro baseado em MySQL e JAVA Jorge Messa Junior, RA.: 11069411 Mateus Zitelli, RA.: 11002512 Prof. Dr. André G. R. Balan Santo André Setembro, 2014

Upload: jorge-messa-junior

Post on 07-Oct-2015

10 views

Category:

Documents


0 download

DESCRIPTION

Projeto para criação de um programa simples para controle de gastos.

TRANSCRIPT

  • UNIVERSIDADE FEDERAL DO ABC

    PROJETO FINAL DE BANCO DE DADOS:

    Gestor financeiro baseado em MySQL e JAVA

    Jorge Messa Junior, RA.: 11069411

    Mateus Zitelli, RA.: 11002512

    Prof. Dr. Andr G. R. Balan

    Santo Andr

    Setembro, 2014

  • 1

    SUMRIO

    INTRODUO .......................................................................................................................... 2

    OBJETIVOS ............................................................................................................................... 2

    METODOLOGIA ....................................................................................................................... 2

    O PROGRAMA .......................................................................................................................... 3

    RESULTADOS .......................................................................................................................... 3

    DIAGRAMA ENTIDADE RELACIONAMENTO ................................................................... 6

    REFERNCIAS BIBLIOGRFICAS ....................................................................................... 9

  • 2

    1. INTRODUO

    Segundo o dicionrio Michaelis, Economia a cincia que estuda as leis que regulam a

    produo, distribuio e consumo de bens e arte de pr em prtica as normas que daquelas se

    deduzem, ou tambm, a boa administrao ou ordem da casa, de estabelecimento, bens

    particulares ou pblicos. A Economia , sem sombra de dvidas, um setor muito importante

    nas vidas das pessoas, e gera muita preocupao, e necessidade se ter um controle acerca de sua

    funo no dia-a-dia. Um grande exemplo do peso do papel da Economia na vida das pessoas

    o fato do Brasil ter entrado em recesso tcnica devido a dois trimestres de Produto Interno

    Bruto (PIB) negativo, o que est intimamente ligado com consumo baixo, alta inflao entre

    outros atributos econmicos que mudam os costumes dos brasileiros no que se refere educao

    financeira de cada indivduo, estrutura familiar, setores pblicos, privados etc.

    Atualmente estamos numa era de computao ubqua, em que a informao est

    extremamente ligada vida das pessoas de modo geral e podem ser utilizadas para facilitar e

    tornar as tarefas cotidianas mais eficientes. Isso pode ser aplicado, por exemplo, no controle de

    gastos de uma pessoa, auxiliando a no extrapolar oramentos, ou planejar investimentos

    futuro. Baseado nessa problemtica fundamental o desenvolvimento de uma ferramenta

    computacional que atua em mais uma rea no dia-a-dia do cidado - a Economia, e mais

    detalhadamente a microeconomia, contabilizando as despesas e investimentos de uma pessoa

    fsica, pois possui um balano contbil menos complexo.

    2. OBJETIVOS

    Aplicar os conhecimentos assimilados na disciplina de Banco de Dados para

    desenvolver um sistema que utilize o Sistema de Gerenciamento de Banco de Dados (SGBD)

    MySQL e JAVA para persistir, excluir, consultar e fazer operaes em dados importantes para

    o contexto ao qual seja aplicada.

    3. METODOLOGIA

    A metodologia empregada foi inicialmente o planejamento do banco de dados,

    projetando um Diagrama de Entidade e Relacionamento (DER) e aps isso foi utilizada o

    mtodo Botton-UP para gerar classes a partir do banco de dados.

  • 3

    Alm disso para a interface grfica com o usurio foram empregados componentes Web,

    como classes servlets do Java e Java Server Pages (JSP), CSS, JavaScript e JQuery.

    4. O PROGRAMA

    O programa basicamente um site baseado em JAVA, HTML, CSS, JSP e JQuery

    gerenciador de despesas e oramentos, permitindo inserir, excluir e alterar dbitos e crditos no

    ms fiscal do usurio, retornando o valor total de crditos, dbitos e a diferena entre essas

    totalidades. possvel organizar os saldos em categorias pr-existentes no banco de dados (no

    sendo possvel inserir mais categorias). O site tambm exibe a quantidade de saldos por

    categoria, mostrando ao usurio com o que ele mais gasta.

    5. RESULTADOS

    Como possvel observar nas figuras abaixo, temos a interao com o usurio.

    Figura 1: Janela de boas-vindas do sistema.

  • 4

    Figura 2: menu drop-down para inserir dados do usurio.

    Figura 3: pgina dedicada para insero de usurios.

  • 5

    Figura 4: homepage do usurio.

    Figura 5: Inserindo saldos.

  • 6

    Figura 6: inserindo saldos.

    Figura 7: inserindo dados.

    6. DIAGRAMA ENTIDADE RELACIONAMENTO

    Foi optado pela simplicidade para elaborar a estrutura do banco de dados. H poucas

    entidades e relacionamentos, mas que so suficientes para realizar as funes propostas pelo

    programa. Como segue na figura 8, possvel ver o Diagrama Entidade Relacionamento (DER).

  • 7

    Atrelados entidade Usurio temos os atributos:

    ID: parte da chave primria e auto incrementado a cada insero de usurio.

    NICKNAME: parte da chave primria uma string que armazena o login do usurio.

    Senha: armazena a senha do usurio.

    Nome: armazena o nome do usurio.

    Os atributos atrelados entidade Saldo, temos:

    ID: a chave primria da entidade e auto incrementado a cada insero.

    Ano: armazena o ano em que o saldo foi adicionado.

    Valor: armazena o valor da transao;

    Descrio: armazena a descrio da transao.

    Ms: armazena o ms em quem foi feita a transao.

    Positive: atributo diferenciador de entidade filha.

    ID_USURIO: chave estrangeira que referencia a entidade usurio.

    CATEGORIA_ID: chave estrangeira que referencia a entidade categoria.

    Os atributos atrelados entidade Categoria, temos:

    Nome: a chave estrangeira e o prprio nome de um elemento da categoria.

  • 8

    7. ESQUEMA DE BANCO DE DADOS RELACIONAL

    8. IMPLEMENTAO MYSQL E STORED PROCEDURES

    A base de dados em MySQL tambm faz uso de procedimentos, conhecidos por Stored

    Procedures que sero exibidos em anexo juntamente com a implementao em MySQL.

    Usurio

    ID

    Senha

    Nome

    NICKNAME Saldo

    ID

    ID_USUARIO

    Ano

    Ms

    Dia

    Descrio

    Valor

    Positive

    NICKNAME_USUARIO

    CATEGORIA_NOME

    Categoria

    Nome

  • 9

    REFERNCIAS BIBLIOGRFICAS

    EXAME. Economia encolhe 0,6% no 2 tri e est em recesso tcnica.

    http://exame.abril.com.br/economia/noticias/pib-do-brasil-caiu-0-6-no-2o-trimestre. ltimo

    acesso em 03 de setembro de 2014.

    MICHAELIS. Definio: economia.

    http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-

    portugues&palavra=economia. ltimo acesso em 03 de setembro de 2014.

  • 10

    ANEXO

    drop DATABASE countinglifes;

    CREATE DATABASE countinglifes;

    CREATE TABLE countinglifes.usuario(

    ID INTEGER NOT NULL AUTO_INCREMENT,

    NOME VARCHAR(30) NOT NULL,

    NICKNAME VARCHAR(15) NOT NULL,

    SENHA VARCHAR(10) NOT NULL,

    PRIMARY KEY (ID,NICKNAME)

    );

    CREATE TABLE countinglifes.categoria(

    NOME VARCHAR(15) NOT NULL,

    PRIMARY KEY(NOME)

    );

    CREATE TABLE countinglifes.saldo(

    ID INTEGER NOT NULL AUTO_INCREMENT,

    ID_CATEGORIA VARCHAR(15) NOT NULL,

    ANO INTEGER NOT NULL,

    MES INTEGER NOT NULL,

    DIA INTEGER NOT NULL,

    DESCRICAO VARCHAR(40),

    VALOR DOUBLE NOT NULL,

    ID_USUARIO INTEGER NOT NULL,

    NICKNAME_USUARIO VARCHAR(15) NOT NULL,

  • 11

    POSITIVE BOOL NOT NULL,

    FOREIGN KEY(ID_CATEGORIA) REFERENCES CATEGORIA(NOME),

    FOREIGN KEY(ID_USUARIO, NICKNAME_USUARIO) REFERENCES USUARIO(ID,NICKNAME)

    ON DELETE CASCADE ,

    PRIMARY KEY (ID)

    );

    Stored Procedures

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `ANOMAXIMO`(

    IN VNICK VARCHAR(15)

    )

    BEGIN

    SELECT MAX(ANO) AS ANO FROM SALDO WHERE NICKNAME_USUARIO=VNICK;

    END$$

    DELIMITER ;

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `ANOMINIMO`(

    IN VNICK VARCHAR(15)

    )

    BEGIN

    SELECT MIN(ANO) AS ANO FROM SALDO WHERE NICKNAME_USUARIO=VNICK;

    END$$

    DELIMITER ;

    DELIMITER $$

  • 12

    CREATE DEFINER=`root`@`localhost` PROCEDURE `buscausuario`(

    IN VNICKNAME VARCHAR(15)

    )

    BEGIN

    SELECT * FROM USUARIO WHERE NICKNAME=VNICKNAME;

    END$$

    DELIMITER ;

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `contarCategoria`(

    IN UNICKNAME varchar(15),

    IN CNOME varchar(15)

    )

    BEGIN

    select count(*) from usuario u join saldo s on u.id=s.ID_USUARIO

    and u.NICKNAME=s.NICKNAME_USUARIO where u.nickname=unickname and s.id_categoria = cnome;

    END$$

    DELIMITER ;

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `mesmaximo`(

    IN VNICK VARCHAR(15)

    )

    BEGIN

    SELECT max(MES) FROM SALDO WHERE NICKNAME_USUARIO = VNICK;

    END$$

  • 13

    DELIMITER ;

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `mesminimo`(

    IN VNICK VARCHAR(15)

    )

    BEGIN

    SELECT MIN(MES) FROM SALDO WHERE NICKNAME_USUARIO = VNICK;

    END$$

    DELIMITER ;

    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `saldoBYUserMesAno`(

    IN VNICK VARCHAR(15),

    IN VMES INTEGER,

    IN VANO INTEGER

    )

    BEGIN

    SELECT * FROM SALDO WHERE NICKNAME_USUARIO = VNICK AND MES = VMES AND

    ANO=VANO;

    END$$

    DELIMITER ;