Você está na página 1de 4

Sistemas de Informação I

Terceira fase do trabalho prático


2019/2020 Inv.

Objectivos de aprendizagem

No final da terceira fase do trabalho, os alunos devem ser capazes de:

 Identificar correctamente as entidades relevantes para os requisitos pretendidos;

 Identificar correctamente os atributos chave para cada uma das entidades;

 Identificar correctamente os atributos descritivos de cada uma das entidades;

 Identificar o domínio de cada atributo;

 Identificar correctamente os relacionamentos entre entidades, incluindo as respectivas obrigatoriedades e


cardinalidades;

 Desenvolver um modelo Entidade-Relacionamento (ER) que cumpra os requisitos enunciados, capturando o


maior número de restrições possível;

 Identificar os requisitos e restrições que não conseguem ser garantidos no modelo ER;

 Aplicar correctamente as regras de passagem de ER para relacional;

 Garantir o modelo normalizado na 3FN;

 Estabelecer uma ligação ao SGBD pretendido, correctamente parametrizada, utilizando JDBC;

 Utilizar correctamente comandos parametrizados para executar operações em JDBC;

 Utilizar correctamente transações para garantir atomicidade nas operações, utilizando JDBC;

 Gerir correctamente o tempo de vida das ligações JDBC;

 Garantir a libertação de recursos, quando estes não estejam a ser utilizados;

 Utilizar correctamente o tipo ResultSet;

 Implementar todas as restrições de integridade aplicacionais.

Prêmbulo

Na evolução do sistema de informação “OnAccount”, há a necessidade de incluir/alterar alguns requisitos. Primeira-


mente, comecemos por fazer uma pequena correcção nas tabelas (ver Modelo Relacional - Adenda) “MOVIMENTO”
e “MODALIDADECONTA”. Em “MOVIMENTO” considere como PKs: {noconta, datarealizacao, tipomov};
e, em “MODALIDADECONTA” o atributo limitemin é do tipo decimal.

1
Enunciado do trabalho (3ª fase)

Considerando o texto com os requisitos do sistema, apresentados na primeira fase do trabalho, considere os novos
requisitos apresentados de seguida.

A principal área de negócios do sector bancário é o crédito. Emprestar dinheiro não é actividade principal para a
obtenção de lucros. A banca obtém os seus lucros através de dois tipos de operações: 1) de investimento, também
conhecidas como operações activas, e 2) de prestação de serviços aos seus clientes.

A operação de investimento bancário mais conhecida são os créditos. I.e., um contracto em que o banco empresta
dinheiro a um cliente, obrigando ao cliente o pagamento mensal de um valor que inclui juros, parte do dinheiro em-
prestado e comissões. As modalidades de crédito diferem quanto à finalidade: 1) Crédito à Habitação; 2) Locação
Financeira (ou leasing); 3) Crédito ao Consumo; 4) Crédito Automóvel e, 5) Crédito à Formação.

Para o crédito à habitação entra em vigor a 1 de Janeiro de 2018 novas regras aos contratos (e, de acordo
com o DL n.º 74-A/2017) sendo obrigatório o preenchimento da Ficha de Informação Normalizada Europeia
(FINE). Na FINE deve constar tudo sobre o produto bancário que está a ser solicitado, i.e. 1) a identidade da
entidade responsável pela proposta de crédito, assim como a morada e contactos da mesma (telefone e email);
2) finalidade do empréstimo, com os valores “aquisição”, “transferência de crédito”, “construção” ou “crédito com
garantia hipotecária”; 3) o montante do empréstimo (em euros); 4) o montante total a reembolsar (MTIC) 5) a
percentagem de financiamento (máximo de 90%); 6) a periodicidade (em meses); 7) o montante das prestações;
8) a TAN (taxa de juro anual nominal), indicando se é “fixa”, “variável” ou “mista”. Sendo variável, a identificação
do indexante utilizado1 . A TAN inclui também o spread, i.e. Euribor + spread. 9) a TAEG (taxa anual de encargos
efetiva global), que representa o custo total do crédito expresso em percentagem anual do montante do crédito.
Inclui todos os encargos iniciais do crédito habitação (i.e. juros + comissões + despesas + impostos + seguros).
Para o cálculo da TAEG é necessário elaborar um plano (vamos ignorar este ponto). As taxas correpondem a um
valor percentual, consultar a Tabela 1.

Para o crédito ficar formalizado, é necessário acrescentar ao produto 1) a identificação do(s) titular(es) 2) a
composição do agregado familiar (solteiro(a) sem dependentes, solteiro(a) com dependentes, casado(a) sem de-
pendentes ou casado(a) com dependentes); 3) a situação profissional (efectivo, conta própria, termo certo, es-
tudante, reformado ou desempregado); 4) o rendimento mensal líquido do agregado familiar (em euros), e 5) a
nacionalidade.

Os atributos, acima mencionados, 2) a 5) caracterizam o TITULAR e por isso devem ser acrescentados, se não
existirem já. Aconselho a criação de uma nova tabela DEPENDENTES com todo o agregado familiar. Esta nova
tabela deve conter os seguintes dados 1) nome, 2) apelido, 3) número de identificação fiscal (nif), 4) género,
5) data de nascimento, 6) tipo de relação. A dependência funcional que caracteriza a relação é F = { {nident,
nfiscal} → {nome, apelido, genero, dtnascimento, tiporelacao} }, com FK: {nident} é referência a
TITULAR.nident; PK: {nident, nfiscal}. Um dependente pode ser titular numa outra conta bancária.

