Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🎯 ATIVIDADE 02 — A PLANTA BAIXA DOS DADOS

Bem-vindo à segunda semana (4 aulas) do curso de Banco de Dados. Se na semana anterior preparamos as ferramentas, agora vamos aprender a usá-las para "desenhar" a solução. Na engenharia de software, antes de qualquer linha de código, criamos a Planta Baixa — o Modelo Entidade-Relacionamento (MER). 🛡️🧩


🎯 Objetivo da Aula

Ao final desta semana, você será capaz de:

  • Extrair Regras de Negócio de um briefing técnico.
  • Identificar e classificar Entidades, Atributos e Relacionamentos.
  • Definir Cardinalidades (1:1, 1:N, N:M) com precisão cirúrgica.
  • Construir diagramas profissionais no draw.io seguindo a notação de Peter Chen ou Crow's Foot.

🏢 O Cenário Prático (Seu Desafio)

A TecProExpress, uma gigante do e-commerce, precisa de um novo módulo para gerenciar suas Entregas de Última Milha. O Gerente de Operações descreveu a necessidade:

"Preciso cadastrar nossos Entregadores (nome, CPF, veículo). Cada entregador realiza diversas Entregas. Cada entrega pertence a um único Pedido (número do pedido, data, valor). Um pedido pode conter vários Produtos, e um mesmo produto pode estar em vários pedidos diferentes. Além disso, cada entrega é enviada para um Cliente (nome, endereço, CEP)."

Seu desafio como Arquiteto de Dados é transformar esse texto em um modelo que o banco de dados consiga entender.


🧠 Fundamentos: A Teoria Traduzida

Modelagem é a arte de ignorar o que não importa e focar no que é essencial.

1. Entidades (Os Substantivos)

São os objetos do mundo real sobre os quais queremos armazenar informações. Se você pode dar um nome e ele tem propriedades, é uma entidade.

  • Ex: CLIENTE, PRODUTO, VEÍCULO.

2. Atributos (Os Adjetivos)

São as características das entidades. Todo objeto tem detalhes que o definem.

  • Ex: O Cliente tem NOME, o Produto tem PREÇO.

3. Relacionamentos (Os Verbos)

É como as entidades interagem entre si.

  • Ex: Um Cliente FAZ um Pedido. Um Entregador CONDUZ um Veículo.

📊 Visualizando a Hierarquia de Abstração

flowchart TD
    A[Mundo Real] -->|Abstração| B[Modelo Conceitual - MER]
    B -->|Mapeamento| C[Modelo Lógico]
    C -->|Implementação| D[Modelo Físico - SQL]
    style B fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px

📖 Exemplo Guiado: Analisando Cardinalidade

A cardinalidade define o "ritmo" do negócio. Vamos analisar o relacionamento entre PEDIDO e PRODUTO:

Regra de NegócioCardinalidadeNotação (Crow's Foot)
Um Pedido pode ter muitos produtos1:N`
Um Produto pode estar em muitos pedidos1:N`
Resultado FinalN:M (Muitos para Muitos)Necessita de tabela associativa no futuro

🛠️ Prática Obrigatória 1: O Mini-Mundo Logístico

Cenário: Identificação de componentes do cenário TecProExpress.

  1. Liste as Entidades: Identifique pelo menos 4 entidades no texto do desafio.
  2. Atributos: Para cada entidade, liste 3 atributos essenciais, marcando qual seria o Identificador Único (PK).
  3. Relacionamentos: Descreva em texto os relacionamentos (Ex: Cliente Realiza Pedido).

🏁 Resultado Esperado (Para sua Referência)

Suas entidades principais devem ser: CLIENTE, PEDIDO, PRODUTO, ENTREGADOR.

🔍 Detalhamento das Regras:

  • CLIENTE: Pessoa física ou jurídica que gera a demanda (O "Quem").
  • PEDIDO: Documento que formaliza a transação (O "O que" e "Quando").
  • ENTREGADOR: O agente que executa o serviço de Last Mile.

🛠️ Prática Obrigatória 2: Modelagem no draw.io

Cenário: Transformação da análise em diagrama visual de banco de dados.

🧭 Mini-Guia do draw.io:

  1. Acesse o site draw.io.
  2. No menu esquerdo inferior, clique em Mais Formas (More Shapes).
  3. Marque a caixa Relação de Entidades (Entity Relation) e clique em aplicar.
  4. Utilize o componente retangular com três divisões para desenhar a Entidade (Nome) e seus Atributos (com PK marcada).
  5. Para desenhar os relacionamentos com cardinalidade pé de galinha, use as setas do grupo "Relação de Entidades" (ex: as conexões de 1 para N possuem a barra vertical | de um lado e as três ramificações < do outro).
  6. Exportação: Salve o arquivo fonte como .drawio e exporte a imagem final em formato .png (lembre-se de marcar a opção de embutir os metadados do diagrama na imagem).

📤 Instruções de Entrega (Microsoft Teams)

Após validar a estrutura visual do seu diagrama conceitual:

  1. Certifique-se de que todas as entidades e cardinalidades (Crow's Foot) estão legíveis.
  2. Salve o arquivo fonte do diagrama com a extensão .drawio.
  3. Exporte a imagem em alta resolução no formato .png.
  4. Envie ambos os arquivos (Atividade_02_SeuNome.drawio e Atividade_02_SeuNome.png) na tarefa correspondente no Microsoft Teams. (Nesta etapa, não há arquivos de código .sql a serem entregues).

💡 Checkpoint de Lógica

[!IMPORTANT] A Importância da Chave Primária: Por que não usamos o NOME de um cliente como identificador único? Na indústria, nomes se repetem (homônimos). Um erro na modelagem da PK (Primary Key) pode causar a mistura de dados de clientes diferentes. Sempre escolha atributos imutáveis e únicos, como CPF, Código de Barra ou IDs auto-incrementais. 🧠🛡️


🔥 Desafio de Fixação (Opcional)

Nível: Arquiteto 🏆

Adicione ao modelo a entidade OCORRÊNCIA (Ex: "Endereço não encontrado", "Cliente ausente"). Uma Entrega pode ter várias ocorrências ao longo do tempo. Como isso altera o seu diagrama?


🔑 Gabarito de Código/Fórmulas

Prática 1 (Sugestão de Análise):

  • Entidades: CLIENTE, PEDIDO, PRODUTO, ENTREGADOR.
  • PKs sugeridas: CPF_Cliente, ID_Pedido, SKU_Produto, CPF_Entregador.

Prática 2 (Lógica do Diagrama):

CLIENTE (1) ---- <Realiza> ---- (N) PEDIDO
PEDIDO (N) ---- <Contém> ---- (M) PRODUTO
ENTREGADOR (1) ---- <Efetua> ---- (N) ENTREGA
ENTREGA (1) ---- <Refere-se> ---- (1) PEDIDO