一个ORACLE数据库是数据的集合,被处理成一个单位。每个ORACLE数据库有一个物理结构和一个逻辑结构。
数据库物理结构是由构成数据库的操作系统文件所决定的。数据库的文件为数据库信息提供真正的物理存储。每一个ORACLE数据库是由三种类型的文件组成,即数据文件、日志文件和控制文件。
逻辑数据库结构是用户所涉及的数据库结构,一个ORACLE数据库的逻辑结构由下列因素决定:
(1) 一个或多个表空间
(2) 数据库模式对象
逻辑存储结构例如表空间用于支配一个数据库的物理空间如何使用,模式对象及它们之间的联系组成了一个数据库的关系设计。
一.数据库物理结构
ORACLE数据库由三种类型的物理文件组成,即数据文件、日志文件和控制文件.
1. 数据文件
每一个ORACLE数据库有一个或多个物理的数据文件(data file) 。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构的数据也是物理地存储在数据库的数据文件中。数据文件有下列特征:
(1) 一个数据文件仅与一个数据库相联系
(2) 一旦建立数据文件不能改变大小
(3) 一个表空间由一个或多个数据文件组成
数据文件中的数据在需要时可以读取并存储在 ORACLE 内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。
2. 日志文件
每一个数据库有由两个或多个日志文件(redo log file)构成的日志文件组,每一个日志文件用于收集数据库日志。
日志的主要功能是记录对数据库所做的修改,所以对数据库作的全部修改均被记录在日志中。日志文件主要是保护数据库以防止故障,为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log) 以便可在不同磁盘上维护多个相同的日志副本。
日志文件中的信息仅在系统故障或介质故障恢复数据库时使用。
3. 控制文件
每一个 ORACLE 数据库至少有一个控制文件(control file),它记录数据库的物理结构,包含的主要信息是:
(1) 数据库名
(2) 数据库数据文件和日志文件的名字和位置
(3) 数据库建立日期
每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。
2.3.2 数据库逻辑结构
数据库的逻辑结构包含表空间(table space)、段(segment)、区(extent)、数据块(block),
1. 表空间
一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作:
(1) 控制数据库数据的磁盘分配
(2) 将确定的空间份额分配给数据库用户
(3) 通过使单个表空间在线或离线,控制数据的可用性
(4) 执行部分数据库备份或恢复操作
(5) 为提高性能,跨越设备分配数据存储
数据库、表空间和数据文件之间的关系如图2.3-2所示。
每个数据库可逻辑划分为一个或多个表空间。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。
每一个ORACLE 数据库包含有一个名为SYSTEM 的表空间,该表空间在数据库建立时自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。
通过增加表空间的数据文件来扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。
DBA可以使ORACLE数据库中除SYSTEM表空间外的任何其他表空间在在线或离线(离线的该表空间不能有活动的回滚段)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线:
(1) 使部分数据不可用,而剩余的部分允许正常存取
(2) 执行离线的表空间备份
(3) 为了修改或维护一应用,使它和它的一组表临时不可用
包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在使用时,该表空间才可离线。
在数据字典中记录表空间的状态,在线还是离线。如果在数据库关闭时一表空间为离线,那么在下次数据库装配和重新打开后,它仍然保持离线。
当出现某些错误时,一个表空间可自动地由在线改变为离线。通过使用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。
ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间相联系。
ORACLE通过段、区和数据块等逻辑数据结构可更细地控制磁盘空间的使用。
2. 段
段(SEGMENT)包含表空间中一种指定类型的逻辑存储结构,是由一组区组成。在ORACLE数据库中有几种类型的段:数据段、索引段、回滚段和临时段。
数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。
索引段:每一个索引有一索引段,存储索引数据。
回滚段:是由 DBA 建立,用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。
临时段:当一个 SQL 语句需要临时工作区时,由 ORACLE 建立。当语句执行完毕,临时段的区退回给系统。
ORACLE对所有段的空间分配,以区为单位。
3. 区
一个区(EXTENT)是数据库存储空间分配的一个逻辑单位,它由连续的ORACLE数据块所组成。每一个段是由一个或多个区组成。当一段中的所有空间已完全使用时,ORACLE为该段分配一个新的区。
为了维护的目的,在数据库的每一段含有段标题块说明段的特征以及该段中的区目录。
4. 数据块
数据块(data block)是 ORACLE 管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。
以上就是ORACLE数据库模型概述的内容, 更多相关文章请关注PHP中文网(m.sbmmt.com)!