Oracle数据库系统原理(第2版)是由作者李爱武所编著的一本书。通过本书,讲述了Oracle数据库的基本理论,以及系统知识,让你有更加深层次的理解。
简介:
本书包括数据库基本理论以及Oracle数据库系统知识两部分。主要包括关系模型基本理论、ER图及范式理论、安装Oracle 12c软件、SQL语言、Oracle的逻辑存储空间、索引原理、Oracle数据库体系结构、事务处理与锁、网络连接配置、用户和权限管理等内容。强调在学习各种技能的同时,理解关系型数据库理论的一些本质内容,能够对Oracle数据库的体系结构及运作原理有深层次的理解。
本书可以作为高校计算机各专业的数据库教材或参考书,也可以供相关Oracle数据库管理员或编程人员参考。
目录:
第1章数据库技术基础1
1.1数据库应用的场合1
1.2常用术语1
1.3数据库系统的构成1
1.3.1硬件2
1.3.2软件2
1.3.3人员2
第2章关系模型理论的发展及主要产品4
2.1数据处理的历史4
2.2数据模型的概念5
2.3网状模型与层次模型简介5
2.3.1网状模型5
2.3.2层次模型6
2.3.3层次模型和网状模型的贡献及缺陷6
2.4关系模型的提出和成熟6
2.4.1关系数据模型要解决的问题7
2.4.2关系模型的提出与完善7
2.4.3IBM的System R项目7
2.4.4加州大学伯克利分校的Ingres项目8
2.5关系数据模型的三个要素9
2.5.1关系数据模型的数据结构9
2.5.2关系数据模型的数据操作方式10
2.5.3关系数据模型中的完整性约束(integrity constraint)11
2.5.4关系型数据库的特点11
2.6常用关系型数据库产品介绍12
2.6.1关系型数据库产品的主要类型12
2.6.2Oracle13
2.6.3DB213
2.6.4SQL Server13
2.6.5Sybase和Informix13
2.6.6MySQL与PostgreSQL开源数据库13
第3章ER模型15
3.1数据库设计的主要步骤15
3.2ER模型的主要概念15
3.3ER图的表示方法16
3.4联系的映射约束16
3.4.1一对一联系17
3.4.2一对多联系17
3.4.3多对多联系17
3.5ER图如何转化为表18
3.5.1一对一联系转化为表18
3.5.2一对多联系转化为表18
3.5.3多对多联系转化为表19
第4章规范化理论20
4.1引入范式理论的原因20
4.1.1Insertion异常21
4.1.2Deletion异常21
4.1.3Update异常21
4.2第一范式22
4.3第二范式23
4.4第三范式23
第5章获得Oracle 12c安装文件及帮助文件25
5.1注册OTN账号25
5.2下载Oracle 12c安装文件26
5.3获得Oracle 12c文档26
5.3.1下载文档26
5.3.2检索文档27
5.3.3三个重要文档介绍28
5.3.4查询Oracle的错误信息28
第6章安装Oracle 12c并创建数据库30
6.1安装Oracle 12c30
6.2创建数据库36
6.3删除Oracle 12c软件44
第7章配置和使用SQLPlus46
7.1启动数据库服务46
7.2启动和关闭数据库46
7.3可用数据库用户48
7.4常用SQLPlus操作48
7.4.1使用SQLPlus连接到本地数据库48
7.4.2切换连接用户49
7.4.3切换数据库50
7.4.4查看当前连接的数据库名称50
7.4.5执行SQL命令50
7.4.6describe命令查询表的结构51
7.4.7修改执行过的SQL命令以重新执行51
7.4.8执行SQL脚本文件51
7.5设置SQLPlus环境52
7.5.1设置每行容纳的字符数52
7.5.2设置查询结果的列宽52
7.5.3自定义SQL提示符53
7.5.4修改ED命令默认使用的编辑器53
7.5.5使用glogin.sql文件保存SQLPlus环境配置53
7.5.6获得SQLPlus环境设置帮助信息54
第8章SQL查询语句56
8.1SQL概述56
8.1.1SQL的历史56
8.1.2SQL的发音57
8.1.3SQL查询的特点57
8.1.4SQL标准57
8.2SQL语言的主要类型59
8.3常用数据类型60
8.4数值类型60
8.5字符串数据类型60
8.5.1早期字符编码方式61
8.5.2Unicode编码方式61
8.5.3数据库字符集与国家字符集61
8.5.4char(n)与varchar2(n)63
8.5.5nchar(n)和nvarchar2(n)63
8.6日期时间数据类型63
8.7Oracle中的关键字64
8.8简单的SQL查询语句64
8.8.1最简单的查询——只指定表64
8.8.2指定列65
8.8.3指定列别名65
8.8.4指定查询条件66
8.8.5使用order by子句对查询结果排序67
8.9常用数值函数68
8.10字符数据的处理69
8.10.1字符串常量条件69
8.10.2字符串模糊查询70
8.10.3查询特殊字符71
8.10.4常用字符串函数72
8.10.5利用正则表达式搜索字符串75
8.11日期型数据的处理78
8.11.1获得当前日期时间78
8.11.2日期型常量78
8.11.3显示日期型列值79
8.11.4使用extract()函数抽取日期的指定部分80
8.11.5获取时间差81
8.12空值的处理81
8.13分组汇总查询83
8.13.1单独使用分组函数84
8.13.2与group by子句结合使用分组函数85
8.13.3having子句87
8.13.4order by子句88
8.13.5分组汇总查询小结88
8.14子查询89
8.14.1where子句中使用子查询89
8.14.2select子句中使用子查询90
8.14.3from子句中使用子查询91
8.14.4非相关子查询与相关子查询91
8.14.5in与not in94
8.14.6exists与not exists97
8.15集合运算98
8.15.1求并集union与union all98
8.15.2求交集intersect98
8.15.3求差集minus99
8.16多表连接查询100
8.16.1交叉连接100
8.16.2内连接101
8.16.3两种连接标准:SQL86与SQL92103
8.16.4外连接104
8.17如何构造复杂的查询语句106
8.18SQL查询的等效转换109
8.18.1内连接与子查询109
8.18.2in,exists,内连接,intersect109
8.18.3not in,not exist,外连接110
第9章数据修改语句112
9.1delete112
9.2update112
9.3insert113
9.4构造涉及多个表的数据修改语句113
9.4.1附带复杂条件的update语句114
9.4.2修改的新值与其他表相关114
第10章表及约束115
10.1创建简单的表115
10.2约束115
10.2.1约束的种类116
10.2.2创建表时附加约束116
10.2.3对表增加约束119
10.2.4删除约束120
10.2.5禁用和启用约束120
10.2.6查询约束的信息121
10.3修改表的结构122
10.3.1修改列的数据类型122
10.3.2添加及删除列123
10.3.3修改列名123
10.3.4修改表名123
10.3.5清空表:truncate table123
10.3.6删除表124
10.4回收站功能124
10.4.1与回收站有关的数据字典视图124
10.4.2查询被删除表中的数据125
10.4.3恢复被删除的表126
10.4.4如何不开启回收站功能127
10.4.5清空回收站中的对象127
10.4.6关于回收站功能的几点注意事项128
10.4.7恢复与表相关的索引对象128
10.5DDL语句的背后129
第11章管理表空间和数据文件130
11.1表空间130
11.1.1表空间是什么130
11.1.2如何创建表空间130
11.1.3如何把表创建于指定表空间131
11.1.4把表的数据移至另外一个表空间131
11.1.5查询表所在的表空间131
11.1.6表的数据存储于多个数据文件的原因132
11.1.7查询表空间或数据文件的系统信息132
11.2表空间的类型及其功能133
11.3存储空间如何分配135
11.3.1数据块、段和区135
11.3.2指定非默认的块大小136
11.3.3指定表空间的空间分配方式136
11.3.4观察空间分配的过程137
11.3.5对表分配指定大小的空间139
11.4删除数据时空间是否释放139
11.5修改表空间和数据文件的属性141
11.6与存储空间相关的系统信息查询144
第12章B树索引148
12.1一个使用索引的例子148
12.2如何创建索引150
12.3B树索引能把查询速度提高多少151
12.4B树索引的结构153
12.4.1如何表示表中记录的地址153
12.4.2B树索引的叶节点内容155
12.4.3B树索引的分支节点内容156
12.4.4Oracle如何利用索引进行查询156
12.4.5实验探究:验证索引叶节点及分支节点内容157
12.4.6哪些情况需要创建索引159
12.5如何知道一个查询是否使用了索引159
12.5.1设置SQLPlus查看执行计划159
12.5.2通过查看执行计划确认是否使用索引161
12.5.3哪些情况不会使用索引162
12.6DML语句对索引的影响162
12.6.1insert语句对索引的影响162
12.6.2delete语句对索引的影响163
12.6.3update语句对索引的影响163
12.7基于函数的B树索引163
12.8设置索引的可见性(visible/invisible)164
12.9约束与索引164
12.10与B树索引有关的数据字典视图165
第13章位图索引168
13.1位图索引的功能168
13.2位图索引能把查询速度提高多少168
13.3位图索引占用多少空间169
13.4位图索引的结构170
13.5实验探究:验证位图索引的内容170
第14章管理数据库的各种文件173
14.1参数文件173
14.1.1参数文件的作用173
14.1.2pfile和spfile173
14.1.3修复spfile174
14.1.4参数文件的存储位置175
14.1.5修改参数值176
14.1.6如何查询参数值177
14.1.7有关初始化参数的帮助178
14.2跟踪文件179
14.2.1跟踪文件的位置179
14.2.2跟踪文件的种类180
14.2.3警告文件180
14.2.4当前会话跟踪文件182
14.3控制文件183
14.3.1控制文件的内容183
14.3.2控制文件的安全性保证措施185
14.4重做文件188
14.4.1重做文件的内容188
14.4.2实例恢复与介质恢复189
14.4.3重做文件组189
14.4.4查询重做文件信息192
14.4.5管理联机重做文件192
14.4.6移动重做文件194
14.4.7数据库归档模式195
14.4.8查询数据库归档模式199
14.4.9查询联机重做文件组及重做文件信息199
14.4.10查询归档日志文件信息201
第15章实例203
15.1内存构成部分203
15.1.1SGA203
15.1.2PGA203
15.1.3UGA203
15.2SGA构成部分204
15.2.1固定区域(fixed area)204
15.2.2数据缓冲区(database buffer cache)204
15.2.3Java池(Java pool)206
15.2.4大池(large pool)206
15.2.5重做缓冲区(redo buffer)206
15.2.6共享池(shared pool)207
15.3PGA的构成208
15.3.1私有SQL区域208
15.3.2SQL工作区域208
15.4内存管理与配置209
15.4.1内存自动管理209
15.4.2自动管理SGA210
15.4.3手工管理SGA212
15.5进程212
15.5.1服务器进程215
15.5.2后台进程217
第16章事务处理与锁220
16.1事务概念220
16.1.1事务应用实例1:银行转账220
16.1.2事务应用实例2:超市收银221
16.2事务的ACID属性221
16.2.1Atomicity——原子性221
16.2.2Consistency——一致性221
16.2.3Isolation——隔离性222
16.2.4Durability——持久性223
16.3事务控制命令223
16.4并发控制要解决的问题224
16.5解决并发问题的锁和多版本数据技术226
16.5.1Oracle中锁的种类226
16.5.2Oracle自动附加的锁227
16.5.3DML锁227
16.5.4死锁229
16.5.5锁的升级和转换230
16.5.6多版本数据技术230
16.5.7总结:Oracle解决三个并发控制问题的方法232
16.6实例恢复232
16.6.1checkpoint与实例恢复的关系233
16.6.2前滚(rollforward)233
16.6.3回滚(rollback)233
第17章网络连接234
17.1网络连接的几个术语234
17.1.1服务器与客户端234
17.1.2数据库服务名234
17.1.3监听器235
17.1.4专用服务器模式及专用服务器进程237
17.1.5共享服务器模式和共享服务器进程237
17.1.6服务注册238
17.2简单的网络连接配置239
17.2.1服务器端操作239
17.2.2客户端配置240
17.3共享服务器模式及专用服务器模式配置248
17.3.1配置共享服务器模式248
17.3.2在客户端指定共享或专用连接方式253
17.4使用非默认端口连接数据库254
17.4.1设置监听器254
17.4.2设置local_listener参数静态注册数据库服务至监听器256
17.4.3配置客户端连接至数据库256
第18章用户和权限管理258
18.1一个用户及权限管理的简单示例258
18.2用户管理259
18.2.1用户属性259
18.2.2创建用户260
18.2.3模式的概念260
18.2.4修改用户属性260
18.2.5删除用户261
18.2.6查询数据库中的用户名称261
18.2.7查询用户属性262
18.2.8数据库中的预定义用户263
18.2.9预置管理用户263
18.3权限管理264
18.3.1Oracle中的权限种类264
18.3.2系统权限265
18.3.3unlimited tablespace权限265
18.3.4sysdba和sysoper权限265
18.3.5数据库中的所有系统权限265
18.3.6对象权限266
18.3.7赋予系统权限267
18.3.8赋予对象权限267
18.3.9撤销用户权限268
18.3.10查询用户的权限信息269
18.4角色271
18.4.1public角色271
18.4.2角色相关信息查询271
18.4.3connect、resource、dba角色272
参考文献273
密码: k235