Oracle数据库系统原理(第2版)
Oracle数据库系统原理(第2版)
1 数据库技术基础
1.1 数据库应用的场合
1.2 常用术语
1.3 数据库系统的构成
1.3.1 硬件
1.3.2 软件
1.3.3 人员
2 关系模型理论的发展及主要产品
2.1 数据处理的历史
2.2 数据模型的概念
2.3 网状模型与层次模型简介
2.3.1 网状模型
2.3.2 层次模型
2.3.3 层次模型和网状模型的贡献及缺陷
2.4 关系模型的提出和成熟
2.4.1 关系数据模型要解决的问题
2.4.2 关系模型的提出与完善
2.4.3 IBM的System R项目
2.4.4 加州大学伯克利分校的Ingres项目
2.5 关系数据模型的三个要素
2.5.1 关系数据模型的数据结构
2.5.2 关系数据模型的数据操作方式
2.5.3 关系数据模型中的完整性约束(integrity constraint)
2.5.4 关系型数据库的特点
2.6 常用关系型数据库产品介绍
2.6.1 关系型数据库产品的主要类型
2.6.2 Oracle
2.6.3 DB2
2.6.4 SQL Server
2.6.5 Sybase和Informix
2.6.6 MySQL与PostgreSQL开源数据库
3 ER模型
3.1 数据库设计的主要步骤
3.2 ER模型的主要概念
3.3 ER图的表示方法
3.4 联系的映射约束
3.4.1 一对一联系
3.4.2 一对多联系
3.4.3 多对多联系
3.5 ER图如何转化为表
3.5.1 一对一联系转化为表
3.5.2 一对多联系转化为表
3.5.3 多对多联系转化为表
4 规范化理论
4.1 引入范式理论的原因
4.1.1 Insertion异常
4.1.2 Deletion异常
4.1.3 Update异常
4.2 第一范式
4.3 第二范式
4.4 第三范式
5 获得Oracle安装及帮助文件
5.1 注册OTN账号
5.2 下载Oracle 12c安装文件
5.3 获得Oracle 12c文档
5.3.1 下载文档
5.3.2 检索文档
5.3.3 三个重要文档介绍
5.3.4 查询Oracle的错误信息
6 安装ORacle12c并创建数据库
6.1 安装Oracle 12c
6.2 创建数据库
6.3 删除Oracle 12c软件
7 配置和使用SQL Plus
7.1 启动数据库服务
7.2 启动和关闭数据库
7.3 可用数据库用户
7.4 常用SQL Plus操作
7.4.1 使用SQL Plus连接到本地数据库
7.4.2 切换连接用户
7.4.3 切换数据库
7.4.4 查看当前连接的数据库名称
7.4.5 执行SQL命令
7.4.6 describe命令查询表的结构
7.4.7 修改执行过的SQL命令以重新执行
7.4.8 执行SQL脚本文件
7.5 设置SQL Plus环境
7.5.1 设置每行容纳的字符数
7.5.2 设置查询结果的列宽
7.5.3 自定义SQL提示符
7.5.4 修改ED命令默认使用的编辑器
7.5.5 使用glogin.sql文件保存SQL Plus环境配置
7.5.6 获得SQL Plus环境设置帮助信息
8 SQL查询语句
8.1 SQL概述
8.1.1 SQL的历史
8.1.2 SQL的发音
8.1.3 SQL查询的特点
8.1.4 SQL标准
8.2 SQL语言的主要类型
8.3 常用数据类型
8.4 数值类型
8.5 字符串数据类型
8.5.1 早期字符编码方式
8.5.2 Unicode编码方式
8.5.3 数据库字符集与国家字符集
8.5.4 char(n)与varchar2(n)
8.5.5 nchar(n)和nvarchar2(n)
8.6 日期时间数据类型
8.7 Oracle中的关键字
8.8 简单的SQL查询语句
8.8.1 最简单的查询——只指定表
8.8.2 指定列
8.8.3 指定列别名
8.8.4 指定查询条件
8.8.5 使用order by子句对查询结果排序
8.9 常用数值函数
8.10 字符数据的处理
8.10.1 字符串常量条件
8.10.2 字符串模糊查询
8.10.3 查询特殊字符
8.10.4 常用字符串函数
8.10.5 利用正则表达式搜索字符串
8.11 日期型数据的处理
8.11.1 获得当前日期时间
8.11.2 日期型常量
8.11.3 显示日期型列值
8.11.4 使用extract()函数抽取日期的指定部分
8.11.5 获取时间差
8.12 空值的处理
8.13 分组汇总查询
8.13.1 单独使用分组函数
8.13.2 与group by子句结合使用分组函数
8.13.3 having子句
8.13.4 order by子句
8.13.5 分组汇总查询小结
8.14 子查询
8.14.1 where子句中使用子查询
8.14.2 select子句中使用子查询
8.14.3 from子句中使用子查询
8.14.4 非相关子查询与相关子查询
8.14.5 in与not in
8.14.6 exists与not exists
8.15 集合运算
8.15.1 求并集union与union all
8.15.2 求交集intersect
8.15.3 求差集minus
8.16 多表连接查询
8.16.1 交叉连接
8.16.2 内连接
8.16.3 两种连接标准:SQL-86与SQL-92
8.16.4 外连接
8.17 如何构造复杂的查询语句
8.18 SQL查询的等效转换
8.18.1 内连接与子查询
8.18.2 in,exists,内连接,intersect
8.18.3 not in,not exist,外连接
9 数据修改语句
9.1 delete
9.2 update
9.3 insert
9.4 构造涉及多个表的数据修改语句
9.4.1 附带复杂条件的update语句
9.4.2 修改的新值与其他表相关
10 表及约束
10.1 创建简单的表
10.2 约束
10.2.1 约束的种类
10.2.2 创建表时附加约束
10.2.3 对表增加约束
10.2.4 删除约束
10.2.5 禁用和启用约束
10.2.6 查询约束的信息
10.3 修改表的结构
10.3.1 修改列的数据类型
10.3.2 添加及删除列
10.3.3 修改列名
10.3.4 修改表名
10.3.5 清空表:truncate table
10.3.6 删除表
10.4 回收站功能
10.4.1 与回收站有关的数据字典视图
10.4.2 查询被删除表中的数据
10.4.3 恢复被删除的表
10.4.4 如何不开启回收站功能
10.4.5 清空回收站中的对象
10.4.6 关于回收站功能的几点注意事项
10.4.7 恢复与表相关的索引对象
10.5 DDL语句的背后
11 管理表空间和数据文件
11.1 表空间
11.1.1 表空间是什么
11.1.2 如何创建表空间
11.1.3 如何把表创建于指定表空间
11.1.4 把表的数据移至另外一个表空间
11.1.5 查询表所在的表空间
11.1.6 表的数据存储于多个数据文件的原因
11.1.7 查询表空间或数据文件的系统信息
11.2 表空间的类型及其功能
11.3 存储空间如何分配
11.3.1 数据块、段和区
11.3.2 指定非默认的块大小
11.3.3 指定表空间的空间分配方式
11.3.4 观察空间分配的过程
11.3.5 对表分配指定大小的空间
11.4 删除数据时空间是否释放
11.5 修改表空间和数据文件的属性
11.6 与存储空间相关的系统信息查询
12 B树索引
12.1 一个使用索引的例子
12.2 如何创建索引
12.3 B树索引能把查询速度提高多少
12.4 B树索引的结构
12.4.1 如何表示表中记录的地址
12.4.2 B树索引的叶节点内容
12.4.3 B树索引的分支节点内容
12.4.4 Oracle如何利用索引进行查询
12.4.5 实验探究:验证索引叶节点及分支节点内容
12.4.6 哪些情况需要创建索引
12.5 如何知道一个查询是否使用了索引
12.5.1 设置SQL Plus查看执行计划
12.5.2 通过查看执行计划确认是否使用索引
12.5.3 哪些情况不会使用索引
12.6 DML语句对索引的影响
12.6.1 insert语句对索引的影响
12.6.2 delete语句对索引的影响
12.6.3 update语句对索引的影响
12.7 基于函数的B树索引
12.8 设置索引的可见性
12.9 约束与索引
12.10 与B树索引有关的数据字典视图
13 位图索引
13.1 位图索引的功能
13.2 位图索引能把查询速度提高多少
13.3 位图索引占用多少空间
13.4 位图索引的结构
13.5 实验探究:验证位图索引的内容
14 管理数据库的各种文件
14.1 参数文件
14.1.1 参数文件的作用
14.1.2 pfile和spfile
14.1.3 修复spfile
14.1.4 参数文件的存储位置
14.1.5 修改参数值
14.1.6 如何查询参数值
14.1.7 有关初始化参数的帮助
14.2 跟踪文件
14.2.1 跟踪文件的位置
14.2.2 跟踪文件的种类
14.2.3 警告文件
14.2.4 当前会话跟踪文件
14.3 控制文件
14.3.1 控制文件的内容
14.3.2 控制文件的安全性保证措施
14.4 重做文件
14.4.1 重做文件的内容
14.4.2 实例恢复与介质恢复
14.4.3 重做文件组
14.4.4 查询重做文件信息
14.4.5 管理联机重做文件
14.4.6 移动重做文件
14.4.7 数据库归档模式
14.4.8 查询数据库归档模式
14.4.9 查询联机重做文件组及重做文件信息
14.4.10 查询归档日志文件信息
15 实例
15.1 内存构成部分
15.1.1 SGA
15.1.2 PGA
15.1.3 UGA
15.2 SGA构成部分
15.2.1 固定区域(fixed area)
15.2.2 数据缓冲区(database buffer cache)
15.2.3 Java池(Java pool)
15.2.4 大池(large pool)
15.2.5 重做缓冲区(redo buffer)
15.2.6 共享池(shared pool)
15.3 PGA的构成
15.3.1 私有SQL区域
15.3.2 SQL工作区域
15.4 内存管理与配置
15.4.1 内存自动管理
15.4.2 自动管理SGA
15.4.3 手工管理SGA
15.5 进程
15.5.1 服务器进程
15.5.2 后台进程
16 事务处理与锁
16.1 事务概念
16.1.1 事务应用实例1:银行转账
16.1.2 事务应用实例2:超市收银
16.2 事务的ACID属性
16.2.1 Atomicity——原子性
16.2.2 Consistency——一致性
16.2.3 Isolation——隔离性
16.2.4 Durability——持久性
16.3 事务控制命令
16.4 并发控制要解决的问题
16.5 解决并发问题的锁和多版本数据技术
16.5.1 Oracle中锁的种类
16.5.2 Oracle自动附加的锁
16.5.3 DML锁
16.5.4 死锁
16.5.5 锁的升级和转换
16.5.6 多版本数据技术
16.5.7 总结:Oracle解决三个并发控制问题的方法
16.6 实例恢复
16.6.1 checkpoint与实例恢复的关系
16.6.2 前滚(rollforward)
16.6.3 回滚(rollback)
17 网络连接
17.1 网络连接的几个术语
17.1.1 服务器与客户端
17.1.2 数据库服务名
17.1.3 监听器
17.1.4 专用服务器模式及专用服务器进程
17.1.5 共享服务器模式和共享服务器进程
17.1.6 服务注册
17.2 简单的网络连接配置
17.2.1 服务器端操作
17.2.2 客户端配置
17.3 共享服务器模式及专用服务器模式配置
17.3.1 配置共享服务器模式
17.3.2 在客户端指定共享或专用连接方式
17.4 使用非默认端口连接数据库
17.4.1 设置监听器
17.4.2 设置local_listener参数静态注册数据库服务至监听器
17.4.3 配置客户端连接至数据库
18 用户和权限管理
18.1 一个用户及权限管理的简单示例
18.2 用户管理
18.2.1 用户属性
18.2.2 创建用户
18.2.3 模式的概念
18.2.4 修改用户属性
18.2.5 删除用户
18.2.6 查询数据库中的用户名称
18.2.7 查询用户属性
18.2.8 数据库中的预定义用户
18.2.9 预置管理用户
18.3 权限管理
18.3.1 Oracle中的权限种类
18.3.2 系统权限
18.3.3 unlimited tablespace权限
18.3.4 sysdba和sysoper权限
18.3.5 数据库中的所有系统权限
18.3.6 对象权限
18.3.7 赋予系统权限
18.3.8 赋予对象权限
18.3.9 撤销用户权限
18.3.10 查询用户的权限信息
18.4 角色
18.4.1 public角色
18.4.2 角色相关信息查询
18.4.3 connect、resource、dba角色
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b3c67e4b03627650b1bc1.png)
思维导图在线编辑链接: