就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 中的列(实体)。
关系实例是一组有限的元组。
我认为:
元组和记录
tuple
和record
是同义词,表示一行相关的table。也许 tuple
在 DBMS 中更学术,而 record
更日常。
文件
files
是一些数据文件,其中包含有关您的数据库的任何信息。
例如
在PostgreSQL
数据库中,如果你创建了一个名为company
的数据库,那么在你的文件系统中,company
就是一个目录(目录名不是company
但它 id
就像 11343
).
之后,如果您在 company
中创建一个名为 employee
的 table。 PostgreSQL
将在 company
目录下创建一个 employee
文件(也使用其 id 作为名称)。
如果你在employee
中插入一些tuples/records,数据将被写入employee
文件。
页面和区块
pages
和 blocks
也是同义词。但是pages
用于DBMS视图,blocks
用于OS视图。
例如
tableemployee
中有一些元组。但是元组首先包含在 pages
中,然后 pages
包含在 employee
文件中。像这样 picture.
如您所见,pages
和 blocks
是一些东西。
在 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 中的列(实体)。 关系实例是一组有限的元组。
我认为:
元组和记录
tuple
和record
是同义词,表示一行相关的table。也许 tuple
在 DBMS 中更学术,而 record
更日常。
文件
files
是一些数据文件,其中包含有关您的数据库的任何信息。
例如
在PostgreSQL
数据库中,如果你创建了一个名为company
的数据库,那么在你的文件系统中,company
就是一个目录(目录名不是company
但它 id
就像 11343
).
之后,如果您在 company
中创建一个名为 employee
的 table。 PostgreSQL
将在 company
目录下创建一个 employee
文件(也使用其 id 作为名称)。
如果你在employee
中插入一些tuples/records,数据将被写入employee
文件。
页面和区块
pages
和 blocks
也是同义词。但是pages
用于DBMS视图,blocks
用于OS视图。
例如
tableemployee
中有一些元组。但是元组首先包含在 pages
中,然后 pages
包含在 employee
文件中。像这样 picture.
如您所见,pages
和 blocks
是一些东西。