oracle数据库应用与开发_第1页
oracle数据库应用与开发_第2页
oracle数据库应用与开发_第3页
oracle数据库应用与开发_第4页
oracle数据库应用与开发_第5页
已阅读5页,还剩192页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Orac1e魏库系统

教案

口录

目录

专题-Oracle入门1

1.教学目标1

2.工作任务1

3.相关实践知识1

3.1Oracle10g的安装和卸载1

3.2用NetConfigurationAssistant配置客户端服务名10

3.3启动Oracle服务16

3.4认识Oracle常用工具18

3.5创建数据库和表空间24

3.6Oracle中的用户管理32

4.实验34

5.课后作业35

专题二锁和表分区36

1.教学目标36

2.工作任务36

3.相关实践知识36

3.1使用行级锁和时间戳来保证数据完整性36

3.2使用表级锁40

3.3使用表分区43

4.提高49

5.实验50

6.课后作业50

专题三SQL语句和SQL函数52

教学目标52

案例一Oracle数据库中的DDL、DML和DCL53

1.教学目标53

2.工作任务53

3.相关实践知识53

4.实验67

5.课后作业67

案例二Oracle数据库中的函数及子查询68

1.教学目标68

2.工作任务68

3.相关实践知识68

3.1综合使用各种函数68

3.2字符函数78

3.3数字函数81

3.4日期函数84

3.5转换函数85

4.实验86

目录

5.课后作业86

专题四数据库对象87

1.教学目标87

2.工作任务87

3.相关实践知识87

3.1使用同义词87

3.2使用序列实现自增主键89

3.3使用视图92

3.4使用索引加快表的查询99

4.实验108

5.课后作业108

专题五PL/SQL编程110

1.教学目标no

2.工作任务110

3.相关实践知识110

3.1用PL/SQL眦查询表内信息111

3.2用条件控制语句来实现为员工加薪116

3.3使用循环控制语句118

3.4用顺序控制i吾句实现更新员工工资119

3.5PL/SQL异常处理机制的应用120

4.提高124

5.实验125

6.课后作业126

专题六游标127

1.教学目标127

2.工作任务127

3.相关实践知识127

3.1使用游标属性127

3.2用游标生成员工报表129

3.3用游标生成分部门员工报表133

3.4用游标更新员工工资135

3.5使用REF游标动态返回结果集137

4.提高138

5.实验140

6.课后作业140

专题七过程、函数和程序包141

1.教学目标141

2.工作任务141

3.相关实践知识141

3.1无参的显示"HelloWorld!”的过程141

3.2用带输入参数的过程向表中插入记录142

3.3用带输出参数的过程查询表中的记录数144

口录

3.4使用带输入输出参数的过程查询记录是否存在144

3.5使用函数查询部门信息145

3.6使用程序包封装过程和函数147

4.提高150

4.1用过程返回结果集150

4.2在企业管理器中管理过程、函数和程序包151

5.实验153

6.课后作业153

专题八触发器155

1.教学目标155

2.工作任务155

3.相关实践知识155

3.1BEFORE行级触发器156

3.2AFTER行级触发器160

3.3BEFORE呐级触发器161

3.4AFTER语句级触发器162

3.5INSTEADOF触发器164

3.6DDL触发器167

3.7数据库启动和关闭触发器168

3.8用户登录和退出触发器169

3.9管理触发器171

4.实验172

5.课后作业173

专题九城库高级管理174

1.教学目标174

2.工作任务174

3.相关实践知识174

3.1用户和角色的创建和使用174

3.2调整数据库从非归档模式到归档模式179

3.3数据导入导出184

4.实验193

5.课后作业193

-III-

专题一Oracle入门

专题一Oracle入门

i.教学目标

1.1了解Oracle10g的安装和卸载

1.2学会配置Oracle客户端

1.3学会使用Oracle常用工具:企业管理器、iSQL*Plus和SQL*Plus

1.4掌握创建数据库和表空间的方法,了解Oracle的体系结构

1.5掌握Oracle中的基本用户管理

2.工作任务

2.1在Windows环境下安装和卸载Oracle10g

2.2配置Oracle客户端

2.3学习使用Oracle常用工具:企业管理器、iSQL*Plus和SQL*Plus

2.4创建数据库和表空间

2.5创建用户并为之授权,修改用户口令,删除用户

