上一篇我们说到了Oracle服务器的结构以及相关的概念,现在我们来谈一谈Oracle的逻辑和物理结构,准确点说是指Oracle数据库的结构。
1.数据库的物理组件
数据库的物理组件是指从物理角度分析数据库的组成,也就是Oracle数据库创建后使用的操作系统物理文件。Oracle数据库的物理文件可分为3类,即数据文件、日志文件和控制文件。
数据文件(*.DBF)
数据文件(Data File)是用于存储数据库数据的文件。如表、索引数据等都存储在数据文件中。每个Oracle数据库有一个或多个物理数据文件。一个数据文件只能与一个数据库关联。数据文件以可检索的格式存储数据,这些数据可以通过SQL语句进行访问。
日志文件(*.LOG)
日志文件(Redo Log File)用于记录对数据库进行的修改信息,对数据库所作的全部修改都被记录在日志中,修改信息包括用户对数据的修改和管理员对数据库结构的修改。日志文件主要用于在数据库出现故障时实施数据库恢复。
控制文件(*.CTL)
控制文件(Control Files)是记录数据库物理结构的二进制文件。该文件包含维护和验证数据库完整性的必要信息。每个Oracle数据库都含有一个控制文件,它包含下列信息。
数据库名称和数据库唯一标识
当前日志顺序号
有关检查点的信息
数据文件和日志文件的路径和名称
数据库创建时间
2.数据库的逻辑组件
数据库的逻辑组件是从逻辑的角度分析数据库的组成。Oracle对于逻辑结构的描述是通过数据字典存储完成的。Oracle数据库的逻辑组件包括表空间、段、区、块和模式等。
表空间是数据库中最大的逻辑单位,一个Oracle数据库至少包含一个表空间。一个表空间包含一个或多个段。一个段由多个区组成。一个区由多个数据块组成,块是进行读写操作的最小单元。
表空间
数据库可以划分为一个或多个逻辑单位,该逻辑单位成为表空间(TABLESPACE)。Oracle使用表空间将相关的逻辑组件组合在一起,每个表控件是由一个或多个数据文件组成的,一个数据文件只能与一个表控件相联系,这是逻辑和物理的统一。数据库管理员可以创建若干个表空间,创建表空间时可以制定数据文件及其要分配的磁盘空间大小。新创建的表空间所分配的磁盘数据文件不包含任何数据。表空间的大小等于构成该表空间的所有数据文件大小的总和。
在每一个数据库中都有一个名为SYSTEM的表空间,即系统表空间。该表空间是在创建数据库或数据库安装时自动创建的,用于存储系统的数据字典表、系统程序单元、过程、函数、包和触发器等,也可以用于存储用户表、索引等对象。一个小型的数据库只需要一个SYSTEM表空间即可。
创建表空间的语法如下:CREATE TABLESPACE tablespacename
DATAFILE 'filename' [SIZE integer [K|M] ][AUTOEXTEND [OFF|ON]];
其中:
tablespacename是需创建的表空间名称。
DATAFILE指定组成表空间的一个或多个数据文件,当有多个数据文件时使用逗号分割。
filename是表空间中数据文件的路径和名称。
SIZE指定文件的大小,用K指定千字节大小,用M指定兆字节大小。
AUTOEXTEND自居用来启用或禁用数据文件的自动扩展。
例如,创建一个自动增长的表空间worktbs的SQL语句如下:CREATE TABLESPACE worktbs
DATAFILE 'D:\ORADATA\WORKTBS01.DBF'
SIZE 10M AUTOEXTEND ON;
段
段(SEGMENT)存在于表空间中,是包含于表空间中的一种指定类型的逻辑存储结构,段由一组区组成。按照段中所存储数据的特性以及为优化系统性能的需要,将段分成4类,即数据段、索引段、回退段、临时段。例如,对于每个表,Oracle都分配一个或多个区以构成该表的数据段;而对于每个索引,Oracle则分配一个或多个区以构成索引段。
区
区(EXTENT)是磁盘控件分配的最小单位。磁盘按区划分,每次至少分配一个区。区为段分配控件,他由连续的数据块组成。段主要由一个或多个区构成,当段创建时,它至少包含一个区,当段中的所有空间已完全使用时,系统自动为该段分配一个新区。区不能跨数据文件存在,只能存在于一个数据文件中。
数据块
数据块(DATA BLOCK)是数据库中最小的数据组织单位与管理单位,Oracle数据库中的数据存储于数据块中。数据块是Oracle服务器所能分配、读取或写入的最小存储单元。Oracle服务器以数据块为单位管理数据文件的存储空间。数据块的取值范围在2KB~64KB之间,其默认大小与Oracle版本有关。
模式
模式(SCHEMA)是对用户所创建的数据库对象的总称,在Oracle数据库中任何数据库对象都属于一个特定用户,一个用户及其所拥有的对象即称为模式。模式对象包括表、视图、索引、同义词、序列、过程和程序包等。一个用户与相通名称的模式相关联,因此,模式又称为用户模式。