表和视图有通用术语吗?

Pin*_*lga 23 query terminology view table

我正在寻找一个通用术语,例如数据库抽象,它包括所有表格数据结构,如数据库表、视图、表格查询结果。

据我了解,“实体”不是正确的术语,因为它对应于表,而不是视图,甚至不是查询。“结果”对于可修改的数据结构来说是违反直觉的。

在专业环境中哪个是合适的术语?

Ber*_*rgi 32

Postgres(以及关系代数)将它们称为关系- 您可以从中查询的行和列的表格事物。这包括表、视图、物化视图、临时表,甚至临时查询结果。

如果你真的只指关系,我会避免使用术语“数据库对象”,因为“数据库对象”还包括模式、索引、用户、序列、策略、列定义、类型、函数等等。数据库对象是使用DDL操作的对象,而(其中的数据)关系是使用DML操作的。


fdr*_*ger 21

“具有列和行的事物”是一种关系这是 Codd 在他的开创性论文中使用的词,开启了 RDBM 革命。

“可以改变但保留其特性的事物”是一个实体。当您可以找到代表实体的唯一键时,关系的单行代表一个实体。如果您有两个非唯一列:eventdate- 行将不会形成实体,因为更改任一属性都会完全更改行的含义。如果添加额外的列(例如id)或者设置date唯一,您将获得作为实体的行(无论它是视图还是表,还是联接的结果)。

数据库对象就是这样:由数据库服务器管理的东西。它可以是表或视图,也可以是用户或存储过程。

结果是 API 部分(例如 JDBC)的名称,它在某些其他编程环境(例如 Java 运行时)中表示结果(可能是关系或游标)。

但事实是——在真正的专业环境中,一切都会发生。人们把这些词搞混了并且通常不关心。哎呀,我不在乎。