本书系统、详细介绍了Oracle 11g数据库服务器的安装、数据库的创建、体系结构、数据库对象管理、SQL语言基础、PL/SQL程序设计、数据库安全、备份与恢复、基于Oracle数据库实际应用。本书重点突出实际案例和过程展示, 并提供大量习题供学生参考和实际练习, 加强实践, 使学生容易上手, 提高学生的动手能力。
本书针对Oracle 11g编写,基于Linux操作系统环境,以Oracle数据库应用开发的常用知识点作为主要介绍对象。目前市场上Oracle数据库相关的图书虽然比较多,但是大部分教材是围绕Oracle基础教学的,内容过于单一、比较简单;其次,实践技能知识不足,缺乏实际应用案例;另外,开发环境都是针对Windows的,基于Linux环境的Oracle应用开发相关教材几乎没有。本书以通俗易懂的文字,简短精练的示例代码,力求让读者尽快掌握Oracle数据库应用开发的基本知识,本书在很多章节中均提供了若干综合性的应用开发实例,开发人员可以通过实例学习,提高综合编程能力。
本书叙述简明易懂,有丰富的案例和习题,非常适合Oracle数据库开发应用的入门级用户,可以使读者逐渐全面地了解Oracle数据库应用开发的基本知识。本书可作为高等学校计算机相关专业的教材,以及初、中级Oracle数据库培训班的培训教材,还可作为Oracle 应用开发人员的参考资料。
大数据与云技术的快速发展,对数据库具有更高的要求。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
第5章 数据库实例
本章要点:数据库和操作系统之间是使用数据库实例进行交互的。数据库实例由一系列内存结构和后台进程组成。本章将介绍Oracle数据库实例的构成及其工作方式。
学习目标:理解数据库实例的概念,掌握Oracle数据库实例的构成及其工作方式。重点掌握数据高速缓冲区、共享池、重做日志缓冲区、数据库写进程、日志写进程、检查点进程的工作方式。
5.1 实 例 概 述
1. Oracle实例的概念
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
(1) Oracle数据库是一系列物理文件的集合(数据文件、控制文件、联机日志、参数文件等)。
(2) Oracle数据库实例则是一组Oracle后台进程以及在服务器分配的共享内存区。
数据库中的数据是以文件的形式存储在磁盘上,数据文件是一个静态的概念,而对数据库的访问则是一个动态的过程,需要通过数据库服务器来进行。数据库服务器不仅包括数据文件,还包括访问数据文件的内存结构和后台进程,这些内存结构和后台进程叫作实例。
在启动数据库时,Oracle首先在内存中获取一定的空间,启动各种用途的后台进程,即创建一个数据库实例,然后由实例装载数据文件和重做日志文件,最后打开数据库。用户操作数据库的过程实质上是与数据库实例建立连接,然后通过实例来连接、操作数据库的过程。引入实例的好处是非常明显的,数据位于内存中,用户读写内存的速度要比直接读写磁盘快得多,而且内存数据可以在多个用户之间共享,从而提高了数据库访问的并发性。
Oracle实例由内存结构和后台进程组成,其中内存结构又分为系统全局区(SGA)和程序全局区(PGA)。启动Oracle实例的过程,即分配内存、启动后台进程。当启动实例的时候分配SGA,当服务器进程建立时分配PGA。Oracle实例组成如图5-1所示。
2. 数据库与实例的关系
数据库是数据集合,Oracle是一种关系型的数据库管理系统。通常情况下所说的“数据库”并不仅指物理的数据集合,还包含物理数据、数据库管理系统,即物理数据、内存、操作系统进程的组合体。
用户访问Oracle都是访问一个实例, 实例名指的是用于响应某个数据库操作的数据库管理系统的名称,它同时也叫SID。实例名是由参数instance_name决定的。实例名用于对外部连接,在操作系统中要取得与数据库的联系,必须使用数据库实例名。
图5-1 Oracle实例组成
通常情况下,数据库与实例是一一对应的关系,即一个数据库对应一个实例。在并行Oracle数据库服务器结构中,数据库与实例是一对多的关系,即一个数据库对应多个实例。多个“实例”同时驱动一个数据库的架构称作“集群”。同一时间一个用户只能与一个实例联系,当某一个实例出现故障时,其他实例照常运行,从而保证数据库的安全运行。
例题5-1:分别查看Oracle数据库名和数据库实例名。
……