📐 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 Comercial | Nomenclatura Científica | O que representa na prática? |
|---|---|---|
| Tabela | Relação | Estrutura que guarda entidades (ex: cliente). |
| Linha / Registro | Tupla | Uma ocorrência específica (ex: O cliente João). |
| Coluna / Campo | Atributo | Propriedade (ex: nome, cpf). |
| Tipo de Dado | Domínio | Regras 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:
- Atomicidade: Cada célula deve conter apenas um único valor indivisível. (Nada de guardar dois telefones na mesma coluna).
- Unicidade: Não existem linhas 100% iguais (garantido pela PK - Primary Key).
- 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 segundoINSERTusa 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:
- 🧠 Modelo Conceitual: Foca na regra de negócio. Desenho em alto nível (Diagrama Entidade-Relacionamento - DER) que o cliente consegue entender.
- ⚙️ Modelo Lógico: Traduz o diagrama para tabelas (com PKs e FKs), mas ainda sem código específico.
- 💻 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.
- Identifique as Entidades e Atributos para um veículo.
- Crie a tabela
veiculo_frotausando 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). 🧠🛡️