🎯 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ócio | Cardinalidade | Notação (Crow's Foot) |
|---|---|---|
| Um Pedido pode ter muitos produtos | 1:N | ` |
| Um Produto pode estar em muitos pedidos | 1:N | ` |
| Resultado Final | N: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.
- Liste as Entidades: Identifique pelo menos 4 entidades no texto do desafio.
- Atributos: Para cada entidade, liste 3 atributos essenciais, marcando qual seria o Identificador Único (PK).
- 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:
- Acesse o site draw.io.
- No menu esquerdo inferior, clique em Mais Formas (More Shapes).
- Marque a caixa Relação de Entidades (Entity Relation) e clique em aplicar.
- Utilize o componente retangular com três divisões para desenhar a Entidade (Nome) e seus Atributos (com PK marcada).
- 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). - Exportação: Salve o arquivo fonte como
.drawioe 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:
- Certifique-se de que todas as entidades e cardinalidades (Crow's Foot) estão legíveis.
- Salve o arquivo fonte do diagrama com a extensão
.drawio. - Exporte a imagem em alta resolução no formato
.png. - Envie ambos os arquivos (
Atividade_02_SeuNome.drawioeAtividade_02_SeuNome.png) na tarefa correspondente no Microsoft Teams. (Nesta etapa, não há arquivos de código.sqla 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