规范化数据库而不访问源数据?


8

我已经开始担任新角色,负责处理大量相关数据。我们所有这些数据的来源是从我们无权访问的数据库中提取的各种Excel转储。担任此职位的上一个人使用了大约十二个Excel文件来收集这些数据文件,对其进行操作并创建报告。

我已经开始将转储移至Access数据库。我注意到很多Excel数据都是相关的,应该将其标准化。我目前正在做的是为每个数据转储创建一个表,并将其导入Access,并使用许多查询来复制数十种数据操作和报告。

在我唯一的来源是Excel转储出仓库的情况下,对数据进行规范化还有好处吗?

当我无法更改转储发送给我的格式时,如何对数据进行规范化?

此外,我的计划(取决于预算)是从Access迁移到MS SQL数据库。


4
通常,您不希望规范非事务性数据并将仅用于报告。如果数据来自数据仓库,那么他们已经为您完成了艰苦的工作。只需将其加载到Access中并查询即可。
— HardCode

只是为了澄清一下,Excel转储是否包含原始数据,还是它是预先汇总/报告的数据?数据源是否来自某种类型的供应商出口(即,您能够与设计相关数据结构的任何人进行通信)吗?
— 乔恩·塞格尔

Excel转储来自供应商或我们自己的数据仓库,因此它既可以是原始数据,也可以是转换量最少的原始数据(例如,将0/1更改为“是/否”,或将Acct Code映射到“帐户描述”)。我能够与那些设计数据结构的人进行交流,但对于如何设计它们却没有发言权。为了提供一些背景信息,我不是DBA,但在预算和政治限制的情况下,我试图为我们的团队找到最佳解决方案。
— pedram

Answers:


6

是的,如果您愿意为实现和维护数据而做的工作,则对数据标准化有很大的好处。标准化的两个基本好处是:

  • 数据的完整性
  • 查询灵活性

标准化的简单方法是为每个人,地方,事物,概念或事件创建一个表。这样,您就可以在数据库中的一个位置中拥有您感兴趣的每个人,地方,事物,概念或事件的每个特征。插入和更新数据时,可以实现数据完整性的好处。由于已规范化,因此在数据库中的许多地方都没有具有相同特征的冗余副本,每个副本都有不同的值,因此您必须记住要进行更新并保持同步。其次,在插入或更新数据以确保数据有效时,数据库中只有一个地方可以进行程序检查。由于您的数据来自许多excel电子表格,标准化数据使您有机会对负载执行数据完整性检查,以确保您的分析基于准确的数据。当您要读取和分析数据时,可以获得查询灵活性的好处。由于您已经对数据进行了标准化,因此可以基于有关要回答的数据的问题(包括仅包括您需要回答的特定问题)以灵活的方式连接表。其次,这使数据库能够比对非标准化表中的所有数据(包括与问题无关的数据)进行扫描的速度更快地返回问题的答案。由于您已经对数据进行了标准化,因此可以基于有关要回答的数据的问题(包括仅包括您需要回答的特定问题)以灵活的方式连接表。其次,这使数据库能够比对非标准化表中的所有数据(包括与问题无关的数据)进行扫描的速度更快地返回问题的答案。由于您已经对数据进行了标准化,因此可以基于有关要回答的数据的问题(包括仅包括您需要回答的特定问题)以灵活的方式连接表。其次,这使数据库能够比对非标准化表中的所有数据(包括与问题无关的数据)进行扫描的速度更快地返回问题的答案。

Access是一种简化的DBMS,它包括一个基本的SQL处理器,该处理器使您可以编写查询,从而利用规范化数据的优势。如果您最终要使用功能齐全的DBMS SQL Server,那么现在对数据进行规范化将简化转换过程,并让您充分利用SQL Server的全部功能及其非常丰富的SQL实现。

正如我在开始时提到的,要获得这些好处,您必须愿意进行前期编程,以转换来自各种excel转储的数据,并将这些电子表格中的行和列映射到规范化表。这不是简单的练习,但是可以使用Access编程来完成。一种方法是创建表,该表复制源中的数据并将数据加载到表中。这些被称为阶段表。一旦在Access表中具有未标准化的数据,您就可以更轻松地使用SQL编写访问代码,以从那些阶段表中提取数据,对其进行规范化,确定数据质量问题(例如,在两个不同的excel转储中应该具有相同的特征)值相同但不相同),然后将其加载到规范化表中。这是用于标准化来自非标准化源的数据的常用方法,该标准化源在基于主题区域的数据仓库中非常常见。

尽管访问数据库中有高质量,标准化的数据,但您会发现这样做值得付出额外的努力。当您向消费者展示数据质量很差的示例时,您会发现消费者将看到您是一名真正的数据专业人员,并且发现了这一事实,因此可以在源中对其进行更正。同样,当他们要求提供一种以非常不同的方式分析数据的新报表时,您可以使用SQL快速创建新报表,从而以一种原本无法预期的完全不同的方式将规范化表中的数据合并。他们将给您留下深刻的印象,您能够快速,轻松地做到这一点!

我希望这有助于解释为什么标准化对您有好处。


非常感谢你!我已经说服了一个很漂亮的答案,那就是要尽一切努力来清理这些混乱。我想知道您是否有推荐的书籍或其他资源来阅读有关数据库标准化和其他重要概念的最佳实践?
— pedram

3
很高兴我可以提供帮助。这是有关数据库设计和规范化的一般链接-sqa.org.uk/e-learning/MDBS01CD/page_01.htm。这非常好,因为它使事情变得简单,并且在我所看到的许多示例中最容易理解。路易斯·戴维森(Louis Davidson)的著作《 Pro SQL Server 2012关系数据库设计与实现》是一本不错的书,尤其是因为您可能会转向SQL Server。本书除标准化外,还包含最佳实践,并提供了有关SQL Server的示例。有关暂存,请查看Ralph Kimball的“数据仓库ETL工具包”。祝好运!
— 托德·埃弗里特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.