内容简介
第1章 你真正学会数据库了吗
1.1 学习数据库的必要性
1.2 学习数据库的境界
1.3 Oracle霸主地位之——为什么要选择学习Oracle
1.4 数据库(Database)
1.4.1 何为数据库
1.4.2 何为关系数据库(RDB)
1.4.3 何为数据库管理系统(DBMS)
1.4.4 何为E-R图(Entity-Relationship Model)
1.4.5 何谓表(Table)
1.5 数据库在软件架构中的地位
1.6 数据库中的数据库——数据字典
1.6.1 数据字典的结构
1.6.2 数据字典的使用
本章总结
第2章 数据库安装不求人之——自个安装Oracle数据库
2.1 Oracle服务器软件安装之——Linux平台
2.1.1 准备操作系统
2.1.2 启动Oracle安装
2.2 Oracle服务器软件安装之——Windows平台
2.2.1 Oracle服务器软件安装
2.2.2 Oracle服务器软件安装之——故障排查
2.2.3 创建Oracle 11g数据库(Windows平台)
2.2.4 Oracle安装后期——测试安装是否成功
2.3 Oracle客户端安装
本章总结
第3章 初学者最麻烦的问题之——不能干净地卸载Oracle
3.1 Oracle不能完全卸载的烦恼
3.2 干干净净地卸载Oracle数据库
3.2.1 用DBCA删除数据库
3.2.2 删除ASM
3.2.3 停止Oracle所有的服务(Oracle Services)
3.2.4 用Oracle Universal Installer自动删除Oracle的组件
3.2.5 手动删除Oracle的其余组件
本章总结
第4章 轻松搞定Oracle网络
4.1 轻松搞定Oracle网络之——数据库服务器端网络配置
4.1.1 监听器的配置
4.1.2 监听器的启动
4.1.3 监听器的关闭
4.1.4 监听器的状态
4.2 轻松搞定Oracle网络之——Oracle客户端网络配置
4.2.1 客户端配置
4.2.2 测试客户端到服务器的连接
4.2.3 登录远程数据库
4.3 轻松搞定Oracle网络之——Oracle网络故障攻略
本章总结
第5章 访问远程数据库之——工具介绍
5.1 字符界面管理工具之——SQL*Plus
5.1.1 启动SQL*Plus
5.1.2 在SQL*Plus中执行代码
5.1.3 关闭SQL*Plus
5.1.4 最有用的SQL*Plus命令(SQL*Plus Commands)
5.1.5 SQL*Plus使用技巧
5.2 Web版的企业管理器(Oracle Enterprise Manager,OEM)
5.2.1 使用OEM
5.2.2 启动dbconsole
5.2.3 关闭dbconsole
5.3 其他数据库访问工具
5.3.1 DbVisualizer
5.3.2 TOAD
5.3.3 Embarcadero SQL Tuner
5.3.4 PL/SQL Developer
本章总结
第6章 Oracle数据库启动/关闭——原理剖析
6.1 数据库的启动
6.1.1 启动一个关闭的数据库(常规启动)
6.1.2 数据库启动原理
6.1.3 初始化参数(Initialization Parameter)
6.1.4 只启动实例——把数据库启动到非装载状态(NOMOUNT)
6.1.5 把数据库启动到装载状态(MOUNT)
6.1.6 打开数据库
6.1.7 重启你的数据库(Reset)
6.1.8 把数据库启动到只读模式
6.1.9 把数据库设置成自动启动/关闭之——Windows篇
6.1.10 把数据库设置成自动启动/关闭之——UNIX/Linux篇
6.2 数据库启动故障排查攻略
6.3 数据库的关闭
6.3.1 使用频率最高的数据库关闭方式
6.3.2 数据库关闭最快的方式
6.3.3 数据库关闭最慢的方式
6.3.4 以TRANSACTIONAL方式关闭数据库
本章总结
第7章 数据之家——Oracle存储管理
7.1 常规表空间管理
7.1.1 创建表空间(Create Tablespace)
7.1.2 扩展表空间
7.1.3 使表空间离线/在线(Taking Tablespaces Offline/Online)
7.1.4 重命名表空间(Renaming Tablespaces)
7.1.5 使表空间只读(Read Only)
7.1.6 删除表空间(Drop Tablespace)
7.1.7 大文件表空间(Bigfile Tablespaces)
7.1.8 表空间的加密(Encrypted Tablespaces)
7.1.9 表和表空间的关系
7.1.10 必须清楚的几个概念
7.2 数据文件管理
7.2.1 使数据文件离线
7.2.2 移动数据文件
7.2.3 删除数据文件
7.2.4 列出数据库中的数据文件
7.3 临时表空间管理
7.4 回滚表空间管理
7.4.1 回滚数据(Undo Data)
7.4.2 读一致性(Read Consistency)
7.4.3 数据库恢复(Database Recovery)
7.4.4 闪回查询(Flashback Query)
7.4.5 事务和回滚数据(Transactions and Undo Data)
7.4.6 回滚段(Undo Segment)
7.4.7 回滚表空间(Undo Tablespace)
7.4.8 回滚表空间的操作
本章总结
第8章 简化存储管理之——自动存储管理(ASM)
8.1 ASM实例(ASM Instances)
8.2 ASM磁盘组(ASM Disk Groups)
8.3 ASM文件(ASM Files)
8.4 区(Extents)
8.5 镜像和失败组(Mirroring and Failure Groups)
8.6 ASM使用全程
8.6.1 配置ASM实例
8.6.2 ASM实例的连接
8.6.3 ASM的启动
8.6.4 ASM的关闭
8.6.5 创建磁盘组
8.6.6 在磁盘组上创建表空间
8.7 ASM磁盘组的维护
本章总结
第9章 为数据库优化打基础之——Oracle内存管理
9.1 Oracle内存介绍
9.1.1 系统全局区(SGA)
9.1.2 程序全局区(PGA)
9.1.3 软件代码区(Software Code Areas)
9.2 Oracle内存管理方法
9.2.1 启用自动内存管理(Automatic Memory Management)
9.2.2 启用自动SGA管理(Automatic Shared Memory Management)
9.2.3 启用自动PGA管理(Automatic PGA Memory Management)
9.2.4 SGA手动管理
9.2.5 PGA手动管理
9.3 内存信息查询
9.3.1 从命令行查看Oracle的内存信息
9.3.2 用Oracle企业管理器查看Oracle内存的分配情况
本章总结
第10章 Oracle的发动机——进程
10.1 进程简介
10.2 Oracle后台进程(Background Process)
10.3 进程管理与维护
10.3.1 查看Oracle的后台进程
10.3.2 查看数据库中的会话
10.3.3 最热门的话题——提高数据库最大会话数
10.3.4 终止会话(Terminating Sessions)
10.3.5 修改归档进程(ARCn)的数量
10.3.6 修改数据库书写进程(DBWn)的数量
10.3.7 修改作业队列进程(Job Queue Process)的数量
10.3.8 查看每个进程占用的系统资源
本章总结
第11章 数据库物理结构信息的仓库——Oracle控制文件
11.1 控制文件(Control Files)简介
11.2 查看数据库中的控制文件
11.3 DBA必做的事情——镜像控制文件(Multiplex Control Files)
11.4 查看控制文件的内容
11.5 得到创建控制文件的脚本
11.6 移动控制文件
11.7 删除控制文件
本章总结
第12章 服务器掉电亦无忧之——Oracle重做日志(Redo Log)管理
12.1 重做日志文件的工作原理
12.1.1 重做日志(Redo Log)
12.1.2 重做日志条目(Redo Entry)
12.1.3 重做日志(Redo Log)的构成
12.1.4 重做日志(Redo Log)的工作原理
12.1.5 重做日志文件(Redo Log Files)的四种状态
12.1.6 同一日志组中成员的分布
12.1.7 重做日志(Redo Log)与实例恢复
12.2 查询数据库中的重做日志组
12.3 查询数据库中的重做日志文件
12.4 创建重做日志组(Creating Redo Log Groups)
12.5 添加重做日志文件(Creating Redo Log Members)
12.6 删除重做日志组(Dropping Redo Log Groups)
12.7 删除重做日志成员(Dropping Redo Log Members)
12.8 改变重做日志组的状态
12.9 查看重做日志组是否已经归档
本章总结
第13章 总揽全局——Oracle体系结构综述
13.1 物理数据库结构(Physical Database Structures)
13.2 逻辑数据库结构(Logical Database Structures)
13.3 实例(Database Instance)
13.3.1 SGA
13.3.2 后台进程(Background Processes)
13.3.3 最容易混淆的两个概念——数据库和实例
13.4 阅读参考
本章总结
第14章 成为数据库的王者之——权限管理
14.1 用户管理
14.1.1 创建用户账号
14.1.2 预定义账户(Predefined User Accounts)
14.1.3 修改用户账号属性
14.1.4 锁定爱捣蛋的用户
14.1.5 查看数据库账户属性
14.1.6 让一个用户从数据库中永远消失
14.1.7 查看当前登录数据库的用户
14.2 限制用户对资源的消耗——概要文件(User Profiles)
14.2.1 创建概要文件
14.2.2 修改用户的概要文件(把概要文件赋予用户)
14.2.3 删除概要文件
14.3 数据库管理员的验证方式(Authentication Method for Database Administrators)
14.3.1 管理员的验证之——数据字典验证(Data Dictionary Authentication)
14.3.2 管理员的验证之——使用操作系统验证(Using Operating System Authentication)
14.3.3 管理员的验证之——使用口令文件验证(Using Password File Authentication)
14.3.4 管理员的验证之——基于网络的验证
14.4 权限管理
14.4.1 力量的象征——权限
14.4.2 搞不清楚的问题——角色与权限
14.4.3 创建角色
14.4.4 授予角色权限
14.4.5 删除角色
14.4.6 权力演绎
本章总结
第15章 Oracle数据泵(Oracle Data Pump)
15.1 Oracle数据泵的组件
15.2 数据泵移动数据的方式
15.3 数据泵的工作原理
15.4 目录问题
15.5 导入导出过程的监控
15.6 数据泵导出工具(Data Pump Export)
15.6.1 Data Pump Export的调用接口
15.6.2 导出模式(Data Pump Export Modes)
15.6.3 导出参数说明
15.7 数据泵导出工具(Data Pump Import)
本章总结
第16章 学习任何数据库必学之——SQL语句
16.1 SQL简述
16.2 事务(Transaction)
16.2.1 提交(COMMIT)
16.2.2 回滚(ROLLBACK)
16.2.3 事务命名(SET TRANSACTION NAME)
16.2.4 事务读一致性(Transaction-level Read Consistency)
16.2.5 回滚点(SAVEPOINT)
16.2.6 自治事务(Autonomous Transactions)
16.3 数据类型(Oracle Data Type)
16.4 数据库的核心——表结构管理
16.4.1 Oracle的表类型
16.4.2 建表——创建存储数据的“容器”
16.4.3 修改表——修改“容器”的属性
16.4.4 表管理小技巧
16.4.5 删除表——让整个表从数据库中彻底消失
16.5 数据库的核心——表数据管理
16.5.1 往“容器”中装入数据(INSERT语句演示)
16.5.2 修改“容器”中的数据(UPDATE语句演示)
16.5.3 查询“容器”中的数据(SELECT语句演示)
16.5.4 删除“容器”中的数据(DELETE语句)
16.6 数据库的核心——约束管理
16.6.1 五大约束
16.6.2 约束管理
16.7 数据库的核心——LOB管理
16.7.1 BFILE
16.7.2 BLOB
16.7.3 CLOB
16.7.4 NCLOB
16.7.5 BFILE应用实战
16.7.6 CLOB应用实战
16.8 用户自定义数据类型(User-defined Data Type)
16.8.1 对象类型(Object Type)
16.8.2 可变数组类型(Variable-size Arrays Type)
16.8.3 嵌套表类型(Nested Table Type)
16.9 分布式应用
16.9.1 数据库链接分类
16.9.2 创建数据库链接
16.9.3 数据库链接的应用
16.9.4 删除数据库链接
16.10 分区表管理
本章总结
第17章 构筑高速运行的SQL语句
17.1 数据库性能调整简介
17.2 实例调整
17.2.1 自动工作负载库(Automatic Workload Repository,AWR)
17.2.2 性能监测器(Automatic Database Diagnostic Monitor,ADDM)
17.3 SQL语句调整
17.3.1 数据查询的加速器——索引
17.3.2 优化器(Optimizer)
17.3.3 SQL语句执行的大致过程
17.3.4 SQL语句的优化过程
17.3.5 提示(Hint)
本章总结
第18章 模式对象管理
18.1 数据的封藏——视图
18.1.1 视图创建
18.1.2 在存储过程中创建视图
18.1.3 视图的使用
18.1.4 得到创建视图的SQL语句
18.1.5 视图的删除
18.2 产生唯一值——序列(Sequence)
18.2.1 创建序列
18.2.2 序列的使用
18.2.3 序列值丢失(不连续)的问题
18.2.4 把序列的值重新置成1
18.2.5 删除序列
18.3 隐藏数据库对象的名字——同义词(SYNONYM)
18.3.1 同义词的优点
18.3.2 同义词的分类
18.3.3 创建同义词
18.3.4 使用同义词
18.3.5 删除同义词
本章总结
第19章 开发基础的沉淀——PL/SQL程序设计
19.1 PL/SQL介绍
19.1.1 PL/SQL基本要素
19.1.2 PL/SQL块(PL/SQL Block)
19.1.3 变量和常量
19.1.4 数据类型
19.1.5 PL/SQL表达式和运算符
19.1.6 PL/SQL语句
19.1.7 在PL/SQL中使用SELECT语句
19.1.8 在PL/SQL中使用DML
19.1.9 控制结构
19.1.10 GOTO语句
19.1.11 异常(Exception)
19.2 数据批处理——游标(Cursor)
19.2.1 游标的分类
19.2.2 游标FOR循环
19.2.3 向游标中传递参数
19.2.4 游标变量
19.3 一触即发——触发器介绍
19.3.1 触发器的功能
19.3.2 触发器的组成
19.3.3 触发器的种类
19.3.4 触发动作(Trigger Action)的编码
19.3.5 触发器的维护
19.3.6 在触发器中,如何利用学生表1的值去更新学生表2的值
19.3.7 阻止触发语句的执行
19.4 DDL语句的救星——动态SQL(Dynamic SQL)
19.4.1 静态SQL(Static SQL)
19.4.2 动态SQL(Dynamic SQL)
19.4.3 动态SQL和静态SQL的比较
19.4.4 动态SQL的书写
本章总结
第20章 存放在数据库服务器中的代码
20.1 存储PL/SQL单元
20.2 子程序的参数
20.3 存储过程(Procedure)
20.3.1 存储过程的创建
20.3.2 存储过程的调用
20.3.3 存储过程的编译
20.3.4 存储过程的删除
20.3.5 存储过程使用技巧
20.4 函数(Function)
20.4.1 函数的创建
20.4.2 函数的调用
20.4.3 函数的编译
20.4.4 函数的删除
20.4.5 函数使用技巧
20.4.6 常用函数
20.5 包(Package)
20.5.1 包的优点
20.5.2 包的组成
20.5.3 包中对象的私有属性和公有属性
20.5.4 包的创建
20.5.5 引用包的对象(元素)
20.5.6 让其他用户使用你的包
20.5.7 包的编译
20.5.8 包的删除
20.5.9 包中存储过程和函数的重载
20.5.10 Oracle内置包
20.5.11 查看包中的存储过程或者函数
20.6 存储过程和函数的调试(Debug)
本章总结
第21章 Oracle即时客户端(Instant Client)
21.1 即时客户端简介
21.2 使用即时客户端部署应用程序
本章总结
第22章 数据库的备份
22.1 数据库故障的种类
22.1.1 实例失败
22.1.2 介质失败
22.1.3 用户错误
22.2 冷备份(Cold Backup)
22.2.1 一致性冷备份(Consistent Backup)
22.2.2 不一致冷备份(Inconsistent Backup)
22.3 热备份(Hot Backup)
22.4 备份、恢复工具
22.4.1 用户管理的备份和恢复
22.4.2 RMAN
22.5 冷备份的实施
22.6 热备份的实施
22.6.1 热备份的前提——归档管理
22.6.2 备份整个数据库
22.6.3 备份单个表空间
22.6.4 备份单个数据文件
22.6.5 备份归档日志文件
22.6.6 备份控制文件
22.6.7 备份SPFILE
本章总结
第23章 数据库的恢复
23.1 数据冲突的修复
23.2 冷备份的恢复
23.3 热备份的恢复
23.3.1 恢复整个数据库
23.3.2 恢复单个表空间
23.3.3 恢复单个数据文件
23.3.4 修复数据块
本章总结
第24章 项目实战之——网银子系统
24.1 软件生命周期(System Development Life Cycle)
24.2 业务需求分析——前期工作
24.2.1 业务需求
24.2.2 系统效果展示
24.3 架构设计——架起业务与软件的桥梁
24.3.1 软件系统框架设计
24.3.2 数据库模型设计
24.4 编码
24.5 测试
24.6 把理想变成现实
24.6.1 安装JDK
24.6.2 安装Tomcat
24.6.3 网银子系统配置
24.7 代码解释
24.7.1 安装Eclipse
24.7.2 Eclipse导入项目
24.7.3 MVC框架
24.7.4 重要代码讲解
本章总结