![]() |
1
18
NoSQL是所有不同于标准SQL数据库的数据库的总括术语,例如MySQL、Microsoft SQL Server和PostgreSQL。 这些“标准”SQL数据库都是关系数据库,具有SQL查询语言的特性,并遵循 ACID properties . 这些性质基本上可以归结为 一致性 . NoSQL数据库是不同的,因为它不支持所谓“SQL数据库”的一个或多个关键特性:
这些特性大多是并行不悖的。 一致性一致性是大多数NoSQL数据库不同于SQL数据库的地方。您可以从SQL数据库中拔出插头,它将确保您的数据仍然是一致的和未损坏的。NoSQL数据库倾向于牺牲这种一致性以获得更好的可伸缩性。谷歌的Bigtable也做到了这一点。 关系数据SQL数据库围绕规范化的关系数据旋转。数据库确保这些关系保持有效和一致,无论您向它抛出什么。NoSQL数据库通常不支持关系,因为它们不支持执行这些关系的一致性。此外,当数据分布在多个服务器上时,关系数据对性能不利。 例外是 graph databases . 这些数据库被认为是NoSQL数据库,但具有关系数据的特性。事实上,这就是他们的目的! SQL语言SQL语言是专门为关系数据库(即所谓的“SQL数据库”)设计的。由于大多数NoSQL数据库与关系数据库非常不同,它们不需要SQL。另外,一些NoSQL数据库有一些不能用SQL表示的特性,因此需要不同的查询语言。 最后,但并非最不重要的是,NoSQL只是 流行语 . 它的基本意思是“除了阁楼上旧的、可靠的MySQL服务器之外的任何东西”,其中包括 很多 替代存储机制。即使是一个简单的文本文件也可以被认为是NoSQL解决方案:) |
![]() |
2
6
当人们说“NoSQL”时,他们通常的意思是“非关系”。据我所知,BigTable没有主键/外键、连接或任何类型的关系演算。 BigTable的查询语法包含“SELECT”和“WHERE”这两个词并不意味着它遵循关系数据库的原则。对于来自关系数据库的程序员来说,使单个实体类型匹配更为熟悉更为方便,或者说是一个“钩子”。 |
![]() |
3
0
好吧,这就是重点。他们确实有一种不是(t)SQL的语言。只有这样才有足够的理由被分类。 在所有NoSQL数据库(图、文档、大表…)中,您唯一应该看到的共同点是它们不响应SQL查询。 支持SQL对如何在内部组织数据以及可以使用的算法有很大的限制。NoSQL拒绝这些限制来实现替代算法,以改进作为完全遵从SQL的牺牲品的重要特性。 |
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
![]() |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
![]() |
Max J. · 用整数作为键将dict写入csv 2 年前 |