PL/SQL编程及Oracle体系结构_第1页
PL/SQL编程及Oracle体系结构_第2页
PL/SQL编程及Oracle体系结构_第3页
PL/SQL编程及Oracle体系结构_第4页
PL/SQL编程及Oracle体系结构_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第八章PL/SQL编程及Oracle体系结构第二单元本章相关学习资源《PL/SQL编程基础》专题《Oracle体系结构》专题《Web前端基础及数据库开发》第8章《PL/SQL编程及Oracle体系结构》学习平台“Oracle数据库”课程学生用书第2页/共36页预习检查什么是PL/SQL?举例说明如何声明变量。Oracle物理结构包含哪些?Oracle逻辑结构包含哪些?提问第3页/共36页本章任务任务1:使用PL/SQL处理雇员业务任务2:认识Oracle体系结构第4页/共36页理解PL/SQL组成及其体系结构了解变量及其用法会使用控制语句进行编程理解Oracle体系结构本章目标点重点难点重能够使用异常处理问题点难第5页/共36页讲解:PL/SQL的体系结构PL/SQL

是过程语言(ProceduralLanguage)与结构化查询语言(SQL)结合而成的编程语言PL/SQL

引擎驻留在Oracle

服务器中该引擎接受PL/SQL

块并对其进行编译执行将PL/SQL

块发送给Oracle服务器用户执行过程语句引擎将SQL语句发送给SQL语句执行器Oracle服务器PL/SQL引擎SQL

语句

执行器过程语句

执行器执行SQL语句将结果发送给用户第6页/共36页讲解:PL/SQL块简介PL/SQL块是构成PL/SQL

程序的基本单元将逻辑上相关的声明和语句组合在一起PL/SQL

分为三个部分,声明部分、可执行部分和异常处理部分

第7页/共36页语法[DECLARE

declarations]

BEGINexecutablestatements[EXCEPTION

handlers]END;串讲:变量和常量声明变量时注意什么?变量有哪些赋值方法?网络提问演示示例:变量和常量声明赋值第8页/共36页讲解:数据类型PL/SQL

支持的内置数据类型数据类型LOB类型标量类型属性类型%ROWTYPE数字字符布尔型日期时间BFILEBLOBCLOBNCLOB%TYPE提供某个变量或数据库表列的数据类型提供表示表中一行的记录类型存储非结构化数据块第9页/共36页讲解:字符数据类型数据类型SQL类型PL/SQL类型CHAR1..20001..32767LONG1..2GB1..32760LONGRAW1..2GB1..32760RAW1..20001..32767VARCHAR21..40001..32767字符数据类型包括:CHARVARCHAR2LONGRAWLONGRAWPL/SQL

的数据类型与SQL数据类型的比较第10页/共36页串讲:属性类型用于引用数据库列的数据类型,以及表示表中一行的记录类型属性类型有两种:%TYPE-引用变量和数据库列的数据类型%ROWTYPE-提供表示表中一行的记录类型使用属性类型的优点:不需要知道被引用的表列的具体类型如果被引用对象的数据类型发生改变,PL/SQL变量的数据类型也随之改变第11页/共36页串讲:控制结构PL/SQL支持的流程控制结构:条件控制IF

语句CASE

语句循环控制LOOP

循环WHILE

循环FOR

循环顺序控制GOTO

语句NULL

语句演示示例:顺序控制语句第12页/共36页讲解:异常处理在运行程序时出现的错误叫做异常发生异常后,语句将停止执行,控制权转移到PL/SQL

块的异常处理部分异常有三种类型:第13页/共36页预定义异常当PL/SQL

程序违反Oracle

规则或超越系统限制时隐式引发用户不需要在程序中定义非预定义异常当PL/SQL

程序违反Oracle

规则或超越系统限制时隐式引发用户需要在程序中定义用户定义异常需要用户在程序中定义显式地在程序中将其引发串讲:预定义异常处理异常处理程序的语法BEGINsequence_of_statements;EXCEPTION

WHEN<exception_name>THENsequence_of_statements;

WHENOTHERSTHENsequence_of_statements;END;语法第14页/共36页在PL/SQL块的定义部分定义异常情况:将其定义好的异常情况,与标准的Oracle错误联系起来,使用EXCEPTION_INIT

语句:

在PL/SQL块的异常情况处理部分对异常情况做出相应的处理。讲解:非预定义异常处理问题实现步骤<异常情况>EXCEPTION;PRAGMAEXCEPTION_INIT(<异常情况>,<错误代码>);演示示例:非预定义异常第15页/共36页实现修改编号为7788的雇员所属的部门编号为99查询编号为7788的雇员的福利补助(comm列)在PL/SQL块的定义部分定义异常情况:抛出异常情况:

