- ISBN:9787519891886
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:328
- 出版时间:2024-09-01
- 条形码:9787519891886 ; 978-7-5198-9188-6
本书特色
编辑推荐
随着遗留系统和其他关键系统的不断在线迁移,持续运行的需求势在必行。如今,代码不仅要处理数据问题,还要处理网络中断、存储系统、电力、辅助系统等硬性的外部问题,这本实用指南为系统管理员、DevSecOps工程师、云架构师简明而全面的介绍如何使用PL/SQL开发弹性数据库解决方案。
集成专家Stephen B. Morris带领你理解这种语言,构建PL/SQL工具箱,并整理出一套可重复使用的组件和模式。你将深入了解将工具箱与需求驱动、特征导向的方法相结合的益处,并学习如何结合弹性尺度制定弹性解决方案。
专家推荐
“Stephen拿出了一种很好的方法。即使你没有全盘照搬,也会从中发现一些有助于你完成项目的技巧和工具。”
——Patrick Barel
ACE Director,
高级Oracle开发人员,Qualogy
“我强烈各位推荐这本书。它为避免和简化复杂的故障排除问题提供了宝贵的建议。”
——Sayan Malakshinov
Oracle ACE
“这本书棒极了,满满都是干货。书中以特征为导向的方法既新颖又易于应用。”
——Yash Agrawal
顾问和承包商
内容简介
本书的主要内容有:在避免常见的PL/SQL反模式的同时构建可靠的PL/SQL解决方案。了解为什么将复杂的业务逻辑嵌入SQL往往是一个容易出问题的选择。学习如何识别和改进薄弱的PL/SQL代码。通过运行数据驱动的数据库内测试来验证PL/SQL代码。理解复杂PL/SQL系统的安全操作、维护、修改。学习思考特征而非只是用例的好处。
目录
前言 1
第Ⅰ部分 创建PL/SQL 工具箱
第1 章 弹性软件和PL/SQL .13
1.1 弹性软件15
1.2 弹性系统示例 .16
1.2.1 弹性需求:“是什么”与“怎么做” .16
1.2.2 使用PL/SQL 的动机:别用扳手切披萨 19
1.2.3 学习Java ORM 20
1.2.4 以数据为中心的复杂工作流 .20
1.2.5 将SQL 用于复杂的业务逻辑不是一个好主意 .23
1.3 一个警示故事 .23
1.3.1 拥抱PL/SQL 抽象 26
1.3.2 PL/SQL 的缺点 26
1.3.3 一种更好的方法 27
1.4 PL/SQL 入门 27
1.4.1 如何阅读现有或遗留的PL/SQL 代码 28
1.4.2 游标 31
1.5 理解PL/SQL 的学习及开发环境的必要性 34
1.6 弹性尺度35
1.6.1 捕获所有错误和异常:得分 = 0 .36
1.6.2 可恢复性:得分 = 2 36
1.6.3 可观测性:得分 = 0 37
1.6.4 可修改性:得分 = 5 37
1.6.5 模块化:得分 = 2 37
1.6.6 简单性:得分 = 5 37
1.6.7 编码规范:得分 = 5 37
1.6.8 可复用性:得分 = 2 38
1.6.9 可重复测试:得分 = 2 .38
1.6.10 避免常见反模式:得分 = 0 .38
1.6.11 模式演进:得分 = 0 38
1.7 小结 .39
第2 章 安装容器化Oracle Database 实例和
SQL Developer 41
2.1 安装虚拟化Oracle Database 41
2.2 Docker 入门 .43
2.3 配置Oracle Database 51
2.4 更新用户密码 .52
2.5 SQL Developer 入门 53
2.6 回顾基本的Docker 工作流57
2.7 运行SQL Developer 59
2.8 一个简单的模式 61
2.9 运行PL/SQL 代码 63
2.10 三个Docker 常见错误 .65
2.10.1 Docker 区分大小写 .65
2.10.2 急于连接数据库 66
2.10.3 由可怕的Windows 更新引发的Docker 问题 .67
2.11 Docker 命令行的替代 67
2.12 Docker 命令行的另一种替代 69
2.13 小结 71
第3 章 小试SQL Developer 73
3.1 修复烦人的PL/SQL 错误 .74
3.2 在数据库中安装PL/SQL 存储过程 .78
3.3 在数据库中安装存储过程 80
3.4 执行PL/SQL 存储过程 81
3.5 要点:错误乃良师 84
3.6 小结 .85
第4 章 在PL/SQL 代码中应用弹性尺度 87
4.1 弹性尺度需求1:捕获所有错误和异常 89
4.1.1 异常处理的变化 90
4.1.2 运行更新后的PL/SQL .92
4.2 弹性尺度需求2:可恢复性 100
4.3 弹性尺度需求3:可观测性 102
4.3.1 如果日志记录出现异常该怎么办? 103
4.3.2 更新模式 104
4.4 弹性尺度需求4:可修改性 107
4.5 弹性尺度需求5:模块化 111
4.5.1 日志记录包 . 117
4.5.2 创建日志记录包 119
4.5.3 整合日志记录功能 122
4.6 弹性尺度需求6:简单性 125
4.7 弹性尺度需求7:编码规范 126
4.8 弹性尺度需求8:可复用性 127
4.9 弹性尺度需求9:可重复测试 .129
4.9.1 安装utPLSQL 131
4.9.2 在SQL Developer 中创建utPLSQL 单元测试 133
4.10 运行utPLSQL 单元测试 135
4.11 弹性尺度需求10:避免常见的反模式 .144
4.11.1 代码过长 147
4.11.2 代码过于复杂 147
4.11.3 缺少异常/ 错误处理 .148
4.11.4 与异常共存 148
4.11.5 缺少模块化 148
4.11.6 无法确定根源的崩溃 149
4.12 弹性尺度需求11:模式演进 .150
4.13 弹性尺度变动汇总 154
4.14 小结 156
第Ⅱ部分 特性驱动开发
第5 章 调用PL/SQL . 161
5.1 两种PL/SQL 集成模型 161
5.2 使用作业调用PL/SQL .162
5.3 使用Java 程序调用PL/SQL .166
5.3.1 设置简单的Java 应用程序 167
5.3.2 运行Java 应用程序 .169
5.3.3 Java 错误归谁 173
5.3.4 读取数据库元数据 173
5.3.5 一些Java PL/SQL 陷阱 .175
5.3.6 Oracle Database 密码陷阱 175
5.4 小结 175
第6 章 特性驱动的PL/SQL 开发 . 177
6.1 什么是特性 177
6.1.1 SQL Developer 的一个特性 178
6.1.2 特性示例 181
6.2 剖析特性.184
6.2.1 阐明特性的共同目标186
6.2.2 允许定义特性能够完成的有用工作 187
6.2.3 定义特性辅助器和调用机制 188
6.2.4 定义检验特性及其组件的测试 188
6.2.5 确定特性及其组件的需求 188
6.3 将日志存储过程重塑为特性 .189
6.4 将update_employees 存储过程视为特性191
6.5 测试特性或垂直切片 193
6.6 业务关键型PL/SQL 代码 194
6.7 特性的其他方面 .195
6.7.1 特性与系统健康 195
6.7.2 特性和端点 .196
6.8 小结 197
第Ⅲ部分 综合运用PL/SQL 工具箱和特性驱动开发
第7 章 一个以流程为中心、基于特性的迷你项目 . 201
7.1 需求1:定义需求202
7.2 需求2:构建发票基本大纲 202
7.3 需求3:创建模式205
7.4 需求4:测试模式213
7.5 需求5:特性描述214
7.6 需求6:构建解决方案所需的PL/SQL 工具箱元素 .215
7.7 需求7:测试 215
7.8 需求8:构建弹性PL/SQL 解决方案 215
7.9 需求9:通过高级语言调用验证解决方案 216
7.10 小结 216
第8 章 从“做什么”到“怎么做:根据规范构建
特性组件 217
8.1 需求 218
8.2 定义需求.222
8.3 构建发票基本大纲 .222
8.4 创建模式.223
8.5 PROJECTS 数据表 227
8.6 模式测试.229
8.6.1 插入数据并验证约束229
8.6.2 验证PROJECTS 数据表的操作是否按预期工作 .231
8.7 功能工作流描述 .232
8.7.1 创建项目发票数据集232
8.7.2 从Java 代码调用特性 232
8.7.3 调用传递所需数据的PL/SQL 存储过程 233
8.7.4 插入对新的发票开具PL/SQL 存储过程的调用 233
8.7.5 先在SQL Developer 中运行初版PL/SQL 代码 235
8.7.6 在INVOICES 数据表中插入一行 237
8.7.7 添加两个辅助器 238
8.7.8 性能注意事项:PL/SQL 与SQL 246
8.7.9 项目状态简报 .247
8.7.10 重温项目功能状态报告 250
8.8 小结 253
第9 章 构建完整的特性:*终项目集成 255
9.1 回顾弹性尺度 255
9.2 结合模型重新审视模式 257
9.3 重回错误和异常管理 261
9.4 弹性需求备忘录 .273
9.5 可恢复性.274
9.6 可观测性.274
9.7 可修改性.274
9.8 模块化 .275
9.9 测试 281
9.10 构建基础的发票生成工具285
9.11 添加日志 285
9.12 从Java 代码调用日志记录的PL/SQL 存储过程 287
9.13 小结 290
第10 章 尾声 293
10.1 一些要点 296
10.2 避免严重的反模式 298
10.3 Docker:学习Oracle Database 的一项技术 299
10.4 把错误视为老师并阅读代码 300
10.5 遗留代码和弹性尺度 .300
10.6 PL/SQL 和高级语言集成 .301
10.7 特性作为粗粒度的替代物301
10.8 小结 302
附录A Oracle 本机安装故障排除 . 303
附录B Oracle Database 日志记录的其他选项 311
作者简介
Stephen B. Morris是一位独立作家和顾问,居住在爱尔兰。他在企业开发和网络应用领域拥有丰富的经验,从事专业代码编写工作已有30年之久,技术之旅涉及电信、金融、医疗保健、政府等多个行业。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0