Python 关系数据库的用途是什么?
通常,当人们向你宣传一种工具时,他们首先会告诉你为什么需要它,然后讨论如何使用它。关于数据库和SQL的前5本书并非如此。我真的觉得我在和宗教崇拜者说话:)。他们没有讨论:数据库的功能是什么,为什么它是这样设计的,等等。他们告诉你,你应该遵守第三范式和Codd,它的预言者 我的问题是:在哪些方面,我的网站(例如,使用PostreSQL后端作为数据存储)优于我的网站(将数据存储在哈希表中)以及使用我选择的编程语言(如Python 关系数据库的用途是什么?,python,sql,relational-database,Python,Sql,Relational Database,通常,当人们向你宣传一种工具时,他们首先会告诉你为什么需要它,然后讨论如何使用它。关于数据库和SQL的前5本书并非如此。我真的觉得我在和宗教崇拜者说话:)。他们没有讨论:数据库的功能是什么,为什么它是这样设计的,等等。他们告诉你,你应该遵守第三范式和Codd,它的预言者 我的问题是:在哪些方面,我的网站(例如,使用PostreSQL后端作为数据存储)优于我的网站(将数据存储在哈希表中)以及使用我选择的编程语言(如pickle/中的shelve)构建的通用序列化机制 我相信答案是性能,但在这里,S
pickle
/中的shelve
)构建的通用序列化机制
我相信答案是性能,但在这里,SQL高手通常是含糊不清的。我想知道,什么操作成本比数据库低得多?设计如何帮助实现这一点?真的,当你在努力遵守一些规则时,你真的想知道这一切是为了什么
你能推荐一本先陈述目标,然后介绍范式、关系代数等概念,然后解释这些概念如何帮助解决目标的书吗。
谢谢,很抱歉有点咆哮。为了说明我的问题,请将上一篇wiki文章与Stanislav Lem的文章进行比较。在我看来,这似乎是SQL与NoSQL之间的问题—在您的例子中是一个哈希表 与简单的blob存储相比,RDBMS的最大优势在于名称。关系数据库擅长存储关系。虽然BLOB存储可能是某些应用程序所需的全部,但大多数情况下,对象都有关系 例如,您可以让组中的用户和组拥有权限,在3中很容易对此进行建模。正常表单,然后检索数据,以及修改权限。如果您将每个用户都作为一个对象,并拥有其所有的组和权限,那么建立这样的模型将更加复杂。如果更改组的权限,则需要检查组中的所有用户并在其中进行编辑 就速度而言,blob存储显然会更快地检索对象,但使用SQL可以直接在数据库上执行许多操作。在读取数据之前,可以将数据修改到某一点。这减少了应用程序中的逻辑,并使整个数据处理更快,因为它直接在源代码处执行 这是SQL提供给您的,但是它并不总是必要的,有时您已经足够使用哈希表了。您需要根据自己的需求选择要使用的工具 如果您想了解RDBMS与其他存储系统之间的差异的更多细节,我认为这是一篇不错的文章:
关于为什么要使用RDBMS以及哪些功能取决于要使用的服务器的更多详细资料。每台服务器都有不同的功能丰富性和其他权衡,因此我建议您在google上问一些为什么的问题,或者查看一些包含不同RDBMS功能摘要的页面。在我看来,这似乎是SQL与NoSQL之间的问题—在您的例子中是一个哈希表 与简单的blob存储相比,RDBMS的最大优势在于名称。关系数据库擅长存储关系。虽然BLOB存储可能是某些应用程序所需的全部,但大多数情况下,对象都有关系 例如,您可以让组中的用户和组拥有权限,在3中很容易对此进行建模。正常表单,然后检索数据,以及修改权限。如果您将每个用户都作为一个对象,并拥有其所有的组和权限,那么建立这样的模型将更加复杂。如果更改组的权限,则需要检查组中的所有用户并在其中进行编辑 就速度而言,blob存储显然会更快地检索对象,但使用SQL可以直接在数据库上执行许多操作。在读取数据之前,可以将数据修改到某一点。这减少了应用程序中的逻辑,并使整个数据处理更快,因为它直接在源代码处执行 这是SQL提供给您的,但是它并不总是必要的,有时您已经足够使用哈希表了。您需要根据自己的需求选择要使用的工具 如果您想了解RDBMS与其他存储系统之间的差异的更多细节,我认为这是一篇不错的文章:
关于为什么要使用RDBMS以及哪些功能取决于要使用的服务器的更多详细资料。每台服务器都有不同的功能丰富性和其他权衡,因此我建议您在google上问一些为什么的问题,或者查看一些包含不同RDBMS功能摘要的页面。我认为这里有两个问题: