我知道,解决方案,如MySQL,PostgreSQL和MS SQL Server是关系数据库系统,以及非sql,,等等。是的非关系DBMS。

然而,有什么区别两种类型的系统?

外行人的条款是可取的。

谢谢。

有帮助吗?

解决方案

关系数据库具有数学基础(集合理论,关系理论),该数据库被蒸馏成SQL ==结构化查询语言。

NOSQL的多种形式(例如基于文档的,基于图形的,基于对象的,键值存储等)可能基于单个基础数学理论,也可能不是基于单一的基础。正如S. Lott正确指出的那样, 分层 数据存储确实确实具有数学基础。也可能会这样说 图数据库.

我不知道NOSQL数据库的通用查询语言。

其他提示

嗯,不太确定您的问题是什么。

在标题中,您询问了有关数据库(DB)的信息,而在文本正文中,您询问了有关数据库管理系统(DBMS)。两者完全不同,需要不同的答案。

DBMS是允许您访问DB的工具。

除了数据本身外,数据库是该数据如何构造的概念。

因此,就像您可以使用非OOO电动编译器或反之亦然的定向对象方法论一样,您可以在没有RDBMS的情况下设置关系数据库,或者使用RDBMS来存储非关系数据。

我将重点介绍关系数据库(RDB)的含义,并就系统对他人采取什么行动的讨论。

关系数据库(概念)是一个数据结构,可让您从不同的“表”或不同类型的数据存储库链接信息。数据存储库必须包含所谓的键或索引(该数据库允许唯一识别存储桶中的任何原子块)。其他数据存储库可能是指该键,以在其数据原子和指向密钥指向的原子之间创建链接。

非关系数据库仅存储数据,而无需显式和结构化机制将数据从不同的存储桶链接到彼此之间。

关于实施此类方案,如果您有一个带有索引的纸质文件,并且在其他纸质文件中,您可以参考以获取相关信息的索引,那么您已经实现了一个关系数据库,尽管很简单。因此,您会发现您甚至不需要计算机(当然,如果没有一个人的帮助,它很快就会变得乏味),同样,您也不需要RDBMS,尽管可以说是RDBMS是工作的正确工具。也就是说,对于那里的不同工具可以做什么,因此为作业选择合适的工具可能并不是那么简单。

我希望这是外行的术语,对您的理解有帮助。

您“知道”的大多数都是错误的。

首先,正如一些关系大师常规(有时甚至是强烈的)指出的那样,SQL实际上并不像许多人认为的那样与关系理论紧密地吻合。其次,“ nosql”内容的大多数差异与是否与关系有关。最后,很难说“ nosql”与SQL有何不同 两个都 代表了相当多的可能性。

您可以依靠的一个主要区别是,几乎所有支持SQL支持数据库本身触发器之类的东西的东西 - 即,您可以在数据库中设计规则,以确保数据始终在内部保持一致。例如,您可以设置内容,以便您的数据库断言一个人 必须 有一个地址。如果您这样做,每当您添加一个人时,它基本上会迫使您将该人与某个地址联系起来。您可能会添加一个新地址,也可以将它们与某些现有地址相关联,但是以一种或另一种方式,该人必须有一个地址。同样,如果您删除地址,它将迫使您要么删除当前地址上的所有人员,要么将每个地址与其他地址相关联。您可以为其他关系做同样的事情,例如说每个人都必须有一个母亲,每个办公室都必须有电话号码等。

请注意,这些事情也可以保证在原子上发生,因此,如果其他人在添加该人时看着数据库,他们要么根本看不到这个人,否则他们会看到该人 地址(或母亲等)

大多数NOSQL数据库都可以 不是 尝试在数据库中提供此类执法。在使用数据库的代码中,取决于您,以实施数据所需的任何关系。在大多数情况下,也可以看到仅部分正确的数据,因此,即使您有一个家谱,每个人都应该与父母相关联,也可能有时候您强加的任何约束都不会真正是执行。有些人会让您随意这样做。其他人则保证它只会暂时发生,尽管它可以/将持续多长时间才能开放。

关系数据库使用一个正式的系统谓的地址数据。基础物理实施是没有实质内容并可以优化对于某些行动,但它必须总是假设 关系模型.通俗地说,那只是说 我知道到底有多少价值(性)每个行(tuple)在我的桌子(相关的)有现在我想利用这一事实因此,彻底地并为这是极端的。 这就是的 真的 自然界的野兽。

因为我们显然产生了关系教育,如果你看非sql数据库的模式的关系模型,再次在门外汉的条款,第一个明显的区别是,没有关于假设的数值一排可包含以往作出的。这真是过分简化问题和不干净适用于复杂的物理模型中的每一个非sql数据库,但是它的顶峰的关系模型和一种假设,我们必须留下,或者,如果你愿意,最大的飞跃,我们必须做出。

我们可以同意两件事情是真实的每一个DBMS:它可以存储的任何种类的数据,并有足够的数学基础,以使它能够管理数据以任何方式可以想象的。现实是,你永远不要错误地把任何两点的测试,而是坚持什么样的实际DBMS是真的。在外行人的条款: 尊重的野兽!

(请注意,我已经避免了进行比较的(显然)以及建立标准,围绕关系模型,对许多种提供非sql数据库。如果你愿意,考虑非sql数据库作为一个伞期的任何DBMS不完全假设关系模型,在排除一切。差别太多,但这是主要的差异和一个我觉得会的大多数使用你来理解。)

尝试以一些提及一些技术的水平来解释这个问题

以MongoDB和传统的SQL进行比较,想象一下在Twitter上发布推文的情况。这推文包含9张图片。您如何存储此推文及其相应图片?

在传统关系SQL方面,您可以将推文和图片存储在单独的表中,并通过构建新表表示连接。

此外,您可以设置一个图像类型的字段,然后将9张图片划为二进制文档中,然后将其存储在该字段中。

使用MongoDB,您可以构建这样的文档(类似于关系SQL中的表概念):

{

"id":"XXX",

"user":"XXX",

"date":"xxxx-xx-xx",

"content":{

"text":"XXXX",

"picture":["p1.png","p2.png","p3.png"]

}

因此,我认为,主要区别是关于如何存储数据和它们之间关系的存储级别。

在此示例中,数据是推文和图片。关于它们之间的存储关系水平的不同机制在两者之间的差异中也起着重要作用。

我希望这个小例子有助于显示SQL和NOSQL(酸和碱)之间的差异。

这是有关Internet中NOSQL目标的图片链接:

http://icamchuwordpress-wordpress.stor.sinaapp.com/uploads/2015/01/DBC795F6F262E9D01FA01FA01FA0AB9B9B323B2DDDDD1_B.PNG

关系和非关系之间的差异正是如此。关系数据库体系结构提供了约束对象,例如主密钥,外键等,可以在关系中绑两个或多个表。这很好,因此我们将表标准化,即说明有关数据库代表的内容的拆分信息,一旦可以保持数据的完整性。

例如,假设您有一系列桌子,可以包含有关员工的信息。您无法从表中删除记录,而无需删除与其他表中此记录有关的所有记录。通过这种方式,您实现数据完整性。非关系数据库不提供此约束构建,从而使您可以实现数据完整性。

除非您不在前端应用程序中实现此约束,以填充数据库表的表格,否则您将实现可以与Wild West进行比较的混乱。

用外行术语来说,它是强烈的结构化与非结构化的,这意味着您对DB具有不同程度的适应性。索引中出现差异,特别是您需要确保某个参考索引可以链接到另一个项目 - >此关系。关系DB的更严格的结构来自这一要求。

请注意,NOSDB均提供了关系和非关系DB,以及一种查询两者的方法 http://www.alachisoft.com/nosdb/sql-cheat-sheet.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top