Factorial和Fibonacci函数的关系数据库是什么?

时间:2011-10-26 22:06:56

标签: sql database relational-database

在学习新的编程语言时,总会有一些传统的问题让你自己感动。例如,Hello world和Fibonacci将展示如何读取输入,打印输出和计算功能(基本上可以解决所有问题的面包和黄油)虽然它们非常简单,但它们非常值得花时间(并且总是存在的)通过用bignums语言计算一个荒谬的大数的阶乘来获得一些乐趣)

所以现在我正试图掌握一些SQL系统,我能想到的所有教科书示例都涉及像“学生”或“员工”这样令人烦恼的无聊表。 我可以使用哪些不错的备用数据集?我正在寻找一些(按重要性排序)......

  1. 可以通过简单的算法生成数据。
    • 我不想手工输入东西。
    • 我希望能够轻松地增加表格的大小以提高效率等。
  2. 可以用来展示尽可能多的东西。选择,加入,索引...你的名字。
  3. 可以用来取回一些有趣的结果。
    • 如果数据是真实的并且本身有用,我可以忍受“无聊”的数据操作,但如果我从头开始创建数据集,我宁愿有更多有趣的东西。
  4. 在最糟糕的情况下,我至少假设应该有某种基准数据集,至少符合前两个标准,我也很乐意听到。

7 个答案:

答案 0 :(得分:12)

Microsoft世界中的基准数据库是Northwind。一个类似的开源(EPL)是Eclipse的Classic Models数据库。

据我所知,你不能自动生成。

然而,Northwind“从世界各地进口和出口特色食品”,而Classic Models则销售“经典汽车的比例模型”。两者都非常有趣。 :)

答案 1 :(得分:10)

SQL是一种查询语言,而不是一种过程语言,所以除非您要使用PL / SQL或类似的东西,否则您的示例将操纵数据。

所以这对我来说很有趣 - 数据挖掘!转到:

http://usa.ipums.org/usa/

下载他们的微观数据(你需要创建一个帐户,但它是免费的)。

你需要编写一个小脚本来将固定宽度的文件注入你的数据库,这本身应该很有趣。并且您需要编写一个小脚本来自动创建基于解析其元文件的字段(因为有很多)。这也很有趣。

然后,您可以开始提问。假设问题与房价有关:

假设您希望了解过去40年来收入人口排名前10%的人的房价价值变化情况。然后限制他们是否住在加州。看看收入与抵押贷款支付比例之间是否存在相关性。然后按地理区域对此进行分组。然后看看那些抵押贷款负担最高的地区与租房者占用的单位百分比之间是否存在相关性。你的数据库将有一些内置的统计函数,但你也可以自己编程自己 - 所以correl可能相当于fibonnacci。然后编写一个小脚本在R中执行相同的操作,从数据库导入数据,操作数据并存储结果。

了解DB的最佳方法是将它们用于其他目的。

一旦你玩完iPUMS,看看GEO数据,用(取决于你的数据库)像PostGis这样的东西 - 唯一的区别是iPUMS为你提供了大片的分辨率,而GIS数据有纬度/经度坐标。然后,您可以为美国绘制抵押贷款负担的热图,并在不同的时间尺度上绘制这个热图。

答案 2 :(得分:1)

也许你可以用化学做点什么。输入118个元素,或者为在线源提取它们。使用基本规则将它们组合成分子,您可以将它们存储在数据库中。将分子组合成更大的分子并对它们执行更复杂的查询。

答案 3 :(得分:1)

您将很难找到与数据库无关的教程。主要原因是大多数示例所基于的SQL-92 standard都是无聊的。有更新的标准,但大多数数据库不可知的教程将愚蠢到最低的共同标准:SQL-92。

如果您想作为软件工程师了解数据库,我肯定会建议从Microsoft SQL Server开始。这有很多原因,有些是事实,有些是意见。但主要原因是,使用SQL Server可以更加轻松。

对于示例数据,Northwind已被AdventureWorks取代。您可以从codeplex获取最新版本。这是一个更加真实的数据库,它允许演示的方式不仅仅是基本的连接,过滤和汇总。同样伟大的是,它实际上是为SQL Server的每个版本维护的,并且已更新以展示数据库的一些新功能。

现在,为了你的目标#1,我会考虑扩展一个练习。在完成基本和无聊的工作之后,您应该逐渐能够执行有效的大规模数据操作,同时不能真正生成数据,至少复制/粘贴/修改SQL数据以使其达到您认为的大小。 / p>

请记住,尽管基准测试数据库并非易事。数据库的性能和效率取决于应用程序的许多方面。如何使用它与设置方式同样重要。

祝你好运,如果你在本论坛之外找到可行的解决方案,请告诉我们。

答案 4 :(得分:0)

在单个表格中实施您的家谱树并打印它。本身并不是一个非常普遍的问题,但这种方法肯定是,而且它应该具有相当大的挑战性。

答案 5 :(得分:0)

地理数据可以展示很多SQL功能,同时有点复杂(但不是太复杂)。它也可以从网上的许多来源获得 - 国际组织等。

您可以使用国家/地区,城市,邮政编码等创建数据库。标记国家/地区的首都(请记住,某些国家/地区拥有多个首都......)。如果您想要真正想象,请包含GIS数据。另外,请考虑如何为不同的地址信息建模。现在如果地址信息必须支持国际地址怎么办?您也可以使用电话号码进行相同操作。一旦掌握了一些东西,您甚至可以与Google地图或类似的东西集成。

您可能不得不自己进行数据库设计和导入工作,但实际上这是使用数据库的一个非常重要的部分。

答案 6 :(得分:0)

Eclipse's Classic Model 数据库是Factorial和Fibonacci函数的最佳开源数据库。而Microsoft的Northwind 是您可以使用的另一个强大的替代方案。