什么样的数据是高度关系的

时间:2011-06-22 21:26:33

标签: sql database nosql

我是数据库的新手,正在探索SQL与noSQL。

什么样的数据是高度关系的,并且受益于SQL以及哪种数据没有?

请提供一些例子。

2 个答案:

答案 0 :(得分:2)

你的问题似乎背负着一些误解。关系数据库中的关系是指一种数据模型 - 用于数据的表示系统。 如果您的DBMS支持该类型的信息,则可以关联地表示由事实(命题)组成的任何信息。任何信息的内在质量都不会使其或多或少地适合RDBMS。

SQL是一种(严格非关系型)数据库语言。

NOSQL是一个松散的术语,可以应用于任何不使用SQL或扩展SQL功能的数据库系统。 NOSQL和关系是相互排斥的概念。 NOSQL不一定是指“非关系型”,它只是意味着“不是SQL”。

答案 1 :(得分:2)

关系数据符合relation

的定义
  • 标题定义了一组有限的列。
  • 每列都有名称数据类型
  • 数据类型是一组命名的,有限的不同值。
  • 关系的给定行中的每一列都包含相应列的相应数据类型的一个值。
  • 行没有隐含的顺序。
  • 列没有隐含的顺序。
  • 不允许重复的行。

这些条件是所有Normal Forms关系的先决条件。也就是说,除非是关系,否则表格甚至不符合第一范式。如果表不是关系表,SQL中的许多操作都无法正常工作。

更实际的是,关系表必须在每一行上具有相同的属性,具有相同的名称,并且必须在一列或多列上定义主键,以便您可以单独引用每一行。

NoSQL实际上是用于标记和推广某些数据管理产品的营销术语。这不是计算机科学术语。

但如果您的意思是非关系,那么您可以看到允许非关系数据存储破坏上述一些规则:

  • 给定集合中的两个条目(行)可以是重复的。
  • 每个条目的字段可能不同。不同的数字,不同的名称,不同的数据类型。
  • 给定字段可以在两个条目中包含相同的值,但由于某种原因,该值被视为不同(例如,取决于另一个字段中的值)。
  • 条目顺序很重要(例如,假设条目按时间顺序排列)。
  • 字段顺序很重要(例如,假设第一个字段是某种键)。

但是通过违反这些规则,你失去了关系运作的基础。