【问题标题】:How to normalize a database/dataset in Access or any other database? [closed]如何在 Access 或任何其他数据库中规范化数据库/数据集? [关闭]
【发布时间】:2019-07-03 18:57:43
【问题描述】:

我正在尝试使用有关奥运会的 this 数据集构建一个 OLAP 数据库,问题是数据集是 csv 格式的,它们通常在一个表中,我已经在访问中导入了数据,因为我被告知 Access 有一个工具可以将数据拆分到不同的表中,但我没有找到与此相关的任何内容。这是我当前的表:

id1 是在 access 中创建的,因此它可以包含重复的数据,ID 是数据集中的原始数据。

我想将数据规范化为以下架构:

我尝试过手动拆分数据,但是由于数据很多,风险很大,容易出现很多错误和错误。

关于如何在 Access 上执行此操作的任何想法或有更好的方法吗?

【问题讨论】:

  • 不确定我是否有那种特殊的关系结构..
  • @CaiusJard 我知道,问题是 OLAP 结构需要类似的模式来量化数据。
  • 正在寻找答案。总之创建一个正确的数据库结构。然后将数据分别导入到每个表中。

标签: sql database ms-access dataset


【解决方案1】:

由于您已经将数据导入 access 并且该数据仍需要规范化,您可以使用数据库工具下的访问向导 - 分析表。此向导将通过将原始表拆分为多个表来帮助您规范化表。这里有一个链接可以帮助您开始使用表分析器:

https://support.office.com/en-us/article/normalize-your-data-using-the-table-analyzer-8edbb763-5bab-4fbc-b62d-c17b1a40bbe2

表分析器将创建新表并将数据从原始表复制到新表中,从而形成如下结构: 表分析器甚至会保存它使用的查询,以便您以后可以重用它。但是,如果您只选择默认值,向导将不会为您提供适当的键和表名称。此外,您可能想要调整关系结构访问选择。一旦熟悉了向导,您就可以在向导中完成所有这些操作。在这种情况下,我只是重命名了所有表和键,但将季节留在了关系堆的顶部。

或者,您可以一次导入一个表的数据,但您必须先清理它(特别是添加主键),否则您会遇到问题。 access 中的数据导入向导可以选择在高级选项卡之一下跳过变量。
您可以跳过表分析器向导并创建表并编写查询以自己传输数据,但向导更快:)

数据清理评论:在标题下,一张图片值一千字,如果您发布您的数据和您想要的内容,它会有所帮助。我在网上找到了数据集,我有几个可能有用的 cmets。 ID 与 Country 是一对多的关系,因此不能用作主键。所以让访问提供主键。年龄缺少数据,因此需要决定如何处理它,我只是通过将年龄转换为文本变量来解决问题。

【讨论】:

  • 谢谢我有一些小错误,但我已经修复了,非常感谢!
  • 欢迎您。 PS 每个国家都有很多 ID,而不是相反。
猜你喜欢
  • 2014-07-09
  • 2016-11-18
  • 2013-01-28
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 2018-02-07
  • 2013-11-10
  • 1970-01-01
相关资源
最近更新 更多