Normalizando um banco de dados sem acesso aos dados de origem?


8

Comecei uma nova função que lida com grande quantidade de dados relacionados. Nossa fonte de todos esses dados são vários despejos do Excel extraídos de bancos de dados aos quais não temos acesso. A pessoa anterior que ocupava essa função usou uma dúzia de arquivos do Excel para reunir esses arquivos de dados, manipulá-los e criar relatórios.

Comecei a mover os despejos para um banco de dados do Access. Percebi que muitos dados do Excel estão relacionados e provavelmente devem ser normalizados. O que tenho feito atualmente é criar uma tabela para cada despejo de dados, importá-los para o Access e usar várias consultas para replicar as dezenas de manipulações e relatórios de dados.

Ainda existem benefícios na normalização de dados em que minha única fonte são os despejos do Excel de um armazém?

Como normalizaria os dados quando não tenho a capacidade de alterar o formato de como os dumps são enviados para mim?

Além disso, meu plano (dependendo do orçamento) é passar do Access para um banco de dados MS SQL.


4
Normalmente, você NÃO deseja normalizar dados não transacionais e serão usados ​​apenas para relatórios. Se os dados estiverem saindo de um data warehouse, eles já fizeram o trabalho duro para você. Basta carregá-lo no Access e consultar.
HardCode

Apenas para esclarecer, os despejos do Excel contêm os dados brutos ou são dados pré-agregados / de relatório? A fonte de dados é proveniente de uma exportação de algum tipo (ou seja, você pode se comunicar com quem projetou as estruturas de dados envolvidas)?
Jon Seigel

Os dumps do Excel são do fornecedor ou do nosso próprio data warehouse, portanto, são dados brutos ou dados brutos com quantidade mínima de transformações (por exemplo, alterações de 0/1 em Sim / Não ou Código de conta mapeado para Descrição da conta). Sou capaz de me comunicar com aqueles que projetaram as estruturas de dados, mas não têm voz sobre como elas são projetadas. Para contextualizar, não sou um DBA, mas estou tentando encontrar a melhor solução para nossa equipe, dadas as restrições orçamentárias e políticas.
Pedram

Respostas:


6

Sim, existem benefícios significativos para a normalização de dados se você estiver disposto a fazer o trabalho para alcançá-lo e mantê-lo. Os dois benefícios fundamentais da normalização são:

  • Integridade de dados
  • Flexibilidade de consulta

A abordagem simples para normalização é criar uma tabela para cada pessoa, local, coisa, conceito ou evento. Ao fazer isso, você tem cada característica de cada pessoa, local, coisa, conceito ou evento de seu interesse em um e apenas um lugar no banco de dados. O benefício da integridade dos dados é alcançado quando você insere e atualiza dados. Como você normalizou, não há cópias redundantes da mesma característica em muitos lugares do banco de dados, cada uma com um valor diferente, que você deve lembrar de atualizar e manter sincronizado. Segundo, você tem apenas um lugar no banco de dados para programar verificações ao inserir ou atualizar dados para garantir que os dados sejam válidos. Como seus dados são provenientes de muitas planilhas do Excel, A normalização de seus dados oferece a oportunidade de implementar verificações de integridade de dados na carga, para garantir que sua análise se baseie em dados precisos. O benefício da flexibilidade de consulta é alcançado quando você deseja ler e analisar os dados. Como você normalizou os dados, é possível conectar as tabelas de maneira flexível com base na pergunta sobre os dados que você deseja responder, incluindo apenas o que você precisa para responder à pergunta específica. Segundo, isso permite que o banco de dados retorne as respostas às suas perguntas muito mais rapidamente do que se tivesse que varrer todos os dados, incluindo os dados não relevantes para a sua pergunta, em suas tabelas não normalizadas. Como você normalizou os dados, é possível conectar as tabelas de maneira flexível com base na pergunta sobre os dados que você deseja responder, incluindo apenas o que você precisa para responder à pergunta específica. Segundo, isso permite que o banco de dados retorne as respostas às suas perguntas muito mais rapidamente do que se tivesse que varrer todos os dados, incluindo os dados não relevantes para a sua pergunta, em suas tabelas não normalizadas. Como você normalizou os dados, é possível conectar as tabelas de maneira flexível com base na pergunta sobre os dados que você deseja responder, incluindo apenas o que você precisa para responder à pergunta específica. Segundo, isso permite que o banco de dados retorne as respostas às suas perguntas muito mais rapidamente do que se tivesse que varrer todos os dados, incluindo os dados não relevantes para a sua pergunta, em suas tabelas não normalizadas.

O acesso é um DBMS simplificado e inclui um processador SQL básico que permite gravar consultas e, assim, tirar proveito dos benefícios dos dados normalizados. Se você for mudar para o SQL Server, que é um DBMS completo, a normalização de seus dados agora facilitará a transição e permitirá que você aproveite todos os recursos do SQL Server e sua rica implementação do SQL.

Como mencionei no começo, para alcançar esses benefícios, você deve estar disposto a fazer a programação inicial para traduzir os dados provenientes de seus vários dumps do Excel e mapear as linhas e colunas nessas planilhas para suas tabelas normalizadas. Este não é um exercício trivial, mas factível usando a programação do Access. Uma abordagem seria criar tabelas que replicam os dados como na origem e carregam os dados neles. Estes são conhecidos como estágiomesas. Depois de obter os dados não normalizados nas tabelas do Access, você poderá escrever mais facilmente o código de acesso usando o SQL para extrair os dados dessas tabelas de estágio, normalizá-lo, identificar problemas de qualidade dos dados (digamos a mesma característica em dois dumps do Excel diferentes que deveriam ter o mesmo valor, mas não), e carregue-o em suas tabelas normalizadas. Este é o método comum para normalizar dados provenientes de uma fonte não normalizada, muito comum em data warehouses baseados em área de assunto.

Você encontrará esse nível adicional de esforço que valerá a pena, embora tenha dados de alta qualidade e normalizados em seu banco de dados de acesso. Você relata que os consumidores verão que você é um profissional de dados real quando mostrar exemplos onde a qualidade dos dados era ruim e você descobriu esse fato para que pudesse ser corrigido nas fontes. Da mesma forma, quando eles solicitam um novo relatório que analise os dados de uma maneira muito diferente, você pode criar rapidamente o novo relatório usando SQL para combinar os dados nas tabelas normalizadas dessa maneira muito diferente que não era originalmente prevista. Eles ficarão muito impressionados que você é capaz de fazer isso de forma rápida e fácil!

Espero que isso ajude a explicar por que a normalização seria benéfica para você.


Muito obrigado! Uma resposta bonita que me convenceu a fazer um esforço inicial para limpar essa bagunça. Gostaria de saber se você tem livros recomendados ou outras fontes para ler as práticas recomendadas para normalização de banco de dados e outros conceitos importantes?
pedram

3
Ainda bem que pude ajudar. Aqui está um link decente sobre o design e a normalização do banco de dados em geral - sqa.org.uk/e-learning/MDBS01CD/page_01.htm . Isso é muito bom porque mantém as coisas simples e é o mais fácil de entender de muitos exemplos que já vi. Um bom livro, especialmente porque você pode mudar para o SQL Server, é o "Projeto e Implementação de Banco de Dados Relacional Pro SQL Server 2012 de Louis Davidson". Este livro contém práticas recomendadas, além da normalização, e fornece exemplos para o SQL Server. Para preparação, confira "The Data Warehouse ETL Toolkit", de Ralph Kimball. Boa sorte!
Todd Everett
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.