Capítulo 06: Banco de Dados Relacional: Migração e Modelagem no Access / LibreOffice Base
🎯 Objetivo da Aula
Nesta aula, você aprenderá por que grandes empresas migram suas operações de planilhas eletrônicas para um Sistema Gerenciador de Banco de Dados Relacional (SGBD). No laboratório de informática, você iniciará a construção do banco de dados relacional SIG_FastLog_Dados.accdb (ou .odb no LibreOffice Base), definindo chaves primárias (Primary Keys), chaves estrangeiras (Foreign Keys) e aplicando o conceito de Integridade Referencial.
Ao final desta aula, o sistema impedirá no nível de infraestrutura que registros fiquem “órfãos” ou que dados inconsistentes sejam gravados no banco.
🏢 Cenário Prático (FastLog S.A.)
Empresa: FastLog Transportes & Logística Integrada S.A.
Problema: Com a expansão das operações logísticas para três estados, a equipe da portaria, o setor de compras e a oficina tentaram abrir a planilha de estoque ao mesmo tempo pela rede da empresa. Houve travamentos constantes e uma mensagem de “Arquivo em Conflito de Edição” fez a empresa perder os registros de entrada de duas carretas de combustível. Para piorar, um assistente novato deletou a linha de um fornecedor na planilha, transformando dezenas de células de peças em erros irreparáveis do tipo #REF!.
Sua Missão: Como técnico de TI e Gestão, você criará a camada de banco de dados relacional da empresa. Você modelará as tabelas mestres no Microsoft Access (ou LibreOffice Base) e ativará a Integridade Referencial 1:N, garantindo acesso concorrente seguro e proteção total contra exclusões indevidas.
🧠 Fundamentos: A Teoria Traduzida
1. Planilhas vs. Sistemas Gerenciadores de Banco de Dados (SGBD)
Embora as planilhas sejam ideais para análises rápidas, prototipagem e dashboards visuais, elas falham quando submetidas à operação corporativa real:
| Critério | Planilha Eletrônica (Excel / Calc) | Banco de Dados Relacional (Access / Base) |
|---|---|---|
| Acesso Simultâneo | Limitado; gera conflito de arquivos e lentidão na rede | Múltiplos usuários leem e gravam simultaneamente com travas de registro |
| Integridade de Dados | Usuário pode apagar ou sobrepor fórmulas facilmente | Regras rígidas no motor do banco impedem gravações inválidas |
| Capacidade e Escala | Perde performance e trava com milhares de linhas | Suporta centenas de milhares de transações com alta performance |
| Segurança e Auditoria | Fraca (fórmulas e dados ficam expostos) | Alta (permissões por usuário e trilhas de auditoria) |
2. O Modelo Relacional e Chaves (PK e FK)
No modelo relacional inventado por Edgar F. Codd, a informação é armazenada em tabelas bidimensionais conectadas logicamente:
- Chave Primária (Primary Key - PK): Campo cujo conteúdo é absolutamente único para cada linha e nunca pode ser nulo (ex:
ID_Fornecedor,ID_Item). É a “carteira de identidade” do registro. - Chave Estrangeira (Foreign Key - FK): Campo em uma tabela que faz referência à Chave Primária de outra tabela, criando um elo de ligação.
- Relacionamento 1:N (Um para Muitos): Um único fornecedor pode fornecer muitos itens; porém, cada item tem apenas um fornecedor homologado.
erDiagram
tbl_Fornecedores ||--o{ tbl_Itens : "1 Fornecedor fornece N Itens"
tbl_Itens ||--o{ tbl_Movimentacoes : "1 Item possui N Movimentacoes"
tbl_Fornecedores {
string ID_Fornecedor PK "Ex: FOR-10"
string Nome_Fantasia
string Categoria_Insumo
int Prazo_Entrega_Dias
float Avaliacao_Qualidade_Nota
}
tbl_Itens {
string ID_Item PK "Ex: ITM-01"
string Descricao_Item
string ID_Fornecedor FK "Chave Estrangeira"
int Estoque_Atual
int Estoque_Seguranca
currency Custo_Unitario_R$
}
tbl_Movimentacoes {
int ID_Movimentacao PK
date Data_Registro
string ID_Item FK "Chave Estrangeira"
string Tipo_Movimento "ENTRADA/SAÍDA"
int Quantidade
}3. Integridade Referencial
A Integridade Referencial é a regra de ouro que impede o surgimento de “registros órfãos”. O motor do banco rejeitará:
- O cadastro de um item cujo fornecedor não exista previamente cadastrado na tabela de fornecedores.
- A exclusão de um fornecedor que ainda possua itens vinculados a ele no almoxarifado.
📖 Exemplo Guiado: Passo a Passo no Laboratório
No computador do laboratório, certifique-se de estar dentro da pasta criada no Capítulo 01: C:\FastLog_SIG\02_Processamento_BancoDados.
Passo 1: Criação do Arquivo de Banco de Dados
- Abra o Microsoft Access (ou LibreOffice Base).
- Selecione Banco de Dados em Branco.
- No nome do arquivo, digite:
SIG_FastLog_Dados.accdb(ou.odbno LibreOffice). - Salve na pasta
02_Processamento_BancoDadose clique em Criar.
Passo 2: Construção da Tabela tbl_Fornecedores no Modo Design
- Na guia Criar, clique em Design da Tabela.
- Defina os campos, tipos de dados e tamanhos:
ID_Fornecedor: Tipo Texto Curto (Tamanho do Campo:10).Nome_Fantasia: Tipo Texto Curto (Tamanho do Campo:60).Categoria_Insumo: Tipo Texto Curto (Tamanho do Campo:40).Prazo_Entrega_Dias: Tipo Número (Tamanho do Campo: Inteiro).Avaliacao_Qualidade_Nota: Tipo Número (Tamanho do Campo: Duplo ou Decimal).
- Definição da Chave Primária: Clique com o botão direito sobre o campo
ID_Fornecedore selecione Chave Primária (aparecerá um ícone de chave dourada 🔑 ao lado). - Salve a tabela com o nome:
tbl_Fornecedores.
🛠️ Prática Obrigatória 1: Criação da Tabela de Itens e Chave Estrangeira
Agora você criará a tabela de estoque de itens e configurará o campo que receberá a chave do fornecedor.
Passo a Passo no Computador:
- Na guia Criar, clique novamente em Design da Tabela.
- Preencha a estrutura de campos:
ID_Item: Tipo Texto Curto (Tamanho:10) ➔ Defina como Chave Primária 🔑.Descricao_Item: Tipo Texto Curto (Tamanho:80).ID_Fornecedor: Tipo Texto Curto (Tamanho:10) ➔ (Esta será a Chave Estrangeira!).Estoque_Atual: Tipo Número (Inteiro).Estoque_Seguranca: Tipo Número (Inteiro).Custo_Unitario_R$: Tipo Moeda.
- Salve a tabela com o nome:
tbl_Itens. - Feche todas as abas abertas no Access.
✅ Resultado Esperado (Prática 1):
Duas tabelas estruturadas com tipos fortes de dados prontas para receberem os relacionamentos formais da empresa.
🛠️ Prática Obrigatória 2: Estabelecimento de Relacionamento e Teste de Integridade
Agora você conectará as duas tabelas e testará o bloqueio de segurança contra dados inconsistentes.
Passo a Passo no Computador:
- Criação do Relacionamento 1:N:
- Acesse a guia superior Ferramentas de Banco de Dados ➔ clique em Relações.
- Na janela que se abre, adicione as duas tabelas:
tbl_Fornecedoresetbl_Itens. - Clique com o mouse no campo
ID_Fornecedorda tabelatbl_Fornecedores, segure o clique e arraste até soltar em cima deID_Fornecedorna tabelatbl_Itens. - Na janela de edição de relacionamentos:
- Marque a caixa: Impor Integridade Referencial (Enforce Referential Integrity).
- Tipo de Relacionamento: Observe que o sistema reconheceu automaticamente como Um para Vários (1:N).
- Clique em Criar. A linha preta conectando as tabelas com o símbolo
1de um lado e o símbolo infinito∞do outro confirma a ligação!
- Alimentação dos Fornecedores Oficiais:
- Abra a
tbl_Fornecedoresno modo folha de dados e cadastre os 3 registros:FOR-10| Goodyear Pneus Comerciais | Pneus & Borracharia | 3 | 9.5FOR-11| Ipiranga Distribuidora Diesel | Combustível & Lubrificantes | 1 | 9.8FOR-12| Bosch Sistemas de Freio | Peças de Motor & Freios | 7 | 8.9
- Salve e feche a tabela.
- Abra a
- Teste do Mecanismo de Defesa do Banco:
- Abra a tabela
tbl_Itens. - Tente cadastrar uma peça com um fornecedor inexistente:
- ID_Item:
ITM-99| Descrição:Radiador Turbo| ID_Fornecedor:FOR-99(Código que NÃO existe!). - Pressione
Enter.
- ID_Item:
- Observe o Bloqueio: O Access emitirá uma mensagem de erro fatal: “Não é possível adicionar ou alterar o registro porque é necessário um registro relacionado na tabela tbl_Fornecedores”.
- Conclusão: O banco de dados blindou o sistema contra cadastros de fornecedores fantasmas!
- Abra a tabela
- Digite agora os dados corretos dos 4 itens cadastrados no capítulo anterior (
FOR-10,FOR-11,FOR-12) e salve a tabela.
✅ Resultado Esperado (Prática 2):
| ID_Item | Descricao_Item | ID_Fornecedor | Estoque_Atual | Estoque_Seguranca | Custo_Unitario_R$ |
|---|---|---|---|---|---|
| ITM-01 | Pneu Radial 295/80 R22.5 | FOR-10 | 8 | 6 | R$ 2.450,00 |
| ITM-02 | Óleo Diesel S10 Granel (L) | FOR-11 | 4500 | 2000 | R$ 5,80 |
| ITM-03 | Pastilha de Freio Carreta | FOR-12 | 5 | 4 | R$ 380,00 |
| ITM-04 | Óleo Lubrificante Motor 15W40 | FOR-11 | 40 | 15 | R$ 42,00 |
📤 Instruções de Entrega (Microsoft Teams)
- Feche o arquivo no Access para liberar as travas de arquivo temporário (
.laccdb). - Acesse a pasta
02_Processamento_BancoDados. - Renomeie uma cópia do arquivo para:
Atividade_06_BancoDados_SeuNome_SeuSobrenome.accdb(ou.odb). - Abra o Microsoft Teams na equipe da disciplina.
- Acesse a tarefa: “TI Aplicada - Cap 06: Modelagem Relacional e Integridade no SGBD”.
- Anexe o arquivo de banco de dados e clique em Entregar (Turn In).
💡 Checkpoint de Gestão & TI
Você acaba de subir o nível da infraestrutura do SIG corporativo. Em uma planilha, qualquer operador desatento pode apagar acidentalmente o fornecedor de combustível e corromper os relatórios de todas as filiais. No SGBD com Integridade Referencial ativada, o próprio motor do banco recusa a exclusão de um fornecedor enquanto houver itens cadastrados para ele, protegendo o patrimônio digital da companhia.
🔥 Desafio de Fixação: Tabela de Histórico de Movimentações de Estoque
Crie a terceira tabela do modelo relacional para rastrear entradas e saídas físicas do almoxarifado:
- No Access/Base, crie a tabela
tbl_Movimentacoesno modo design com os campos:ID_Movimentacao: Tipo Numeração Automática (Chave Primária 🔑).Data_Movimento: Tipo Data/Hora.ID_Item: Tipo Texto Curto (Tamanho: 10) ➔ Chave Estrangeira.Tipo_Movimento: Tipo Texto Curto (Tamanho: 10) ➔ Configurado com Regra de Validação:="ENTRADA" Ou ="SAÍDA".Quantidade: Tipo Número (Inteiro).
- Acesse a janela de Relações, adicione
tbl_Movimentacoese crie o relacionamento 1:N entretbl_Itens.ID_Itemetbl_Movimentacoes.ID_Itemcom Integridade Referencial ativada. - Registre uma movimentação real: Entrada de 10 Pneus (
ITM-01) na data de hoje.
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que você estudou neste capítulo. Ao concluir, apresente o caderno ao professor para visto.
- Cite duas limitações graves apresentadas pelas planilhas eletrônicas quando múltiplos usuários da empresa precisam gravar dados simultaneamente pela rede.
- O que representa a sigla SGBD e qual é a sua principal vantagem em relação ao armazenamento de dados em arquivos de texto ou planilhas?
- O que é uma Chave Primária (Primary Key - PK) em uma tabela relacional e quais são suas duas regras obrigatórias?
- O que é uma Chave Estrangeira (Foreign Key - FK) e qual é a sua função na modelagem de um banco de dados?
- Explique o significado de um Relacionamento do tipo “1:N” (Um para Muitos) entre as tabelas
tbl_Fornecedoresetbl_Itens. - O que é a regra de Integridade Referencial em um banco de dados corporativo?
- O que aconteceu na Prática Obrigatória 2 quando o aluno tentou gravar na tabela de itens o código de fornecedor
FOR-99que não existia no cadastro? - Qual símbolo visual aparece nas pontas da linha de relacionamento do Access quando a Integridade Referencial 1:N é ativada com sucesso?
- De acordo com o Checkpoint de Gestão & TI, por que o SGBD com Integridade Referencial não permite a exclusão acidental de um fornecedor enquanto houver itens vinculados a ele?
- No Desafio de Fixação, qual regra de validação foi inserida no campo
Tipo_Movimentoda tabelatbl_Movimentacoespara garantir que apenas dois tipos de operações sejam registradas?