Capítulo 02: Modelagem Conceitual e Lógica: Entidades, Atributos e Tipos de Dados no Access
🎯 Objetivo da Aula
Nesta aula, você aprenderá as bases da Modelagem de Dados Relacional, fazendo a distinção conceitual entre Entidades, Atributos e Registros. No laboratório de informática, você abandonará a criação rápida de tabelas e passará a utilizar a ferramenta profissional mais importante do Access: o Modo Design de Tabelas (Table Design View). Você aprenderá a definir Chaves Primárias (PK), configurar tamanhos restritivos de campo (FieldSize) e selecionar com exatidão os tipos de dados primitivos adequados a cada necessidade de negócio.
Ao final desta aula, você terá construído os dois primeiros Cadastros Mestres da FastLog S.A. (tbl_Clientes e tbl_Veiculos), blindando o banco de dados contra desperdício de memória e cadastros duplicados.
🏢 Cenário Prático (FastLog S.A.)
Empresa: FastLog Transportes & Logística Integrada S.A.
Problema: O departamento comercial da filial de Curitiba registrou mais de 1.200 clientes em um sistema caseiro. Como o desenvolvedor anterior deixou o campo de CNPJ configurado como texto livre de 255 caracteres sem chave primária, a mesma indústria farmacêutica foi cadastrada 5 vezes, cada uma com um código diferente. Para piorar, o campo de limite de crédito foi criado como texto, impedindo que o sistema somasse o crédito disponível para aprovação de frotas.
Sua Missão: Como modelador de dados, você criará as tabelas oficiais tbl_Clientes e tbl_Veiculos no Modo Design do Access. Você definirá ID_Cliente como Chave Primária, restringirá o tamanho do campo CNPJ para exatamente 14 dígitos, configurará o limite de crédito como tipo Moeda (Currency) e modelará a frota com restrições rigorosas de peso e eixos.
🧠 Fundamentos: A Teoria Traduzida
1. Entidade, Atributo e Registro (Tupla)
Na teoria relacional criada por Edgar F. Codd:
- Entidade: É o objeto do mundo real sobre o qual desejamos armazenar informações (ex: um Cliente, um Veículo, um Motorista, uma Rota). No banco de dados, cada entidade torna-se uma Tabela.
- Atributo: É uma característica ou propriedade da entidade (ex: Razão Social, CNPJ, Placa, Capacidade em Kg). No banco, cada atributo torna-se uma Coluna (Campo).
- Registro (Tupla): É a ocorrência individual de dados que reúne todos os atributos de uma entidade específica (ex: a linha que contém os dados da “Ambev S.A.”).
classDiagram
class tbl_Clientes {
+Autonumber ID_Cliente PK
+ShortText(80) Razao_Social
+ShortText(14) CNPJ
+ShortText(50) Cidade
+ShortText(2) UF
+Currency Limite_Credito
+YesNo Ativo
}
class tbl_Veiculos {
+ShortText(7) Placa PK
+ShortText(30) Modelo
+Byte Qtd_Eixos
+Long Capacidade_Kg
+Date Data_Aquisicao
}2. A Chave Primária (Primary Key - PK)
A Chave Primária é a coluna (ou conjunto de colunas) que identifica de forma única e inequívoca cada linha de uma tabela.
- Regra de Unicidade: Não podem existir duas linhas com o mesmo valor de chave primária.
- Regra da Não-Nulidade (Entity Integrity): A chave primária jamais pode ficar vazia (
Null). - Símbolo Visual: No Access, a chave primária é identificada pelo ícone de uma chave dourada (🔑) ao lado do nome do campo.
3. Tabela de Tipos Primitivos do Microsoft Access
| Tipo de Dados | Espaço em Disco | Aplicação Logística e Administrativa |
|---|---|---|
| Texto Curto | Até 255 caracteres | Nomes, placas, cidades, códigos, CNPJ, telefones |
| Texto Longo | Até 1 GB | Observações de avarias de carga, laudos periciais |
| Número (Byte) | 1 byte (0 a 255) | Quantidade de eixos do caminhão (2 a 9) |
| Número (Inteiro) | 2 bytes (-32k a +32k) | Quantidade de caixas ou volumes na carga |
| Número (Longo) | 4 bytes (-2 bi a +2 bi) | Quilometragem do hodômetro, peso em Kg |
| Moeda (Currency) | 8 bytes | Valor de frete, custo de pedágio, seguro de carga |
| Data e Hora | 8 bytes | Data de emissão da NF-e, horário de saída da portaria |
| Sim/Não (Yes/No) | 1 bit | Veículo refrigerado?, Cliente bloqueado?, Carga perigosa? |
| Autonumeração | 4 bytes (Inteiro Longo) | Gerador sequencial de IDs únicos para PK |
📖 Exemplo Guiado: Passo a Passo no Laboratório
Abra o seu banco de dados FastLog_Database.accdb criado no Capítulo 01.
Passo 1: Acessando o Modo Design
- Na faixa de opções superior do Access, clique na guia Criar.
- No grupo Tabelas, clique no botão Design da Tabela (Table Design).
- Uma grade com três colunas se abrirá:
- Nome do Campo
- Tipo de Dados
- Descrição (Opcional)
- Observe na parte inferior da tela a seção: Propriedades do Campo (General / Lookup). É aqui que definimos as restrições técnicas!
🛠️ Prática Obrigatória 1: Criação da Tabela de Clientes (tbl_Clientes)
Você projetará a estrutura do cadastro oficial de clientes industriais da FastLog.
Passo a Passo no Computador:
- Digite a estrutura de campos abaixo exatamente como especificado:
| Nome do Campo | Tipo de Dados | Propriedade: Tamanho do Campo | Propriedade: Requerido |
|---|---|---|---|
ID_Cliente | Autonumeração | (padrão Inteiro Longo) | (automático) |
Razao_Social | Texto Curto | 80 | Sim |
CNPJ | Texto Curto | 14 | Sim |
Cidade | Texto Curto | 40 | Sim |
UF | Texto Curto | 2 | Sim |
Limite_Credito | Moeda | (Formato: Moeda) | Sim |
Cliente_Ativo | Sim/Não | (Valor Padrão: Sim) | Sim |
- Definindo a Chave Primária (PK):
- Clique com o botão direito do mouse sobre o seletor de linha à esquerda de
ID_Cliente. - Clique em Chave Primária (ou clique no botão com a chave dourada 🔑 na guia Design da faixa de opções).
- Clique com o botão direito do mouse sobre o seletor de linha à esquerda de
- Configurando o Índice Único no CNPJ:
- Clique sobre o campo
CNPJ. - Na seção inferior de Propriedades do Campo, localize a linha Indexado.
- Mude de Não para: Sim (Duplicação Não Autorizada).
- Clique sobre o campo
- Salve a tabela com o nome:
tbl_Clientes.
✅ Resultado Esperado (Prática 1):
A tabela tbl_Clientes exibe a chave dourada 🔑 ao lado do campo ID_Cliente e o campo CNPJ está configurado para proibir repetições.
🛠️ Prática Obrigatória 2: Criação da Tabela de Veículos da Frota (tbl_Veiculos)
Agora você modelará a frota pesada da transportadora. Note que, nesta tabela, a própria Placa do Veículo será a Chave Primária natural.
Passo a Passo no Computador:
- Acesse Criar ➔ Design da Tabela.
- Configure a seguinte especificação técnica:
| Nome do Campo | Tipo de Dados | Propriedades Técnicas |
|---|---|---|
Placa | Texto Curto | Tamanho: 7, Formato: >@@@@@@@, Requerido: Sim |
Modelo_Cavalo | Texto Curto | Tamanho: 30, Requerido: Sim |
Tipo_Carroceria | Texto Curto | Tamanho: 25 (Ex: Sider, Baú, Graneleiro) |
Qtd_Eixos | Número | Tamanho do Campo: Byte, Valor Padrão: 3 |
Capacidade_Kg | Número | Tamanho do Campo: Inteiro Longo, Requerido: Sim |
Refrigerado | Sim/Não | Valor Padrão: Não |
Data_Aquisicao | Data e Hora | Formato: Data Abreviada |
- Defina o campo
Placacomo Chave Primária (PK) clicando no ícone da chave 🔑. - Salve a tabela com o nome oficial:
tbl_Veiculos. - Mude para o Modo Folha de Dados (clique no primeiro botão à esquerda da faixa de opções) e cadastre 2 veículos reais da FastLog:
- Linha 1: Placa:
BRA2E19| Modelo:Scania R450| Carroceria:Sider| Eixos:6| Capacidade:32000| Refrigerado:Não| Data:15/03/2023 - Linha 2: Placa:
FLG9988| Modelo:Volvo FH540| Carroceria:Frigorífico| Eixos:9| Capacidade:42000| Refrigerado:Sim| Data:20/08/2024
- Linha 1: Placa:
✅ Resultado Esperado (Prática 2):
A tabela tbl_Veiculos grava os veículos com economia de memória (tipo Byte para eixos e Inteiro Longo para capacidade em kg) e impede placas vazias ou duplicadas.
📤 Instruções de Entrega (Microsoft Teams)
- Feche as tabelas abertas e salve o banco de dados.
- Certifique-se de que o arquivo principal está nomeado como:
FastLog_BD_Cap02_SeuNome_SeuSobrenome.accdb. - Acesse o Microsoft Teams na sua turma técnica.
- Abra a tarefa: “Banco de Dados - Cap 02: Modelagem e Tipos no Modo Design”.
- Anexe o seu arquivo
.accdbatualizado e clique em Entregar (Turn In).
💡 Checkpoint de Gestão & TI
Por que um analista de logística precisa saber a diferença entre um número do tipo Byte e um Inteiro Longo? Porque em bancos de dados corporativos com milhões de fretes, cada byte desperdiçado multiplica o tempo de resposta das consultas analíticas e aumenta os custos de armazenamento em nuvem. Modelagem eficiente é sinônimo de alta performance e sustentabilidade de TI.
🔥 Desafio de Fixação: Modelagem Defensiva da Tabela de Motoristas
Crie a terceira tabela do sistema: tbl_Motoristas no Modo Design do Access com os seguintes requisitos rigorosos:
ID_Motorista: Autonumeração, Chave Primária.Nome_Motorista: Texto Curto, tamanho máximo 70, Requerido: Sim.CPF: Texto Curto, tamanho máximo 11, Requerido: Sim, Indexado: Sim (Duplicação Não Autorizada).Categoria_CNH: Texto Curto, tamanho 2 (Ex: ‘C’, ‘D’, ‘E’), Requerido: Sim.Data_Validade_CNH: Data e Hora, Formato Data Abreviada, Requerido: Sim.Status_Disponivel: Sim/Não, Valor Padrão: Sim.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas reflexivas abaixo com base no conteúdo deste capítulo. Ao concluir, apresente o caderno ao professor para conferência e visto.
- Na teoria de modelagem relacional, diferencie com suas próprias palavras os termos Entidade, Atributo e Registro.
- Qual é a principal vantagem de criar tabelas no Modo Design em vez de usar o modo de criação rápida em Folha de Dados?
- Defina o que é uma Chave Primária (PK) e mencione as duas regras invioláveis que ela impõe sobre os dados.
- No cenário da FastLog, qual foi a consequência negativa de ter configurado o CNPJ como texto livre de 255 caracteres sem chave primária?
- Qual é a diferença prática entre o tipo de dados Texto Curto e o tipo Texto Longo no Access?
- Por que o campo
Qtd_Eixosdo caminhão foi configurado como tipo numérico Byte em vez de Inteiro Longo? - O que acontece quando marcamos a propriedade Indexado: Sim (Duplicação Não Autorizada) em um campo como o CNPJ ou CPF?
- Na tabela
tbl_Veiculos, por que pudemos utilizar o campoPlacacomo Chave Primária natural sem precisar criar uma Autonumeração? - Qual formato de máscara deve ser aplicado a um campo Texto Curto para forçar que todas as letras digitadas sejam convertidas automaticamente para maiúsculas?
- No Desafio de Fixação, por que a propriedade
Requeridodeve ser configurada como “Sim” no campoData_Validade_CNHpara uma transportadora rodoviária?