目录
Oracle中逻辑结构包括表空间、段、区、块
数据库由表空间构成
而表空间又是由段构成
而段又是由区构成
而区又是由Oracle数据块构成
如下图:

网上找找了一个更直观的图
块是用来管理存储空间的最基本的单位,也是最小的逻辑存储单位。块的大小由初始化参数 db_block_size 来决定,不同的 Oracle 版本的大小是不同的,但是数据库一旦创建,其大小便不可更改。虽然每个数据块可以存储不同类型的数据,但是每个数据块都具有一个相同的结构。
数据块结构包括5部分:
区是 Oracle 存储分配的最小单位,它是由一个或多个数据块组成的。一个或多个区组成一个段,也就是说段的大小都是由区的个数来决定。当一个段的空间使用完之后,Oracle 会自动为该段分配成一个新的区。
用户还能够通过执行下面的命令来回收表、索引等对象中未使用的区:
alter table table_name deallocate unused;
区中的 Oracle 数据块在逻辑上是相邻的,但在物理上可以分布在磁盘上的不同位置(RAID 条带化和文件系统实施会导致此现象)
段是一组盘区,它是一个独立的逻辑存储结构,用于存储具有独立存储结构对象的全部数据。段一般是数据库终端用户处理最小的存储单位,当段的数据区已满,Oracle 为其分配另一个数据区,段的数据区在磁盘上可能是不连续的。
表空间是 Oracle 最大的逻辑存储结构,与物理上的数据文件相对应,但是一个表空间可以拥有多个数据文件。
本文部分文字图片来源于网络。