欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

ORACLE数据库模型概述

程序员文章站 2022-05-22 17:56:45
...
一个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中文网(www.php.cn)!