3.相关实践知识

3.1Oracle10g的安装和卸载

1.在Windows环境下,将Oracle10g安装盘放入光盘驱动器,安装程序会自动运行,

显示如如图1-1所示的窗口。

理论知识:

Oracle简介

Oracle公司,中文翻译成甲骨文公司,是全球最大的信息管理软件及服务供应商。该

公司成立于1977年,总部位于美国加州的红木海岸城。目前,Oracle产品覆盖了大、中、

小型机等几十种机型,Oracle数据库已成为世界上使用最广泛的数据库系统之一,Oracle

公司已成为这一领域的领军者与标准制订者。经过30多年的不懈发展,Oracle数据库已经

可以应用于从支持成千上万用户的分布式联机事务处理系统到拥有数万亿字节的用于决策支

持数据仓库的广泛领域。Oracle公司推出的Oracle数据库系统始终占据着数据库市场龙

头的地位。

Oracle公司敢为人先,始终引领着数据库发展的潮流。在号称第三代互联网技术——

"网格计算"技术蓬勃兴起之时,Oracle公司推出了最新的支持网格环境的数据库解决方

案Oracle10g,其中的g代表网格(grid)。

Oracle数据库教案一

Oracle10g数据库是第一个为企业级网格计算而设计的数据库。Oracle10g在Ora

de9i的基础上,提供了针对网格计算更多的特性,如更大的规模、可管理性、高可用性

及业务智能等。

在过去的几年中,Oracle数据库环境已成为世界上最流行的数据库平台之一。据有关

资料所述,目前Oracle已经占领了46%以上的数据库市场份额,并且有进一步扩大的趋势。

在高端数据库领域,Oracle更是无所匹敌,因此,掌握Oracle数据库技术是广大IT人员

的一项基本要求。尽管Oracle数据库的主要目标依旧是服务于那些要求海量数据处理能力

的大型公司或政府部门,但Oracle已经推出了许多适合较小组织的新产品,如Personal

Oracle等。在各种操作系统平台上,都有相应的数据库产品。将Oracle集成到各种类型

的企业和组织的计划正在进行中,并已经取得了巨大的成就,这意味着不只是大企业需要0-

racle数据库,广大中小企业同样需要Oracle数据库.

OracleDatabase10e

ORACLe

DATABASE

OracleOracle

H(jnt0PageSupport

图1-1光盘自动安装界面

2.单击"开始安装",启动安装向导,进入"选择安装方法"界面,如图1-2所示。

专题一OracleAfJ

图1-2选择安装方法

3.可以选择"基本安装"或"高级安装",我们选"基本安装",同时选中创建启动数

据库,输入创建的全局数据库(能唯一标识一个数据库的名称,Oracle10g之前的版本要求

全局数据库名为数据库名+数据库域名,Oracle10g对此没有要求)的名称(例如"orcl")

和口令。

图1-3选择安装类型

Oracle数据库教案

*注意:

Oracle10gRelease2规定,口令不能为"CHANGE_ON」NSTALL",

"MANAGER","DBSNMP","SYS-MAN"。这些口令分别为"SYS"

"SYSTEM""SYSMAN""DBSNMP”四个数据库用户的默认口令。

理论知识:

Oracle10g数据库核心产品:

Oracle数据库10g标准版1(OracleDatabase10gStandardEdition

One)

Oracle数据库10g标准版(OracleDatabase10gStandardEdition)

Oracle数据库10g企业版(OracleDatabase10gEnterpriseEdition)

Oracle数据库10g个人版(OracleDatabase10gPersonalEdition)

一般的部门级别的应用,比如一个部门的考勤管理,标准版足够用,只有大型的企业级

应用,比如一个大型制造企业的ERP系统,需要数据分布式的存储和计算,才选择企业版,

个人版本一般个人学习用。

4.选择"安装类型"。Oracle10gRelease2的安装类型可为:企业版、标准版和个人版,

可根据需要进行选择,默认为企业版,单击"下一步"按钮,开始准备安装。

图1-4准备安装

接着安装程序自动进行"产品特定的先决条件检查",如图1-5所示。

5.安装程序自动对当前系统进行检查,检查其是否符合安装要求,只有最终出现"检查

完成。此次检查的总体结果为:通过"(如图1-5),才能继续安装,否则检查相应的检查项,

逐一改正,直到"总体结果为:通过"。单击"下一步"按钮,继续安装,显示"概要"对话

框,如图1-6所示。

-4-

专题一Oracle入门

IFaiInstall»r产品相定前先决条件检查

产品特定的先决条件检查

安装程序检证您的环境是否符合安装却日圆斤选更安装的产品的所君最;低要求」必须手动验证并确口掠记力警告

的顶以及再妄手动检空的项.有关执行这些检查的洋烟费料,活单击相关项,然启查看区口忘任的框中的印汨资

料.

堂型优态

正在胭世UraeLa士弓求电竹干生比帝.•日则1”

正在检宜主目录路径的位置自劭

正在桧查是舌进行了王健序.统;部品自动P成功

|正正眼珪Oracle王目都不兼容性._______________自动n雨功

1■■・

里|朝

0个要求待设证.

格助如)己皮茨产品⑦…,上一步①|二正受筋二)安防T取消

