Aula Prática
Exercícios
Exercício 1 — Clínica Multiespecialidades (DER completo, sem subclasses)
Modele o DER para uma clínica que atende pacientes, agenda consultas e realiza exames.
Requisitos
  • A clínica possui Médicos (CRM, nome, especialidade, telefone, e-mail).
  • A clínica possui Pacientes (CPF, nome, data_nascimento, telefone, e-mail, endereço).
  • Um Paciente pode ter 0..N Consultas.
  • Um Médico realiza 0..N Consultas.
  • Cada Consulta possui: data_hora, status (agendada, realizada, cancelada), motivo, observações.
  • Uma Consulta pode gerar 0..N Exames solicitados.
  • Cada Exame tem: código, nome, preparo, custo_base.
  • A solicitação de exame deve registrar: data_solicitação, prioridade (rotina/urgente), resultado (texto), data_resultado.
  • A clínica emite Faturas para o paciente:
  • Uma Fatura está ligada a exatamente 1 Paciente.
  • Uma Fatura pode incluir 1..N Itens de cobrança (consulta e/ou exames).
  • Cada item registra: tipo_item (consulta/exame), valor_cobrado, descrição.
O que o aluno deve entregar no draw.io
  • Entidades com atributos (marcar chave primária).
  • Relacionamentos com cardinalidade e opcionalidade (0..1, 1..N etc.).
  • Resolver o caso “Consulta gera Exames” usando entidade associativa (SolicitaçãoExame).
  • Resolver “Fatura inclui itens” com ItemFatura (entidade fraca/associativa).
Exercício 2 — Plataforma E-commerce (DER completo, com regras fortes)
Modele o DER para uma loja virtual com carrinho, pedidos, pagamentos e entrega.
Requisitos
  • Cliente: id_cliente, nome, CPF, e-mail, telefone.
  • Um cliente pode ter vários Endereços (rua, número, bairro, cidade, UF, CEP, complemento).
  • Produto: SKU, nome, descrição, preço_atual, peso, ativo (sim/não).
  • Categoria: id_categoria, nome, (uma categoria pode ter categoria_pai para formar hierarquia).
  • Produto pertence a 1..N Categorias e cada categoria possui 0..N Produtos.
  • Carrinho:
  • Um cliente tem 0..1 Carrinho ativo.
  • Carrinho contém 1..N Itens, cada item com quantidade e preço_no_momento.
  • Pedido:
  • Um pedido é gerado a partir de um carrinho (considere que carrinho pode gerar 0..N pedidos ao longo do tempo, mas um pedido é originado de exatamente 1 carrinho “finalizado”).
  • Pedido tem: número, data, status (criado/pago/enviado/entregue/cancelado), valor_frete, valor_total.
  • Pedido tem 1..N ItensPedido (quantidade, preço_unitário, subtotal).
  • Pagamento:
  • Um pedido pode ter 1..N Tentativas de pagamento (cartão, pix, boleto).
  • Cada pagamento registra: data, forma, status (aprovado/recusado/pendente), valor.
  • Regra: pedido só muda para “pago” quando existir pagamento aprovado.
  • Entrega:
  • Um pedido possui 0..1 Entrega (quando enviado).
  • Entrega tem: transportadora, código_rastreio, data_envio, data_prevista, data_entrega.
Entrega no draw.io
  • DER com entidades associativas: ItemCarrinho, ItemPedido.
  • Cardinalidades e opcionalidades coerentes (ex.: cliente–endereço, pedido–pagamento etc.).
  • Indicar claramente onde estão atributos “no momento” (preço_no_momento).
