
本书主要介绍Oracle数据库的基本概念、知识和技术,注重培养Oracle数据库技术的基本操作技能。本书内容体系完整,覆盖了Oracle数据库技术的主要组成部分,设置有Oracle数据库概述、管理与开发工具、数据库运行状态维护、物理存储结构、逻辑存储结构、数据库对象管理、数据库安全管理、数据库备份与恢复以及PL/SQL程序设计等9个章节内容。为满足实际教学的需要,每章后面均附有课后习题,附录提供了7个实验项目,可以作为实验教学内容。此外,本书有配套的在线课程资源服务网站,免费提供课后习题及实验项目的参考答案、课件PPT以及试题库等教学资源,并可以进行在线互动交流。
本书适合作为本科院校和高职院校计算机相关专业的教材,也适合作为Oracle数据库技术的自学或者培训教材。
前 言Foreword
Oracle数据库是目前市场占有率最高的关系数据库产品,是各类大型信息管理系统采用的主要数据存储系统,各个行业领域对Oracle数据库技术人员也有着较大的市场需求,因此也迫切需要Oracle数据库技术的相关学习教材,用于培养各类Oracle数据库技术人才。
本书主要介绍Oracle数据库的相关基础概念、知识和技术,注重基本操作技能的培养。在内容编排上,本书内容完整、重点突出、详略得当,对重点技术内容进行了详细介绍,淡化了较为烦琐的理论内容,并采用了大量实际操作截图对Oracle数据库技术进行了直观展示和介绍。总体来说,本书内容层次清晰,结构严谨,具有较强的可读性和实用性,是一本面向应用型人才培养的教材。
本书内容覆盖了Oracle数据库技术的主要组成部分,共包含9章内容: 第1章介绍Oracle数据库的特点、体系结构以及Oracle 12c的安装步骤;第2章介绍企业管理器、SQL Plus、SQL Developer、数据库配置助手以及网络配置助手等常用工具的基本使用方法;第3章介绍数据库启动与关闭、运行状态转换以及初始化参数管理等的操作方法;第4章介绍数据文件、控制文件、重做日志文件以及归档重做日志文件等的管理方法;第5章介绍表空间、段、区以及数据块等的管理方法;第6章介绍各类数据库对象的管理方法;第7章介绍数据库安全管理;第8章介绍数据库备份与恢复;第9章介绍PL/SQL程序设计。为满足实际教学需要,每章后面均附有课后习题。此外,附录提供了7个实验项目,其中包含6个基础实验项目以及1个综合实验项目,可以作为实验教学内容。
本书由仲恺农业工程学院的贺超波副教授和华南师范大学的刘海副教授共同编写,其中贺超波编写了第1~7章的内容以及附录的实验项目,刘海编写了第8章和第9章的内容。全书由贺超波统稿,刘海主审。此外,在本书的编写过程中,得到了华南师范大学的汤庸教授、陈启买教授和黄昌勤教授,仲恺农业工程学院的石玉强教授、吴家培副教授和杨灵副研究员的大力支持和提出宝贵建议,◆Oracle数据库技术基础教程在此表示衷心感谢!
本书在自有平台学者网建设有配套的在线课程,为读者免费提供本书所有习题及实验项目的参考答案、课件PPT以及试题库等教学资源。此外,各类相关课程资源将不断建设、更新和开放共享,网址为http://www.scholat.com/course/odbt,欢迎各位读者注册使用!
由于Oracle数据库庞大而复杂,技术更新迅速,限于作者水平有限,编写时间仓促,书中疏漏和不妥之处在所难免,恳请各位专家、同仁和读者不吝赐教和批评指正。作者Email:hechaobo@foxmail.com。
2017年3月25日于广州
Contents
第1章Oracle数据库概述1
1.1Oracle数据库简介1
1.2Oracle数据库发展历程2
1.3Oracle数据库的特点3
1.4Oracle数据库体系结构4
1.5Oracle 12c的安装6
小结14
习题14
第2章管理与开发工具15
2.1企业管理器15
2.1.1简介15
2.1.2主要功能介绍16
2.2SQL Plus22
2.2.1简介22
2.2.2常用命令23
2.3SQL Developer31
2.3.1简介31
2.3.2基本操作32
2.4数据库配置助手41
2.5网络配置助手44
小结50
习题51
第3章数据库运行状态维护52
3.1数据库启动与关闭52
3.1.1数据库的启动52
3.1.2数据库的关闭53
3.2数据库运行状态转换55
3.3服务器初始化参数文件管理58
3.3.1初始化参数文件概述58
3.3.2创建服务器初始化参数文件60
3.3.3修改初始化参数60
3.3.4导出服务器初始化参数文件64
3.3.5恢复服务器初始化参数文件64
小结65
习题65
第4章物理存储结构66
4.1数据文件66
4.1.1概述66
4.1.2创建数据文件66
4.1.3修改数据文件68
4.1.4删除数据文件71
4.1.5查询数据文件信息71
4.1.6通过OEM管理数据文件72
4.2控制文件73
4.2.1概述73
4.2.2创建控制文件73
4.2.3控制文件的备份与恢复75
4.2.4删除控制文件76
4.2.5查询控制文件信息77
4.2.6通过OEM管理控制文件77
4.3重做日志文件78
4.3.1概述78
4.3.2增加重做日志文件79
4.3.3删除重做日志文件79
4.3.4清空重做日志文件80
4.3.5修改重做日志文件81
4.3.6重做日志文件切换82
4.3.7查看重做日志文件信息82
4.3.8通过OEM管理重做日志文件82
4.4归档重做日志文件83
4.4.1概述83
4.4.2设置日志归档模式83
4.4.3查看归档信息84
4.4.4通过OEM管理归档重做日志文件85
小结86
习题86
第5章逻辑存储结构87
5.1逻辑存储结构概述87
5.2表空间88
5.2.1概述88
5.2.2创建表空间89
5.2.3修改表空间91
5.2.4删除表空间93
5.2.5查询表空间信息93
5.2.6通过OEM管理表空间94
5.3段95
5.4区96
5.5数据块97
小结98
习题98
第6章数据库对象管理99
6.1模式99
6.2表100
6.2.1创建表100
6.2.2修改表108
6.2.3删除表110
6.3约束111
6.3.1定义约束111
6.3.2添加和删除约束113
6.3.3设置约束状态114
6.3.4查询约束信息115
6.4索引115
6.4.1创建索引116
6.4.2修改索引117
6.4.3删除索引118
6.4.4查询索引信息118
6.5视图119
6.5.1创建视图119
6.5.2修改视图121
6.5.3删除视图122
6.5.4查询视图信息122
6.6序列122
6.6.1创建序列122
6.6.2修改和删除序列124
6.6.3查询序列信息124
6.7同义词125
6.7.1创建和删除同义词125
6.7.2查询同义词信息126
6.8数据库链接126
6.8.1创建和删除数据库链接127
6.8.2查询数据库链接信息128
小结128
习题128
第7章数据库安全管理129
7.1概述129
7.2用户管理130
7.2.1创建用户130
7.2.2修改用户131
7.2.3删除用户132
7.2.4查询用户信息132
7.2.5通过OEM管理用户133
7.3权限管理133
7.3.1权限授权与回收135
7.3.2查询权限授权信息138
7.3.3通过OEM管理权限138
7.4角色管理140
7.4.1创建角色141
7.4.2修改角色141
7.4.3角色的授予与回收143
7.4.4删除角色143
7.4.5查询角色信息144
7.4.6通过OEM管理角色145
7.5概要文件管理145
7.5.1创建概要文件146
7.5.2修改概要文件147
7.5.3删除概要文件148
7.5.4查询概要文件信息148
7.5.5通过OEM管理概要文件148
7.6审计管理150
7.6.1审计实例151
7.6.2查询审计设置信息154
小结154
习题155
第8章数据库备份与恢复156
8.1备份与恢复概述156
8.2非归档模式下的冷备份与恢复157
8.3归档模式下的热备份与恢复158
8.3.1归档模式下的热备份158
8.3.2归档模式下的联机完全恢复159
8.4重做日志文件的恢复160
8.5逻辑备份与恢复164
8.5.1Exp和Imp工具的使用164
8.5.2Expdp和Impdp工具的使用167
小结169
习题169
第9章PL/SQL程序设计170
9.1SQL语言基础170
9.2PL/SQL编程基础173
9.2.1概述173
9.2.2语句块174
9.2.3变量177
9.2.4数据类型178
9.2.5程序控制结构181
9.2.6游标185
9.2.7存储过程189
9.2.8函数191
9.2.9触发器192
9.2.10包196
9.2.11异常处理199
小结202
习题202
附录实验项目203
实验1管理与开发工具使用203
实验2物理存储结构设计204
实验3逻辑存储结构设计204
实验4模式对象设计205
实验5安全管理、备份与恢复206
实验6 PL/SQL程序设计207
实验7综合实验207
参考文献209
1.1数据库系统的作用1
1.1.1数据与数据管理2
1.1.2数据管理技术的产生与发展2
1.1.3数据库应用8
1.2数据模型9
1.2.1数据模型的分层10
1.2.2数据模型的组成要素11
1.2.3层次模型12
1.2.4网状模型14
1.2.5关系模型15
1.3数据抽象与数据库三级模式17
1.3.1数据抽象17
1.3.2数据库的三级模式18
1.3.3数据库三级模式与三层模型的联系和区别20
1.4数据库系统22
1.4.1数据库系统组成22
1.4.2数据库管理系统23
1.4.3数据库系统的相关人员27
本章小结29
习题133
第2章关系模型与关系代数35
2.1关系模型36
2.1.1关系数据结构36
2.1.2关系完整性约束41
2.1.3关系操作46
2.2关系代数47
2.2.1传统的集合运算48
2.2.2专门的关系运算49
2.2.3关系代数查询综合举例56
本章小结60
习题261
第3章SQL查询语言63
3.1SQL概述63
3.1.1SQL发展64
3.1.2SQL特点65
3.1.3SQL查询基本概念66
3.2单表查询67
3.2.1投影运算70
3.2.2选择运算73
3.2.3排序运算78
3.2.4查询表79
3.2.5聚合查询79
3.3连接查询81
3.3.1等值与非等值连接81
3.3.2自表连接85
3.3.3外连接86
3.4嵌套子查询87
3.4.1使用IN的子查询88
3.4.2使用比较运算符的子查询91
3.4.3使用存在量词EXISTS的子查询92
3.4.4复杂子查询实例96
3.5集合运算99
3.6SQL查询一般格式101
本章小结103
习题3103
第4章数据库建模107
4.1数据库设计过程108
4.2ER模型基本概念及表示109
4.2.1实体与实体集109
4.2.2属性110
4.2.3联系与联系集112
4.3约束114
4.3.1映射约束114
4.3.2码约束与联系集的属性安置116
4.3.3依赖约束118
4.3.4参与约束119
4.3.5多值联系119
4.4弱实体集120
4.5扩展ER特征121
4.6ER建模问题123
4.6.1ER建模的基本原则123
4.6.2依赖约束的建模128
4.6.3多值联系的建模130
4.7数据库概念设计实例——大学选课系统133
4.7.1概念设计任务133
4.7.2系统需求分析133
4.7.3数据库概念设计138
4.8逻辑设计——ER模型转化为关系模型144
4.8.1ER模型转化方法144
4.8.2大学选课系统ER模型转化实例149
本章小结153
习题4154
第5章关系数据理论与模式求精157
5.1问题提出158
5.2函数依赖定义160
5.3范式163
5.3.1第一范式(1NF)——码163
5.3.2第二范式(2NF)——全部是码164
5.3.3第三范式(3NF)——仅仅是码164
5.3.4BoyceCodd范式(BCNF)165
5.4函数依赖理论167
5.4.1函数依赖集闭包167
5.4.2属性集闭包168
5.4.3正则覆盖170
5.4.4无损连接分解172
5.4.5保持依赖分解173
5.5模式分解算法173
5.5.1BCNF分解算法173
5.5.23NF分解算法175
5.6数据库模式求精176
本章小结178
习题5179
第6章关系数据库设计实例——网上书店182
6.1系统需求分析183
6.1.1需求概述和系统边界183
6.1.2主要业务处理流程183
6.1.3功能需求分析183
6.1.4数据需求分析185
6.1.5业务规则及完整性约束分析186
6.2数据库概念设计188
6.2.1确定基本实体集及属性188
6.2.2主要业务局部概念建模190
6.2.3定义联系集及属性196
6.2.4完整E\|R模型198
6.2.5检查是否满足需求198
6.3数据库逻辑设计200
6.4模式求精207
本章小结207
习题6208
第7章SQL数据定义、更新及数据库编程210
7.1SQL数据定义语言211
7.1.1数据库的定义211
7.1.2基本表的定义216
7.1.3索引的定义219
7.2SQL数据更新语言221
7.2.1插入数据221
7.2.2删除数据223
7.2.3修改数据224
7.3视图225
7.3.1定义视图225
7.3.2查询视图228
7.3.3视图更新229
7.3.4删除视图230
7.4T\|SQL语言简介231
7.4.1表达式231
7.4.2函数232
7.4.3流程控制语句236
7.5游标237
7.5.1游标的定义与使用238
7.5.2当前游标集的修改与删除241
7.6存储过程242
7.6.1创建存储过程242
7.6.2执行存储过程246
7.6.3修改和删除存储过程247
7.7触发器248
7.7.1创建触发器249
7.7.2修改和删除触发器254
本章小结256
习题7257
第8章数据库存储结构与查询处理262
8.1文件组织与记录组织263
8.1.1存储介质263
8.1.2存储访问264
8.1.3文件组织与文件中记录的组织265
8.2索引与散列270
8.2.1索引基本概念270
8.2.2顺序索引271
8.2.3B+树索引273
8.2.4散列277
8.3查询处理281
8.3.1查询处理过程281
8.3.2查询代价度量283
8.3.3选择运算284
8.3.4连接运算286
8.3.5其他运算293
8.3.6表达式计算295
8.4查询优化296
8.4.1查询优化实例296
8.4.2关系表达式转换297
8.4.3查询优化策略298
8.5物理数据库设计299
本章小结302
习题8306
第9章数据库安全性与完整性308
9.1数据库安全性308
9.1.1数据库安全概述309
9.1.2SQL Server 安全机制312
9.1.3触发器实现安全性320
9.2数据库完整性320
9.2.1数据库完整性概述320
9.2.2SQL Server完整性321
9.2.3使用规则和触发器实现完整性328
9.3数据库应用与安全设计329
9.3.1数据库安全性控制329
9.3.2数据库完整性控制332
9.3.3存储过程设计335
本章小结338
习题9339
第10章事务管理与恢复340
10.1事务341
10.1.1问题背景341
10.1.2事务概念342
10.1.3事务特性343
10.1.4事务并发执行与调度344
10.1.5事务调度及正确性准则346
10.2并发控制349
10.2.1基于封锁的协议349
10.2.2两阶段封锁协议352
10.3恢复与备份354
10.3.1故障分类及恢复策略354
10.3.2事务访问数据方式355
10.3.3基于日志的故障恢复策略357
10.3.4检查点360
10.3.5备份与介质故障恢复363
本章小结364
习题10366
第11章数据库应用开发368
11.1数据库系统的体系结构369
11.1.1软件开发体系结构概述369
11.1.2C/S体系结构370
11.1.3B/S体系结构372
11.1.4C/S与B/S结构的结合375
11.1.5常用开发体系结构377
11.2数据库访问技术379
11.2.1ODBC API和ODBC库380
11.2.2MFC DAO381
11.2.3RDO382
11.2.4OLE DB383
11.2.5ADO385
11.2.6ADO.NET386
11.2.7JDBC389
11.2.8数据库访问技术小结392
11.3对象关系映射框架394
本章小结397
习题11399
第12章数据管理技术前沿400
12.1大数据的兴起401
12.1.1大数据的概念401
12.1.2从数据库到大数据403
12.1.3大数据处理模式404
12.2大数据处理平台和框架405
12.2.1Apache Hadoop406
12.2.2Spark409
12.2.3Storm410
12.3数据库面临的挑战412
12.3.1MySpace数据库架构变化412
12.3.2数据库可扩展性问题的解决方法414
12.3.3数据库的发展416
12.4NoSQL数据库417
12.4.1键值数据库Redis417
12.4.2文档数据库MongoDB421
12.4.3列数据库HBase426
12.4.4图数据库Neo4j429
12.5NewSQL数据库433
12.5.1VoltDB434
12.5.2NuoDB437
本章小结440
习题12440
参考文献441
1.本书以Oracle12c为平台,系统讲解Oracle数据库的基础概念、知识和技术,注重基本操作技能的培养。
2.重点突出,详略得当,详细介绍了重点技术内容,简明扼要讲解较为繁琐的理论内容。
3.提供大量实用性强的操作实例,并通过代码演示及操作截图的方式直观介绍Oracle数据库技术,适合初学者阅读和实践。
4.每章配有练习题,帮助读者巩固所学知识,附录提供七个实验项目,可以作为实验教学内容。
5.提供各章教学PPT、课后练习题及实验项目的参考答案,在自有平台学者网创建在线课程,共享各类课程资源,提供互动交流服务。网址为:http://www.scholat.com/course/odbt。
1.本书以Oracle12c为平台,系统讲解Oracle数据库的基础概念、知识和技术,注重基本操作技能的培养。
2.重点突出,详略得当,详细介绍了重点技术内容,简明扼要讲解较为繁琐的理论内容。
3.提供大量实用性强的操作实例,并通过代码演示及操作截图的方式直观介绍Oracle数据库技术,适合初学者阅读和实践。
4.每章配有练习题,帮助读者巩固所学知识,附录提供七个实验项目,可以作为实验教学内容。
5.提供各章教学PPT、课后练习题及实验项目的参考答案,在自有平台学者网创建在线课程,共享各类课程资源,提供互动交流服务。网址为:http://www.scholat.com/course/odbt。