列与字段:我是否错误地使用了这些术语?

Bra*_*adC 22 terminology fields

我在这里感到有点尴尬,我一直将术语“列”和“字段”完全互换使用,这在最近的技术讨论中引起了一些混乱。

但是,有人告诉我,这是不正确的,它应该是(将每个术语翻译成电子表格术语,忽略数据类型和所有其他使数据库有用的东西):

  • 数据库列:就像电子表格列
  • 数据库记录:就像一个电子表格行
  • 数据库字段:就像电子表格“单元格”(特定行的特定列)

这是正确的吗?我可以发誓,列和字段比这更可互换使用。我当然去过。

所以我们向表中添加字段,而是向表中添加,并且字段仅在谈论记录中的数据时才相关?

关于列与字段的其他想法?

编辑:澄清一下,当前上下文是 MS SQL Server。我在 SQL Server 之前的背景是 MS Access,这可能会影响我对这些术语的使用。

gvi*_*iew 34

关系数据库理论不包括字段一词的使用。EF Codd 博士撰写了一系列为 RDBMS 提供理论基础的论文,但从未使用过该术语。如果您想查看,可以阅读他在 1970 年发表开创性论文A Relational Model of Data for Large Shared Data Banks

使用域、表、属性、键和元组等术语。这样做的一个原因是,他的论文主要关注关系代数,而 Codd 认为特定实现在数据库中定义表的方式并不重要。供应商稍后会充实这一点。人们还必须了解,从历史上看,RDBMS 是从早于它们的现有分层和网络数据库演变而来的,并且 RDMBS 的内部工作仍然需要关注数据的组织和存储。

在常用中,您可以通过简单地进行一些谷歌搜索来轻松验证这一点,字段和列同一回事。

DBase、Access 和 Filemaker 等 PC 数据库通常使用“字段”而不是“列”。“属性”是另一个可以互换使用的术语。

例如,这里有一个指向 MS Access 手册的链接,该手册将“字段”添加到表中。很明显,在 MS Access 中,“字段”等同于“列”。

Dbase 和 Filemaker Pro 也是如此。

有时人们会将特定行中的特定值称为“字段”或更恰当地称为“字段值”,但在引用列或列等效概念时不会使用“字段”不正确。这确实会引起一定程度的混淆,因为人们多年来一直使用“领域”来表示不同的事物。在关系理论中——单个原子值被称为“数据”。

如果有人说“字段”是关系数据库中的一个值而不是一列,那是他们的意见,因为“字段”不是关系数据库白话的一部分。它们既没有对也没有错,但是,在整个数据库世界中,字段更常用于表示列。

话虽如此,项目和团队通常必须了解他们希望如何在项目中使用特定术语以避免混淆。

你没有错,但你也可能决定简单地遵循正在使用的约定,或者完全避免使用字段一词而支持“列”。对于关系数据库,“表”和“列”是 DDL 中存在的构建块,最好只使用这些术语,避免使用未使用或未明确定义的“字段”。

  • 我会向任何对 RDBMS 实践感兴趣的人推荐 Joe 的书。与他见过几次面,我并不感到惊讶,他会强烈支持避免因使用字段来表示不同的事物而造成的混乱。这并没有改变这个术语的历史,以及人们在他试图阻止人们采用 PC 数据库术语之前在数据库中使用“字段”作为列的事实。 (3认同)

Dan*_*ité 10

较旧的SQL:92指的fields是日期时间项的组件:

“日期时间项中的字段”,指定可以组成日期时间值的字段;日期时间值由这些字段的子集组成

此处的字段是年、月等……并且该术语field在文档的其余部分中似乎没有任何其他含义。

较新的 SQL:2003 标准有:

列、字段和属性

术语列、字段和属性以类似的方式分别指表、行类型和结构化类型的结构组件。由于表的结构由一列或多列组成,因此行类型的结构由一个或多个字段组成,结构类型的结构由一个或多个属性组成。每个结构元素,无论是列、字段还是属性,主要是一个名称与声明的类型配对。

然后:

F由字段描述符所描述。字段描述符包括:
— 字段的名称。
— F 的声明类型的数据类型描述符。
— F 在仅包含它的行类型中的序数位置。

这与定义为的列形成对比:

C由一列描述符描述。列描述符包括:
— 列的名称。
— 列的名称是否是依赖于实现的名称。
— 如果该列基于域,则该域的名称;否则,C 的声明类型的数据类型描述符。
— C的值(如果有)。
— C的可空性特征。
— C 在包含它的表中的序数位置。
... (和更多)

稍后,在介绍表格时:

表是具有一列或多列的行的集合。行是行类型的值。同一个表的每一行都具有相同的行类型。表中每一行的第 i 个字段的值就是表中该行的第 i 列的值。行是可以插入表和从表中删除的最小数据单元。

(强调我的)。这似乎支持您在问题中所写的内容:特定行的特定列


Vér*_*ace 6

有多少天使可以绕着大头针跳舞?

纠正你的人自己也可以被纠正。

  • 表 = 关系

  • 行 = 元组

  • 列 = 属性

  • 域 = 数据类型

请在此处查看有关关系数据库的 Wikipedia 条目。

我在一家航空公司工作,根据您是在与飞行员/空乘人员、工程师还是营销人员交谈,“飞行”一词可以以三种不同的方式使用。

  • 飞行员/乘务员:从基地起飞和返回的“飞行”(即两次起飞和两次着陆),
  • 工程师:一次起飞和一次着陆,可以是测试、维修、训练(即一个机场返回同一个机场)或“腿”,即一个机场到另一个机场——“平民”通常称之为飞行,如在“我明天要赶飞机回家”),

  • 营销:六个月(通常是旺季或淡季)在合同范围内从/到给定机场的“航班”系列。

电子表格类比对于 99.99% 的案例来说已经足够好了,即使是在合理的技术演讲中(除非是关系代数教授)。纠正你的人是否正确使用了“whom”这个词?99.99% 的人没有,这真的无所谓。