
本书系统、完整地讲述了Oracle 11g 数据库应用开发的基础知识。全书共分为12章,详细介绍了Oracle数据库服务器的安装与配置、数据库的创建、数据库体系结构、数据库对象管理与应用、SQL语言基础、PL/SQL语言基础、PL/SQL程序设计、数据库安全管理、数据库备份与恢复、基于Oracle数据库的应用。本书内容编排合理,循序渐进,通俗易懂, 涵盖了必要的基础知识和新知识。
Oracle数据库应用开发已经成为国内外高校计算机专业和非计算机专业的必修或选修课程。本书重点突出实际案例和过程展示,并提供大量习题供学生参考和实际练习,加强实践,使学生容易上手,提高学生的动手能力。本书可作为高等院校本科生学习 Oracle 数据库开发应用及相关内容课程的教材和参考书,也可作为DBA的入门参考资料。
前 言
大数据与云技术的快速发展,对数据库具有更高的要求。Oracle数据库系统是目前最优秀的大型数据库管理系统之一,也是当前应用最广泛的关系数据库产品,因其优越的安全性、完整性、稳定性和支持多种操作系统、多种硬件平台等特点,得到了广泛的应用。Oracle是一种非常复杂的软件系统,在激烈竞争的人才市场中,具有一定Oracle数据库应用开发经验的人不但容易找到工作,而且还能获得很好的职位和优厚的待遇。为了适应企业的需求,提高毕业生的就业率,越来越多的高校开设了Oracle数据库应用开发的相关课程。本教材是针对“校企结合”的教学改革而编写的。对教材的知识结构、深度、难度、实用性等方面都有一些新的要求。作者熟悉Oracle课程的知识体系,在多年教学和实践中,积累了比较丰富的教学经验,在平时的教学过程中不断积累有关方面的知识,将最新、最前沿的知识与技能融入教材编写过程中。本教材强调培养学生的实际编程开发能力、应用能力与创新能力,通过大量有趣的典型实例,深入浅出地介绍了Oracle开发应用的编程方法和相关技术,并避免了一些枯燥、空洞的理论。
本书针对Oracle 11g编写,基于Linux操作系统环境,以Oracle数据库应用开发的常用知识点作为主要介绍对象。目前市场上Oracle数据库相关的图书虽然比较多,但是大部分教材是围绕Oracle基础教学的,内容过于单一、比较简单;其次,实践技能知识不足,缺乏实际应用案例;另外,开发环境都是针对Windows的,基于Linux环境的Oracle应用开发相关教材几乎没有。本书以通俗易懂的文字,简短精练的示例代码,力求让读者尽快掌握Oracle数据库应用开发的基本知识,本书在很多章节中均提供了若干综合性的应用开发实例,开发人员可以通过实例学习,提高综合编程能力。
本书各章的主要内容如下。
第1?章:Oracle 11g数据库安装及创建数据库。介绍如何在Linux环境下正确安装数据库,以及使用DBCA创建数据库的过程。
第2?章:Oracle数据库管理工具。介绍Oracle的常用数据库管理工具,主要包括企业管理器、SQL*Plus、SQL Developer、网络配置助手(Net configuration assistant)。
第3?章:物理存储结构。首先简单介绍Oracle的体系结构,然后重点介绍Oracle的物理存储结构及其管理方法,包括数据文件、控制文件、重做日志文件的管理及数据库的归档。
第4?章:逻辑存储结构。主要介绍Oracle 11g数据库的逻辑存储结构,包括表空间、段、区和数据块的基本概念、组成及其管理。
第5?章:数据库实例。介绍Oracle数据库实例的构成及其工作方式。
第6?章:模式对象管理。主要介绍表、表的完整性约束及分区表,对索引、表、索引、视图、序列和同义词视图等也做了较为详尽的讲解。
第7?章:SQL基础。主要介绍SQL语言应用基础,包括数据查询、数据更新(插入、修改、删除)操作。
第8?章:PL/SQL基础。介绍PL/SQL语言的特点、基础语法、词法单元、数据类型、控制结构、游标和异常处理机制。重点介绍游标的使用方法和技巧。
第9?章:PL/SQL程序设计。介绍存储过程、函数、触发器三种数据对象的创建、调用及管理。通过多种典型例题的探讨,希望读者能够从典型实例中快速掌握存储过程、函数、触发器的使用方法和技巧,并能灵活应用它们,从而提高程序设计的能力。
第10?章:安全管理。主要介绍Oracle数据库的认证方法、用户管理、权限管理、角色管理、概要文件管理等。
第11?章:备份与恢复。简单介绍备份与恢复类型,详细介绍物理备份与恢复、逻辑备份与恢复、利用RMAN备份与恢复。
第12?章:基于Oracle数据库的应用。介绍一个有线收费管理系统的系统分析、数据库的设计与实现,以及应用程序的设计与开发。该典型案例来源于一个实际应用科研项目,通过对案例的学习,希望读者能够领会到复杂问题的分析和解决过程。
本书叙述简明易懂,有丰富的案例和习题,非常适合Oracle数据库开发应用的入门级用户,可以使读者逐渐全面地了解Oracle数据库应用开发的基本知识。本书可作为高等学校计算机相关专业的教材,以及初、中级Oracle数据库培训班的培训教材,还可作为Oracle?应用开发人员的参考资料。
本书第1、10、11章由张晓霞编写,第8、9章由田莹编写,第2、3章由卢明编写,第4章由云晓燕编写,第5章由王彩霞编写,第6章由包含编写,第7章由唐笑飞编写,第12章由孟丹编写。全书由张晓霞统稿。
由于作者水平有限,书中难免有不足之处,恳请广大读者批评指正。
编 者
目 录
第1章 Oracle 11g数据库安装及
创建数据库 1
1.1 Oracle数据库概述 1
1.1.1 Oracle数据库简介 1
1.1.2 Oracle数据库的特点 2
1.2 数据库安装前的准备 2
1.2.1 安装Oracle 11g的硬件与
软件要求 2
1.2.2 设置环境变量 3
1.2.3 Oracle 11g数据库安装前的
预处理 4
1.3 Oracle 11g数据库的安装 5
1.3.1 安装Oracle 11g数据库
服务器 5
1.3.2 客户端安装过程 12
1.4 使用DBCA创建数据库 14
1.4.1 配置监听 14
1.4.2 使用DBCA工具创建
数据库 17
1.5 启动与关闭数据库 24
1.5.1 Oracle数据库实例的状态 24
1.5.2 启动数据库实例 24
1.5.3 关闭数据库 27
本章小结 29
习题 29
第2章 Oracle数据库管理工具 32
2.1 企业管理器 32
2.1.1 启动企业管理器 32
2.1.2 Oracle Enterprise Manager
管理页面 33
2.2 SQL*Plus工具 34
2.2.1 SQL*Plus概述 35
2.2.2 启动SQL*Plus 35
2.2.3 SQL*Plus的命令规则 37
2.2.4 SQL*Plus的内部命令 37
2.3 SQL Developer 42
2.3.1 客户端SQL Developer登录 42
2.3.2 从服务器登录
SQL Developer 44
2.4 Net Configuration Assistant 45
2.5 案例实训 50
本章小结 51
习题 51
第3章 物理存储结构 53
3.1 Oracle数据库体系结构 53
3.2 Oracle的物理存储结构 54
3.3 数据文件 54
3.3.1 创建数据文件 55
3.3.2 修改数据文件的大小 55
3.3.3 改变数据文件的可用性 56
3.3.4 改变数据文件的名称或位置 56
3.3.5 删除数据文件 58
3.3.6 查询数据文件信息 58
3.4 重做日志文件 59
3.4.1 重做日志文件的工作过程 59
3.4.2 添加重做日志文件组 60
3.4.3 添加重做日志文件组成员 60
3.4.4 改变重做日志文件组成员
文件的名称或位置 61
3.4.5 删除重做日志文件组成员 62
3.4.6 删除重做日志文件组 62
3.4.7 重做日志文件组的切换 63
3.4.8 查看重做日志文件的信息 63
3.5 归档重做日志文件 64
3.5.1 重做日志文件归档概述 64
3.5.2 设置数据库归档/非归档
模式 65
3.5.3 归档方式与目标设置 65
3.5.4 归档信息查询 66
3.6 控制文件 67
3.6.1 创建控制文件 67
3.6.2 实现多路镜像控制文件 70
3.6.3 控制文件备份 70
3.6.4 删除控制文件 71
3.6.5 查看控制文件的信息 71
3.7 案例实训 71
本章小结 73
习题 74
第4章 逻辑存储结构 76
4.1 逻辑存储结构概述 76
4.2 表空间管理 77
4.2.1 表空间的概念 77
4.2.2 表空间的类型 77
4.2.3 创建表空间 78
4.2.4 管理表空间 80
4.3 段 83
4.3.1 段的种类 83
4.3.2 段的管理方式 84
4.3.3 段信息查询 84
4.4 区 85
4.4.1 区的概念 85
4.4.2 区的分配 85
4.5 数据块 86
4.5.1 数据块的概念 86
4.5.2 数据块的管理 87
4.6 案例实训 88
本章小结 88
习题 89
第5章 数据库实例 91
5.1 实例概述 91
5.2 Oracle内存结构 92
5.2.1 全局系统区SGA 92
5.2.2 程序全局区PGA 96
5.3 Oracle进程结构 97
5.3.1 Oracle进程种类 97
5.3.2 Oracle后台进程 98
5.4 案例实训 101
本章小结 101
习题 101
第6章 模式对象管理 103
6.1 模式对象 103
6.2 表的管理 103
6.2.1 创建表 103
6.2.2 数据类型 104
6.2.3 表的完整性约束 105
6.2.4 利用子查询创建表 108
6.2.5 修改表 108
6.2.6 删除表 110
6.3 视图管理 110
6.3.1 创建视图 110
6.3.2 视图DML操作 111
6.3.3 修改和删除视图 112
6.4 索引管理 112
6.4.1 索引概述 112
6.4.2 创建索引 113
6.4.3 删除索引 114
6.5 分区表与分区索引管理 114
6.5.1 创建分区表 115
6.5.2 创建分区索引 117
6.5.3 查询分区表和分区索引
信息 118
6.6 序列 118
6.6.1 创建序列 119
6.6.2 使用序列 119
6.6.3 修改与删除序列 120
6.7 同义词 120
6.8 案例实训 121
本章小结 122
习题 122
第7章 SQL基础 124
7.1 SQL概述 124
7.2 SQL数据查询 125
7.2.1 单表查询 125
7.2.2 连接查询 128
7.2.3 嵌套查询 130
7.2.4 集合查询 133
7.3 SQL数据更新 134
7.3.1 插入数据 134
7.3.2 修改数据 135
7.3.3 删除数据 135
7.4 案例实训 136
本章小结 137
习题 137
第8章 PL/SQL基础 139
8.1 PL/SQL概述 139
8.1.1 PL/SQL的功能和用法 139
8.1.2 PL/SQL程序结构 140
8.1.3 词法单元 141
8.1.4 数据类型 143
8.1.5 变量与常量 145
8.1.6 PL/SQL中的SQL语句 146
8.2 控制结构 147
8.2.1 选择结构 148
8.2.2 循环结构 151
8.3 游标 152
8.3.1 游标概述 152
8.3.2 显式游标 153
8.3.3 隐式游标 157
8.3.4 使用游标更新或删除数据 157
8.4 异常处理 159
8.4.1 异常概述 159
8.4.2 异常处理过程 160
8.4.3 异常的传播 162
8.5 案例实训 163
本章小结 163
习题 163
第9章 PL/SQL程序设计 166
9.1 存储过程 166
9.1.1 存储过程的创建 166
9.1.2 存储过程的调用 167
9.1.3 存储过程的管理 169
9.2 函数 170
9.2.1 函数的创建 170
9.2.2 函数的调用 171
9.2.3 函数的管理 173
9.3 触发器 173
9.3.1 触发器概述 173
9.3.2 DML触发器 174
9.3.3 INSTEAD OF触发器 179
9.3.4 系统触发器 180
9.3.5 触发器的管理 182
9.4 案例实训 183
本章小结 183
习题 184
第10章 安全管理 186
10.1 Oracle数据库安全性概述 186
10.2 用户管理 186
10.2.1 用户管理概述 186
10.2.2 创建用户 189
10.2.3 修改用户 190
10.2.4 删除用户 191
10.2.5 查询用户信息 191
10.3 权限管理 192
10.3.1 系统权限 192
10.3.2 对象权限 195
10.4 角色管理 198
10.4.1 Oracle数据库角色概述 198
10.4.2 自定义角色 199
10.4.3 查询角色信息 200
10.5 概要文件管理 201
10.5.1 概要文件概述 201
10.5.2 概要文件的功能 202
10.5.3 概要文件的管理 204
10.6 案例实训 206
本章小结 207
习题 207
第11章 备份与恢复 210
11.1 备份与恢复概述 210
11.1.1 备份类型 210
11.1.2 恢复类型 211
11.2 物理备份与恢复 212
11.2.1 冷备份与恢复 212
11.2.2 热备份与恢复 214
11.3 逻辑备份与恢复 222
11.3.1 逻辑备份与恢复概述 222
11.3.2 Expdp和Impdp 222
11.4 利用RMAN备份与恢复 226
11.4.1 RMAN概述 226
11.4.2 RMAN基本操作 227
11.4.3 RMAN备份和恢复 229
11.5 案例实训 231
本章小结 232
习题 232
第12章 基于Oracle数据库的应用 234
12.1 有线电视收费管理系统需求分析 234
12.2 系统概要设计 235
12.2.1 系统功能模块设计 235
12.2.2 数据库设计 235
12.3 系统详细设计及实现 239
12.3.1 登录模块的设计 239
12.3.2 系统主页面设计 241
12.3.3 用户管理 242
12.3.4 收费管理 243
本章小结 245
习题 245
参考文献 246
本书针对Oracle 11g编写,基于Linux操作系统环境,以Oracle数据库应用开发的常用知识点作为主要介绍对象。目前市场上Oracle数据库相关的图书虽然比较多,但是大部分教材是围绕Oracle基础教学的,内容过于单一、比较简单;其次,实践技能知识不足,缺乏实际应用案例;另外,开发环境都是针对Windows的,基于Linux环境的Oracle应用开发相关教材几乎没有。本书以通俗易懂的文字,简短精练的示例代码,力求让读者尽快掌握Oracle数据库应用开发的基本知识,本书在很多章节中均提供了若干综合性的应用开发实例,开发人员可以通过实例学习,提高综合编程能力。
本书叙述简明易懂,有丰富的案例和习题,非常适合Oracle数据库开发应用的入门级用户,可以使读者逐渐全面地了解Oracle数据库应用开发的基本知识。本书可作为高等学校计算机相关专业的教材,以及初、中级Oracle数据库培训班的培训教材,还可作为Oracle 应用开发人员的参考资料。
本书针对Oracle 11g编写,基于Linux操作系统环境,以Oracle数据库应用开发的常用知识点作为主要介绍对象。目前市场上Oracle数据库相关的图书虽然比较多,但是大部分教材是围绕Oracle基础教学的,内容过于单一、比较简单;其次,实践技能知识不足,缺乏实际应用案例;另外,开发环境都是针对Windows的,基于Linux环境的Oracle应用开发相关教材几乎没有。本书以通俗易懂的文字,简短精练的示例代码,力求让读者尽快掌握Oracle数据库应用开发的基本知识,本书在很多章节中均提供了若干综合性的应用开发实例,开发人员可以通过实例学习,提高综合编程能力。
本书叙述简明易懂,有丰富的案例和习题,非常适合Oracle数据库开发应用的入门级用户,可以使读者逐渐全面地了解Oracle数据库应用开发的基本知识。本书可作为高等学校计算机相关专业的教材,以及初、中级Oracle数据库培训班的培训教材,还可作为Oracle 应用开发人员的参考资料。