python - 关系数据库的用途是什么?

标签 python sql relational-database

<分区>

通常,当人们向您宣传工具时,他们首先会告诉您为什么需要它,然后讨论如何使用它。我试过的前 5 本书关于数据库和 SQL 的情况并非如此。真的感觉就像我在和宗教信徒交谈 :)。他们不讨论:数据库的能力、为什么按照它的设计方式设计数据库等。他们告诉你应该遵守第三范式和 Codd,它的先知。

我的问题是:我的网站在哪些方面会使用例如PostreSQL 后端作为数据存储,优于我的网站将数据存储在哈希表中并使用我选择的编程语言构建的通用序列化机制(如 pickle/shelve python).

我相信答案是性能,但在这个地方 SQL 专家通常是模糊的。我想知道,数据库的哪些操作成本要低得多?设计如何帮助实现这一目标?真的,当您为遵守某些规则而苦苦挣扎时,您真的很想知道这一切到底是为了什么?

您能否推荐一种读物,首先陈述目标,然后介绍范式、关系代数等概念,然后解释这些概念如何帮助解决目标。 谢谢,很抱歉有点咆哮。为了说明我的问题,请比较关于 relational databases 的 wiki 文章到 Stanislav Lem 的 Sepulka .

最佳答案

我认为这里有两个问题:

  1. 为什么使用关系模型?
  2. 为什么在设计关系数据库时应用规范化原则?

A1。在回答第一个问题时,关系模型是一种极其灵活和强大的数据抽象。它支持数据完整性规则、数据操作逻辑和即席查询,使用户无需编写大量代码,也无需为底层技术实现细节增加负担,即可从数据中获得有意义的结果。除其他原因外,这些原因使得关系模型非常适合非常广泛的用例。

SQL 严格来说是一种非关系数据模型,只是部分基于关系原则。然而,SQL 比许多替代方案更接近关系模型。许多基本的关系思想仍然适用于 SQL 世界,因此 SQL 系统通常归类在关系和关系派生系统的标题下。

A2。关系数据库规范化理论及其所基于的依赖理论形成了一套用于创建和分析数据库设计的原则。规范化原则有助于确保您的数据库设计准确地模拟您想要的业务规则。应用这些原则将帮助您避免可能出现的某些类型的数据完整性问题。

推荐阅读:Database Systems: The Complete Book by Garcia-Molina, Ullman, Widom

关于python - 关系数据库的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111738/

相关文章:

python - django 变量可用于所有 View

Python线程: interpreter shutdown exception

sql - 'likes' 或 'endorsements' 的数据库结构

entity-framework - 关系数据库中一张表上的 1 :1, 0 或可为空字段应该首选哪一个?

python - 从两个数据框中获取匹配字符串的索引

python - sklearn 库中 .score() 和 .predict 的区别?

mysql - 按月分组并显示每个月对应的值

mysql - EXPLAIN 结果中的 "key_len"列更重要还是 "rows"列?

relational-database - 如何开始使用 RDF? (特别是对于关系数据库开发人员?)