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

📐 CAPÍTULO 05: MODELO RELACIONAL E INTRODUÇÃO À MODELAGEM

O "coração" da engenharia de dados moderna é baseado na matemática. Criado na década de 70 por Edgar F. Codd (cientista da IBM), o Modelo Relacional revolucionou o mundo ao organizar informações de forma previsível e segura. 🛡️🧩


🎯 Objetivo Curricular

Dominar a nomenclatura corporativa (Relação, Tupla, Atributo, Domínio) e compreender o ciclo de abstração da modelagem de dados, passando do mundo real para o Modelo Entidade-Relacionamento (MER).


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

Você assumiu a área de Arquitetura de Dados da TecProExpress. A equipe de negócios enviou um documento textual gigante descrevendo como eles querem que o sistema funcione. Os programadores não sabem por onde começar a codificar as tabelas.

"Seu desafio é ser a ponte de comunicação. Você precisa traduzir as necessidades do negócio (Mundo Real) em um diagrama visual (Mini-mundo) e depois em código SQL estruturado."


🧠 Fundamentos: O Dicionário Relacional

No mercado profissional, evitamos termos amadores. Um Arquiteto de Elite domina a nomenclatura técnica.

Nome ComercialNomenclatura CientíficaO que representa na prática?
TabelaRelaçãoEstrutura que guarda entidades (ex: cliente).
Linha / RegistroTuplaUma ocorrência específica (ex: O cliente João).
Coluna / CampoAtributoPropriedade (ex: nome, cpf).
Tipo de DadoDomínioRegras de formato permitidas (ex: INT, VARCHAR).

📊 Anatomia de uma Tabela (Relação)

erDiagram
    PRODUTO {
        int id_produto PK
        string nome
        decimal preco
    }

🔍 Detalhamento das Regras de Ouro:

  1. Atomicidade: Cada célula deve conter apenas um único valor indivisível. (Nada de guardar dois telefones na mesma coluna).
  2. Unicidade: Não existem linhas 100% iguais (garantido pela PK - Primary Key).
  3. O Valor NULL: Representa ausência de informação. Atenção: NULL não é zero e nem um texto vazio ("").

📖 Exemplo Guiado: Criando o Dicionário (DDL -> DML)

A melhor forma de entender os domínios é aplicando restrições no código.

🛠️ Código do Exemplo

-- PASSO 1: DDL (Definindo Relação, Atributos e Domínios)
CREATE TABLE fornecedor (
    id INT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    status_ativo BOOLEAN
);

-- PASSO 2: DML (Inserindo Tuplas)
INSERT INTO fornecedor (id, nome, status_ativo) VALUES (1, 'TecProExpress', TRUE);
INSERT INTO fornecedor (id, nome, status_ativo) VALUES (2, 'Fornecedor Beta', NULL);

🔍 Detalhamento do Código:

  • VARCHAR(100): O domínio restringe o tamanho do atributo "nome" a 100 letras.
  • NULL: O segundo INSERT usa NULL porque ainda não sabemos o status do Fornecedor Beta.

📐 O Ciclo de Vida da Modelagem

O processo de traduzir o mundo real para tabelas ocorre em 3 fases:

  1. 🧠 Modelo Conceitual: Foca na regra de negócio. Desenho em alto nível (Diagrama Entidade-Relacionamento - DER) que o cliente consegue entender.
  2. ⚙️ Modelo Lógico: Traduz o diagrama para tabelas (com PKs e FKs), mas ainda sem código específico.
  3. 💻 Modelo Físico: O script de criação (SQL DDL) que roda dentro do SGBD (MySQL/Postgres).

📊 O Fluxo de Abstração

flowchart TD
    REAL["🌍 Mundo Real"] --> ABS{"🔍 Abstração"}
    ABS --> MINI["🗺️ Modelo Conceitual"]
    MINI --> LOG["📐 Modelo Lógico"]
    LOG --> FIS["💻 Modelo Físico (SQL)"]

🛠️ Prática Obrigatória: Abstração Inicial

Cenário: A TecProExpress quer modelar seus veículos de frota.

  1. Identifique as Entidades e Atributos para um veículo.
  2. Crie a tabela veiculo_frota usando DDL e insira uma tupla usando DML.

🚀 Script de Seed (Gabarito Físico)

-- DDL
CREATE TABLE veiculo_frota (
    id_veiculo INT PRIMARY KEY,
    placa VARCHAR(7) NOT NULL,
    capacidade_carga_kg DECIMAL(10,2)
);

-- DML
INSERT INTO veiculo_frota (id_veiculo, placa, capacidade_carga_kg) VALUES (101, 'ABC1234', 5000.00);

📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos práticos e de estudo:

Use o operador e para critérios rigorosos e ou para critérios flexíveis. Salve os arquivos com a extensão .sql (Ex: Atividade_XX_SeuNome.sql ou Atividade_XX_SeuNome.png ou Atividade_XX_SeuNome.drawio


💡 Checkpoint de Lógica

[!IMPORTANT] Reflexão Profissional: Por que a Modelagem Conceitual é considerada a fase mais crítica de um projeto de software? (Resposta: Porque código SQL mal feito pode ser reescrito rapidamente, mas se a equipe entender a regra de negócio errado no Modelo Conceitual, todo o sistema será construído para resolver o problema errado). 🧠🛡️