首页 php教程 PHP开发 ORACLE数据库模型概述

ORACLE数据库模型概述

Dec 15, 2016 am 10:18 AM

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


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1415
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
oracle打不开怎么办 oracle打不开怎么办 Apr 11, 2025 pm 10:06 PM

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

oracle游标关闭怎么解决 oracle游标关闭怎么解决 Apr 11, 2025 pm 10:18 PM

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

oracle怎么循环创建游标 oracle怎么循环创建游标 Apr 12, 2025 am 06:18 AM

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

oracle日志写满怎么办 oracle日志写满怎么办 Apr 12, 2025 am 06:09 AM

Oracle 日志文件写满时,可采用以下解决方案:1)清理旧日志文件;2)增加日志文件大小;3)增加日志文件组;4)设置自动日志管理;5)重新初始化数据库。在实施任何解决方案前,建议备份数据库以防数据丢失。

甲骨文在商业世界中的作用 甲骨文在商业世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

HDFS配置CentOS需要哪些步骤 HDFS配置CentOS需要哪些步骤 Apr 14, 2025 pm 06:42 PM

在CentOS系统上搭建Hadoop分布式文件系统(HDFS)需要多个步骤,本文提供一个简要的配置指南。一、前期准备安装JDK:在所有节点上安装JavaDevelopmentKit(JDK),版本需与Hadoop兼容。可从Oracle官网下载安装包。环境变量配置:编辑/etc/profile文件,设置Java和Hadoop的环境变量,使系统能够找到JDK和Hadoop的安装路径。二、安全配置:SSH免密登录生成SSH密钥:在每个节点上使用ssh-keygen命令

oracle数据库怎么停止 oracle数据库怎么停止 Apr 12, 2025 am 06:12 AM

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

oracle动态sql怎么创建 oracle动态sql怎么创建 Apr 12, 2025 am 06:06 AM

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。

See all articles