PostgreSQL 是 NoSQL 数据库吗?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/47942913/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-21 02:40:35  来源:igfitidea点击:

Is PostgreSQL a NoSQL database?

postgresqlnosql

提问by Shiva

I am getting confused about PostgreSQL. In some places people are saying it's NoSQL, and in some places people are saying it's notNoSQL. I have seen something Postgres Plus which is actual NoSQL.

我对 PostgreSQL 感到困惑。在某些地方人们说它是 NoSQL,而在某些地方人们说它不是NoSQL。我见过一些 Postgres Plus,它是真正的 NoSQL。

Can you tell me what is true?

你能告诉我什么是真的吗?

回答by Laurenz Albe

You have been confused my marketing and buzzwords.

你已经混淆了我的营销和流行语。

“NoSQL” is a buzzword describing a diverse collection of database systems that focus on “semi-structured” data (that do not fit well into a tabular representation), sharding and high concurrency at the expense of transactional integrity and consistency, the latter being among the basic tenets of relational database management systems (RDBMS).

“NoSQL”是一个流行词,描述了专注于“半结构化”数据(不适合表格表示)、分片和高并发性的多样化数据库系统集合,以牺牲事务完整性和一致性为代价,后者是关系数据库管理系统 (RDBMS) 的基本原则之一。

Since SQL is the language normally used to interact with an RDBMS, the term “NoSQL” is used as a name for all these systems. Perhaps the name was also chosen because SQL, being verbose and often hard to understand, evokes negative reactions in many programmers.

由于 SQL 是通常用于与 RDBMS 交互的语言,因此术语“NoSQL”被用作所有这些系统的名称。也许选择这个名字也是因为 SQL 冗长且难以理解,会引起许多程序员的负面反应。

Now PostgreSQL, like many other RDBMS, has added support for JSON data, which is the most popular format for semi-structured data commonly stored in NoSQL systems. Now you can say that PostgreSQL supports a certain feature commonly found in NoSQL databases.

现在 PostgreSQL 与许多其他 RDBMS 一样,增加了对 JSON 数据的支持,这是 NoSQL 系统中常用的半结构化数据最流行的格式。现在您可以说 PostgreSQL 支持 NoSQL 数据库中常见的某个功能。

Still, SQL is the only way to interact with a PostgreSQL database, so you couldn't call it a NoSQL database and keep a straight face unless you were in marketing.

尽管如此,SQL 是与 PostgreSQL 数据库交互的唯一方式,因此除非您从事市场营销,否则您不能称其为 NoSQL 数据库并保持板着脸。

Postgres Plus is a closed source fork of PostgreSQL, so the same applies to it.

Postgres Plus 是 PostgreSQL 的闭源分支,因此同样适用于它。

回答by Alexander V

PostgreSQL is not NoSQL.

PostgreSQL 不是 NoSQL。

PostgreSQL is a classical, relational database server (and syntax) supporting most of the SQL standards.

PostgreSQL 是一种经典的关系数据库服务器(和语法),支持大多数 SQL 标准。

On a sidenote, I suggest doing some research into the differences and advantages. They both have a solid place and time.

在旁注中,我建议对差异和优势进行一些研究。他们都有一个固定的地点和时间。

回答by Henrik

PostgreSQL prides itself in standards compliance. Its SQL implementation strongly conforms to the ANSI-SQL:2008 standard. It has full support for subqueries (including subselects in the FROM clause), read-committed and serializable transaction isolation levels. And while PostgreSQL has a fully relational system catalog which itself supports multiple schemas per database, its catalog is also accessible through the Information Schema as defined in the SQL standard.

PostgreSQL 以符合标准而自豪。它的 SQL 实现完全符合 ANSI-SQL:2008 标准。它完全支持子查询(包括 FROM 子句中的子选择)、读提交和可序列化事务隔离级别。虽然 PostgreSQL 有一个完全关系的系统目录,它本身支持每个数据库的多个模式,但它的目录也可以通过 SQL 标准中定义的信息模式访问。

Source

来源