A mensalidade do crédito/empréstimo é igual a juros + amortização de capital. A parcela relativa ao capital


amortizado é dado por
1 − (1 + j)−n
amortizacao = (1)
j
onde, j corresponde à taxa de juros anual / 12 e, n o número de meses.
1 Assumiremos a taxa de juro de referência indexada à Euribor. O cliente pode optar por diferentes prazos 3, 6 e 12 meses. Neste
problema optamos pela taxa a 12 meses.

2
Os juros são calculados em (2)
TAN 30
juros = valor ×
× (2)
100 360
tal que, valor representa o valor do empréstimo, TAN a taxa de juro anual nominal, 30 representa o número de
dias por mês, e 360 o número de dias por ano.

Tabela 1: Taxas de juros para habitação própria permanente. Prazo de pagamento até 40
anos, com limite de 75 anos de idade dos titulares na data de maturidade do contrato2

Banco taxa TAN Euribor TAEG

Bankinter variável 0.661% inc. 1.8%


Bankinter fixa a 2 anos 0.85% −0.339% 1.8%
CTT variável 0.796% inc. 1.5%
CTT variável 1.396% inc. 2.1%
CGD variável 1.396% inc. 2.3%
CGD fixa a 5 anos 1.65% −0.304% 2.5%
CGD fixa a 30 anos 2.15% não aplicável 3.0%
Santander variável 0.696% inc. 1.6%
Santander fixa 5 anos 0.765% −0.304% 1.5%
Santander fixa 10 anos 1.062% −0.304% 1.6%

Consideremos como exemplo um crédito de 150, 000€ para a compra de casa, com relação de financiamento/-
garantia de 80%, prazo de 35 anos. TAN de 0.696% (média mensal da Euribor a 12 meses, de outubro de 2019
de −0.304%, arredondada à milésima, acrescida de spread de 1%. O número de prestações é de 420 meses. De
acordo com a (1), a Tabela 2 apresenta o mapa das prestações mensais para os 5 meses iniciais.

Tabela 2: Mapa das 5 primeiras prestações mensais

Mês Prestação Valor de Capital para além Capital em dívida


mensal [€] juros [€] dos juros [€] após prestação [€]

1 322.01 69.60 252.41 119, 747.59


2 321.33 69.45 251.88 119, 495.71
3 321.33 69.31 252.02 119, 243.69
4 321.33 69.16 252.17 118, 991.52
5 321.33 69.02 252.32 118, 739.20
··· ··· ··· ··· ···

Este sistema permite uma gestão eficiente e adequada do funcionamento diário de uma entidade bancária. Os
alunos terão agora a oportunidade de utilizar uma API JDBC para, através de uma aplicação Java, acederem e
manipularem os dados existentes no modelo físico criado na fase anterior.

Sempre que se justificar devem ser usados os mecanismos transacionais necessários para garantir a atomicidade
das operações. Também devem utilizar mecanismos que evitem ataques de ”SQL injection“, bem como que evitem
problemas de formatações, e.g. campos de datas.

2 Fonte: Páginas web das instituições bancárias, consultadas a 29 de Novembro

3
Resultados pretendidos

Tendo em conta os objectivos de aprendizagem, deverão ser produzidos os seguintes resultados:

1. O modelo de dados conceptual, incluindo o diagrama de entidade-associação, a descrição das entidades, os


seus atributos e as associações;

2. Discussão de alternativas de modelação e as razões da escolha da solução apresentada no ponto 1;

3. Descrição das regras de negócio aplicáveis, para além das que são implícitas no resultado do ponto 1;

4. Informação complementar fornecida pelo cliente e que seja importante clarificar aspecto do domínio de
aplicação;

5. Uma aplicação Java (em modo linha de comandos) que permita realizar as seguintes operações:

(a) Opção para adicionar um novo titular ao sistema;


(b) Opção para adquirir um produto, como o empréstimo bancário;
(c) Opção para fechar uma conta bancária;
(d) Opções que implementem as alíneas 3.b, 3.f e 4.c (da Fase 2), garantindo que todos os parâmetros
variáveis são alteráveis na interface com o utilizador.

Todas as instruções devem vir indicadas (e, explicadas) no relatório que dá suporte a este trabalho. Se
considerar necessário, pode a título ilustrativo, mostrar tabela(s) de resultados.

Data limite para entrega: 05 de Janeiro de 2020 até às 23:59.

A entrega deve incluir um relatório e o código, enviados de forma electrónica através do Moodle. O relatório é
entregue em formato PDF.

Notas:

1. Deve garantir a correcta implementação de todas as funcionalidades, incluindo o acesso a dados;

2. Deve criar em Java um modelo de dados que mapeie as relações utilizadas para objectos em memória;

3. A lógica de interface com o utilizador deve estar em classes separadas da lógica de acesso a dados;

4. Deve ser possível aferir cada um dos objectivos de aprendizagem no material que entregar.

01 de Dezembro de 2019, Matilde Pós-de-Mina Pato & Ricardo Silva.

Você também pode gostar