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érioPlanilha Eletrônica (Excel / Calc)Banco de Dados Relacional (Access / Base)
Acesso SimultâneoLimitado; gera conflito de arquivos e lentidão na redeMúltiplos usuários leem e gravam simultaneamente com travas de registro
Integridade de DadosUsuário pode apagar ou sobrepor fórmulas facilmenteRegras rígidas no motor do banco impedem gravações inválidas
Capacidade e EscalaPerde performance e trava com milhares de linhasSuporta centenas de milhares de transações com alta performance
Segurança e AuditoriaFraca (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á:

  1. O cadastro de um item cujo fornecedor não exista previamente cadastrado na tabela de fornecedores.
  2. 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

  1. Abra o Microsoft Access (ou LibreOffice Base).
  2. Selecione Banco de Dados em Branco.
  3. No nome do arquivo, digite: SIG_FastLog_Dados.accdb (ou .odb no LibreOffice).
  4. Salve na pasta 02_Processamento_BancoDados e clique em Criar.

Passo 2: Construção da Tabela tbl_Fornecedores no Modo Design

  1. Na guia Criar, clique em Design da Tabela.
  2. 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).
  3. Definição da Chave Primária: Clique com o botão direito sobre o campo ID_Fornecedor e selecione Chave Primária (aparecerá um ícone de chave dourada 🔑 ao lado).
  4. 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:

  1. Na guia Criar, clique novamente em Design da Tabela.
  2. 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.
  3. Salve a tabela com o nome: tbl_Itens.
  4. 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:

  1. 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_Fornecedores e tbl_Itens.
    • Clique com o mouse no campo ID_Fornecedor da tabela tbl_Fornecedores, segure o clique e arraste até soltar em cima de ID_Fornecedor na tabela tbl_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 1 de um lado e o símbolo infinito ∞ do outro confirma a ligação!
  2. Alimentação dos Fornecedores Oficiais:
    • Abra a tbl_Fornecedores no modo folha de dados e cadastre os 3 registros:
      • FOR-10 | Goodyear Pneus Comerciais | Pneus & Borracharia | 3 | 9.5
      • FOR-11 | Ipiranga Distribuidora Diesel | Combustível & Lubrificantes | 1 | 9.8
      • FOR-12 | Bosch Sistemas de Freio | Peças de Motor & Freios | 7 | 8.9
    • Salve e feche a tabela.
  3. 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.
    • 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!
  4. 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_ItemDescricao_ItemID_FornecedorEstoque_AtualEstoque_SegurancaCusto_Unitario_R$
ITM-01Pneu Radial 295/80 R22.5FOR-1086R$ 2.450,00
ITM-02Óleo Diesel S10 Granel (L)FOR-1145002000R$ 5,80
ITM-03Pastilha de Freio CarretaFOR-1254R$ 380,00
ITM-04Óleo Lubrificante Motor 15W40FOR-114015R$ 42,00

📤 Instruções de Entrega (Microsoft Teams)

  1. Feche o arquivo no Access para liberar as travas de arquivo temporário (.laccdb).
  2. Acesse a pasta 02_Processamento_BancoDados.
  3. Renomeie uma cópia do arquivo para: Atividade_06_BancoDados_SeuNome_SeuSobrenome.accdb (ou .odb).
  4. Abra o Microsoft Teams na equipe da disciplina.
  5. Acesse a tarefa: “TI Aplicada - Cap 06: Modelagem Relacional e Integridade no SGBD”.
  6. 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:

  1. No Access/Base, crie a tabela tbl_Movimentacoes no 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).
  2. Acesse a janela de Relações, adicione tbl_Movimentacoes e crie o relacionamento 1:N entre tbl_Itens.ID_Item e tbl_Movimentacoes.ID_Item com Integridade Referencial ativada.
  3. Registre uma movimentação real: Entrada de 10 Pneus (ITM-01) na data de hoje.

🔑 Revelar Gabarito Oficial de Laboratório (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!

Dicionário de Dados do Banco de Dados SIG_FastLog_Dados.accdb:

TabelaNome do CampoTipo de DadoTamanho / RegraPapel na Modelagem
tbl_FornecedoresID_FornecedorTexto Curto10Chave Primária (PK)
tbl_FornecedoresNome_FantasiaTexto Curto60Atributo
tbl_FornecedoresPrazo_Entrega_DiasNúmeroInteiroAtributo
tbl_ItensID_ItemTexto Curto10Chave Primária (PK)
tbl_ItensDescricao_ItemTexto Curto80Atributo
tbl_ItensID_FornecedorTexto Curto10Chave Estrangeira (FK)
tbl_ItensCusto_Unitario_R$MoedaPadrãoAtributo
tbl_MovimentacoesID_MovimentacaoNumeração AutoLongoChave Primária (PK)
tbl_MovimentacoesID_ItemTexto Curto10Chave Estrangeira (FK)
tbl_MovimentacoesTipo_MovimentoTexto Curto10 ("ENTRADA" Ou "SAÍDA")Atributo com Regra

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

  1. Cite duas limitações graves apresentadas pelas planilhas eletrônicas quando múltiplos usuários da empresa precisam gravar dados simultaneamente pela rede.
  2. 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?
  3. O que é uma Chave Primária (Primary Key - PK) em uma tabela relacional e quais são suas duas regras obrigatórias?
  4. O que é uma Chave Estrangeira (Foreign Key - FK) e qual é a sua função na modelagem de um banco de dados?
  5. Explique o significado de um Relacionamento do tipo “1:N” (Um para Muitos) entre as tabelas tbl_Fornecedores e tbl_Itens.
  6. O que é a regra de Integridade Referencial em um banco de dados corporativo?
  7. O que aconteceu na Prática Obrigatória 2 quando o aluno tentou gravar na tabela de itens o código de fornecedor FOR-99 que não existia no cadastro?
  8. Qual símbolo visual aparece nas pontas da linha de relacionamento do Access quando a Integridade Referencial 1:N é ativada com sucesso?
  9. 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?
  10. No Desafio de Fixação, qual regra de validação foi inserida no campo Tipo_Movimento da tabela tbl_Movimentacoes para garantir que apenas dois tipos de operações sejam registradas?