数据库 -(行或记录,列或字段)?

37

在数据库术语中:

行和记录有什么区别?

同样,列和字段不是同一回事吗?

在博客 Joe Celko The SQL Apprentice 上,我注意到横幅提到它们是不同的东西。


1
这里有一个相关的问题在Meta上。 - Trisped
4
DBA.SE上有一场关于行与记录的广泛讨论。 - Nick Chammas
5个回答

44

行和记录可以认为是同一件事情。

字段和列是不同的,一个字段是行和列的交叉点。
例如:如果您的表有10行和10列,则有100个字段。

当您使用DDL语句创建表时,定义了列(元数据)。 当您使用DML语句添加行时,定义了行及其字段。


以下信息是否不正确?“(有时行被称为记录,列有时被称为字段。)”他的意思是当人们这样称呼它们时是不正确的吗?来源:http://www.asp.net/web-pages/tutorials/introducing-aspnet-web-pages-2/displaying-data - Clox
@Clox,我认为他的意思是人们有时会使用这个术语,但他并没有说它是否正确或错误。我倾向于同样使用行/记录,但对我来说列和字段是不同的。 - vc 74
1
好的,谢谢。那么我从现在开始会把“cells”称作“fields”。之所以会来到这里,只是因为我想知道它们被称作什么,因为我只从他写的内容中知道了“fields/records”。 - Clox
请注意,在Postgres和Oracle中,一个单独的列可以是一个记录。 - user330315

10

从更广义上讲,行和列是指矩阵结构。当数据库(不限于关系数据库)具有矩阵结构的数据时,可以借用这个术语,但可能会有更具体的术语。

例如,在关系数据库中,表始终是一个矩阵,因此表中的每个列都对应记录中的一个字段,而每个行对应一个记录:不同的概念指向同一个对象。

即使在NoSQL数据库中,也可以存在字段,通常情况下没有固定的模式(没有列),每行可以有不同数量的字段。

类似地,在非关系型数据库中,记录可以是复杂值:它可以包含具有多个不同值(不符合第一正则形式)的字段。否则,行(关系代数中的元组)包含每个字段的单个值。


4
正如之前回答这个问题时所述,行和记录可以互换使用。
列和字段也可以互换使用。请参阅以下文章:Column (database)。以下是该文章的一句话(截至本文撰写),它强调了这一点:
“术语字段经常与列交替使用,尽管许多人认为更正确的用法是使用字段(或字段值)来特别指代存在于一个行和一个列之间交叉点上的单个项目。”
以下是一些可能有用的附加背景信息:
在我的IT职业生涯中,作为分析师和程序员,我通常在编程和关系数据库环境中使用字段和记录,而不是列和行。我认为这来自于我在大学学习期间接受的指导,以及在学习关系数据库之前,我学习了位、字节、字段、记录、文件的基本数据层次结构。
在研究这个问题时,我发现在数据库术语中,将行和记录互换使用,将列和字段互换使用是常见做法,也可以说是正确的做法。但当我的研究表明,在数据库术语中,行和列比记录和字段更受欢迎时,我实际上感到非常惊讶。

“row”和“record”可以互换使用,这取决于数据库。在Postgres和Oracle中,单个列可以是一个记录。 - user330315

1
记录和字段这些术语早在关系型数据库出现之前就存在了,那时计算机化文件系统统治着持久性存储,大型机主导了计算机市场,DBA/数据分析师被称为DP(数据处理专家)。
一个包含数据的文件以二维矩阵形式组织,其中一条信息被称为字段(列),相关字段的集合被称为记录(行)。该数据文件类似于表格(没有规范化关系来管理内容),因此,在文件处理时使用的术语被继承下来。技术上来说,行<>记录,列<>字段。
--更多信息请参见:Database Systems: Design, Implementation & Management - Coroner(第1章第5节)

-5

记录和字段组成数据库表。电子表格中包含行和列。


3
我原以为元组和属性组成关系,进而构成数据库 :) - Conrad Frix
2
没有错,但是在关系型数据库的上下文中,“行”和“列”仍然是常用的术语。 - TJ Thind
行和列是常见的关系型数据库术语。据我所知,记录和字段来自于关系型数据库之前的数据库。 - fool4jesus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接