(a) DER completo — 9,0 pts
Entidades:
Relacionamentos:
| Relacionamento | Entidade A | Card. A | Card. B | Entidade B | Obs. |
|---|---|---|---|---|---|
| POSSUI | RESTAURANTE | (1,1) | (1,1) | CONTA | 1:1, total em ambos |
| GERA | RESTAURANTE | (0,N) | (1,1) | RECEBIVEL | 1:N |
| SOLICITA | RESTAURANTE | (0,N) | (1,1) | ANTECIPACAO | 1:N |
| INCLUI | ANTECIPACAO | (1,N) | (0,N) | RECEBIVEL | N:M — atrib: valorAntecipado |
| COMPOSTA_DE ⬦⬦ | ANTECIPACAO | (1,N) | (1,1) | PARCELA | rel. identificador (losango duplo) |
valorAntecipado como atributo de INCLUI(b) Esquema relacional completo — 7,0 pts
RESTAURANTE(cnpj, nomeFantasia, segmento, cidade) CONTA(numConta, saldo, dataCriacao, #cnpj) FK: cnpj → RESTAURANTE(cnpj) [+ UNIQUE(cnpj) para garantir 1:1] RECEBIVEL(codRecebivel, valorBruto, dataVenda, formaPagamento, #cnpj) FK: cnpj → RESTAURANTE(cnpj) ANTECIPACAO(codAntecipacao, taxa, dataEmissao, modalidade, #cnpj) FK: cnpj → RESTAURANTE(cnpj) PARCELA(#codAntecipacao, numParcela, dataVencimento, valorParcela, status) PK composta: (codAntecipacao + numParcela) FK: codAntecipacao → ANTECIPACAO(codAntecipacao) INCLUI(#codAntecipacao, #codRecebivel, valorAntecipado) PK composta: (codAntecipacao + codRecebivel) FK: codAntecipacao → ANTECIPACAO FK: codRecebivel → RECEBIVEL
Esquema: EXTRATO(codAntecipacao, dataEmissao, taxa, modalidade,
cnpj, nomeRest, segmento, codRecebivel, valorBruto, dataVenda, formaPagamento, valorAntecipado)
PK: (codAntecipacao, codRecebivel)
Não está na 2FN. Dependências funcionais parciais:
codAntecipacao → dataEmissao, taxa, modalidade,
cnpj, nomeRest, segmento
codRecebivel → valorBruto, dataVenda, formaPagamento
O único atributo que depende da PK completa é valorAntecipado.
Esquemas após 2FN:
ANTECIPACAO(codAntecipacao, dataEmissao, taxa, modalidade, cnpj, nomeRest, segmento) RECEBIVEL(codRecebivel, valorBruto, dataVenda, formaPagamento) INCLUI(codAntecipacao, codRecebivel, valorAntecipado)
CREATE TABLE — 3,0 pts
CREATE TABLE ANTECIPACAO (
codAntecipacao INT PRIMARY KEY,
dataEmissao DATE NOT NULL DEFAULT CURRENT_DATE,
taxa DECIMAL(5,2) NOT NULL CHECK (taxa > 0),
modalidade VARCHAR(10) NOT NULL
CHECK (modalidade IN ('Padrao', 'Pontual')),
cnpj VARCHAR(18) NOT NULL REFERENCES RESTAURANTE(cnpj)
);
| Questão | Tema | Valor |
|---|---|---|
| Q1a | DER completo (entidades + fraca + relacionamentos + atrib N:M) | 9,0 |
| Q1b | Mapeamento MER → Relacional | 7,0 |
| Q2 | Normalização — 2FN (deps. parciais + esquemas resultantes) | 6,0 |
| Q3 | DDL — CREATE TABLE ANTECIPACAO | 3,0 |
| TOTAL | 25,0 | |