OQACL€

图1-5产品特定的先决条件检查

图1-6安装概要

Oracle数据库教案一

6.单击"安装"按钮,OracleUniversalInstaller将安装Oracle系统。在安装过程中,用

户可以看到Oracle创建数据,以及对一些服务进行配置,如图1-7、图1-8、图1-9所示。

图1-7安装过程

图1-8配置特定服务

专题一Oracle入门

图1-9复制数据库文件、创建并启动Oracle实例

7.当安装完成后,安装向导将弹出如图1-10所示的窗口,显示已经安装的数据库信息。

图1-10已安装数据库信息

8.单击图1-10中的"口令管理",弹出如图1-11"口令管理"窗口(也可以不点击"口

令管理",直接点"确定"进入到图1-12的安装结束界面,这样的话SYS、SYSTEM.DB-

SNMP、SYSMAN用户的口令都是在图1-2中设置的口令,且SCOTT用户默认是被锁定的)。

-7-

Oracle数据库教案一

图1-11口令管理

9.拖动滚动条找到SCOTT用户,单击SCOTT用户”是否锁定帐户”列上的蓝钩,解除

对SCOTT用户的锁定(因为在本书中许多的案例都是在SCOTT用户下完成的,所以需要为

其解锁,在实际的安装过程中,用户可以根据实际情况解锁或不解锁),为SYS和SYSTEM

用户设置口令后单击"确定",安装程序将返回到图1-10的窗口。

10.单击图1-10中的"确定",进入"安装结束"窗口,如图1-12所示。

图1-12安装结束

专题一OracleAfJ

11.单击"退出",退出安装程序。至此,Oracle10g安装完毕。

12.卜面开始演示如何卸载Oracle10g。在Windows的"开始”菜单中依次选择:开始"

"程序""Oracle—OraDb10g_home1""OracleInstallationProducts"(Universal

Installer”,将显示如图1-13所示的窗口。

ORACLE

图1-13卸载产品

13.单击"卸载产品",出现如图1-14所示的窗口。

y产品法学

内容⑨坏吱(E)

你口$交装了下列Ora。。产品

Or』T=J.r.

GQ0raIIblC>O'Mel

丘水密后呆.

要划鞋MgL裁件,i瓶中要他除的图并单击HI生、

妻至看己品曲语言刘俎传小它洋蠲叵息,漕却四件燃后单击‘评明

信目,

*明信,白明口H师为

帮助俎)另存为二吊::•

Oracle数据库教案一

图1-14产品清单

14.展开节点,选定要卸载的项目,然后单击"删除",出现如图1-15所示的"确认"

窗口,显示选定的卸载项目。

图1-15卸载确认

15.如果单击"是",程序执行完毕即卸载选定的项目,在此只做演示,所以请点"否"

退出卸载产品。

3.2用NetConfigurationAssistant配置客户端服务名

1.在Oracle安装完成之后,客户端要和数据库服务器建立连接,必须进行网络连接配置。

在Windows的"开始”菜单中依次选择:"开始""程序""Oracle—OraDblOg_hom-er,

“配置和移植工具""NetConfigurationAssistant,,,会出现如图1-16所示的窗口。

图1-16欢迎使用

-10-

专题一Oracle入门

理论知识:

网络连接配置

Oracle数据库基于“客户端/服务器"(Client/Server)系统结构,即客户端系统

