什么是存储结构
数据库的主要功能就是存储数据,数据库存储数据库的方式一般称作存储结构。
Oracle 数据库的存储结构
Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构。
逻辑存储结构用来描述Oracle 内部组织和管理数据的方式。
物理存储结构用来描述Oracle 数据库在操作系统中的物理文件的组成方式。
Oracle数据库的逻辑存储结构
Oracle 数据库的逻辑存储结构是一种层次结构,主要由表空间——数据段——数据区——数据块组成。
Oracle 数据库(数据库本身也属于逻辑概念)由多个表空间组成,表空间又由多个段组成,段由多个数据区组成,数据区又由多个数据库块组成。
- 数据块:
数据块是Oracle 逻辑存储结构中最小的一个逻辑单元,也是执行数据库输入输出操作的最小存储单元。
通常Oracle 数据库是操作系统数据块的整数倍,Oracle 数据存放在“Oracle 数据块”中,而不是“操作系统块”中。
Oracle 数据库支持同一个数据库中使用多种大小的块,初始化参数DB_BLOCK_SIZE 确定数据块的标准大小,与标准块大小不同的块就是非标准块。
通过v$parameter 数据字典可以查询 Oracle标准数据块的大小。
- 数据区:
一组连续的Oracle 数据块构成数据区。数据区是Oracle存储分配的最小单位,它是表中数据增长的基本单位,设置一个表或索引的存储参数包含设置它的数据区大小。 - 数据段:
段是由一个或者多个数据区组成。当一个段中的所有数据空间被使用完后,Oracle 系统自动为其分配一个新的数据区。它不是存储空间的分配单位,而是用于存储表、索引、簇等占用空间的数据对象。一个段只属于一个特定的数据对象。
对象类型不同,数据段的类型也不同,通常有以下四种类型的数据段:
a.数据段:保存的是表中的数据记录。当创建一个表时,系统自动创建一个以该表的名字命名的数据段。
b.索引段:当创建索引后,系统自动创建一个以该索引的名字命名的索引段。
c.回滚段:用来回滚事务的数据空间。当一个事务处理开始的时候,系统为之分配回滚段,将修改之前的旧值保存在回滚段中,利用这些信息,可以撤销未提交的操作。
d.临时段:Oracle 系统为专门用于存储临时数据的表空间分配临时段。 - 表空间:
表空间是数据库的最大逻辑划分区域,表空间将相关的逻辑结构组合在一起(数据区、段)。任何数据对象在创建时都必须被指定存储在某个表空间中。
表空间与数据文件(物理存储结构)相对应,一个表空间可以包含一个或多个数据文件,一个数据文件只能属于一个表空间。
在创建数据的时候,Oracle 系统会自动创建多个默认表空间。
a.SYSTEM 表空间:
系统表空间。用于存放 Oracle 系统内部表和数据字典的数据,比如表名、列名、用户名等。
b.SYSAUX表空间:
是Oracle11g新增的表空间,是SYSTEM的辅助表空间,降低SYSTEM 的负荷。
c.UODO表空间:
撤销表空间,用于存储撤销信息。当所做的修改操作完成并执行提交命令之后,Oracle 根据系统设置的保留时间长度释放掉撤销表空间的部分空间(修改前的旧数据)。
d.USERS表空间:
用户表空间,Oracle 建议用户使用的表空间。
用户可以根据实际情况创建自定义表空间。
关于数据对象等:数据对象