Exercício 3 — Universidade (com generalização: Pessoa → subclasses)
Modele o DER de um sistema acadêmico com pessoas, cursos, turmas, matrículas e avaliações.
Requisitos
  • Existe a entidade Pessoa (id_pessoa, nome, CPF, e-mail, telefone).
  • Pessoa se especializa em:
  • Aluno (RA, data_ingresso, situação: ativo/trancado/egresso)
  • Professor (SIAPE, titulação, área)
  • TécnicoAdministrativo (matrícula_funcional, setor)
  • Curso: id_curso, nome, grau (tecnólogo/bacharelado/licenciatura), carga_horária_total.
  • Disciplina: id_disciplina, nome, carga_horária, ementa.
  • Curso possui MatrizCurricular (versão/ano):
  • Uma matriz pertence a 1 Curso.
  • Uma matriz lista 1..N Disciplinas (com período recomendado e se é obrigatória/eletiva).
  • Turma: id_turma, semestre, ano, turno, vagas.
  • Cada turma é de 1 Disciplina.
  • Cada turma é ministrada por 1..N Professores (um professor pode atuar em várias turmas).
  • Matrícula:
  • Um aluno pode se matricular em 0..N Turmas.
  • Uma turma tem 0..N Alunos matriculados.
  • Matrícula registra: data_matrícula, status (matriculado/cancelado/aprovado/reprovado), nota_final, frequência.
  • Avaliação:
  • Uma turma possui 1..N Avaliações (prova, trabalho, projeto).
  • Cada avaliação tem: tipo, data, peso.
  • Cada aluno recebe uma Nota por avaliação (valor_nota, data_lançamento).
Pontos obrigatórios (para forçar decisões)
  • Generalização Pessoa → (Aluno, Professor, TécnicoAdministrativo) (definir se é total/parcial e disjunta/sobreposta; justificar com base no enunciado).
  • Relacionamento N:N Professor–Turma (criar entidade associativa, se necessário, para registrar papel: titular/colaborador).
  • Nota como entidade associativa entre Aluno e Avaliação.
Exercício 4 — Sistema de Seguros (com generalização e múltiplas subclasses)
Modele um DER para uma seguradora que vende apólices para pessoas e empresas, com sinistros e pagamentos.
Requisitos
  • Cliente: id_cliente, nome, documento (CPF/CNPJ), e-mail, telefone, data_cadastro.
  • Cliente se especializa em:
  • PessoaFisica (CPF, data_nascimento)
  • PessoaJuridica (CNPJ, razão_social, inscrição_estadual)
  • Corretor: id_corretor, nome, SUSEP, e-mail, telefone.
  • ProdutoSeguro: id_produto, nome, categoria (auto/residencial/vida/empresarial), franquia_base.
  • Apólice: número_apolice, data_início, data_fim, status (ativa/suspensa/cancelada), prêmio_mensal.
  • Cada apólice é de 1 Cliente.
  • Cada apólice é vendida por 1 Corretor.
  • Cada apólice cobre 1 ProdutoSeguro.
  • BemSegurado (item coberto):
  • Uma apólice cobre 1..N Bens.
  • Bem tem: id_bem, descrição, valor_declarado, data_inclusão.
  • Bem se especializa em:
  • Veículo (placa, chassi, ano, modelo)
  • Imóvel (matrícula_imóvel, endereço, área_m2, tipo: casa/apto/comercial)
  • Vida (pessoa_referente, relação_com_cliente) (ex.: segurado pode ser dependente)
  • Sinistro:
  • Um bem pode ter 0..N Sinistros.
  • Sinistro tem: protocolo, data, tipo, descrição, status (aberto/em análise/aprovado/negado/pago), valor_estimado.
  • Um sinistro pode gerar 0..N Vistorias (data, perito, laudo, parecer).
  • Pagamento:
  • Uma apólice tem 1..N Parcelas (competência, valor, vencimento, status: pago/pendente/atrasado).
  • Regra: apólice pode ser suspensa se houver 2+ parcelas em atraso.
Entrega no draw.io
  • Generalização Cliente → PessoaFisica/PessoaJuridica (indicar total/parcial e disjunta/sobreposta).
  • Generalização BemSegurado → Veículo/Imóvel/Vida (e justificar).
  • Entidades associativas se necessário (ex.: apólice–bem; sinistro–vistoria).
  • Cardinalidades/participações bem definidas.