和服务器系统。服务器系统执行数据库相关的所有活动,客户端系统执行与用户交互的活动,

它们又被称为前端系统和后端系统。

客户端和服务器可以是一台机器,也可以是通过网络连接起来的不同操作系统、不同硬

件平台的机器。

客户端应用程序向数据库服务器发送请求并接收信息,以此种方式与数据库进行交互,

充当用户与数据库之间的接口。

数据库服务器对数据库进行管理,处理来自多个用户的访问,它能够在所有客户端应用

程序访问数据的过程中,全面地保持数据库的完整性,并控制数据库访问权限和其它安全性

需求。

在Oracle安装完成之后,客户端要和数据库服务器建立连接,必须进行网络连接配置,

包括服务器端配置和客户端配置。即服务器端配置监听器和客户端配置服务名。可以用Net

ConfigurationAssistant或NetManager工具,甚至可以直接修改相关的参数文件。

首先,服务器端的监听配置包括监听协议、端口号以及其它相关信息的参数。监听器配

置存储在一个名叫listener.ora的参数文件中,该文件在怔Endows环境下可能的位置是

"C:\oracle\product\10.2.0\db_l\NETWORK\ADMIN\M。

其实我们可以不自己配置监听器,因为在安装Oracle的时候系统已经为我们配置好了

一个名叫"LISTENER"的监听器,端口号是1521,它对应的服务是0"(:加0"双109_-

homelTNSListenero

然后,开始配置客户端服务名。配置服务名的目的是让客户端通过服务名来与远程或本

地的监听器建立连接。客户端用它向服务器发送连接请求。要在一台没有安装数据库服务器

的机器上连接Oracle服务器,必须单独安装Oracle客户端软件,在服务器上则自动包含

了客户端软件。

安装Oracle时用户指定了一个全局数据库名,即S1D名称。Oracle用此SID名称在

服务器端自动创建了一个服务名,如图1-18中的"ORCL"(因止匕,当服务器和和客户端在

一台机器上时,可以不配置服务名而直接使用系统自动创建的服务名)。在客户端创建服务

名时,需要指定服务器端服务名、网络协议、主机名和监听器端口等。这些配置信息都存储

在tnsnames.ora文件中,保存位置与listener.ora相同。

2.在窗口中选择"本地Net服务名酉dS",点击"下一步",进入Net服务名配置,出现

如图1-17所示的窗口。

-II-

Oracle数据教案一

图1-17服务名配置

3.选中"添加"单选按钮,点击"下一步",出现如图1-18所示的窗口。

图1-18服务名

4.在服务名文本框中输入远程数据库的服务名,如"ORCL",单击"下一步",出现

"请选择协议”窗口,如图1-19所。

-12-

专题一Oracle入门

图M9请选择协议

5.选择‘TCP”并单击〃下一步〃,出现‘TCP/IP协议"窗口,如图1-20所示。

图1-20TCP/IP协议

6.在文本框中输入数据库服务器的主机名"HANDSONSERVER”或服务器的IP地址,

选择"使用标准端口号1521",单击"下一步"按钮,出现如图1-21所示的“测试"窗口。

-13-

Oracle数据库教案

图1-21测试

7.选择"是,进行测试",单击"下一步"按钮,出现如图1-22所示的窗口,提示"测

试成功”.

图1-22正在连接

-14-

专题一Oracle入门

注意:

如果提示"测试未成功",请点击"更改登陆"改变SYSTEM用户的

登陆口令为安装时设置的口令。

8.在图1-22所示的窗口中单击"下一步"按钮,出现如图1-23所示的窗口。

图1-23Net服务名

9.输入要创建的本地服务名,如"MYSERVER",单击"下一步"按钮,出现如图1-2

4所示的窗口。

-15-

Oracle数据库教案

图1-24是否配置另一个Net服务名

10.选择"否",单击"下一步"按钮,出现如图1-25所示的窗口,提示"Net服务名

配置完毕!”。

图1-25服务名配置完毕

11.单击"下一步"按钮,在出现的窗口中单击"完成",结束本地服务名的配置。

3.3启动Oracle服务

1.在Windows的"开始”菜单中依次选择:"设置""控制面板",在打开的窗口中选

择"管理工具",在双击打开后的窗口中选择"服务",双击打开,出现"服务"窗口,查看

-16-

专题一Oracle入门

