All corrections
Substack April 20, 2026 at 04:44 AM

yinwang1.substack.com/p/database

2 corrections found

1
Claim
因为RDBMS表行宽度固定,无法存储数组等可变长度数据。
Correction

这把 RDBMS 的限制说得过头了。主流关系型数据库并不要求行必须固定宽度,而且可以直接存储可变长度值;有些 RDBMS(如 PostgreSQL)还原生支持数组列。

Full reasoning

这句话把关系型数据库说成了天生只能固定行宽、不能存数组或其他可变长度数据,但官方文档直接反驳了这一点。

  • PostgreSQL 官方文档列出 character varying(n)/varchar(n)“variable-length with limit”text“variable unlimited length”。这说明关系型数据库表中的列并不必然是固定宽度。
  • PostgreSQL 的数组文档又明确写道:“PostgreSQL allows columns of a table to be defined as variable-length multidimensional arrays.” 也就是说,至少在一个主流 RDBMS 中,表列不仅能存可变长度数据,而且还能直接存数组。

因此,把“RDBMS 表行宽度固定,无法存储数组等可变长度数据”表述成一般事实是不正确的。最多只能说:某些关系模型设计原则或某些数据库产品/实践不鼓励这样做;但把它说成 RDBMS 普遍做不到,与官方文档不符。

2 sources
2
Claim
考虑到 Prolog 和 Datalog 比 SQL 早出现(1972、1977 年与 1986 年)
Correction

这里把 SQL 的“出现时间”写错了。1986 年是 ANSI 首次发布 SQL 标准的年份,不是 SQL 首次出现的年份;IBM 资料显示 SQL 在 1970 年代就已被开发和引入。

Full reasoning

这句话把 1986 年写成了 SQL “早于/晚于其他语言”的出现时间,但官方历史资料表明:1986 年是 SQL 的 ANSI 标准化年份,不是 SQL 首次出现的年份

  • IBM 官方页面写明:SQL 是 IBM 科学家在 1970 年代开发并引入的;随后 1986 年由 ANSI 标准化、1987 年由 ISO 标准化。
  • Open Group 的 SQL 历史页面也明确区分了这两个时间点:SQL 早已由 IBM 的 System R 原型推进;1986 年只是“the first de jure SQL standard”发布的年份。

所以,把 SQL 的时间写成“1986 年”会把“语言出现/提出”与“成为 ANSI 标准”混为一谈。更准确的说法应是:SQL/SEQUEL 在 1970 年代就已出现,1986 年是 ANSI 首次标准化它的年份。

2 sources
  • What Is Structured Query Language (SQL)? | IBM

    In the 1970s, IBM scientists Donald Chamberlin and Raymond Boyce developed and introduced SQL... SQL was standardized by the American National Standards Institute (ANSI) in 1986 and the International Organization for Standardization (ISO) in 1987.

  • SQL: The Standard and the Language

    In 1986, the American National Standards Institute (ANSI) published the first de jure SQL standard, X3.135-1986; the International Organization for Standardization (ISO) published a technically-identical standard, ISO 9075-1987...

Model: OPENAI_GPT_5 Prompt: v1.16.0