在PL/SQL块的异常情况处理部分对异常情况做出相应的处理。讲解:用户定义异常处理问题实现步骤<异常情况>EXCEPTION;RAISE<异常情况>;演示示例:用户自定义异常第16页/共36页上机练习需求说明删除部门表中部门编号为30的记录部门编号要声明成变量存储完成时间:10分钟共性问题集中讲解练习关键代码雇员表要建立与部门表之间的外键约束第17页/共36页小结PL/SQL

块由哪3部分组成?PL/SQL中控制语句有哪些?阐述PL/SQL

的3种异常错误类型。提问第18页/共36页讲解:Oracle体系结构数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制Oracle服务器提供开放、全面和综合的信息管理,它由Oracle数据库和Oracle实例组成Oracle服务器Oracle数据库Oracle

实例Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元管理数据库的后台进程和内存结构的集合称为Oracle实例

第19页/共36页讲解:Oracle主要组件实例内存结构后台进程

PMONSMONDBWRLGWRCKPT其他

数据库数据文件数据文件数据文件控制文件控制文件日志文件日志文件参数文件归档日志文件口令文件SGA系统全局区用户进程服务器进程PGA程序全局区共享池数据缓冲区日志缓冲区第20页/共36页讲解:Oracle实例Oracle实例是后台进程和内存结构的集合Oracle实例系统全局区后台进程分配启动第21页/共36页讲解:Oracle实例内存结构Oracle的内存结构包含以下内存区:系统全局区(SGA)程序全局区(PGA)Oracle实例启动时分配系统全局区当服务器进程启动时分配程序全局区内存区用户全局区(UGA)用户全局区为用户进程存储会话状态第22页/共36页讲解:系统全局区

数据库信息存储于SGA,由多个数据库进程共享共享池数据缓冲区日志缓冲区SGA的内存结构第23页/共36页讲解:系统全局区第24页/共36页共享池直接影响数据库的性能共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域共享池由库缓存和数据字典缓存组成数据缓冲区直接影响数据库的读取速度

用于存储从磁盘数据文件中读入的数据,所有用户共享服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度日志缓冲区数据库的性能影响较小日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中讲解:程序全局区程序全局区(PGA)包含单个服务器进程所需的数据和控制信息PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle数据库连接的用户进程所需的信息PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放第25页/共36页什么是程序全局区?问题讲解:用户全局区用户全局区(UGA)为用户进程存储会话状态UGA可以作为SGA或者PGA的一部分。具体位置取决于如何连接Oracle:如果通过一个共享服务器连接,UGA包含在SAG中如果通过一个专有服务器连接,UGA就包含在专有服务器的PGA中第26页/共36页什么是用户全局区?问题讲解:Oracle实例进程结构Oracle

实例有几种不同类型的进程实例进程用户进程服务器进程后台进程用户进程是一个需要与Oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至Oracle

数据库实例创建会话时,即产生服务器进程后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。Oracle实例启动时即创建一系列后台进程第27页/共36页讲解:后台进程后台进程PMON实例的各种后台进程是:SMONDBWRLGWRCKPT其他第28页/共36页讲解:后台进程第29页/共36页PMON

进程监控进程清理出现故障的进程释放所有当前挂起的锁定释放故障进程使用的资源SMON

系统监控进程在实例失败之后,重新打开数据库时自动恢复实例整理数据文件的自由空间,将相邻区域结合起来释放不再使用的临时段DBWR

数据写入进程管理数据缓冲区,将最近使用过的块保留在内存中将修改后的缓冲区数据写入数据文件中

LGWR

日志写入进程负责将日志缓冲区中的日志数据写入日志文件系统有多个日志文件,该进程以循环的方式将数据写入文件讲解:Oracle物理组件物理组件就是Oracle数据库所使用的操作系统物理文件。物理文件可分为三类:物理组件数据文件控制文件日志文件数据文件用于存储数据库数据,如表、索引数据等控制文件是记录数据库物理结构的二进制文件日志文件记录对数据库的所有修改信息,用于故障恢复第30页/共36页讲解:Oracle逻辑组件数据库的逻辑结构是从逻辑的角度分析数据库的组成。Oracle的逻辑组件包括:数据库表空间段区数据块

模式第31页/共36页小结Oracle物理结构:(

)、(

)、(

)。Oracle

逻辑结构:(

)、(

)、(

)、(

)。Oracle

内存结构:(

)、(

)、(

)。Oracle进程结构:(

)、(

)、()。提问控制文件

数据文件日志文件表空间

区块系统全局区(SGA)

程序全局区(PGA)

用户全局区(UGA)后台进程

用户进程

服务器进程

第32页/共36页答疑时间同学们请就以下方面的问题请教老师Oracle容易混淆的几个概念(教员备课时自行填写)第33页

温馨提示

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

评论

0/150

提交评论