就DBMS而言,元组和记录与文件和页面和块之间有什么区别?

what is the different between tuple & record and files & pages & blocks in term of DBMS?

在 DBMS 方面,tuple & record 和 file & pages & blocks 有什么区别?我真的很困惑讲师一起提到所有这些,以及他们每个人的工作。

[1]元组v/s行

在上下文中,完全相同的意思是不同的词。

元组,指的是一个有序列表,其中可能有重复的元素,而集合则包含所有无序列表。

元组示例:(1,5)

记录示例:{ "a" : 1, "b" : 5}

[2]File/Block/Page

的定义

文件:磁盘上由数据库创建并包含数据库数据的物理文件。数据文件可以位于操作系统文件系统中。

块:它是操作系统可以写入文件或从文件读取的最小数据单元。

页面:页面基本上是一个固定长度为 2KB 或 4KB 的虚拟块。

"tuple"的概念属于逻辑层次。 "record" 的概念属于 physical/implementation 级别。 "tuple" 的概念特别适用于关系数据库技术。 "record" 的概念在 DB 技术尚待发明的时代已经为 IT​​ 人员所熟知。

"file" 的概念属于文件管理系统的级别,通常是任何 OS 的高级组件。 "block" 的概念属于 设备 管理系统的级别,这些管理系统通常甚至不是 OS 的组件,而是 BIOS(因此概念是"lower-level"而不是"files")。 "page" 的概念可能不像某些人希望的那样准确和正式地定义。在我看来,它可以代表任何东西,从 "just a synonym for 'block'" 到 "some fixed number n of blocks with n>1" 到 "just any arbitrary number of blocks"。

在数据库管理系统中

一个元组是 Table 的单行。 块是 Table 中的列(实体)。 关系实例是一组有限的元组。

我认为:

元组和记录

tuplerecord是同义词,表示一行相关的table。也许 tuple 在 DBMS 中更学术,而 record 更日常。

文件

files 是一些数据文件,其中包含有关您的数据库的任何信息。

例如

PostgreSQL数据库中,如果你创建了一个名为company的数据库,那么在你的文件系统中,company就是一个目录(目录名不是company 但它 id 就像 11343).

之后,如果您在 company 中创建一个名为 employee 的 table。 PostgreSQL 将在 company 目录下创建一个 employee 文件(也使用其 id 作为名称)。

如果你在employee中插入一些tuples/records,数据将被写入employee文件。

页面和区块

pagesblocks 也是同义词。但是pages用于DBMS视图,blocks用于OS视图。

例如

tableemployee中有一些元组。但是元组首先包含在 pages 中,然后 pages 包含在 employee 文件中。像这样 picture.

如您所见,pagesblocks 是一些东西。