其中以"Oracle"开头的服务,如图1-26所示。

文性(B曲作®3S百必刊的俎)

Of面。电险»・“・,

%岷务(本地]名林I描逑I状志Jg动类型I登录为—

radeDBConsoteord蛙m

%0redeJobScbeduleQRCL本地系统;

相本地系统

^ClradeOrnJDblOgLhame!iSQL*PlusiSQL*PlusAppl丰

rodeOrBObl0g_home1TNSListenor已启动丰本地系统

中3radeService。RCL己后劲本地系统Jj

VF展入标准/一

图1-26Oracle服务

2.如果图1-26中的以下几项服务OracleServiceORCL、OracleOraDb1Og_home1TNSList-

ener、OracleOraDblOg_homelISQL*Plus和OracleDBConsoleorcl的状态不是"己启动",贝!j

选中该项服务,在单击右键后出现的菜单中选择"启动",以启动该项服务;在某项服务的

右键菜单中选择"属性",可打开"属性"窗口,在其"常规"选项中可以设置该项服务的

"启动类型"为"自动"、"手动"或"禁用";完成后关闭窗口退出.

aI注意:

在实际应用中,并非所有这些Oracle服务都必须启动,每项服务的功能

请参见相关理论知识部分。

理论知识:

Windews中的Oracle服务

Oracle数据库作为一项服务呈现给客户,即数据库执行客户端提交的任务。在Wind­

ows中Oracle的每个实例都作为-一项服务来启动。服务是在Windows注册表中注册的可

执行过程,由Windows操作系统管理。

Oracle服务可以手动启动,也可配置为在计算机启动时自动启动,无需用户干预,从

而简化数据库的启动过程。

Oracle服务的名称通常是一个包含全局数据库名称和OracleHOME名的字符串。

常用的Oracle服务有:

1.OracleHOME_NAMETNSListener月及务

如图1-26中的OracleOraDblOg_homelTNSListener服务。此月艮务是Oracle的

监听程序。要连接到数据库服务器,客户端必须先连接到驻留在数据库服务器上的监听进程。

监听器接收从客户端发出的请求,然后将请求传递给数据库服务器。一旦建立了连接,客户

端和数据库服务器就可以直接通信了。

监听器监听并接受来自客户端的连接请求。若监听器未启动,客户端将无法连接到数据

库服务器。

2.OracleServiceSID服务

如图1-26中的OracleServiceORCL服务。此实例是为名为S1D(系统标识符)的数

-17-

Oracle数据库教案

据库实例创建的。Oracle实例由一个系统标识符S1D唯一地标识,以区别于此计算机上的

其它任何实例。每次新创建一个数据库,系统会自动为该数据库的实例创建一个服务。如果

此服务未启动,数据库客户端应用程序连接到数据库服务器时就会出现错误。

3.OracleHOME_NAMEiSQL*Plus服务

如图1-26中的OracleOraDblOg_homeliSQL*Plus服务。要使用iSQL*Plus,必

须启动该服务。

4.OracleDBConsoleOracle_S1D服务

如图1-26中的OracleDBConsoleorcl服务。要使用企业管理器必须启动该服务。

每次新创建一个数据库,也会新创建一个此项服务。

3.4认识Oracle常用工具

3.4.1企业管理器

1.打开浏览器,在地址栏中输入安装过程中图1-12中以"em"结尾的URL地址:http:"

//houtony:1158/emK,出现如图1-27所示的登录界面(如果是第一次登陆企业管理器,会出现

"OracleDatabase10g许可授予信息”的网页,点击网页右下角的“我接受"按钮,即可进

入到图1-27所示的界面)。

图1-27企业管理器登录

2.输入的用户名和口令,例如"SYS"和"SYS”,选择连接身份为"SYSDBA",点

击"登录",进入Oracle企业管理器的主界面,如图1-28所示。

-18-

专题一Oracle入门

图1-28企业管理器主界面

3.分别点击"主目录"、"性能’、增理‘、"维护"四个主菜单,查看企业管理器的主要

功能。

理论知识:

Oracle企业管理器(OracleEnterpriseManager),简称OEM,从10g开始,

可以用浏览器的方式来访问企业管理器。它是Oracle的集成管理平台,能够管理整个Or­

acle环境,让用户可以以可视化的方式完成管理数据库对象、监视服务器的实时性能、对数

