当前位置:首页 » 存储配置 » oracle数据存储结构

oracle数据存储结构

发布时间: 2023-07-07 01:43:37

㈠ Oracle数据库的一些基本常识

Oracle数据库的一些基本常识
一、Oracle所包含的组件:
在Oracle,数据库是指整个 Oracle RDBMS 环境,它包括以下组件:
1.Oracle 数据库进程和缓冲(实例)。
2.SYSTEM 表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。
3.其它由数据库管理员 (DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。
4.两个以上的联机恢复日志。
5.归档恢复日志(可选)。
6.其它文件(控制文件、Init.ora、Config.ora 等)。
每个 Oracle 数据库都在一个中央系统类目和数据字典上运行,它位于SYSTEM 表空间。
二、关于“日志”
Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。下面我们将大体上了解一下作为主要结构之一的“日志”:
每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在锋颂毁线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。
关于在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志樱毁文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。
关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:
1数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
2在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。
三、物理和逻辑存储结构:
Oracle RDBMS是由表空间组成的,而表空间又是由数银备据文件组成的。表空间数据文件被格式化为内部的块单位。块的大小,是由DBA在Oracle第一次创建的时候设置的,可以在512到8192个字节的范围内变动。当一个对象在Oracle表空间中创建的时候,用户用叫做长度的单位(初始长度((initial extent)、下一个长度(next extent)、最小长度(min extents)、以及最大长度(max extents))来标明该对象的空间大小。一个Oracle长度的大小可以变化,但是要包含一个由至少五个连续的块构成的链。
4.Oracle与Microsoft SQL Server比较下的联网协议:

㈡ oracle中的数据结构是那样的!

基本数据结构



表是关系数据库中的一个基本数据结构。表就是行的集合。每行(row)包含一个或多个列。

从Oracle8企业版以后,就提供了分区选件,它允许将表和索引进行分区。利用分区,Oracle可从以下两方面改善性能:

。Oracle不用去访问那些不满足查询条件的分区

。如果分区中所有数据都满足查询条件,那么Oracle将选择全部数据而不需要对每行均进行字句检查。

视图

视图(view)是Oracle中的一种由SQL语句构造的数据结构。SQL语句存储在数据库中,在查询中使用一个视图时,所存储的查询将得以执行,并向用户返回基表(base table)中的数据。

视图不包含数据,而是表示一些方法可以查看查询所指定的基表数据。

视图有以下几种用途:

。简化对多个表数据的访问

。可以保证表中数据的安全(如,创建包含WHERE子句的视图就可以限制访问表中的数据)

。将应用与表中某些特定的结构分离

视图建立在基表集合的基础之上,基表包括Oracle数据库中的事实表或者其他视图。如果视图中的任何一个基表进行修改,那么该视图将无法继续使用它们,因此视图本身也无法再使用。

索引

索引(index)是用来加快访问数据库中记录速度的一种数据结构。一个索引与一个特定的表相关,而且包含该表的一个或多个列的数据。

创建索引的SQL基本语法:

CREAT INDEX emp_idx1 on emp (ename,job);

其中,emp_idx1时索引名,emp是创建索引的表,ename和job时构成索引的列值。

除了索引数据以外,索引项中还为其相关行保存了ROWID.ROWID是获取数据库行的最快方式,因此随后数据库行的获取都是以这种最佳方式来完成。

Oracle中使用的4中类型的索引结构:标准B*-树索引、反向键索引、位图索引以及Oracle8i引入的基于函数的索引。Oracle使你可以对表中的数据进行聚合,从而改善性能。

其它数据结构

序列(Sequence)

在多用户数据库中经常出现的大问题,就是很难为键或标识符提供唯一的序号。在这种情况下,Oracle允许创建序列对象。

序列号可以用名字,一个递增值或有关序列的其他一些信息。序列独立于任何表,因此多个表可以使用同样的序列号。

同义词(Synonym)

所有的Oracle数据库的数据结构都存储在一个特定的模式(schema)。模式是和一个特定的用户名相关联的,所有对象都通过带有对象名的模式名得到引用。

例如,模式DEMO中有一个表名为EMP.如果想引用表EMP,那么应该通过完整名DEMO.EMP来引用。如果没有提供特定的模式名,那么Oracle假定该结构处于当前用户名的模式中。

集群(Cluster)

集群是一种能够改善获取性能的数据结构。集群和索引一样,不会影响表的逻辑视图。

散列集群(Hash Cluster)

数据设计

约束

约束(constraint)强制数据库中某些数据的完整性。当给某列增加一个约束,Oracle自动确保不满足此约束的数据是绝不能被接受的。

约束可以在创建或增加包括某列(通过关键字)的表时与列相关联,或者在表创建后通过SQL命令ALTER TABLE来实现与该列的关联。在Oracle8及以后的版本中支持以下5个约束类型:

NOT NULL

对于任何列都可以设为NOT NULL.如果在任何SQL操作中将一个NULL值赋给某个有NOT NULL约束的列,Oracle会为这个语句返回一个错误。

惟一性

主键

外键

校验

某些约束需要创建所以来支持。

约束可以是立即的或延迟的。立即约束(immediate constraint)只要有写操作就会立即对受约束列产生影响;而延迟约束(deferred constraint)只有在对约束行产生变化的SQL语句执行完时才有强制作用。

对于某个特定表的约束可设置成暂时挂起。当再次启动该约束操作时,再要求Oracle对该约束验证所有数据,或者只是对新数据应用约束。在现有表中增加约束时,可以指定是否对表中所有记录进行约束校验。

触发器

触发器是个代码块,当某个表中发生了某种类型的数据库事件时它就会被触发,有以下3种事件会导致触发器的触发:

。数据库UPDATE

。数据库INSERT

。数据库DELETE

例如,可以定义一个触发器,从而在用户改变某一行时,写一个定制的审查记录。

触发器是在行一级被定义的。可以指定触发器是对每一行触发,或者对触发该触发器事件的SQL语句触发。

触发器的触发有3个时机:
。在执行触发事件之前
。在执行触发事件之后
。非触发事件

将前两种时间选项与触发器所触发的行和语句的结合,则有4种可能的触发器实现:在语句之前;在行之前;在语句之后;在行之后。

任何触发器都可以有一个触发器限制(trigger restriction)。触发器限制是一个布尔表达式,如果其值为FALSE,那么就阻止触发器触发。

触发器的定义和存储都独立于使用它们的表。因为触发器包含逻辑,所以必须通过比SQL功能强的某种实现数据访问的语言来写。可以直接用PL/SQL或Java来写触发器,也可以通过调用其中任一种语言编写的现有存储过程来写触发器。

触发器触发是SQL语句执行的结果,该SQL语句修改了某个表中的行。触发触发器的操作可能是修改这个表中的数据,或者产生某些改变来触发其他表的触发器。这么做的最后结果可能是以某种方法修改了数据,但Oracle认为这是不合逻辑的。这些情况都会导致Oracle返回变异表(mutating table,被其他触发器修改的表)的运行时错误,或是返回约束表(constraining table,被其他约束修改的表)的运行时错误。

Oracle8i还引入了一组非常有用的系统事件触发器和用户事件触发器。现在可以在系统事件(如,数据库启动或关闭)中放置触发器,也可以在用户事件(登录和退出)中放置触发器。

㈢ Oracle存储结构正确的是()

B。

Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间(tablespace)、段(segment)、区(extent)和块(block)四种。

一个表空间由多个段构成;一个段由多个区构成,一个区由多个块构成。数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或多个数据文件,但一个数据文件只能属于一个表空间。

(3)oracle数据存储结构扩展阅读:

1、存储过程参数不带取值范围,in表示传入,out表示输出类型可以使用任意Oracle中的合法类型。

2、变量带取值范围,后面接分号

3、在判断语句前最好先用count(*)函数判断是否存在该条操作记录

4、用select 。。。into。。。给变量赋值

5、在代码中抛异常用 raise+异常名

㈣ 如何分析oracle数据库中的表结构

去这里看看??
数据结构被称为物理(存储)的数据结构在计算机中的表示(图片)。它包括一个数据元素表示的关系的表示。
物理结构,也就是由Oracle数据库所使用的操作系统的文件结构。对于数据库的物理结构文件,不同版本的Oracle,不同的操作系统平台上的数据库文件存放的目录结构不同的物理结构
其作用可分为三类:
数据日志文件的文件
控制文件
数据文件,数据文件,用于存储数据库中的数据,如表,索引等。当读取数据时,系统首先读取的数据从数据库文件,并存储到数据缓冲器,SGA。
重做日志文件,重做日志文件
所有的记录在数据库中的信息。这是三种类型的文件,文件中最复杂的,而且要保证数据库的安全性和数据库的备份和恢复文件直接。
控制文件
控制文件是一个二进制文件,用来描述数据库的物理结构,数据库只需要一个控制文件,控制文件的内容,包括:
>同步需要恢复的数据文件和日志文件的信息标识数据库和数据库的名称,唯一标识
数据库,检查点数量
/
a>
如果有,请记得采纳为满意的答复,谢谢你!我祝你幸福的生活!
vaela

㈤ oracle数据库的结构是什么

Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。

1. 物理结构

物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:

数据文件(Data File)
数据文件用来存储数据库中的全部数据,例如数据库表中的数据和索引数据.通常以为*.dbf格式,例如:userCIMS.dbf 。

日志文件(Redo Log File)
日志文件用于记录数据库所做的全部变更(如增加、删除、修改)、以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。

控制文件(Control File)
每个Oracle数据库都有相应的控制文件,它们是较小的二进制文件,用于记录数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。用于打开、存取数据库。名字通常为Ctrl*ctl 格式,如Ctrl1CIMS.ctl。

配置文件
配置文件记录Oracle数据库运行时的一些重要参数,如:数据块的大小,内存结构的配置等。名字通常为init*.ora 格式,如:initCIMS.ora 。

2 逻辑结构

Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.

一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。

表空间(tablespace)
Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。。

一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。

每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。

数据库块(database block)
数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。

区(extent)
区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。

段(segment)
段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。

模式对象(schema object)
Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等,关于它们将重点在后面章节介绍。

3.Oracle Server系统进程与内存结构

当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。

进程是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务.对ORACLE数据库治理系统来说,进程由用户进程、服务器进程和后台进程所组成。

当用户运行一个应用程序时,系统就为它建立一个用户进程。服务器进程处理与之相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的ORACLE请求服务。

为了提高系统性能,更好地实现多用户功能,ORACLE还在系统后台启动一些后台进程,用于数据库数据操作。

系统进程的后台进程主要包括:
SMON 系统监控进程:(system monitor)负责完成自动实例恢复和回收分类(sort)表空间。
PMON 进程监控进程:(PRocess monitor)实现用户进程故障恢复、清理内存区和释放该进程所需资源等。
DBWR 数据库写进程:数据库缓冲区的治理进程。
在它的治理下,数据库缓冲区中总保持有一定数量的自由缓冲块,以确保用户进程总能找到供其使用的自由缓冲块。
LGWR 日志文件写进程:是日志缓冲区的治理进程,负责把日志缓冲区中的日志项写入磁盘中的日志文件上。每个实例只有一个LGWR进程。
ARCH 归档进程:(archiver process)把已经填满的在线日志文件拷贝到一个指定的存储设备上。仅当日志文件组开关(switch)出现时,才进行ARCH操作。ARCH不是必须的,而只有当自动归档可使用或者当手工归档请求时才发出。
RECO 恢复进程:是在具有分布式选项时使用的一个进程,主要用于解决引用分布式事务时所出现的故障。它只能在答应分布式事务的系统中出现。
LCKn 封锁进程:用于并行服务器系统,主要完成实例之间的封锁。
内存结构(SGA)
SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。

SGA中内存根据存放信息的不同,可以分为如下几个区域:Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。

b. 日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。

c. 共享池Shared Pool:包含用来处理的SQL语句信息。它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。

Cursors:一些内存指针,执行待处理的SQL语句
其他信息区:除了上述几个信息区外,还包括一些进程之间的通讯信息(如封锁信息);在多线索服务器配置下,还有一些程序全局区的信息,请求队列和响应队列等。 本文来自: http://hi..com/ipbun/blog/item/3f75d7230a7f5ee698250a7c.html

热点内容
c语言动态内存 发布:2025-02-04 06:57:06 浏览:74
sql倒序查询 发布:2025-02-04 06:49:18 浏览:192
r7000p2021买哪个配置 发布:2025-02-04 06:40:17 浏览:965
如何消除微信小程序缓存 发布:2025-02-04 06:34:24 浏览:634
python27mysqldb 发布:2025-02-04 06:28:44 浏览:769
svn文件夹权限 发布:2025-02-04 06:23:47 浏览:902
师编程 发布:2025-02-04 06:22:51 浏览:170
加密类型wpa 发布:2025-02-04 06:21:27 浏览:178
互联网与云服务器 发布:2025-02-04 06:15:56 浏览:254
硬盘挖矿源码 发布:2025-02-04 06:15:45 浏览:76