# 附录 M。词汇表
这是 PostgreSQL 和一般关系数据库系统上下文中的术语及其含义的列表。
酸
原子性,一致性,隔离, 和耐用性.数据库事务的这组属性旨在保证并发操作的有效性,甚至在发生错误、电源故障等情况下也是如此。
聚合函数(例程)
一种*功能*结合(聚集体) 多个输入值,例如通过计数、平均或相加,产生单个输出值。
有关详细信息,请参阅第 9.21 节.
也可以看看窗口函数(例程).
解析函数
看窗口函数(例程).
分析(操作)
从数据中收集统计数据的过程表和别的关系帮助查询计划器决定如何执行查询.
(不要将此术语与分析
选项解释命令。)
有关详细信息,请参阅分析.
原子
参考一个基准:它的价值不能分解成更小的组成部分。
原子性
一个财产*交易*它的所有操作要么作为一个单元完成,要么没有。此外,如果在事务执行期间发生系统故障,恢复后将看不到部分结果。这是 ACID 属性之一。
属性
在 a 中找到具有特定名称和数据类型的元素元组.
自动真空(过程)
有关详细信息,请参阅第 25.1.6 节.
后端(进程)
后台工作者(进程)
进程内实例,它运行系统或用户提供的代码。用作 PostgreSQL 中多个功能的基础架构,例如逻辑复制和并行查询.此外,*扩展*可以添加自定义后台工作进程。
有关详细信息,请参阅第 48 章.
后台编写器(进程)
写脏的进程*数据页从共享内存*到文件系统。它会定期唤醒,但仅在短时间内工作,以便随着时间的推移分配其昂贵的 I/O 活动,以避免产生可能阻塞其他进程的更大 I/O 峰值。
有关详细信息,请参阅第 20.4.5 节.
基础备份
所有的二进制副本*数据库集群*文件。它是由工具生成的皮克_基本备份.结合 WAL 文件,它可以用作恢复、日志传送或流复制的起点。
膨胀
数据页中不包含当前行版本的空间,例如未使用的(空闲)空间或过时的行版本。
投掷
一个转换*基准*从其当前数据类型转换为另一种数据类型。
有关详细信息,请参阅创建演员表.
目录
SQL 标准使用这个术语来表示所谓的*数据库*在 PostgreSQL 的术语中。
(不要将此术语与系统目录)。
有关详细信息,请参阅第 23.1 节.
检查约束
一种约束定义在关系它限制了一个或多个允许的值属性.检查约束可以引用关系中同一行的任何属性,但不能引用同一关系或其他关系的其他行。
有关详细信息,请参阅第 5.4 节.
检查点
中的一个点沃尔保证堆和索引数据文件已使用来自的所有信息更新的顺序共享内存在该检查点之前修改;一种检查点记录被写入并刷新到 WAL 以标记该点。
检查点也是执行到达上述检查点所需的所有操作的行为。当满足预定义的条件时启动此过程,例如经过了指定的时间量,或者已经写入了一定量的记录;或者它可以由用户使用命令调用检查点
.
有关详细信息,请参阅第 30.5 节.
检查指针(进程)
负责执行检查点的专门进程。
类(古)
看关系.
客户(进程)
任何进程,可能是远程的,建立一个会议经过连接对一个实例与一个互动数据库.
柱子
犯罪
最终确定的行为交易内数据库,这使其对其他交易可见并确保其耐用性.
有关详细信息,请参阅犯罪.
并发
多个独立操作发生在*数据库同时。在 PostgreSQL 中,并发由多版本并发控制*机制。
联系
客户端进程和客户端之间建立的通信线路后端过程,通常通过网络,支持会议.该术语有时用作会话的同义词。
有关详细信息,请参阅第 20.3 节.
一致性
数据中的属性数据库始终符合完整性约束.交易可能会在提交之前暂时违反某些约束,但如果在提交时此类违反未解决,则此类交易将自动回滚.这是 ACID 属性之一。
约束
对允许的数据值的限制桌子,或在 a 的属性中领域.
有关详细信息,请参阅第 5.4 节.
数据区
看数据目录.
数据库
命名集合本地 SQL 对象.
有关详细信息,请参阅第 23.1 节.
数据库集群
数据库和全局 SQL 对象的集合,以及它们常见的静态和动态元数据。有时称为簇.
在 PostgreSQL 中,术语簇有时也用来指代一个实例。(不要将此术语与 SQL 命令混淆簇
.)
数据库服务器
看实例.
数据目录
文件系统上的基目录服务器包含与一个关联的所有数据文件和子目录数据库集群(除了表空间, 并且可选沃尔)。环境变量PGDATA
通常用来指数据目录。
一种*簇*的存储空间包括数据目录和任何额外的表空间。
有关详细信息,请参阅第 70.1 节.
资料页
用于存储关系数据的基本结构。所有页面的大小相同。数据页通常存储在磁盘上,每个都在一个特定的文件中,并且可以读取到共享缓冲区在哪里可以修改,成为肮脏的.它们在写入磁盘时变得干净。最初仅存在于内存中的新页面在写入之前也是脏的。
基准
SQL 数据类型的一个值的内部表示。
删除
有关详细信息,请参阅删除.
耐用性
保证,一旦交易已经坚定的,即使在系统故障或崩溃后,更改仍然存在。这是 ACID 属性之一。
时代
看交易编号.
延期
一个软件附加包,可以安装在*实例*获得额外的功能。
有关详细信息,请参阅第 38.17 节.
文件段
存储给定数据的物理文件关系.文件段的大小受配置值(通常为 1 GB)的限制,因此如果关系超过该大小,则将其拆分为多个段。
有关详细信息,请参阅第 70.1 节.
(不要将此术语与类似术语混淆WAL 段)。
外部数据包装器
一种表示不包含在本地数据中的数据的方法数据库使它看起来好像在本地表.使用外部数据包装器,可以定义一个国外服务器和外国表.
有关详细信息,请参阅创建外部数据包装器.
外键
一种约束定义在一个或多个列在一个桌子这需要那些值列识别零或一排在另一个(或,很少,相同)桌子.
国外服务器
命名集合*外国表都使用相同的外来数据包装器*并具有其他共同的配置值。
有关详细信息,请参阅创建服务器.
外部表(关系)
一种关系这似乎有行和列类似于普通的桌子,但将通过其转发数据请求外来数据包装器,这将返回结果集根据定义的结构外表.
有关详细信息,请参阅创建外表.
叉
存储关系的每个单独的分段文件集。这主叉是实际数据所在的位置。元数据还存在两个辅助分支:自由空间地图和能见度图.未记录的关系也有一个初始化叉.
自由空间图(分叉)
一种存储结构,用于保存有关表主分支的每个数据页的元数据。每个页面的可用空间映射条目存储可用于未来元组的可用空间量,并且其结构可以有效地搜索给定大小的新元组的可用空间。
有关详细信息,请参阅第 70.3 节.
功能(例程)
一种接收零个或多个参数、返回零个或多个输出值并被限制在一个事务中运行的例程。函数作为查询的一部分被调用,例如通过选择
.某些函数可以返回套;那些被称为设置返回函数.
函数也可用于*触发器*调用。
有关详细信息,请参阅创建函数.
授予
一个 SQL 命令,用于允许用户要么角色访问特定对象数据库.
有关详细信息,请参阅授予.
堆
包含的值排属性(即数据)关系.堆内实现一个或多个文件段在关系的主叉.
主持人
通过网络与其他计算机通信的计算机。这有时用作同义词服务器.它也用于指代计算机*客户进程*跑步。
索引(关系)
一种关系包含从桌子要么物化视图.其内部结构支持对原始数据的快速检索和访问。
有关详细信息,请参阅创建索引.
插入
用于将新数据添加到桌子.
有关详细信息,请参阅插入.
实例
一组使用公共共享内存区域进行通信的后端和辅助进程。一*邮政局长进程管理实例;一个实例管理一个数据库集群及其所有数据库。许多实例可以在同一个上运行服务器*只要它们的 TCP 端口不冲突。
该实例处理 DBMS 的所有关键特性:对文件和共享内存的读写访问、ACID 属性的保证、连接到客户进程、权限验证、崩溃恢复、复制等。
隔离
交易效果不可见的属性*并发事务*在它提交之前。这是 ACID 属性之一。
有关详细信息,请参阅第 13.2 节.
加入
中使用的操作和 SQL 关键字查询用于组合来自多个的数据关系.
钥匙
一种识别方法*排在一个桌子或其他关系通过包含在一个或多个中的值属性*在那种关系中。
锁
一种允许进程限制或阻止同时访问资源的机制。
日志文件
日志文件包含有关事件的人类可读文本行。示例包括登录失败、长时间运行的查询等。
有关详细信息,请参阅第 25.3 节.
已记录
一种桌子被认为登录如果对它的更改发送到沃尔.默认情况下,记录所有常规表。一个表可以指定为*未记录的*在创建时或通过更改表
命令。
记录器(进程)
如果激活,该进程将有关数据库事件的信息写入当前日志文件.当达到特定的时间或容量相关标准时,会创建一个新的日志文件。也被称为系统记录器.
有关详细信息,请参阅第 20.8 节.
日志记录
一个古老的术语沃尔记录.
主(服务器)
看主要(服务器).
物化
某些信息已预先计算并存储以供以后使用而不是即时计算的属性。
该术语用于物化视图,这意味着从视图查询中派生的数据与数据源分开存储在磁盘上。
该术语还用于指代一些多步查询,表示执行给定步骤产生的数据存储在内存中(有可能溢出到磁盘),以便另一个步骤可以多次读取。
物化视图(关系)
一种关系由一个定义选择
声明(就像一个看法),但以与 a 相同的方式存储数据*桌子*做。它不能通过修改插入
,更新
, 要么删除
操作。
有关详细信息,请参阅创建物化视图.
多版本并发控制(MVCC)
一种机制,旨在允许多个*交易在没有一个进程导致其他进程停止的情况下读取和写入相同的行。在 PostgreSQL 中,MVCC 是通过创建副本来实现的(版本) 的元组*当它们被修改时;在可以看到旧版本的事务终止后,需要删除这些旧版本。
空值
不存在的概念是关系数据库理论的核心原则。它表示没有确定的值。
优化器
看查询规划器.
并行查询
处理执行部分的能力*询问*利用具有多个 CPU 的服务器上的并行进程。
分割
较大集合的几个不相交(不重叠)的子集之一。
参考一个分区表:其中一张表,每张表都包含分区表的部分数据,据说是父母.分区本身就是一张表,所以也可以直接查询;同时,分区有时可以是分区表,允许创建层次结构。
参考一个窗口函数在一个询问,分区是用户定义的标准,用于识别哪个相邻*行的查询的结果集*可以通过函数来考虑。
分区表(关系)
一种关系这在语义上与 a 相同桌子, 但其存储分布在多个分区.
邮政局长(过程)
的第一个过程实例.它启动和管理其他辅助进程并创建*后端进程*一经请求。
有关详细信息,请参阅第 19.3 节.
首要的关键
一个特殊情况*唯一约束定义在桌子或其他关系这也保证了所有的属性内首要的关键没有空值*价值观。顾名思义,每个表只能有一个主键,尽管可能有多个唯一约束也没有可空属性。
主要(服务器)
当两个或更多数据库通过链接复制, 这服务器被认为是权威的信息来源被称为基本的,也称为掌握.
程序(例程)
一种例行公事。它们的独特之处在于它们不返回值,并且允许它们进行交易语句,例如犯罪
和回滚
.它们通过称呼
命令。
有关详细信息,请参阅创建过程.
询问
客户端发送给一个请求后端,通常用于返回结果或修改数据库中的数据。
查询规划器
PostgreSQL 中专门用于确定 (规划) 最有效的执行方式查询.也被称为查询优化器,优化器,或者简单地说规划师.
记录
看元组.
回收
看WAL 文件.
参照完整性
一种将数据限制在一个中的方法关系由一个外键因此它必须在另一个中具有匹配的数据关系.
关系
一个对象中所有对象的总称数据库有一个名字和一个列表属性以特定顺序定义。表,序列,意见,外国表,物化视图, 复合类型, 和*索引*都是关系。
更一般地说,关系是一组元组。例如,查询的结果也是一个关系。
在 PostgreSQL 中,班级是一个古老的同义词关系.
副本(服务器)
一种*数据库与一个配对基本的数据库,并且正在维护部分或全部主数据库数据的副本。这样做的首要原因是允许更多地访问该数据,并在发生以下情况时保持数据的可用性基本的*变得不可用。
复制
复制数据的行为服务器到另一个称为 a 的服务器上复制品.这可以采取以下形式物理复制,其中来自一台服务器的所有文件更改都被逐字复制,或者逻辑复制其中定义的数据更改子集使用更高级别的表示来传达。
结果集
一种*关系从一个传输后端进程到一个客户*在 SQL 命令完成后,通常是选择
但它可以是一个插入
,更新
, 要么删除
命令如果返回
条款被指定。
结果集是一个关系这一事实意味着一个查询可以在另一个查询的定义中使用,成为一个子查询.
撤销
有关详细信息,请参阅撤销.
角色
访问权限的集合实例.角色本身就是可以授予其他角色的特权。这通常是为了方便或确保在多个*用户*需要相同的权限。
有关详细信息,请参阅创建角色.
回滚
撤消从开始执行的所有操作的命令交易.
有关详细信息,请参阅回滚.
常规
存储在数据库系统中的一组定义的指令,可以调用执行。例程可以用多种编程语言编写。套路可以职能(包括集合返回函数和触发函数),聚合函数, 和程序.
许多例程已经在 PostgreSQL 本身中定义,但也可以添加用户定义的例程。
排
看元组.
保存点
步骤序列中的特殊标记交易.在此时间点之后的数据修改可能会恢复到保存点的时间。
有关详细信息,请参阅保存点.
架构
架构是一个命名空间SQL 对象, 它们都位于同一个数据库.每个 SQL 对象必须恰好位于一个模式中。
所有系统定义的 SQL 对象都驻留在模式中pg_catalog
.
更一般地,术语图式用于表示所有数据描述(桌子定义,约束,评论等)对于给定的*数据库*或其子集。
有关详细信息,请参阅第 5.9 节.
分割
看文件段.
选择
用于请求数据的 SQL 命令数据库.一般,选择
命令预计不会修改*数据库无论如何,但有可能职能*在查询中调用可能会产生修改数据的副作用。
有关详细信息,请参阅选择.
序列(关系)
一种用于生成值的关系。通常,生成的值是连续的非重复数字。它们通常用于生成代理*首要的关键*价值观。
服务器
安装 PostgreSQL 的计算机实例跑步。术语服务器表示真正的硬件、容器或虚拟机.
该术语有时用于指代实例或主机。
会议
允许客户端和后端交互的状态,通过联系.
共享内存
由一个共同的进程使用的 RAM实例.它反映了部分数据库文件,提供了一个瞬态区域WAL 记录, 并存储额外的公共信息。请注意,共享内存属于完整实例,而不是单个数据库。
共享内存的最大部分被称为共享缓冲区用于镜像部分数据文件,组织成页面。当一个页面被修改时,它被称为脏页,直到它被写回文件系统。
有关详细信息,请参阅第 20.4.1 节.
SQL 对象
任何可以创建的对象创造
命令。大多数对象特定于一个数据库,通常称为本地对象.
大多数本地对象驻留在特定的图式在它们包含的数据库中,例如关系(所有类型),例行公事(所有类型)、数据类型等。同一模式中相同类型的此类对象的名称强制唯一。
也存在不驻留在模式中的本地对象;一些例子是扩展,数据类型转换, 和外国数据包装器.相同类型的此类对象的名称在数据库中被强制为唯一。
其他对象类型,例如角色,表空间、复制源、逻辑复制订阅和数据库本身不是本地 SQL 对象,因为它们完全存在于任何特定数据库之外;他们叫全局对象.此类对象的名称在整个数据库集群中被强制要求是唯一的。
有关详细信息,请参阅第 23.1 节.
SQL 标准
一系列定义 SQL 语言的文档。
备用(服务器)
看副本(服务器).
统计收集器(进程)
此过程收集有关*实例*的活动。
有关详细信息,请参阅第 28.2 节.
系统目录
一个集合表它描述了所有的结构SQL 对象的实例。系统目录驻留在架构中pg_catalog
.这些表格包含内部表示的数据,通常不被认为对用户检查有用;一些用户友好的意见,也在模式中pg_catalog
, 提供对其中一些信息的更方便的访问,而模式中存在其他表和视图信息模式
(看第37章) 公开了一些相同和额外的信息,如SQL 标准.
有关详细信息,请参阅第 5.9 节.
桌子
一个集合元组具有共同的数据结构(相同数量的属性,以相同的顺序,每个位置具有相同的名称和类型)。表是最常见的形式*关系*在 PostgreSQL 中。
有关详细信息,请参阅创建表.
表空间
服务器文件系统上的命名位置。全部*SQL 对象这需要超出其定义的存储系统目录*必须属于单个表空间。最初,数据库集群包含一个可用的表空间,该表空间用作所有 SQL 对象的默认值,称为pg_default
.
有关详细信息,请参阅第 23.6 节.
临时表
表存在于一个生命周期会议或一个交易,在创建时指定。其中的数据对其他会话不可见,并且不登录.临时表通常用于存储多步操作的中间数据。
有关详细信息,请参阅创建表.
吐司
一种将表行的大属性拆分并存储在辅助表中的机制,称为吐司表.每个具有大属性的关系都有自己的 TOAST 表。
有关详细信息,请参阅第 70.2 节.
交易
必须作为单个命令的组合*原子命令:他们作为一个整体成功或全部失败,并且他们的效果对其他人不可见会话*直到事务完成,甚至可能更晚,这取决于隔离级别。
有关详细信息,请参阅第 13.2 节.
交易编号
每个事务在第一次导致数据库修改时收到的唯一的、按顺序分配的数字标识符。经常缩写为xid.当存储在磁盘上时,xid 只有 32 位宽,因此只能生成大约 40 亿个写入事务 ID;允许系统运行更长的时间,时代使用,也是 32 位宽。当计数器达到最大 xid 值时,它会重新开始3
(下面的值是保留的)并且纪元值加一。在某些情况下,epoch 和 xid 值一起被视为单个 64 位值。
有关详细信息,请参阅第 8.19 节.
每秒事务数 (TPS)
每秒执行的平均事务数,在测量运行的所有活动会话中总计。这被用作实例性能特征的度量。
扳机
一种功能可以定义为在某个操作(插入
,更新
,删除
,截短
) 应用于关系.触发器在同一个内部执行*交易*作为调用它的语句,如果函数失败,那么调用语句也会失败。
有关详细信息,请参阅创建触发器.
元组
一个集合属性以固定的顺序。该顺序可以由桌子(或其他关系) 包含元组的位置,在这种情况下,元组通常称为排.它也可以由结果集的结构来定义,在这种情况下,它有时被称为记录.
唯一约束
一种*约束定义在关系*它限制了一个列或列组合中允许的值,以便每个值或值组合只能在关系中出现一次——也就是说,关系中没有其他行包含等于这些值的值。
因为*空值*不认为彼此相等,在不违反唯一约束的情况下,允许存在多个具有空值的行。
未记录
某些财产关系对它们的更改不会反映在沃尔.这会禁用这些关系的复制和崩溃恢复。
未记录表的主要用途是存储必须跨进程共享的临时工作数据。
*临时表*始终未记录。
更新
用于修改的 SQL 命令行可能已经存在于指定的桌子.它不能创建或删除行。
有关详细信息,请参阅更新.
用户
一种*角色*有登录
特权。
用户映射
本地登录凭证的翻译数据库到由 a 定义的远程数据系统中的凭据外来数据包装器.
有关详细信息,请参阅创建用户映射.
真空
删除过时的过程元组版本从表或物化视图,以及 PostgreSQL 实现所需的其他密切相关的处理MVCC.这可以通过使用真空
命令,但也可以通过自动处理*自动真空*过程。
有关详细信息,请参阅第 25.1 节.
看法
一种*关系*由一个定义选择
声明,但没有自己的存储。每当查询引用视图时,视图的定义都会被替换到查询中,就好像用户将其键入为子查询而不是视图的名称一样。
有关详细信息,请参阅创建视图.
能见度图(分叉)
一种存储结构,用于保存有关表主分支的每个数据页的元数据。每个页面的可见性映射条目存储两个位:第一个 (全可见
) 表示页面中的所有元组对所有事务都是可见的。第二个 (全冻
) 表示页面中的所有元组都被标记为冻结。
沃尔
看预写日志.
WAL 归档器(进程)
保存副本的过程*WAL 文件用于创建备份或保存复制品*当前的。
有关详细信息,请参阅第 26.3 节.
WAL 文件
也被称为WAL 段或者WAL 段文件.每个提供存储空间的按顺序编号的文件沃尔.这些文件都具有相同的预定义大小,并按顺序写入,在多个同时会话中发生变化时散布变化。如果系统崩溃,则按顺序读取文件,并重播每个更改以将系统恢复到崩溃前的状态。
每个 WAL 文件都可以在一个检查点将其中的所有更改写入相应的数据文件。释放文件可以通过删除它来完成,也可以通过更改其名称以便将来使用它来完成,这称为回收.
有关详细信息,请参阅第 30.6 节.
沃尔记录
单个数据更改的低级描述。它包含重新执行数据更改的足够信息(重播) 以防系统故障导致更改丢失。WAL 记录使用不可打印的二进制格式。
有关详细信息,请参阅第 30.6 节.
WAL 段
看WAL 文件.
WAL 编写器(进程)
有关详细信息,请参阅第 20.5 节.
窗口函数(例程)
一种功能用于一个询问适用于分割查询的结果集;该函数的结果基于在*行*相同的分区或框架。
全部聚合函数可以用作窗口函数,但窗口函数也可以用于,例如,为分区中的每一行提供排名。也被称为解析函数.
有关详细信息,请参阅第 3.5 节.
预写日志