据库进行备份和恢复、完成作业系统等一系列的功能。

在Oracle10g安装完成后,开始时只有SYS和SYSTEM用户才能登录至OEM,且S—

YS用户只能以SYSDBA或SYSOPER身份,SYSTEM用户只能以NORMAL身份,其他用户必

须经过相应的授权后才能登录。

3.4.2SQL*Plus工具

1.在Windows的开始菜单中选择"运行",在"打开”文本框中输入“cmd"后,点击

"确定"按钮,进入到命令控制台状态。

2.在Dos提示符下输入命令"sqlplus/nolog”,按回车后可进入到字符界面的SQL*Plus,

如图1-29所示。

-19-

Oracle数据库案例教程一教师用书

图1-29进入到字符界面的SQL*Plus

3.在SQL提示符下输入命令"connscott/tiger;",按回车键系统提示"己连接"后,

再输入命令"SELECT*FROMdept;",再按回车,执行结果如图1-30所示。

图1-30在字符界面的SQL*Plus中执行查询命令

4.在SQL提示符下输入"exit”命令,按回车后退出SQL*Plus,回到Dos状态。

5.在Dos提示符下输入"sqlplusw”后,按回车,或者在Windows的开始菜单中依次选

择"程序""Oracle—OraDblOg_homel""应用程序开发""SQL*Plus",都会弹出

如图1-31所示的图形界面的SQL*Plus登录界面。

-20-

专题一Oracle入门

图1-31图形界面的SQL*Pkis登录

6.输入用户名"SCOTT和口令"TIGER”,在主机字符串文本框中输入本地服务名

"MYSERVER",点击"确定",可进入到图形界面的SQL*Plus的SQL提示符状态。

7.在SQL提示符下输入命令"SELECT*FROMdept;"按回车后,运行结果如图1-32

所示。

:DratSQItPhjv-IDIX|

文件旧篇琨:D然去⑤医项①帮财出

SQL>SELEC1*FROndept;d

DEPINODNANLLOC

29ddssadf

10ACCOUNTINGNFWYORK

20RESEARCHDALLAS

30SALESCHICAGO

40OPERATIONSUOSTOH

SQI>

UJ

图1-32图形界面的SQL*Plus中执行查询

理论知识:

SQL*Plus是Oracle最常用的工具之一,可用于接受和执行SQL语句和PL/SQL块。

它有两种界面:字符界面和图形界面。使用SQL*Plus可以完成打开和关闭数据库、建立与

数据库的连接、查看帮助信息、生成简单报表,以格式化的形式输出查询结果、查询数据字

-21-

Oracle数据库案例教程一教师用书

典、向用户提示信息并接受用户输入等数据库操作。

3.4.3iSQL*Plus工具

1.在浏览器地址栏中输入安装过程中图1-12所示的以"isqlplus"结尾的URL地址:

"http://houtony:5560/isqlplus,z,进入到如图1-33所示的iSQL*Plus的登录页面。

图l-33iSQL*Plus登录

2.输入用户名"SCOTT"和口令"TIGER”,在连接标识符文本框中输入图1-33中的本

地服务名"MYSERVER",点击"登录",进入到如图1-34所示的iSQL*Plus主页面。

-22-

专题一Oracle入门

图1-34iSQL*Pkis主页面

3.在文本框中输入“SELECT*FROMdept;〃,点击〃执行〃,会查询出dept表的信

息并显示在页面下部,如图1-35所示。

图l-35iSQL*Pkis查询结果

-23-

Oracle数据库案例教程一教师用书

4.关闭浏览器。

理论知识:

iSQL*Plus也是Oracle的常用工具,可以用来完成几乎所有SQL*Plus能完成的任

务。该工具的优势在于能通过浏览器访问,还可以自动将查询的结果格式化为简单报表.

3.5创建数据库和表空间

数据库和表空间是Oracle体系结构的重要组件,创建步骤如下:

理论知识:

Oracle的体系结构

数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织和

管理机制。

Oracle服务器

Oracle服务器由Oracle数据库和Oracle实例组成。Oracle数据库是一个数据的

集合,它在物理上是由一系列的文件组成,在逻辑上是由一系列的逻辑组件构成的。Orac­

le实例是后台进程与内存结构的集合。

Oracle组件概述

Oracle体系结构中包含一系列组件,在图1-36中列出了Oracle中的主要组件。下

