可以这么理解数据库的逻辑结构大于数据块
1.数据块是Oracle逻辑存储结构中的最小的逻辑单位,也是执行数据库操作的是最小的存储单位。
2.逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及其逻辑存储结构。逻辑存储结构是从逻辑的角度分析数据库的构成,是对数据存储结构在逻辑概念上的划分。
Oracle的逻辑存储结构是一种层次结构,主要由表空间,段,区间和数据块等概念组成。逻辑结构是面向用户的,当用户使用Oracle设计数据库时,其使用的就是逻辑存储结构。Oracle的逻辑存储结构中
所包含的多个结构对象从数据块到表空间形成了不同层次的粒度关系。
       数据库逻辑结构      Oracle数据库
     
      数据库逻辑结构      /    |      \
       表空间       表空间  表空间     表空间 
      逻辑对象       /    |    \
              表    索引   视图
                / \    \
        数据段          数据段  数据段  数据段   索引段               临时段     回滚段
                           /   \
      数据区间       数据区间   数据区间 
               /    \
      数据块       数据块    数据块    
 
3.从图中可以看出,Oracle数据库是由多个表空间组成的(数据库自身也就属于逻辑概念),而表空间又是由多个段组成的,段由多个数据区组成,数据区又是由多个数据块组成的。
4.Oracle数据存放在“Oracle 数据块”中,而不是“操作系统块”中。通常Oracle数据块是操作系统块的整数倍,如果操作系统块的大小是2048B,并且Oracle数据块的大小是8192B,则表示Oracle
数据块是由4个操作系统块构成那个。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BLOCK_SIZE中。另外,Oracle支持同一个数据库中使用多种大小的块,与标准块大小不同的块就是非标准块。
5.数据块中可以存放数据,索引数据和簇数据等,无论存放哪种类型的数据,其结构都是相同的。数据块是由块头,表目录,行目录,自由空间和行数据这5部分组成。
块头:存放数据块的基本信息,如块的物理地址,块所属段的物理地址,块所属的段的类型
表目录:存放表的相关信息。如果数据块中存放的是表数据,则表目录中存储有关表的相关信息
行目录:如果块中有行数据存在,则这些行数据将被记录在行目录中。这些信息包含行的地址等
自由空间:空余空间是一块中未被使用的区域,这片区域用于新行的插入已经存在的行的更新。
行数据:用于存储表数据和索引数据的地方,这部分空间已被数据行所占用
通常把块头,表目录,行目录这三个部分组合起来称为头部信息区,头部信息区不存在数据,它存放数据块的引导信息,起到引导系统读取数据的作用。所以头部信息若遭到破坏,则Oracle系统将无法读取这部分数据库。
另外,空余空间和行数据公共构成块的存储区,用于存放真正的数据记录。