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).
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:
(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 #:
Escreva todas as tabelas resultantes com identificadores e chaves estrangeiras corretamente indicados.
Considere o esquema abaixo, extraído de um sistema legado do MesaPay. Neste esquema, cada recebível possui código globalmente único.
[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.
[3,0 pts]
Com base no contexto do MesaPay, escreva o comando CREATE TABLE
para a tabela ANTECIPACAO.