面分别介绍这些主要组件及Oracle中的一些重要概念。

图1-36Oracle体系结构的主要组件

-24-

专题一Oracle入门

1.实例

后台进程与内存结构的集合称为Oracle实例。如果要访问数据库中的数据,就必须启

动一个实例,也就是说,只有通过实例才能访问到数据库中的数据。实例启动时将分配一个

系统全局区(SGA)并启动一系列的后台进程。在任何时候,一个实例只能打开并使用一个

数据库。反之,一个数据库可以同时被多个实例打开。

2.会话

会话是用户与Oracle服务器的单个连接。当用户与服务器建立连接时创建会话。而当

用户与服务器断开连接时关闭会话。当一个数据库用户同时用多个不同的应用程序或从多个

终端连接服务器时,则为该用户创建多个并行会话。

3.内存

Oracle的内存结构中包括以下两个主要的内存区域:

系统全局区(SGA):实例启动时分配该内存区,是Oracle实例的一个基本组件。

程序全局区(PGA):服务器进程启动时分配该内存区。PGA(ProgramGlobe

Area)是在用户进程连接到数据库并创建一个会话时自动分配的,该区内保留每个

与Oracle数据库连接的用户进程所需的内存。PGA为非共享区,只能由单个进程

使用,当一个会话结束后,PGA释放。

SGA(SystemGlobeArea),又称共享全局区,它用来存储数据库信息,并由多个

数据库进程共享。当数据库实例启动时,SGA的内存被自动分配。SGA是数据库中占用服务

器内存最大的一个区域,同时也是影响数据库性能的一个重要指标。

SGA按其作用不同,可分为共享池、数据缓冲区、日志缓冲区等。

共享池:共享池是对SQL、PL/SQL程序进行语法分析、编译和执行的内存区域,它由

库缓存和数据字典缓存组成,其中,库缓存含有最近执行的SQL、PL/SQL语句的信息,数

据字典缓存中含有从数据字典中得到的表、索引、字段和权限等信息。如果共享池太小,则

运行SQL、PL/SQL程序所需的时间就会较长,数据库的性能就会受到影响。

当用户执行一个查询语句时,Oracle系统首先在数据字典缓存中查看要查询的表、字

段等在数据库中是否存在,用户是否有相应权限,如果有再在库缓存中查找是否存在该语句

的信息,如果存在则直接执行,如果不存在再对该查询语句进行编译和执行。

数据缓冲区:数据缓冲区用于存储从磁盘数据文件中读入的数据,由所有用户共享。数

据被修改时,首先要从数据文件中取出,存储于数据缓冲区中,修改的数据、插入的数据都

被存储于数据缓冲区,当修改完成或满足其它条件时,数据才被写入到数据文件中。

Oracle服务器进程在处理一个查询时,首先查找数据缓冲区中是否存在所需的数据块。

如果没有找到,服务器进程才会去从数据文件中读取信息,并保存到数据缓冲区中。当以后

再有进程要读取这些块时,就不用再从数据文件中读取,而是直接从数据缓冲区中读了,这

样就提高了读取速度。因此,数据缓冲区的大小对数据库的读取速度有直接影响。

日志缓冲区:所有对数据库的修改先记录到日志缓冲区,当缓冲区中的数据达到一定数

量时,再由日志写入进程LGWR把日志数据写入到日志文件中。数据更改可能来自工NSERT、

UPDATE、DELETE,CREATE、ALTER和DROP等操作。相对于数据缓冲区,日志缓冲区对

数据库性能的影响较小。

-25-

Oracle数据库案例教程一教师用书

4.进程

在Oracle的体系结构中主要有以下几种进程:

用户进程:当数据库用户请求连接服务器时启动•当数据库用户运行一个应用程序准备

向数据库服务器发送请求时,即创建了用户进程,如用户启动SQL*Plus时,系统自动建立

了一个用户进程。用户进程不能直接与数据库交互,而必须借助于服务器进程。

服务器进程:在Oracle实例启动时启动。它用于处理连接到该实例的用户进程的请求,

当用户建立与数据库的连接时,即产生服务器进程。服务器进程和用户进程通信并为所连接

的用户请求服务。服务器进程直接与Oracle数据库交互,实现调用和返回结果。服务器进

