首页 > php教程 > PHP开发 > 正文

ORACLE数据库模型概述

黄舟
发布: 2016-12-15 10:18:56
原创
2710人浏览过

一个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)!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号