Banco de Dados I — Avaliação 1 (P1)

Prof. Gustavo Pinto 05/05/2026 Duração: 2 horas Valor: 25,0 pontos
Responda diretamente neste documento. Não é permitido consultar a internet ou usar ferramentas de IA.

Contexto — MesaPay — leia com atenção antes de começar

O MesaPay é um banco digital voltado para restaurantes parceiros de plataformas de delivery. Ao aderir ao serviço, cada restaurante recebe automaticamente uma conta digital, identificada por um número único. A conta registra o saldo disponível e a data de criação. Um restaurante é identificado pelo CNPJ e possui nome fantasia, segmento (ex.: pizzaria, japonês, hambúrguer) e cidade.

A cada venda realizada pelo restaurante na plataforma MesaApp, é gerado um recebível: um direito de recebimento identificado por um código único, com valor bruto, data da venda e forma de pagamento utilizada pelo cliente (Pix, cartão de crédito ou Carteira MesaApp). Cada recebível pertence a exatamente um restaurante, e um restaurante acumula vários recebíveis ao longo do tempo.

O MesaPay oferece um serviço de antecipação de recebíveis: o restaurante solicita adiantar o valor de vendas que ainda não venceram, recebendo o dinheiro imediatamente com desconto de uma taxa. Cada antecipação tem um código único, uma taxa aplicada (em %), a data de emissão e a modalidade — Padrão (até 7 dias úteis, taxa menor) ou Pontual (no mesmo dia, taxa de 1,59%). Uma antecipação pode cobrir vários recebíveis, e um mesmo recebível pode ser parcialmente incluído em mais de uma antecipação. Quando um recebível é incluído numa antecipação, o valor efetivamente antecipado daquele recebível naquele contrato deve ser registrado.

Cada antecipação é dividida em parcelas de pagamento. As parcelas não possuem código globalmente único: são numeradas sequencialmente dentro de cada antecipação — a parcela 1 da antecipação A é diferente da parcela 1 da antecipação B. Cada parcela registra a data de vencimento, o valor e o status (pendente, pago ou atrasado).

Questão 1 — Modelagem e Mapeamento

16,0 pontos

Com base no contexto do MesaPay, elabore o DER seguindo a notação de Heuser. Se preferir descrever em vez de desenhar, use o formato:

ENTIDADE { atrib_id, atrib2, atrib3 } ENTIDADE_A — (cardMin,cardMax) NOME_REL (cardMin,cardMax) — ENTIDADE_B

(a) [9,0 pts]  Elabore o DER completo: identifique todas as entidades com seus atributos e identificadores, todos os relacionamentos com cardinalidade mínima e máxima de cada lado, e o atributo próprio do relacionamento N:M. Indique também qual entidade é fraca e represente seu relacionamento identificador.

(b) [7,0 pts]  Escreva o esquema relacional completo, mapeando o DER para o modelo relacional. Use a notação abaixo, onde o identificador é sublinhado e a chave estrangeira é precedida por #:

TABELA(identificador, #chave_estrangeira, atrib1, atrib2)

Escreva todas as tabelas resultantes com identificadores e chaves estrangeiras corretamente indicados.


Questão 2 — Normalização

6,0 pontos

Considere o esquema abaixo, extraído de um sistema legado do MesaPay. Neste esquema, cada recebível possui código globalmente único.

EXTRATO(codAntecipacao, dataEmissao, taxa, modalidade, cnpj, nomeRest, segmento, codRecebivel, valorBruto, dataVenda, formaPagamento, valorAntecipado) Chave primária: (codAntecipacao, codRecebivel)

[6,0 pts]  Identifique todas as dependências funcionais parciais do esquema EXTRATO. Ele está na 2FN? Caso não esteja, normalize-o até a 2FN, apresentando os esquemas resultantes com seus identificadores.


Questão 3 — DDL

3,0 pontos

[3,0 pts]  Com base no contexto do MesaPay, escreva o comando CREATE TABLE para a tabela ANTECIPACAO.

Boa prova!