Oracle的逻辑结构
Oracle数据库的逻辑结构组成如左图。
表空间是数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。
段是对象在数据库中实际占用的物理空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。
表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件,关于段可以指定扩展到哪个数据文件上面。
Oracle常见的段类型有:表、索引、回退和分区。
关于 Extent的翻译有多种解释,有的译作扩展,有的译作盘区。参照我参考书上的译名我把它也译为盘区。在一个段中可以存在多个区间,区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的最大区间数(Max Extent)或没有可用的磁盘空间可以申请。
Oracle数据块是Oracle最基本的存储单位,在建立数据库的时候指定,虽然在初始化文件中可见,但是不能修改。为了保证存取的速度,它是OS数据块的整数倍。Oracle的操作都是以块为基本单位,一个区间可以包含多个块,如果区间大小不是块大小的整数倍,Oracle实际也扩展到块的整数倍。