"关系数据库"中的"关系"对我们意味着什么?

Val*_*lev 5 database relational-database

我知道,关系数据库是一个数据库,其中一个表中的字段链接到其他表中的行,类似这样.

但是我无法理解作为Web开发人员对我来说意味着什么!

据我所知,带有连接和嵌套选择的查询可以降低性能(尤其是具有数十个连接的drupal风格查询).更重要的是,对DB的任何查询都是瓶颈,然后你有很多用户需要缓存每个选择请求.

如果缓存每个选择请求,最好缓存简单请求而不是复杂请求.您可以缓存"select*from tbl1 where id = 123"和"select*from tbl2 where id = 456"或"select*from tbl1,tbl2 where ...",但是如果你选择第二种方式,你将会需要缓存每个对象组合 - 这并不酷.

好的,现在我们只使用非常简单的查询,例如"select*from tbl1 where id = 123""select id from tbl1 order by id limit 0,30"并缓存它们(或者我们只能缓存第一类查询,无论如何).有查询,而不是简单的INSERT,DELETE和UPDATE都是我们需要的,也是我们所用的!

我们可以看到,所有关系逻辑都是应用程序的主要语言,而不是SQL.那么,为什么我们需要所有这些关系的东西呢?他们的意思是什么?"关系型"有什么样的东西,其他类型没有,但需要它?如果我们不使用关系特性,为什么每个人仍然使用MySQL或任何关系数据库,即使他关心性能?

这种类型的数据库已成为标准.为什么?我没有线索.我几乎没有听说有人使用非关系数据库,除了GAE中的on.

我错过了什么吗?

Bil*_*win 13

如果你想了解关系是什么意思,我推荐CJ Date的" SQL和关系理论 " 一书.

在此上下文中的关系不是指关系.它是指关系它们基本上是被称为在数学理论,导致了哪些表关系模型.

关系数据库普遍存在的原因是它们是用于组织具有最小冗余的数据的最通用的解决方案.

有正当理由使用非关系解决方案.他们经常很好地解决数据管理的具体任务,但在其他领域却很薄弱.SQL和关系数据库达成妥协,充分解决了一系列问题,减少了弱点.

目前可用的其他不基于关系模型的技术列在" 下一代数据库"中.