第8章.ppt

大学数据库原理与技术(第二版)-程学先-大学教学资料课件PPT

收藏

资源目录
跳过导航链接。
压缩包内文档预览:(预览前20页/共98页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21835833    类型:共享资源    大小:15.97MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学 数据库 原理 技术 第二 程学先 教学 资料 课件 ppt
资源描述:
大学数据库原理与技术(第二版)-程学先-大学教学资料课件PPT,大学,数据库,原理,技术,第二,程学先,教学,资料,课件,ppt
内容简介:
数据库原理与技术 (第二版),程学先 程传慧 曾 玲 陈永辉 郑秋华 杨晓艳,第八章 Oracle 数据库系统,8.2 Oracle 10g的体系结构,8.3 Oracle 10g的安全管理,8.4 Oracle 10g的空间管理,8.5 Oracle 10g PL/SQL编程,8.1 Oracle数据库概述,退 出,本 章 要 点,8.6 Oracle数据查询,8.7 Oracle系统管理,8.1 Oracle数据库概述,R,一、概述 ORACLE 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。,二 、 Oracle 10g的特点 1 首个为网格计算设计的数据库 2 借助网格计算,提高可用性和可伸缩性 3 优异的安全特性 4 借助自我管理数据库降低成本,R,8.1 Oracle数据库概述,R,8.1 Oracle数据库概述,三 、 数据库的基本管理 1 启动数据库 启动数据库的命令是Startup,基本命令语法如下: STARTUP (MOUNT|OPEND) ; EXCLUSIVE|PARALLEL| NOMOUNT 说明: EXCLUSIVE和PARALLEL表示以独占或共享方式打 开。NOMOUNT表示以例程方式打开或关闭数据库。,R,8.1 Oracle数据库概述,【例8.1】打开数据库Waremanage SQLstartup opend Waremanage 说明: “SQL”为SQL Plus提示符。 2 关闭数据库 语句格式: SHUTDOWN NORMAL|IMMEDIATE|ABORT|TRANSACTIONAL,说明: (1) Shutdown normal,正常关闭数据库。 (2) Shutdown immediate,立即关闭数据。 (3) Shutdown abort,直接关闭数据库和例程。 (4) Shutdown transactional,等待所有有事务连 接的用户完成事务后再关闭数据库。,R,8.1 Oracle数据库概述,3 设置数据库 选择Oracle-ORacDB10g-homelConfiguration and Migration ToolsDatabase Configuration Assistant 进行配置。 4 创建数据库 在一个Oracle 10g系统上可以建立多个数据库。创建数据库的步骤 可参照书上内容。,R,8.1 Oracle数据库概述,R,8.1 Oracle数据库概述,5 删除数据库 当数据库不再需要或已经测试完毕时,为了增加系统和数据库的执行效率,可以删除不需要的数据库。具体步骤可参照书中内容。,8.2.1 概述 Oracle系统的体系结构是指Oracle数据库服务器的主要组成以及这些组成部分间的联系和操作方式。从宏观上看,Oracle数据库服务器主要由两部分组成:数据库和实例。 数据库用于保存数据的一系列物理结构和逻辑结构 ,数据库是静态的 。 实例是由服务器在运行过程中内存结构和一系列进程组成的,实例是动态的。,R,R,8.2 Oracle 10g的体系结构,R,8.2 Oracle 10g的体系结构,8.2.2 物理存储结构 Oracle数据库的物理存储结构 操作系统下数据库的文件组织和实际的数据存储。按其作用不同Oracle数据库的物理存储结构可以分为三类: 数据文件 日志文件 控制文件,R,8.2 Oracle 10g的体系结构,数据文件 每一个Oracle数据库有一个或多个物理的数据文件(data file)。一个数据库的这些数据文件包含全部数据库数据。 数据文件有下列特征: 一个数据文件仅与一个数据库联系。 一旦建立,数据文件不能改变大小 一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。,R,8.2 Oracle 10g的体系结构,日志文件 每一个数据库有两个或多个日志文件(redo log file)的组 。 日志的主要功能是记录对数据所作的修改 。 日志文件主要是保护数据库以防止故障。 日志文件中的信息仅在系统故障或介质故障后恢复数据库时使用。,R,控制文件 每一个Oracle数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型: 数据库名; 数据库数据文件和日志文件的名字和位置。 数据库建立日期。 每一次Oracle数据库的实例启动时,它的控制文件用于标识数据库和日志文件 。,8.2 Oracle 10g的体系结构,8.2.3 逻辑、存储结构 Oracle数据库逻辑、存储结构是按层次管理的,内存中数据结构分为段、区和块. 块是内存与硬盘之间交换的最小单位; 区由多块组成,段由多个区组成 ; 从逻辑结构看分为数据库、表空间、逻辑对象。 一个数据库有一到多个表空间; 一个表空间可以有多个逻辑对象; 1个逻辑对象只属于1个表空间。,R,8.2 Oracle 10g的体系结构,图 8.12 数据库、表空间、数据文件、逻辑对象间关系,R,块(block)是oracle数据库进行逻辑管理的最基本单元。 数据库进行读写以块为单位进行。 大小由db_block_size参数决定。 区(extent)是Oracle数据库的最小存储单元 。 由一系列连续的块组成的空间 。 每一次系统分配和回收空间都以区间为单位进行。,8.2 Oracle 10g的体系结构,段(segment)是表空间中指定类型的逻辑结构。 由一个或多个区组成。一个单独的表可以是一个段。 段有以下几种常见类型:数据段、索引段、回滚段和临时段。 数据对象(Logic Object)或模式对象,是由用户创建的逻辑结构 。 如表、视图、索引、簇。,8.2 Oracle 10g的体系结构,R,表空间(tablespace)是拥有存放表、索引和视图等对象的磁盘逻辑空间 。 由一个或多个物理文件表示,是数据库中最顶层的逻辑存储结构,是数据库的逻辑划分。 在Oracle10g中,表空间有以下几种: 系统(SYSTEM)表空间,SYSAUX表空间; 回滚(UNDO)表空间,用户(USERS)表空间,8.2 Oracle 10g的体系结构,R,8.2 Oracle 10g的体系结构,8.2.4 内存结构 ORACLE的内存区域主要存储下列信息: 执行的程序代码; 连接的会话信息; 程序执行期间所需数据及共享的信息和存储在外存储上的缓冲信息。 在一个实例中,一般有三个主要内存区域: 系统全局区(System Global Area,SGA); 程序全局区(Program Global Area,PGA); 用户全局区(User Global Area,UGA)。,R,8.2 Oracle 10g的体系结构,系统全局区(SGA):如果多个用户同时连接到同一实例时,在实例的SGA中数据可为多个用户所共享,所以又称为共享全局区。 在SGA中存储信息将内存划分成几个区: 数据库缓冲存储区; 日志缓冲区、共享池; 请求和响应队列; 数据字典存储区和其它各种信息。,R,软件代码区,用于存储正在执行的或可以执行的程序代码。 软件区默认的设置为只读形式,可安装成共享或非共享 。 ORACLE系统程序是可共享的, 用户程序可以共享也可以不共享 。,8.2 Oracle 10g的体系结构,R,8.2 Oracle 10g的体系结构,8.2.5 数据字典 数据字典提供有关该数据库的信息 。 可以用SQL存取数据字典,允许查询。 数据库数据字典是由基本表和用户可存取的视图组成 。 基本表:数据字典的基础是一组基本表,存储相关的数据库的信息 ; 用户可存取视图:视图将基本表中信息解码成可用信息。,数据字典驻留在SYSTEM表空间中。 每一视图集有三种视图包含有类似信息,彼此以前缀相区别,前缀为USER、ALL和DBA。 前缀为USER的视图,为用户视图,是在用户的模式内。 前缀为ALL的视图,为扩展的用户视图(为用户可存取的视图)。 前缀为DBA的视图为DBA的视图。,8.2 Oracle 10g的体系结构,R,8.3.1 用户管理和权限管理 用户是允许访问数据库系统的有效账户,是可以对数据库资源进行访问的实体。 用户使用在数据库中创建的用户账户连接到数据库。 用户管理的内容包括: 创建用户。 修改用户。 删除用户。,8.3 Oracle 10g的安全管理,创建新用户 创建用户。语句格式: CREATE USER 设置口令。语句格式: IDENTIFIED BY 用系统管理员身份登录。使用conn语句。 给用户授予权限或安排角色,语句格式: GRANT ON TO |PUBLIC WITH GRANT OPTION.,8.3 Oracle 10g的安全管理,【例8.6】创建用户zqh,口令为“zqh,12345”,默认表空间为users,大小为80MB,临时表空间为temp。 1 SQL create user zqh -创建用户 2 identified by zqh,123456 -设置口令 3 default tablespace users -确定用户的表空间和表空间的大小 4 temporary tablespace temp -分配默认的表空间 5 quota 80m on users -分配临时表空间 6 password expire -在用户第一次登录时提示修改口令,8.3 Oracle 10g的安全管理,修改用户 修改密码、帐户锁定或解锁。 【例8.7】修改用户密码。 SQL alter user zqh identified by z123; 【例8.8】解除帐户锁定 SQL alter user zqh account lock; 【例8.9】锁定用户密码 SQL alter user zqh account unlock;,8.3 Oracle 10g的安全管理,R,8.3 Oracle 10g的安全管理,删除用户 删除用户,语句格式: Drop User ; 回收权限,语句格式: REVOKE ON FROM | CASCADE CONSTRAINTS。 说明:CASCADE CONSTRAINTS表示同时删除具有参照完整性限制条件的对象,即References权限。,R,8.3 Oracle 10g的安全管理,8.3.2 角色管理 对相同对象有相同权限的用户归类管理,称为角色。 一种角色包括多个用户,具有相同权限。角色是权限的集合 。 管理角色 可以使用角色将权限与其他角色组合起来,以便于为用户授予多个权限和角色。,R,8.3 Oracle 10g的安全管理,创建角色 。 语句格式:CREATE ROLE IDENTIFIED BY 。 授予角色权限 用Grant语句对角色进行授权。 修改角色 用Alter role语句修改角色来改变用户的权限,使用revoke语句来回收权限。 删除角色 语句格式:DROP ROLE 。,R,8.3 Oracle 10g的安全管理,在系统中,数据字典ROLE_SYS_PRIVS保存了所有角色拥有的权限情况。 字典USER_TAB_PRIVS_MADE保存了所有授权者、被授权者、对象与权限情况。,R,8.4 Oracle 10g的空间管理,8.4.1 表空间 表空间是一个逻辑概念,所有的数据实际上放在一个或多个物理文件中,一个物理文件对应一个表空间。 在创建数据库时就必须创建表空间,并指定数据文件。 创建与删除表空间都可以利用Oracle管理工具实现,也可以使用命令完成。,R,创建表空间语句格式: CREATE TABLESPACE DATAFILE SIZE K|M REUSE REUSE表示可以重用已有的数据文件。 DEFAULT STORAGE (INITIAL K|MNEXT K|MMINEXTENTS MAXEXTENTS |UNLIMITEDPCTINCREASE ) 指定分配给表空间新对象的默认存储参数。 ONLINE|OFFLINE 指定表空间的状态是联机或脱机。 PERMANENT|TEMPORARY 指定表空间的类型是永久还是临时。 MANAGEMENT LOCAL|DICTIONARY。 指定表空间的区管理存储方式是本地管理还是在字典中管理。,8.4 Oracle 10g的空间管理,R,8.4 Oracle 10g的空间管理,修改表空间,语句格式: ALTER TABLESOACE RENAME DATAFILE TO 对表空间中的数据文件重新命名。 ADD DATAFILE 向表空间添加数据文件。 DEFAULT STORAGE ONLINE|OFFLINE PERMANENT|TEMPORARY BEGIN BACKUP|END BACKUP 对表空间中的数据文件执行在线备份。END BACKUP表示在线备份完成。,R,8.4 Oracle 10g的空间管理,删除表空间语句格式: DROP TABLESOACE INCLUDING CONTENTSCASCADE CONSTRAINTS 说明: (1)当删除的表空间中含有数据对象时,删除表空间的语句中 必须包括:INCLUDING CONTENTS。 (2)CASCADE CONSTRAINTS表示同时删除表空间中其他表的引用完整性约束,避免对已删除表的主码的引用。,R,查询表空间和数据字典,8.4 Oracle 10g的空间管理,表8.1 与表空间相关的数据字典,8.4.2 段 创建段,语句格式: CREATE SEGMENT TABLESPACEN 指定段所属表空间名。 STORAGE (INITIAL K|MNEXT K|MMINEXTENTS MAXEXTENTS |UNLIMITEDPCTINCREASE ) 指定分配给段的默认空间。 ONLINE|OFFLINE 指定表空间的状态是联机或脱机。,8.4 Oracle 10g的空间管理,R,R,8.4 Oracle 10g的空间管理,【例8.11】创建一个回滚段,所属表空间名为RBS,每区大小1M。 SQLcreate rollback segment rbs1 tablesoace rbs 2 storage (initial 1M next 1M minextents 1 maxextents 10 optimal 6M) 说明: 其中OPTIMAL表示当回滚段增长超过其指定值 (6M) 时,如果没有当前活动事务,将自动收回超过 部分。,8.4 Oracle 10g的空间管理,修改段,语句格式: ALTER SEGMENT DEFAULT STORAGE ONLINE|OFFLINE 删除段,语句格式: DROP SEGMENT ,R,8.4 Oracle 10g的空间管理,8.4.3 表 Oracle数据库中有4种类型的表。 普通表: 以无序方式存储在表段中。 簇表: 由共享相同数据块的一组表组成,优点是节省空间,可以改善SQL的查询性能。 索引表: 数据以B+树结构存放在主键所对应的索引段中,索引块不仅包含键列数据,也包含非键列数据。 分区表: 数据划分为更小的部分,分别存储到不同的分区段中。,R,8.4 Oracle 10g的空间管理,创建表,语句格式: CREATE TABLE . ( NULL|NIT NULL , PCTFREE INITRANS MAXTRANS TABLESPACE PCTFREE指定预留自由空间(百分比数),默认为10. DEFAULT STORAGE (INITIAL K|MNEXT K|MMINEXTENTS MAXEXTENTS |UNLIMITEDPCTINCREASE ) CLUSTER () 指定表放置在所指聚簇中。 PARALLEL 并行查询进程个数。 AS 基于对已存在的表的查询建立新表。 CACHE|NOCACHELOGGING|NOLOGGING,R,修改表,语句格式: ALTER TABLE TO 改变表的名称 ALTER TABLE ADD 在表的后面增加一个字段 ALTER TABLE MODIFY 修改表中字段的定义描述 ALTER TABLE ADD CONSTRAINT PRIMARY KEY () 添加主键约束 ALTER TABLE CACHE 把表放在数据库的内存区 ALTER TABLE NOCACHE 把表从数据库的内存区取出,8.4 Oracle 10g的空间管理,R,删除表,语句格式: TRUNCATE TABLE 只删除数据保留表结构,即清空表或截断表 DROP TABLE 数据和表结构彻底删除 序列管理 Oracle序列是一个顺序数发生器,在某些应用(例如凭证序号)中要求关键字值按升或降序自动生成。子语句格式: CREATE SEQUENCE ,8.4 Oracle 10g的空间管理,R,8.4 Oracle 10g的空间管理,序列生成说明有如下选项: START WITH :序列的第1个数字,默认为1。 MINVALUE :序列最小数。 CYCLE:在达到限制值后重复。 要删除序列,用DROP SEQUENCE 同义词管理:同义词指为表或列起的别名。 CREATE PUBLIC SYNONYM FOR (1)名字可以是表名,也可以是列名。 (2)PUBLIC表示只能由数据库管理员操作。,R,8.4 Oracle 10g的空间管理,8.4.4 索引 索引是一种树状结构,从逻辑设计方面分为: 单列索引和组合索引; 唯一性索引、非唯一性索引; 基于函数的索引 。 从物理实现的角度分为: 分区索引、非分区索引,B树索引; 正向索引、反向索引; 位图索引和位图联接索引。,R,8.4 Oracle 10g的空间管理,创建索引,语句格式: CREATE UNIQUE INDEX ON UNIQUE指定创建唯一索引,默认为非唯一索引。 ( ASC|DESC) TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE LOGGING|NOLOGGINGNOSORTREVERSE REVERSE指定创建反序索引,R,8.4 Oracle 10g的空间管理,修改索引,语句格式: ALTER INDEX RENAME TO 改变索引名称 ALTER INDEX REBUILD COMPUTE STATISTICS; 收集索引统计信息 删除索引,语句格式: DROP INDEX ,R,8.4 Oracle 10g的空间管理,8.4.4 视图 创建视图,语句格式: CREATE OR REPLACE VIEW AS WITH CHECK OPTION CONSTRAINT CONSTRAINT_NAMEWITH READ ONLY 说明: (1)OR REPLACE表示允许在重名的情况下创建视图。 (2)WITH CHECK OPTION不允许对所选择的视图的行使用插入或修改命令。 删除视图:DROP VIEW,R,8.5 Oracle 10g PL/SQL编程,8.5.1 PL/SQL简介 PL/SQL是Oracle在标准SQL语言基础上的扩展。 PL/SQL不仅允许嵌入SQL语句,而且允许定义变量、常量、使用条件语句和循环语句,允许使用异常处理各种错误。 PL/SQL优点: (1)有利于客户/服务器环境下的应用。 (2)适合于客户环境。,R,8.5 Oracle 10g PL/SQL编程,8.5.2 PL/SQL语言基础 1 PL/SQL块结构 PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块, PL/SQL块语法: DECLARE - BEGIN - EXCEPTION - END,R,8.5 Oracle 10g PL/SQL编程,说明: 声明部分(Declaration section) :声明部分包含了变量和常量的数据类型和初始值。由关键字DECLARE开始 执行部分(Executable section) :执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始, 异常处理部分(Exception section) :这一部分可选 PL/SQL块中的每一条语句都必须以分号结束, 。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由-标示。,R,8.5 Oracle 10g PL/SQL编程,2 PL/SQL数据类型 标量类型 复合类型 引用类型 LOB类型,R,8.5 Oracle 10g PL/SQL编程,标量类型 ,标量(scalar)数据类型没有内部组件,它们大致可分为以下四类: number; character; date/time ; boolean 复合类型,PL/SQL有两种复合数据结构:记录和集合。 记录由不同的域组成, 集合由不同的元素组成。,R,8.5 Oracle 10g PL/SQL编程,记录 复合数据类型在使用前必须被定义 ; 由域(由数据元素构成的逻辑组)所组成。域可以是标量(scalar)数据类型或其他记录类型 。 集合 INDEX_BY表,集合是稀疏的; 嵌套表; VARRAY,不可进行数据绑定,集合是紧密的。,R,8.5 Oracle 10g PL/SQL编程,PL/SQL记录定义方式 显式定义: 使用TYPE命令在声明部分定义变量类型,然后再创建该记录的变量。 语法: TYPE IS RECORD (); 是由逗号分隔的列表。 隐式定义: 使用%TYPE属性声明,可以动态创建。,R,8.5 Oracle 10g PL/SQL编程,INDEX_BY表集合定义 : TYPE IS TABLE OF NOT NULL INDEX BY BINARY_INTERGET; (1)可以是任何合法的PL/SQL数据类型, 包括:PLS/INTEGER、SIGNTYPE、和BOOLEAN。 (2) INDEX_BY表不能存储在数据库中 。 创建INDEX_BY表的变量: DECLARE TYPE IS TABLE OF VARCHAR2(5) INDEX BY BINARY_INTEGER BEGIN,R,8.5 Oracle 10g PL/SQL编程,嵌套表定义: TYPE IS TABLE OF NOT NULL 只能使用标量数据类型字段以及只用于数据库的数据类型。 嵌套表不与表中的其它数据存放在同一个数据块中 。 嵌套表中集合可自动设置为NULL 。 嵌套表不保证元素的顺序。 嵌套表集合数据是离线存储 ,适合于大型集合。,R,VARRAY 表定义 TYPE IS VARRAY|VARYING ARRAY () OF NOT NULL 是一维元素的数据类型,如果是记录,则只能使用标量数据字段 。 VARRAY集合是在线存储,适合于小型集合。 VARRAY 表可以顺序保存。 与嵌套表相似,VARRAY能够自动设置为NULL 。 VARRAY与表中的其他数据存放在同一个数据块中。,8.5 Oracle 10g PL/SQL编程,R,8.5 Oracle 10g PL/SQL编程,LOB(Large object)数据类型 用于存储类似图像,声音这样的大型数据对象,可以是二进制数据也可以是字符数据; 最大长度不超过4G。 支持任意访问方式 . 大致可分为以下四类: BFILE BLOB CLOB NCLOB,R,8.5 Oracle 10g PL/SQL编程,3 PL/SQL控制结构 控制结构控制PL/SQL程序流程的代码行 PL/SQL支持条件控制和循环控制结构。 条件控制:IF和CASE结构 IFTHEN语句 IFTHENELSE语句 IFTHENELSIF语句,R,8.5 Oracle 10g PL/SQL编程,循环控制 LOOP循环语句 EXIT退出循环语句 EXIT WHEN结束循环语句 WHILELOOP语句 FOR.LOOP语句 GOTO语句 :GOTO LABEL 对于块、循环、IF语句而言,从外层跳转到内层是非法的。,R,4 游标 游标是其内部指向被处理的语句的指针或句柄。 Oracle中的游标有两种:显式游标、隐式游标。 显式游标是用CURSOR.IS命令定义的游标,可以对查询语句(SELECT)返回的多条记录进行处理。 隐式游标是在执行插入(INSERT)、删除(DELETE)、修改(UPDATE)和返回单条记录的查询(SELECT)语句时由PL/SQL自动定义的。,8.5 Oracle 10g PL/SQL编程,R,8.5 Oracle 10g PL/SQL编程,显式游标操作 打开游标 推进游标 关闭游标 声明显式游标 要在程序中使用游标,必须首先定义游标。 CURSOR IS ,R,8.5 Oracle 10g PL/SQL编程,打开显式游标 OPEN 提取游标数据 FETCH INTO , 或 FETECG INTO BULK COLLECT INTO ,LIMIT rows 当打开显式游标后,就可以使用FETCH语句来移动游标。,R,8.5 Oracle 10g PL/SQL编程,关闭显式游标 CLOSE 关闭游标,释放游标所占用的资源 。 游标的属性,只能使用在过程性语句中,而不能使用在SQL语句中。 %found %notfound %isopen %rowcount,R,8.5 Oracle 10g PL/SQL编程,显式游标的FOR循环 当FOR循环开始时,游标自动读取结果集中的各行数据。 使用游标FOR循环的时候不能使用OPEN、FETCH和CLOSE语句。 隐式游标处理 PL/SQL可以隐式地打开SQL游标,并在它内部处理SQL语句 。 SQL游标用来处理INSERT、UPDATE、DELETE或返回一行的SELECT.INTO语句。 打开SQL游标之前,SQL游标的属性都为NULL。,R,8.5 Oracle 10g PL/SQL编程,游标变量 游标变量是一个引用类型(REF)的变量,可在运行时与不同的查询相关联 。 使用游标变量包括定义游标变量、打开游标变量、提取游标变量数据和关闭游标变量三个阶段。 声明游标变量 TYPE IS REF CURSOR RETURN 首先声明一个游标变量类型,再定义游标变量。,R,8.5 Oracle 10g PL/SQL编程,打开游标变量 OPEN For 提取游标变量数据 FETCH INTO 值 关闭游标变量 CLOSE 该操作用来释放查询所占用的资源,没有释放游标变量占用的存储空间 。,R,5 异常处理 捕获系统异常并在EXCEPTION中捕获及处理自定义异常名,并手工抛出。 自定义异常,并在EXCEPTION中捕获及处理。 为没有没有命名的系统错误号声明异常,并在EXCEPTION中捕获及处理。 语法 EXCEPTION WHEN THEN WHEN OTHERS THEN ,8.5 Oracle 10g PL/SQL编程,R,8.5 Oracle 10g PL/SQL编程,处理预定义异常 PL/SQL对常见的异常预定义了异常名,主要有case_not_found、cursor_already_open、dup_val_on、invalid_number、no_data_found、too_many_rows、zero_divided 处理用户定义异常 用户定义的异常必须由用户自己说明并使用RAISE语句显式地提出。异常名不能出现在赋值语句或SQL语句中。 为了处理未命名的内部异常,必须使用OTHERS处理程序或用伪指令EXCEPTION_INIT。,R,8.5 Oracle 10g PL/SQL编程,6 过程和函数 (1)子程序与过程 Oracle提供了4种子程序: 过程、函数; 包、触发器。 存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。,R,8.5 Oracle 10g PL/SQL编程,建立过程的语句格式 CREATE PROCEDURE ( IN|OUT|IN OUT ) IS|AS BEGIN END 说明:IN与OUT说明参数传递方向; IN表示参数传入过程,OUT表示结果从过程传出。,R,8.5 Oracle 10g PL/SQL编程,(2)函数 CREATE FUNCTION ( IN|OUT|IN OUT ) RETURN IS BEGIN END ,R,7 包(package) 包由两个部分组成:规范和包主体(body) 规范声明变量、常量、游标和子程序,是程序包的接口。 包主体定义在规范中声明的子程序和游标。 8 触发器 触发器总与一个表或数据库事件相联系,是在特定事件出现的时候自动执行的代码块。 触发器的组成部分:触发器名称、触发语句、触发器限制、触发操作和触发器名称。,8.5 Oracle 10g PL/SQL编程,R,8.5 Oracle 10g PL/SQL编程,触发器类型: 语句触发器、行触发器、 INSTEAD OF 触发器、 系统条件触发器和用户事件触发器。 语句触发器 在表上或者某些情况下的视图上执行的特定语句或语句组上的触发器。,R,8.5 Oracle 10g PL/SQL编程,行触发器 为受到影响的各个行激活的触发器 定义语句中包含FOR EACH ROW子句。 在BEFOREOR EACH ROW触发器中,用户可以引用受到影响的行值。 INSTEAD OF 触发器:更新视图 系统事件触发器:数据库启动、关闭,服务器错误 用户事件触发器:用户登陆、注销,R,8.6 Oracle 数据查询,SELECT DISTINCT *| AS FROM WHERE GROUP BY HAVLNG ORDER BY ASC/DESC 说明: (1) 是将结果更名为 表示的列。 (2) 是将更名为表。 (3)除了聚集函数外还允许使用对单列处理的函数 。 (4)在连接条件表达式中,用(+)表示外连接。,R,8.6 Oracle 数据查询,【例8.12】从数据库Student的学生表Student与成绩表Result中查询平均分及格的学生的学号、姓名、平均分,要求显示表栏目用中文标识。 select s.Num as 学号, s.Name as 姓名,avg(r.Fraction) as 平均分 from Student.Student s,Student.Result r where s.Num=r.Num group by s.Num having avg(r.Fraction)=60,R,8.7 Oracle 系统管理,Oracle数据库使用四种结构对数据保护: 数据库备份 日志 回滚段 控制文件,R,8.7 Oracle 系统管理,数据库备份 由构成Oracle数据库的物理文件的操作系统备份所组成。 当发生介质故障时进行数据库恢复,利用备份文件恢复毁坏的数据文件或控制文件。,R,8.7 Oracle 系统管理,日志 每一个Oracle数据库实例都提供日志,它记录数据库中所作的全部修改。 一个实例的日志至少由两个日志文件组成。 当实例故障或介质故障时进行数据库部分恢复 ,利用数据库日志中的改变应用于数据文件,修改数据库数据到故障出现的时刻。,R,8.7 Oracle 系统管理,数据库日志由两部分组成:在线日志和归档日志。 每一个运行的Oracle数据库实例都相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,记录该实例所做的全部修改。 归档日志是可选择的,一个Oracle数据库实例一旦被在线日志填满后,可形成在线日志的归档文件。归档的在线日志文件被唯一标识、并合成归档日志。,R,8.7 Oracle 系统管理,回滚段 用于存储正在进行的事务(未提交的事务)所修改值的原值。 该信息在数据库恢复过程中用于撤消任何非提交的修改。 控制文件 用于存储数据库的物理结构的状态。 控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。,8.7 Oracle 系统管理,1 在线日志 一个Oracle数据库的每一实例有一个相关联的在线日志,也称联机日志。 在线日志文件填入日志项,日志项记录的数据用于记录对数据库所做的全部修改。 后台进程LGWR以循环方式写入在线日志文件。 日志开关:
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学数据库原理与技术(第二版)-程学先-大学教学资料课件PPT
链接地址:https://www.renrendoc.com/p-21835833.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!