程可以仅处理一个用户进程的请求,也可以处理多个用户进程的请求。

后台进程:在。racle数据库中,为了使系统性能更好和协调多个用户,实例系统中使

用了一些附加进程,被称为后台进程。这些后台进程存在于操作系统中,在实例启动时自动

启动。Oracle常用的后台进程有:

进程监控(PMON):主要作用是在用户进程出现故障时执行进程恢复。

系统监控(SMON):主要完成以下任务:在实例启动时执行实例恢复;整理数据文

件的自由空间;释放不再使用的临时段。

数据写入进程(DBWR):执行下列任务:管理数据缓冲区,以便用户进程能找到空

闲的缓冲区;将所有修改了的缓冲区的数据写入数据文件;使用LRU(最近最少使

用)算法将最近使用过的块保留在内存中;通过延迟写来优化磁盘1/O读写。

日志写入进程(LGWR):此后台进程负责将日志缓冲区的数据写入日志文件。数据

库正在运行时,如果对数据进行修改,则产生日志信息,日志信息首先产生于日志

缓冲区中。此缓冲区按照"先进先出"的原则进行操作,当日志信息达到一定数量

时,由LGWR进程将日志数据写入到日志文件。

检查点(CKPT):保证所有修改过的数据库缓冲区内的数据都被写入到数据库文件,

在给定的时间内,检查点完成后,CKPT进程更新数据文件头和控制文件,保存检查

点信息,以保证数据库的同步。这样做主要是为了在数据库恢复时只需要提供从上

一个检查点以来的修改,确定开始恢复数据的位置,即称为检查点。

归档进程(ARCH):当数据库运行在归档日志方式时,才会启动该进程。在日志写

满时将日志信息写到磁盘或磁带,用于磁盘故障时的数据库恢复。在一个日志文件

写满以后,Oracle服务器就开始将数据写入到下一个日志文件,此过程被称为日

志切换。Oracle数据库有两种运行方式,即归档日志方式和非归档日志方式。在

非归档日志方式下,日志切换时直接覆盖以前的文件,不产生归档日志。在归档日

志方式下,在日志切换之前,ARCH进程会对已写满的日志文件进行存档。

Oracle数据库的物理组件和逻辑组件

Oracle数据库的物理文件主要有三类:数据文件、控制文件和日志文件。其它还有归

档日志文件、参数文件和口令文件等。

数据文件:是用于存储数据库数据的文件,如表、索引数据等都存储在数据文件中。每

个Oracle数据库都有一个或多个数据文件(10g中默认有5个),一个数据文件只能与一

个数据库相关联。

-26-

专题一Oracle入门

控制文件:是记录数据库物理结构的二进制文件,Oracle数据库根据它来查找物理文

件的位置,它包含维护和验证数据库完整性的必要信息。每个Oracle数据库都有一个或多

个控制文件(10g中默认有3个)。

日志文件:又被称为联机日志文件或重做日志文件,用于记录对数据库进行的修改信息,

对数据库所做的全部修改都被记录到日志中。每个Oracle数据库都有一个或多个日志文件

(10g中默认有3个)。日志文件主要用于在数据库出现故障时实施数据恢复。

2.逻辑组件

从逻辑的角度来分析,Oracle数据库的逻辑结构主要包括表空间、段、区、数据块和

模式等。它们的组成关系如图1-37所示。

数据库表空间►段►区►

图1-37数据库的逻辑结构

表空间(TABLESPACE):数据库可以划分为一个或多个逻辑单位,该逻辑单位被称为

表空间,它是数所库中最大的逻辑单位。每个表空间由一个或多个数据文件组成,一个数据

文件只能与一个表空间关联,这是逻辑上和物理上的统一。数据库管理员可以创建若干个表

空间,创建表空间时可以指定数据文件及其要分配的磁盘空间的大小。

在每个数据库中都有一个名为SYSTEM的表空间,即系统表空间,它在创建数据库或安

装数据库时自动创建的,用于存储系统的数据字典表、系统程序单元、过程、函数、包和触

发器等,也可以用于存储用户表、索引等对象。

段(SEGENT):存在于表空间中,是包含于表空间中的一种指定类型的逻辑存储结构,

由一组区组成。按照段中所存数据的特征以及优化系统性能的需要,将段分为4类:数据段、

索引段、回退段、临时段。

区(EXTENT)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论