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 DadosEspaço em DiscoAplicação Logística e Administrativa
Texto CurtoAté 255 caracteresNomes, placas, cidades, códigos, CNPJ, telefones
Texto LongoAté 1 GBObservaçõ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 bytesValor de frete, custo de pedágio, seguro de carga
Data e Hora8 bytesData de emissão da NF-e, horário de saída da portaria
Sim/Não (Yes/No)1 bitVeículo refrigerado?, Cliente bloqueado?, Carga perigosa?
Autonumeração4 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

  1. Na faixa de opções superior do Access, clique na guia Criar.
  2. No grupo Tabelas, clique no botão Design da Tabela (Table Design).
  3. Uma grade com três colunas se abrirá:
    • Nome do Campo
    • Tipo de Dados
    • Descrição (Opcional)
  4. 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:

  1. Digite a estrutura de campos abaixo exatamente como especificado:
Nome do CampoTipo de DadosPropriedade: Tamanho do CampoPropriedade: Requerido
ID_ClienteAutonumeração(padrão Inteiro Longo)(automático)
Razao_SocialTexto Curto80Sim
CNPJTexto Curto14Sim
CidadeTexto Curto40Sim
UFTexto Curto2Sim
Limite_CreditoMoeda(Formato: Moeda)Sim
Cliente_AtivoSim/Não(Valor Padrão: Sim)Sim
  1. 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).
  2. 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).
  3. 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:

  1. Acesse Criar ➔ Design da Tabela.
  2. Configure a seguinte especificação técnica:
Nome do CampoTipo de DadosPropriedades Técnicas
PlacaTexto CurtoTamanho: 7, Formato: >@@@@@@@, Requerido: Sim
Modelo_CavaloTexto CurtoTamanho: 30, Requerido: Sim
Tipo_CarroceriaTexto CurtoTamanho: 25 (Ex: Sider, Baú, Graneleiro)
Qtd_EixosNúmeroTamanho do Campo: Byte, Valor Padrão: 3
Capacidade_KgNúmeroTamanho do Campo: Inteiro Longo, Requerido: Sim
RefrigeradoSim/NãoValor Padrão: Não
Data_AquisicaoData e HoraFormato: Data Abreviada
  1. Defina o campo Placa como Chave Primária (PK) clicando no ícone da chave 🔑.
  2. Salve a tabela com o nome oficial: tbl_Veiculos.
  3. 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

✅ 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)

  1. Feche as tabelas abertas e salve o banco de dados.
  2. Certifique-se de que o arquivo principal está nomeado como: FastLog_BD_Cap02_SeuNome_SeuSobrenome.accdb.
  3. Acesse o Microsoft Teams na sua turma técnica.
  4. Abra a tarefa: “Banco de Dados - Cap 02: Modelagem e Tipos no Modo Design”.
  5. Anexe o seu arquivo .accdb atualizado 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:

  1. ID_Motorista: Autonumeração, Chave Primária.
  2. Nome_Motorista: Texto Curto, tamanho máximo 70, Requerido: Sim.
  3. CPF: Texto Curto, tamanho máximo 11, Requerido: Sim, Indexado: Sim (Duplicação Não Autorizada).
  4. Categoria_CNH: Texto Curto, tamanho 2 (Ex: ‘C’, ‘D’, ‘E’), Requerido: Sim.
  5. Data_Validade_CNH: Data e Hora, Formato Data Abreviada, Requerido: Sim.
  6. Status_Disponivel: Sim/Não, Valor Padrão: Sim.

🔑 Revelar Gabarito Oficial e Material de Apoio da Aula (Clique para expandir)
💡 Incentivo Pedagógico: Tente resolver as práticas e o desafio de fixação por conta própria antes de abrir o gabarito. Seus erros e tentativas durante o laboratório são a chave para a consolidação real do aprendizado!

Especificação Técnica da Tabela tbl_Motoristas:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Tabela: tbl_Motoristas
----------------------------------------------------------------------------------------
Nome do Campo       | Tipo de Dados    | Propriedades Principais
----------------------------------------------------------------------------------------
ID_Motorista        | Autonumeração    | Chave Primária (PK), Indexado: Sim (Sem Duplicação)
Nome_Motorista      | Texto Curto      | Tamanho: 70, Requerido: Sim, Permitir Comprimento Zero: Não
CPF                 | Texto Curto      | Tamanho: 11, Requerido: Sim, Indexado: Sim (Sem Duplicação)
Categoria_CNH       | Texto Curto      | Tamanho: 2, Requerido: Sim, Formato: >@@
Data_Validade_CNH   | Data e Hora      | Formato: Data Abreviada, Requerido: Sim
Status_Disponivel   | Sim/Não          | Valor Padrão: Sim
----------------------------------------------------------------------------------------

📥 Download dos Scripts desta Aula:
Baixe o arquivo de script Capitulo_02.sql ou o pacote compactado (.zip) com os comandos SQL e esquemas da aula.


📝 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.

  1. Na teoria de modelagem relacional, diferencie com suas próprias palavras os termos Entidade, Atributo e Registro.
  2. 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?
  3. Defina o que é uma Chave Primária (PK) e mencione as duas regras invioláveis que ela impõe sobre os dados.
  4. 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?
  5. Qual é a diferença prática entre o tipo de dados Texto Curto e o tipo Texto Longo no Access?
  6. Por que o campo Qtd_Eixos do caminhão foi configurado como tipo numérico Byte em vez de Inteiro Longo?
  7. O que acontece quando marcamos a propriedade Indexado: Sim (Duplicação Não Autorizada) em um campo como o CNPJ ou CPF?
  8. Na tabela tbl_Veiculos, por que pudemos utilizar o campo Placa como Chave Primária natural sem precisar criar uma Autonumeração?
  9. 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?
  10. No Desafio de Fixação, por que a propriedade Requerido deve ser configurada como “Sim” no campo Data_Validade_CNH para uma transportadora rodoviária?